Design System
The design system behind this portfolio. Color tokens and typography are defined as CSS custom properties and composition classes in globals.css. Layout, spacing, and responsive behavior use Tailwind v3 utility classes. Toggle the theme to see both modes.
Color Tokens
Defined as CSS custom properties in globals.css with light and dark values. Mapped to Tailwind via tailwind.config.js so utilities like text-fg and bg-surface resolve to the active theme.
Three-layer layout
Typography
Composition classes defined in @layer components in globals.css. Display sizes use fluid clamp() for smooth scaling across viewports. Body sizes step at the md breakpoint (16px to 20px).
Display 2XL
The quick brown fox
Display XL
The quick brown fox
Display LG
The quick brown fox
Display MD
The quick brown fox
Display SM
The quick brown fox
Body
The quick brown fox
Label
UPPERCASE LABEL TEXT
Link
Inline link style
Badge
The quick brown fox
Meta
Font families
Aa
Aa
Aa
Spacing
4px base grid using the standard Tailwind numeric scale. All spacing in markup uses Tailwind utility classes (gap-4, p-6, mb-8, etc.) rather than custom tokens.
4px t-1 8px t-2 12px t-3 16px t-4 24px t-6 32px t-8 48px t-12 64px t-16 96px t-24 Components
Astro components in src/components/ui/. Styled with Tailwind utilities and design tokens. No client-side JavaScript shipped for any component.
Button
Badge
Card
Card with shadow
Surface background with section shadow for depth.
Media card
Tinted container for images and video.
Animations
CSS only. No JS animation libraries. Respects prefers-reduced-motion.
Scroll reveal
data-animate (fade + translateY) and data-animate-y (translateY only, VoiceOver safe for headings).
Theme transition
All color properties transition over 300ms. Toggle the theme to see it.