feat(ui): add timeline component; complete terminal-noir design system

- introduce Timeline component with scroll-in animation and type-colored
  spine dots (career/edu/cert/project/homelab)
- swap terminal-noir palette for macOS Classic dark/light with matching
  timeline color tokens in globals.css
- add light mode overrides, cursor blink keyframe, font-size 14px base
- update Widget header: prefix/name split, bracket badge, no divider rule
- align archive and homelab page headers to ❯ prompt style
- convert all font-sans prose in homelab/archive to font-mono
- rename widget titles to namespaced paths (homelab/network, etc.)
- skills label: uppercase tracking → plain text-sm; remove row borders
This commit is contained in:
lerko96
2026-04-16 18:03:33 -04:00
parent 6d0b4e29d8
commit c36cc94437
6 changed files with 158 additions and 64 deletions

View File

@@ -3,17 +3,24 @@
@variant dark (&:where(.dark, .dark *));
@theme {
/* Terminal-Noir palette */
--color-bg: #0a0a0a;
--color-surface: #111111;
--color-surface-raised: #1a1a1a;
--color-border: #2a2a2a;
--color-border-bright: #444444;
--color-text: #e8e8e8;
--color-text-label: #666666;
--color-text-dim: #444444;
--color-accent-green: #00cc44;
--color-accent-red: #cc2200;
/* macOS Classic Dark (default) */
--color-bg: #131313;
--color-surface: #1e1d1e;
--color-surface-raised: #272727;
--color-border: #3a3a3a;
--color-border-bright: #404040;
--color-text: #caccca;
--color-text-label: #9e9e9e;
--color-text-dim: #8f8f8f;
--color-accent-green: #62ba46;
--color-accent-red: #c74028;
/* Timeline type colors — dark */
--color-timeline-career: #62ba46;
--color-timeline-education: #c28b12;
--color-timeline-cert: #c75828;
--color-timeline-project: #c72855;
--color-timeline-homelab: #e1d797;
/* Typography */
--font-mono: "Source Code Pro", ui-monospace, monospace;
@@ -34,11 +41,15 @@
/* Base */
html {
scroll-behavior: smooth;
font-size: 14px;
background-color: var(--color-bg);
color: var(--color-text);
font-family: var(--font-mono);
}
@keyframes blink { 50% { opacity: 0; } }
.animate-cursor { animation: blink 1s step-start infinite; }
@layer base {
* {
box-sizing: border-box;
@@ -47,6 +58,26 @@ html {
}
}
/* macOS Classic Light overrides */
:root:not(.dark) {
--color-bg: #ffffff;
--color-surface: #f9f9f9;
--color-surface-raised: #f7f7f7;
--color-border: #e0e0e0;
--color-border-bright: #d2d2d2;
--color-text: #000000;
--color-text-label: #505050;
--color-text-dim: #929292;
--color-accent-green: #036a07;
--color-accent-red: #d21f07;
--color-timeline-career: #036a07;
--color-timeline-education: #0433ff;
--color-timeline-cert: #957931;
--color-timeline-project: #6f42c1;
--color-timeline-homelab: #0000a2;
}
/* Default transitions — linear, fast */
a,
button {