feat: overhaul design tokens — charcoal palette + amber accent
This commit is contained in:
@@ -1,57 +1,158 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
@theme {
|
||||
--color-background: #0F0F0F;
|
||||
--color-surface: #1A1A1A;
|
||||
--color-surface-elevated: #242424;
|
||||
--color-border: #2E2E2E;
|
||||
--color-text-primary: #FFFFFF;
|
||||
--color-text-secondary: #A0A0A0;
|
||||
--color-amber: #F59E0B;
|
||||
--color-amber-hover: #D97706;
|
||||
--color-amber-light: #FCD34D;
|
||||
--color-success: #22C55E;
|
||||
--color-warning: #F59E0B;
|
||||
--color-error: #EF4444;
|
||||
--font-sans: 'IBM Plex Sans', system-ui, sans-serif;
|
||||
/* Background layers */
|
||||
--color-bg-base: #1A1A18;
|
||||
--color-bg-surface: #222220;
|
||||
--color-bg-elevated: #2C2C28;
|
||||
--color-bg-inset: #141413;
|
||||
|
||||
/* Text hierarchy (warm whites) */
|
||||
--color-text-primary: #F5F5F0;
|
||||
--color-text-secondary: #8A8A82;
|
||||
--color-text-tertiary: #5A5A54;
|
||||
|
||||
/* Borders */
|
||||
--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;
|
||||
}
|
||||
|
||||
* {
|
||||
@layer base {
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
|
||||
html, body, #app {
|
||||
html, body, #app {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
body {
|
||||
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);
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-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 {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
background: var(--color-surface);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: var(--color-border);
|
||||
border-radius: 4px;
|
||||
background: var(--color-border-subtle);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
::-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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user