From bd3749efba56f47a3acf65477a1d62921f835140 Mon Sep 17 00:00:00 2001 From: arifibayrak <264016086+arifibayrak@users.noreply.github.com> Date: Wed, 8 Jul 2026 22:03:08 +0100 Subject: [PATCH] Add night mode theme with toggle Add a dark theme to the train dispatcher: a themeable dark palette, a moon/sun toggle button, "T" keyboard shortcut, localStorage persistence, and OS prefers-color-scheme as the default. Co-Authored-By: Claude Opus 4.8 (1M context) --- index.html | 82 +++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 75 insertions(+), 7 deletions(-) diff --git a/index.html b/index.html index ca20e5e..ea14246 100644 --- a/index.html +++ b/index.html @@ -22,6 +22,22 @@ --paper: #fbfbfa; --panel: rgba(255, 255, 255, 0.72); --accent: #111; + --steam: #c9c9c7; + --toggle-hover-bg: #ffffff; + --toggle-hover-border: #b8b8b8; + } + + :root[data-theme="dark"] { + color-scheme: dark; + --ink: #ededed; + --muted: #8f8f8f; + --faint: #333333; + --paper: #0e0e10; + --panel: rgba(28, 28, 32, 0.72); + --accent: #ededed; + --steam: #4a4a4a; + --toggle-hover-bg: #1c1c20; + --toggle-hover-border: #555555; } * { @@ -127,17 +143,17 @@ .steam { position: fixed; z-index: 0; - color: #c9c9c7; + color: var(--steam); font-size: 18px; pointer-events: none; animation: puff 1400ms ease-out forwards; will-change: transform, opacity; } - .mute-toggle { + .mute-toggle, + .theme-toggle { position: fixed; top: 16px; - right: 16px; z-index: 10; display: inline-flex; width: 38px; @@ -157,13 +173,23 @@ transform 150ms ease; } - .mute-toggle:hover { - background: #fff; - border-color: #b8b8b8; + .mute-toggle { + right: 16px; + } + + .theme-toggle { + right: 62px; + } + + .mute-toggle:hover, + .theme-toggle:hover { + background: var(--toggle-hover-bg); + border-color: var(--toggle-hover-border); transform: translateY(-1px); } - .mute-toggle:focus-visible { + .mute-toggle:focus-visible, + .theme-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; } @@ -273,6 +299,16 @@ + +