Add dark and light theme with OS preference support
Follow OS color scheme by default, with a three-way toggle (System / Light / Dark) in the kebab menu. Light theme uses warm, neutral tones with soft card-to-background contrast. Semantic colors (damage, healing, conditions) keep their hue across themes. Closes #10 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -19,12 +19,47 @@
|
||||
--color-hover-neutral-bg: oklch(0.623 0.214 259 / 0.15);
|
||||
--color-hover-action-bg: var(--color-muted);
|
||||
--color-hover-destructive-bg: transparent;
|
||||
--color-stat-heading: #fbbf24;
|
||||
--color-stat-divider-from: oklch(0.5 0.1 65 / 0.6);
|
||||
--color-stat-divider-via: oklch(0.5 0.1 65 / 0.4);
|
||||
--color-hp-damage-hover-bg: oklch(0.25 0.05 25);
|
||||
--color-hp-heal-hover-bg: oklch(0.25 0.05 155);
|
||||
--color-active-row-bg: oklch(0.623 0.214 259 / 0.1);
|
||||
--color-active-row-border: oklch(0.623 0.214 259 / 0.4);
|
||||
--radius-sm: 0.25rem;
|
||||
--radius-md: 0.5rem;
|
||||
--radius-lg: 0.75rem;
|
||||
--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
|
||||
}
|
||||
|
||||
[data-theme="light"] {
|
||||
--color-background: #eeecea;
|
||||
--color-foreground: #374151;
|
||||
--color-muted: #e0ddd9;
|
||||
--color-muted-foreground: #6b7280;
|
||||
--color-card: #f7f6f4;
|
||||
--color-card-foreground: #374151;
|
||||
--color-border: #ddd9d5;
|
||||
--color-input: #cdc8c3;
|
||||
--color-primary: #2563eb;
|
||||
--color-primary-foreground: #ffffff;
|
||||
--color-accent: #2563eb;
|
||||
--color-destructive: #dc2626;
|
||||
--color-hover-neutral: var(--color-primary);
|
||||
--color-hover-action: var(--color-primary);
|
||||
--color-hover-destructive: var(--color-destructive);
|
||||
--color-hover-neutral-bg: oklch(0.623 0.214 259 / 0.08);
|
||||
--color-hover-action-bg: var(--color-muted);
|
||||
--color-hover-destructive-bg: transparent;
|
||||
--color-stat-heading: #92400e;
|
||||
--color-stat-divider-from: oklch(0.55 0.1 65 / 0.5);
|
||||
--color-stat-divider-via: oklch(0.55 0.1 65 / 0.25);
|
||||
--color-hp-damage-hover-bg: #fef2f2;
|
||||
--color-hp-heal-hover-bg: #ecfdf5;
|
||||
--color-active-row-bg: oklch(0.623 0.214 259 / 0.08);
|
||||
--color-active-row-border: oklch(0.623 0.214 259 / 0.25);
|
||||
}
|
||||
|
||||
@keyframes concentration-shake {
|
||||
0% {
|
||||
translate: 0;
|
||||
@@ -178,6 +213,11 @@
|
||||
box-shadow:
|
||||
0 0 15px -2px oklch(0.623 0.214 259 / 0.2),
|
||||
inset 0 1px 0 0 oklch(0.7 0.15 259 / 0.1);
|
||||
|
||||
[data-theme="light"] & {
|
||||
background-image: none;
|
||||
box-shadow: 0 1px 3px 0 oklch(0 0 0 / 0.08);
|
||||
}
|
||||
}
|
||||
|
||||
@utility panel-glow {
|
||||
@@ -189,6 +229,11 @@
|
||||
box-shadow:
|
||||
0 0 20px -2px oklch(0.623 0.214 259 / 0.15),
|
||||
inset 0 1px 0 0 oklch(0.7 0.15 259 / 0.1);
|
||||
|
||||
[data-theme="light"] & {
|
||||
background-image: none;
|
||||
box-shadow: -1px 0 6px 0 oklch(0 0 0 / 0.1);
|
||||
}
|
||||
}
|
||||
|
||||
* {
|
||||
@@ -207,3 +252,7 @@ body {
|
||||
color: var(--color-foreground);
|
||||
font-family: var(--font-sans);
|
||||
}
|
||||
|
||||
[data-theme="light"] body {
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user