Overview
Ordered from tokens → primitives → patterns → stress tests. Every block is live production markup.
Use the controls above to toggle theme, shuffle the playground, seed/preset layouts, copy tokens, or show the baseline grid.
Layout Playground
Shuffle/preset/seed playground used by the layout controls to verify dense grid behaviors.
Shuffle or apply presets to see grid density changes; seed locks deterministic order.
Color Tokens
All colors are WCAG 2.2 AA+ compliant with tested contrast ratios.
Primary Palette
--color-primary-50
--color-primary-100
--color-primary-150
--color-primary-200
--color-primary-250
--color-primary-300
--color-primary-350
--color-primary-400
--color-primary-450
--color-primary-500
--color-primary-550
--color-primary-600
--color-primary-650
--color-primary-700
--color-primary-750
--color-primary-800
--color-primary-850
--color-primary-900
--color-primary-950
Secondary Palette
--color-secondary-50
--color-secondary-100
--color-secondary-150
--color-secondary-200
--color-secondary-250
--color-secondary-300
--color-secondary-350
--color-secondary-400
--color-secondary-450
--color-secondary-500
--color-secondary-550
--color-secondary-600
--color-secondary-650
--color-secondary-700
--color-secondary-750
--color-secondary-800
--color-secondary-850
--color-secondary-900
--color-secondary-950
Semantic Colors
--color-success
WCAG AA compliant--color-warning
WCAG AA compliant--color-error
WCAG AA compliant--color-info
WCAG AA compliantNeutral Colors
--color-white
--color-black
--color-gray-50
--color-gray-100
--color-gray-200
--color-gray-300
--color-gray-400
--color-gray-500
--color-gray-600
--color-gray-700
--color-gray-800
--color-gray-900
Text Colors
--color-text-primary
--color-text-secondary
--color-text-muted
--color-text-inverse
Link Colors
--color-link
--color-link-hover
--color-link-visited
Background Colors
--color-bg-primary
--color-bg-secondary
--color-bg-tertiary
Border Colors
--color-border
--color-border-hover
--color-border-focus
Typography
Fluid typography using clamp() for responsive scaling.
Camera specs example: f/1.2 → f/11 to demonstrate glyph replacements.
Font Families
Sans Serif: The quick brown fox jumps over the lazy dog
--font-sansSerif: The quick brown fox jumps over the lazy dog
--font-serifMonospace: The quick brown fox jumps over the lazy dog
--font-monoType Scale
XS
--text-xs
SM
--text-sm
BASE
--text-base
LG
--text-lg
XL
--text-xl
2XL
--text-2xl
3XL
--text-3xl
4XL
--text-4xl
5XL
--text-5xl
Font Weights
Thin
--font-thin
Light
--font-light
Normal
--font-normal
Medium
--font-medium
Semibold
--font-semibold
Bold
--font-bold
Extrabold
--font-extrabold
Black
--font-black
Line Heights
None: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
--leading-none
Tight: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
--leading-tight
Snug: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
--leading-snug
Normal: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
--leading-normal
Relaxed: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
--leading-relaxed
Loose: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
--leading-loose
Heading Examples
Heading 1: The quick brown fox
Heading 2: The quick brown fox
Heading 3: The quick brown fox
Heading 4: The quick brown fox
Heading 5: The quick brown fox
Heading 6: The quick brown fox
Spacing Scale
Consistent spacing scale based on rem units.
Base Scale
--space-0
--space-0-5
--space-1
--space-1-5
--space-2
--space-2-5
--space-3
--space-3-5
--space-4
--space-5
--space-6
--space-7
--space-8
--space-9
--space-10
--space-12
--space-16
--space-20
--space-24
--space-32
--space-40
--space-48
--space-64
--space-80
--space-96
Semantic Spacing
--space-xs
--space-sm
--space-md
--space-lg
--space-xl
--space-2xl
--space-3xl
--space-4xl
--space-5xl
Semantic Scales
Swappable mathematical progressions for sizing, radius, and duration. Apply .scale-fib or .scale-phi to any container to change the underlying values.
Size Progression Comparison
The same semantic tokens (--size-xs → --size-xl) resolve to different values based on the active progression. Now supporting 8 mathematical progressions:
Linear
Predictable: 8, 12, 16, 24, 32px
Fibonacci
Natural: 8, 13, 21, 34, 55px
Golden Ratio (φ)
Dramatic: 6, 10, 16, 26, 42px
Modular (1.25×)
Major third: 10, 12, 16, 20, 25px
Perfect Fourth (1.333×)
Musical: 9, 12, 16, 21, 28px
Augmented Fourth (1.414×)
Tritone: 8, 11, 16, 22, 32px
Minor Second (1.067×)
Subtle: 14, 15, 16, 17, 18px
Major Second (1.125×)
Gentle: 13, 14, 16, 18, 20px
Radius Progression
Linear
Fibonacci
Golden Ratio (φ)
Modular (1.25×)
Perfect Fourth (1.333×)
Augmented Fourth (1.414×)
Minor Second (1.067×)
Major Second (1.125×)
Usage
/* Default: linear progression */
.card { padding: var(--size-md); border-radius: var(--radius-lg); }
/* Switch entire site to Fibonacci */
html { @extend .scale-fib; }
/* Or: */
<html class="scale-fib">
/* Switch a single component */
.hero.scale-phi { /* φ-based sizing within hero only */ }
/* Data attribute alternative */
<div data-scale="fib">...</div>Usage
/* Default: linear progression */
Visited
Portfolio · visited

