set theme swap to have a better color for light theme

This commit is contained in:
Julien Calixte
2025-05-31 14:00:24 +02:00
parent bef498dcd7
commit 7ebf14da29
3 changed files with 54 additions and 41 deletions

View File

@@ -1,12 +1,23 @@
<script setup lang="ts">
import { ref } from 'vue'
const htmlElement = document.querySelector("html")
const lightMode = htmlElement?.dataset.theme
const darkMode = "coffee"
const isDark = ref(JSON.parse(localStorage.getItem('is-dark') ?? 'false'))
const toggle = (isChecked: boolean) => {
localStorage.setItem('is-dark', isChecked ? 'true' : 'false')
const isInitiallyDark = JSON.parse(localStorage.getItem("is-dark") ?? "false")
if (htmlElement) {
htmlElement.dataset.theme = isInitiallyDark ? darkMode : lightMode
}
const darkMode = 'coffee'
const toggle = (isChecked: boolean) => {
localStorage.setItem("is-dark", isChecked ? "true" : "false")
if (!htmlElement) {
return
}
htmlElement.dataset.theme = isChecked ? darkMode : lightMode
}
</script>
<template>
@@ -14,9 +25,9 @@ const darkMode = 'coffee'
<input
type="checkbox"
:value="darkMode"
:checked="isDark"
:checked="isInitiallyDark"
class="theme-controller"
@click="() => toggle(!isDark)"
@click="(e) => toggle((e.target as HTMLInputElement)?.checked)"
/>
<svg