fix: correct theme toggle icon

This commit is contained in:
2024-04-06 15:20:42 +02:00
parent f9072c3cfc
commit ee391e128f
6 changed files with 86 additions and 36 deletions

View File

@ -1,6 +1,8 @@
<script lang="ts">
import { onMount } from "svelte";
import { writable } from "svelte/store";
import IconSun from "~icons/tabler/Sun";
import IconMoon from "~icons/tabler/Moon";
let theme = writable("");
@ -20,45 +22,27 @@
</script>
<button class="block w-6 h-6" on:click={toggleTheme} title="toggle dark mode">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.5"
stroke-linecap="round"
stroke-linejoin="round"
class="hidden icon icon-tabler icons-tabler-outline icon-tabler-sun"
><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path
d="M12 12m-4 0a4 4 0 1 0 8 0a4 4 0 1 0 -8 0"
/><path
d="M3 12h1m8 -9v1m8 8h1m-9 8v1m-6.4 -15.4l.7 .7m12.1 -.7l-.q7 .7m0 11.4l.7 .7m-12.1 -.7l-.7 .7"
/></svg
>
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.25"
stroke-linecap="round"
stroke-linejoin="round"
class="icon icon-tabler icons-tabler-outline icon-tabler-moon"
><path stroke="none" d="M0 0h24v24H0z" fill="none" /><path
d="M12 3c.132 0 .263 0 .393 0a7.5 7.5 0 0 0 7.92 12.446a9 9 0 1 1 -8.313 -12.454z"
/></svg
>
<IconMoon class="w-6 h-6 icon-tabler-moon" />
<IconSun class="w-6 h-6 icon-tabler-sun" />
</button>
<style>
:global(.dark .icon-tabler-moon) {
display: none;
button :global(path) {
stroke-width: 1.5px !important;
}
:global(.dark .icon-tabler-sun) {
button > :global(.icon-tabler-moon) {
display: block;
}
button > :global(.icon-tabler-sun) {
display: none;
}
:global(.dark .icon-tabler-moon) {
display: none !important;
}
:global(.dark .icon-tabler-sun) {
display: block !important;
}
</style>

1
src/env.d.ts vendored
View File

@ -1,2 +1,3 @@
/// <reference path="../.astro/types.d.ts" />
/// <reference types="astro/client" />
/// <reference types="unplugin-icons/types" />