feat: overhaul design tokens - charcoal palette + amber accent

This commit is contained in:
Your Name
2026-02-17 21:24:15 +02:00
parent da1b2f3f8c
commit 552e8c0607

View File

@@ -1,57 +1,158 @@
@import "tailwindcss"; @import "tailwindcss";
@theme { @theme {
--color-background: #0F0F0F; /* Background layers */
--color-surface: #1A1A1A; --color-bg-base: #1A1A18;
--color-surface-elevated: #242424; --color-bg-surface: #222220;
--color-border: #2E2E2E; --color-bg-elevated: #2C2C28;
--color-text-primary: #FFFFFF; --color-bg-inset: #141413;
--color-text-secondary: #A0A0A0;
--color-amber: #F59E0B; /* Text hierarchy (warm whites) */
--color-amber-hover: #D97706; --color-text-primary: #F5F5F0;
--color-amber-light: #FCD34D; --color-text-secondary: #8A8A82;
--color-success: #22C55E; --color-text-tertiary: #5A5A54;
--color-warning: #F59E0B;
--color-error: #EF4444; /* Borders */
--font-sans: 'IBM Plex Sans', system-ui, sans-serif; --color-border-subtle: #2E2E2A;
--color-border-visible: #3D3D38;
/* Accent (amber) */
--color-accent: #D97706;
--color-accent-hover: #B45309;
--color-accent-muted: rgba(217, 119, 6, 0.12);
--color-accent-text: #FBBF24;
/* Status colors (semantic only) */
--color-status-running: #34D399;
--color-status-warning: #EAB308;
--color-status-error: #EF4444;
--color-status-info: #3B82F6;
/* Fonts */
--font-sans: 'Inter', system-ui, sans-serif;
--font-mono: 'IBM Plex Mono', monospace; --font-mono: 'IBM Plex Mono', monospace;
} }
* { @layer base {
* {
margin: 0; margin: 0;
padding: 0; padding: 0;
box-sizing: border-box; box-sizing: border-box;
} }
html, body, #app { html, body, #app {
height: 100%; height: 100%;
width: 100%; width: 100%;
overflow: hidden; overflow: hidden;
} }
body { body {
font-family: var(--font-sans); font-family: var(--font-sans);
background-color: var(--color-background); font-size: 0.8125rem;
line-height: 1.5;
background-color: var(--color-bg-base);
color: var(--color-text-primary); color: var(--color-text-primary);
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
}
input:focus, select:focus, textarea:focus {
border-color: var(--color-accent) !important;
outline: none;
box-shadow: 0 0 0 2px var(--color-accent-muted);
}
} }
/* Custom scrollbar styles */ /* Scrollbar */
::-webkit-scrollbar { ::-webkit-scrollbar {
width: 8px; width: 6px;
height: 8px; height: 6px;
} }
::-webkit-scrollbar-track { ::-webkit-scrollbar-track {
background: var(--color-surface); background: transparent;
} }
::-webkit-scrollbar-thumb { ::-webkit-scrollbar-thumb {
background: var(--color-border); background: var(--color-border-subtle);
border-radius: 4px; border-radius: 3px;
} }
::-webkit-scrollbar-thumb:hover { ::-webkit-scrollbar-thumb:hover {
background: var(--color-text-secondary); background: var(--color-text-tertiary);
}
/* Pulse animation for running timer dot */
@keyframes pulse-dot {
0%, 100% { opacity: 0.6; }
50% { opacity: 1; }
}
.animate-pulse-dot {
animation: pulse-dot 2s ease-in-out infinite;
}
/* Pulse animation for timer seconds */
@keyframes pulse-seconds {
0%, 100% { opacity: 0.85; }
50% { opacity: 1; }
}
.animate-pulse-seconds {
animation: pulse-seconds 1s ease-in-out infinite;
}
/* Modal animations */
@keyframes modal-enter {
from {
opacity: 0;
transform: translateY(-8px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-modal-enter {
animation: modal-enter 200ms ease-out;
}
/* Toast animations */
@keyframes toast-enter {
from {
opacity: 0;
transform: translateY(-20px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
.animate-toast-enter {
animation: toast-enter 200ms ease-out;
}
@keyframes toast-exit {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
.animate-toast-exit {
animation: toast-exit 150ms ease-in forwards;
}
/* Pulse animation for timer colon */
@keyframes pulse-colon {
0%, 100% { opacity: 0.4; }
50% { opacity: 1; }
}
.animate-pulse-colon {
animation: pulse-colon 1s ease-in-out infinite;
} }