Style Guide

Design tokens, components, and patterns for dashboards.

01

Colors

OKLCH for all custom colors. Hex only for Chart.js data series (Canvas API). Click any swatch to copy.

Brand Accents

--color-accent
oklch(0.75 0.17 178)oklch(0.52 0.18 178)
--color-secondary
oklch(0.74 0.18 30)oklch(0.55 0.19 30)
--accent-muted
oklch(... / 0.15)oklch(... / 0.12)
--accent-subtle
oklch(... / 0.08)oklch(... / 0.06)

Backgrounds & Surfaces

Base
--color-bg
Surface
--color-surface
Hover
--color-surface-hover
Raised
--color-surface-raised
Overlay
--color-surface-overlay

Text Hierarchy

--color-text
oklch(0.93 0.01 250)oklch(0.16 0.02 250)
--color-text-secondary
oklch(0.75 0.01 250)oklch(0.35 0.015 250)
--color-text-muted
oklch(0.55 0.015 250)oklch(0.50 0.01 250)
--color-text-disabled
oklch(0.40 0.01 250)oklch(0.68 0.005 250)

Status Colors

--color-success
successsuccess
--color-warning
warningwarning
--color-danger
dangerdanger
--color-info
infoinfo
Completed Pending Overdue In Review Active Archived

Data Series (Chart.js Palette)

#4CC97A#2D8E52
#6BA3FF#3B78D0
#F28878#D04F3D
#D4AD42#A88520
#C688E0#9B55B5
#4BC3CA#2A96A0
#E8D44D#B8A620
#E89B4D#B87620
02

Typography

Inter for all text, JetBrains Mono for data values and code. Fluid sizing via clamp().

Font Specimens

Inter
The quick brown fox jumps
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
JetBrains Mono
$2,847,392.00

Fluid Scale

3XL --text-3xl
2XL --text-2xl
XL --text-xl
LG --text-lg
Base --text-base
SM --text-sm
XS --text-xs

Weight Scale

Regular 400
Medium 500
Semibold 600
Bold 700
Extra Bold 800
03

Spacing

Fluid spacing tokens scale between viewport breakpoints. Bars shown at actual computed size.

--space-xs
clamp(0.25rem, 0.2rem + 0.2vw, 0.5rem)
--space-sm
clamp(0.5rem, 0.4rem + 0.4vw, 0.875rem)
--space-md
clamp(1rem, 0.875rem + 0.5vw, 1.5rem)
--space-lg
clamp(1.5rem, 1.25rem + 1vw, 2.5rem)
--space-xl
clamp(2rem, 1.5rem + 2vw, 4rem)
04

Components

Interactive elements with ripple clicks, stretch toggles, underline focus, and toast notifications.

Buttons

Outline is the preferred selection state. All buttons get ripple on click and lift on hover.

Inputs

Bottom border only. Accent underline grows from center on focus.

Toggle

Stretch toggle — thumb stretches on press

Badges

Completed Pending Overdue In Review
Accent Success Danger

Toasts

Toasts slide from the right. Text colored by type — especially red for danger.

Skeleton Loading

Shimmer animation using surface tokens. Use for any loading state.

05

Data Display

KPIs, charts, and tables. No card wrappers — data lives directly on the surface.

KPI Markers

Total Revenue
$2.4M
Tickets Sold
18,472
Avg. Order
$128
Sell-Through
94.2%

Left-border accent markers — no card wrappers. Each KPI gets a different accent color via nth-child.

Bar Chart

Chart.js 4.4.7. All colors via tok() — hex data series tokens for Canvas compatibility.

Data Table

RegionRevenueGrowthStatus
Northeast$842,500+12.3%Growing
Southeast$621,300+8.1%Growing
Midwest$534,700+2.4%Stable
West Coast$412,800-3.7%Declining
Mountain$289,100+15.2%Emerging

Bare table — no card wrapper. Hover highlights rows. Monospace numbers via font-variant-numeric.

06

Hover Effects

Lift over scale. Move your mouse over each demo to see the effect.

Lift
translateY(-4px)
3D Tilt
perspective + rotateX/Y
Gradient Border
mask-composite trick
Gradient Background
accent → secondary
07

Animations

Click any card to preview the animation. All use ease-out timing.

fadeIn
slideUp
scaleIn
bounceIn
flipIn
shake
pulse
slideLeft
08

Glass & Depth

Frosted glass, neumorphic inset, and three-level shadow elevation.

Frosted Glass

Frosted Panel
backdrop-filter: blur(16px) saturate(1.4). Semi-transparent surface over any background.

Neumorphic Inset

Inset Panel
Inset box-shadow creates a pressed/recessed appearance. Good for input groups.

Shadow Elevation

Shadow SM
Level 1
Shadow MD
Level 2
Shadow LG
Level 3

Three elevation levels. Use sparingly — shadows convey hierarchy, not decoration.

09

Anti-Patterns

What not to do — and what to do instead.

Don't
Use gradient backgrounds — they shift content appearance based on scroll position
Do
Use flat var(--color-bg) + noise grain overlay
Don't
Use large border-radius — puffy, rounded shapes look unprofessional
Do
Sharp edges with border-radius: 0 everywhere
Don't
Use transform: scale() on hover — janky, displaces layout
Do
Use translateY(-2px) lift + shadow increase
Don't
Use gradient text on headers — looks cheap, breaks on some backgrounds
Do
Plain var(--color-text) or var(--color-accent)
Don't
Use purple/blurple secondary colors — generic SaaS look
Do
Coral oklch(0.74 0.18 30) secondary
Don't
Background grids, dots, or decorative patterns
Do
Clean var(--color-bg) — content is the decoration
10

Triumph Color Overrides

Triumph projects swap the accent palette to green/blue. Everything else uses the master system unchanged.

Master
Teal
oklch(0.75 0.17 178)
Coral
oklch(0.74 0.18 30)
Triumph
Green
oklch(0.72 0.19 155)
Blue
oklch(0.69 0.18 255)