style: warm editorial palette, hover elevation, page-load animation
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -106,72 +106,72 @@
|
|||||||
/* ── LIGHT MODE ── */
|
/* ── LIGHT MODE ── */
|
||||||
:root {
|
:root {
|
||||||
/* Surface hierarchy: canvas (page bg) → surface (sidebars, panels) → card (content containers) */
|
/* Surface hierarchy: canvas (page bg) → surface (sidebars, panels) → card (content containers) */
|
||||||
--canvas: #F4F5F7;
|
--canvas: #F3F4F6;
|
||||||
--surface: #FFFFFF;
|
--surface: #FFFFFF;
|
||||||
--surface-secondary: #F8F9FA;
|
--surface-secondary: #F7F8FA;
|
||||||
--card: #FFFFFF;
|
--card: #FFFFFF;
|
||||||
--card-secondary: #F8F9FA;
|
--card-secondary: #F7F8FA;
|
||||||
--card-hover: #F0F1F4;
|
--card-hover: #EDEEF2;
|
||||||
|
|
||||||
/* Borders */
|
/* Borders */
|
||||||
--border: rgba(0,0,0,0.07);
|
--border: rgba(0,0,0,0.06);
|
||||||
--border-strong: rgba(0,0,0,0.12);
|
--border-strong: rgba(0,0,0,0.10);
|
||||||
|
|
||||||
/* Text hierarchy: 1 (headings/names) → 2 (body) → 3 (labels/meta) → 4 (placeholder/disabled) */
|
/* Text hierarchy: 1 (headings/names) → 2 (body) → 3 (labels/meta) → 4 (placeholder/disabled) */
|
||||||
--text-1: #1a1a1f;
|
--text-1: #111118;
|
||||||
--text-2: #4a4a55;
|
--text-2: #3d3d4a;
|
||||||
--text-3: #6b6b76;
|
--text-3: #6b6b78;
|
||||||
--text-4: #b4b4bd;
|
--text-4: #a8a8b3;
|
||||||
|
|
||||||
/* Accent — indigo */
|
/* Accent — deep indigo */
|
||||||
--accent: #4F46E5;
|
--accent: #4338CA;
|
||||||
--accent-bg: #EEF2FF;
|
--accent-bg: #EEF2FF;
|
||||||
--accent-dim: rgba(79,70,229,0.06);
|
--accent-dim: rgba(67,56,202,0.06);
|
||||||
--accent-border: rgba(79,70,229,0.10);
|
--accent-border: rgba(67,56,202,0.12);
|
||||||
--accent-focus: rgba(79,70,229,0.12);
|
--accent-focus: rgba(67,56,202,0.14);
|
||||||
|
|
||||||
/* Semantic: success */
|
/* Semantic: success */
|
||||||
--success: #16A34A;
|
--success: #059669;
|
||||||
--success-bg: #F0FDF4;
|
--success-bg: #ECFDF5;
|
||||||
--success-dim: rgba(34,197,94,0.08);
|
--success-dim: rgba(5,150,105,0.07);
|
||||||
|
|
||||||
/* Semantic: error */
|
/* Semantic: error */
|
||||||
--error: #DC2626;
|
--error: #DC2626;
|
||||||
--error-bg: #FEF2F2;
|
--error-bg: #FEF2F2;
|
||||||
--error-dim: rgba(239,68,68,0.08);
|
--error-dim: rgba(220,38,38,0.06);
|
||||||
|
|
||||||
/* Semantic: warning */
|
/* Semantic: warning */
|
||||||
--warning: #d97706;
|
--warning: #D97706;
|
||||||
--warning-bg: rgba(245,158,11,0.08);
|
--warning-bg: rgba(217,119,6,0.07);
|
||||||
|
|
||||||
/* Overlay */
|
/* Overlay */
|
||||||
--overlay: rgba(0,0,0,0.3);
|
--overlay: rgba(0,0,0,0.25);
|
||||||
--overlay-strong: rgba(0,0,0,0.5);
|
--overlay-strong: rgba(0,0,0,0.45);
|
||||||
--nav-bg: rgba(255,255,255,0.9);
|
--nav-bg: rgba(255,255,255,0.92);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ── DARK MODE ── */
|
/* ── DARK MODE ── */
|
||||||
.dark {
|
.dark {
|
||||||
--canvas: #09090b;
|
--canvas: #0a0a0c;
|
||||||
--surface: #0f0f12;
|
--surface: #111114;
|
||||||
--surface-secondary: #111114;
|
--surface-secondary: #141417;
|
||||||
--card: #161619;
|
--card: #18181c;
|
||||||
--card-secondary: #111114;
|
--card-secondary: #141417;
|
||||||
--card-hover: #1c1c20;
|
--card-hover: #1f1f24;
|
||||||
|
|
||||||
--border: rgba(255,255,255,0.06);
|
--border: rgba(255,255,255,0.07);
|
||||||
--border-strong: rgba(255,255,255,0.1);
|
--border-strong: rgba(255,255,255,0.12);
|
||||||
|
|
||||||
--text-1: #fafafa;
|
--text-1: #f4f4f5;
|
||||||
--text-2: #a1a1aa;
|
--text-2: #a1a1aa;
|
||||||
--text-3: #71717a;
|
--text-3: #71717a;
|
||||||
--text-4: #3f3f46;
|
--text-4: #3f3f46;
|
||||||
|
|
||||||
--accent: #3b82f6;
|
--accent: #6366F1;
|
||||||
--accent-bg: rgba(59,130,246,0.1);
|
--accent-bg: rgba(99,102,241,0.1);
|
||||||
--accent-dim: rgba(59,130,246,0.08);
|
--accent-dim: rgba(99,102,241,0.08);
|
||||||
--accent-border: rgba(59,130,246,0.12);
|
--accent-border: rgba(99,102,241,0.14);
|
||||||
--accent-focus: rgba(59,130,246,0.15);
|
--accent-focus: rgba(99,102,241,0.16);
|
||||||
|
|
||||||
--success: #22c55e;
|
--success: #22c55e;
|
||||||
--success-bg: rgba(34,197,94,0.1);
|
--success-bg: rgba(34,197,94,0.1);
|
||||||
@@ -240,11 +240,13 @@
|
|||||||
color: white;
|
color: white;
|
||||||
border: none;
|
border: none;
|
||||||
font-size: var(--text-sm);
|
font-size: var(--text-sm);
|
||||||
font-weight: 500;
|
font-weight: 600;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
transition: all var(--transition);
|
transition: all 0.2s ease;
|
||||||
|
letter-spacing: 0.01em;
|
||||||
}
|
}
|
||||||
.btn-primary:hover { opacity: 0.9; }
|
.btn-primary:hover { filter: brightness(1.1); transform: translateY(-1px); }
|
||||||
|
.btn-primary:active { transform: translateY(0); }
|
||||||
.btn-primary.full {
|
.btn-primary.full {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: var(--sp-3) var(--sp-4);
|
padding: var(--sp-3) var(--sp-4);
|
||||||
@@ -296,7 +298,7 @@
|
|||||||
outline: none;
|
outline: none;
|
||||||
transition: border-color var(--transition);
|
transition: border-color var(--transition);
|
||||||
}
|
}
|
||||||
.input:focus { border-color: var(--accent); }
|
.input:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--accent-dim); }
|
||||||
.input::placeholder { color: var(--text-4); }
|
.input::placeholder { color: var(--text-4); }
|
||||||
|
|
||||||
/* ── Module (card container) ──
|
/* ── Module (card container) ──
|
||||||
@@ -309,12 +311,18 @@
|
|||||||
border: 1px solid var(--border);
|
border: 1px solid var(--border);
|
||||||
box-shadow: var(--shadow-sm);
|
box-shadow: var(--shadow-sm);
|
||||||
padding: var(--card-pad);
|
padding: var(--card-pad);
|
||||||
transition: box-shadow 0.25s ease, transform 0.25s ease;
|
transition: box-shadow 0.3s ease, transform 0.3s ease;
|
||||||
|
}
|
||||||
|
.module:hover {
|
||||||
|
box-shadow: var(--shadow-md);
|
||||||
}
|
}
|
||||||
.module.primary {
|
.module.primary {
|
||||||
padding: var(--card-pad-primary);
|
padding: var(--card-pad-primary);
|
||||||
box-shadow: var(--shadow-md);
|
box-shadow: var(--shadow-md);
|
||||||
}
|
}
|
||||||
|
.module.primary:hover {
|
||||||
|
box-shadow: var(--shadow-lg);
|
||||||
|
}
|
||||||
.module.flush { padding: 0; }
|
.module.flush { padding: 0; }
|
||||||
|
|
||||||
.module-header {
|
.module-header {
|
||||||
@@ -351,6 +359,10 @@
|
|||||||
gap: var(--inner-gap);
|
gap: var(--inner-gap);
|
||||||
padding: var(--row-pad-y) var(--row-pad-x);
|
padding: var(--row-pad-y) var(--row-pad-x);
|
||||||
transition: background 0.15s ease;
|
transition: background 0.15s ease;
|
||||||
|
border-radius: var(--radius-sm);
|
||||||
|
margin: 0 calc(-1 * var(--sp-1));
|
||||||
|
padding-left: calc(var(--row-pad-x) + var(--sp-1));
|
||||||
|
padding-right: calc(var(--row-pad-x) + var(--sp-1));
|
||||||
}
|
}
|
||||||
.data-row:hover { background: var(--card-hover); }
|
.data-row:hover { background: var(--card-hover); }
|
||||||
.data-row + .data-row { border-top: 1px solid var(--border); }
|
.data-row + .data-row { border-top: 1px solid var(--border); }
|
||||||
@@ -418,7 +430,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* ── Page wrapper ── */
|
/* ── Page wrapper ── */
|
||||||
.page { padding: var(--sp-8) 0 var(--sp-20); }
|
.page {
|
||||||
|
padding: var(--sp-8) 0 var(--sp-20);
|
||||||
|
animation: pageIn 0.4s ease both;
|
||||||
|
}
|
||||||
|
@keyframes pageIn {
|
||||||
|
from { opacity: 0; transform: translateY(6px); }
|
||||||
|
to { opacity: 1; transform: translateY(0); }
|
||||||
|
}
|
||||||
.page-header { margin-bottom: var(--section-gap); }
|
.page-header { margin-bottom: var(--section-gap); }
|
||||||
.page-title {
|
.page-title {
|
||||||
font-size: var(--text-xl);
|
font-size: var(--text-xl);
|
||||||
|
|||||||
Reference in New Issue
Block a user