This commit is contained in:
team3
2026-07-27 08:04:32 +02:00
parent 37100f1b81
commit 15ad6dfe8a
2 changed files with 27 additions and 11 deletions

View File

@@ -6,10 +6,10 @@
<title>Planer2</title> <title>Planer2</title>
<script> <script>
(function () { (function () {
var stored = localStorage.getItem('darkMode') var modus = localStorage.getItem('darkModus')
var dark = stored === null var dark = modus === 'hell' || modus === 'dunkel'
? window.matchMedia('(prefers-color-scheme: dark)').matches ? modus === 'dunkel'
: stored === 'true' : window.matchMedia('(prefers-color-scheme: dark)').matches
if (dark) document.documentElement.classList.add('dark') if (dark) document.documentElement.classList.add('dark')
})() })()
</script> </script>

View File

@@ -10,7 +10,15 @@ import { offen as pruefungOffen, starte as startePruefung, schliesse as schliess
const projekte = ref([]) const projekte = ref([])
const aktivesProjekt = ref(null) const aktivesProjekt = ref(null)
const meldung = ref('') const meldung = ref('')
const dunkel = ref(document.documentElement.classList.contains('dark'))
// Drei Modi im Kreis; „auto" folgt der Systemeinstellung
const MODI = ['auto', 'hell', 'dunkel']
const ICONS = { auto: 'A', hell: '☀', dunkel: '☾' }
const TITEL = { auto: 'Systemeinstellung', hell: 'Hellmodus', dunkel: 'Dunkelmodus' }
const systemDunkel = window.matchMedia('(prefers-color-scheme: dark)')
const gemerkterModus = localStorage.getItem('darkModus')
const modus = ref(MODI.includes(gemerkterModus) ? gemerkterModus : 'auto')
async function ladeProjekte() { async function ladeProjekte() {
meldung.value = '' meldung.value = ''
@@ -40,12 +48,20 @@ watch(aktivesProjekt, name => {
else localStorage.removeItem('aktivesProjekt') else localStorage.removeItem('aktivesProjekt')
}) })
function wechsleDarkMode() { function wendeAn() {
dunkel.value = !dunkel.value const dunkel = modus.value === 'auto' ? systemDunkel.matches : modus.value === 'dunkel'
document.documentElement.classList.toggle('dark', dunkel.value) document.documentElement.classList.toggle('dark', dunkel)
localStorage.setItem('darkMode', dunkel.value)
} }
function wechsleDarkMode() {
modus.value = MODI[(MODI.indexOf(modus.value) + 1) % MODI.length]
localStorage.setItem('darkModus', modus.value)
wendeAn()
}
// Systemwechsel wirkt sofort, solange „auto" aktiv ist
systemDunkel.addEventListener('change', () => { if (modus.value === 'auto') wendeAn() })
onMounted(async () => { onMounted(async () => {
await ladeProjekte() await ladeProjekte()
const gemerkt = localStorage.getItem('aktivesProjekt') const gemerkt = localStorage.getItem('aktivesProjekt')
@@ -70,8 +86,8 @@ onMounted(async () => {
title="Karten prüfen" title="Karten prüfen"
@click="startePruefung(aktivesProjekt)" @click="startePruefung(aktivesProjekt)"
>⌾</button> >⌾</button>
<button class="icon-knopf" :title="dunkel ? 'Hellmodus' : 'Dunkelmodus'" @click="wechsleDarkMode"> <button class="icon-knopf" :title="TITEL[modus]" @click="wechsleDarkMode">
{{ dunkel ? '☀' : '☾' }} {{ ICONS[modus] }}
</button> </button>
</SeitenLeiste> </SeitenLeiste>