design-tokens

Single source of truth for brand color palettes across product & landing repos. Pick a palette, generate a theme for your stack.

@gitconnections/[email protected]11 palettes12 type presets11 image moods63 UI icons (3 sets)sections 01–11WCAG AA verifiedOKLCH · Tailwind v40 deps
How to use →
How to use →

Live Preview — switch palette above to re-theme

Corporate Dark · Light

Ship beautiful products faster

Design tokens that scale across web, mobile, and brand. One source of truth, infinite themes.

Start for free See demo
Performance New

Token-powered theming with zero runtime cost. OKLCH gamut, WCAG AA verified.

Multi-platform Stable

Web (Tailwind v4), Android Compose, raw JSON. One palette, every target.

Subscribe

Join
⚠️

Demo alert using --destructive token

01How it works

Source of trutheach palette is a palettes/<name>.json file with OKLCH tokens (Tailwind v4 / shadcn) for light + dark.
Generate, don't copythe apply-palette CLI reads a palette and emits a theme for your chosen target. Edit the JSON, re-run — never hand-edit generated files.
Integrated with new-repo bootstrapops/runbooks/new-repo-bootstrap.md step 2b calls apply-palette to seed a new landing's globals.css.

02CLI options

commandwhat it does
apply-paletteInteractive picker — lists palettes with truecolor swatches, then prompts for target & output path.
apply-palette listList all palettes with mood + key hex swatches.
apply-palette show <name>Print a palette's full token set.
apply-palette <name> --target <web|android|json> --out <path>Non-interactive: generate & write the theme. Idempotent (reports unchanged on no-op).

03Targets

web

Tailwind v4 / shadcn globals.css:root + .dark with every oklch() token (incl. success/warning/info) + charts, plus an @theme inline color map.

--target web --out app/globals.css

android

Jetpack Compose Color.kt + Theme.kt (Material 3 ColorScheme, light/dark). --out is a directory.

--target android --out .../ui/theme/

json

Raw token JSON for any other consumer (CSS-in-JS, SwiftUI, custom pipelines).

--target json --out design-tokens.json

04Palettes (11)

05Typography (12 presets)

Font pairing presets for headings, body, and monospace. Apply via apply-typography. Live samples rendered in each preset's actual fonts.

Shared type scale

xs0.75remSample
sm0.875remSample
base1remSample
lg1.125remSample
xl1.25remSample
2xl1.5remSample
3xl1.875remSample
4xl2.25remSample
5xl3remSample
6xl3.75remSample
7xl4.5remSample

06Images (11 moods)

Curated Unsplash image sets per mood and role. Download locally via assets apply <mood>. Thumbnails below are Unsplash previews.

corporate-dark

Hero Background
Photo by allPhoto Bangkok on Unsplash
allPhoto Bangkok
Photo by Road Trip with Raj on Unsplash
Road Trip with Raj
Card
Photo by Samuel Scalzo on Unsplash
Samuel Scalzo
Photo by Anthony Fomin on Unsplash
Anthony Fomin
Section Background
Photo by Codioful (Formerly Gradienta) on Unsplash
Codioful (Formerly Gradienta)
Photo by Pawel Czerwinski on Unsplash
Pawel Czerwinski

fresh-green

Hero Background
Photo by Bernardo Lorena Ponte on Unsplash
Bernardo Lorena Ponte
Photo by Rodion Kutsaiev on Unsplash
Rodion Kutsaiev
Card
Photo by Josefin on Unsplash
Josefin
Photo by Bozhin Karaivanov on Unsplash
Bozhin Karaivanov
Section Background
Photo by Runze Shi on Unsplash
Runze Shi
Photo by Oliver Guhr on Unsplash
Oliver Guhr

luxury-gold

Hero Background
Photo by Katie Harp on Unsplash
Katie Harp
Photo by Katie Harp on Unsplash
Katie Harp
Card
Photo by Olga Thelavart on Unsplash
Olga Thelavart
Photo by Katie Harp on Unsplash
Katie Harp
Section Background
Photo by Rick Rothenberg on Unsplash
Rick Rothenberg
Photo by Katie Harp on Unsplash
Katie Harp

minimal-light

Hero Background
Photo by Joel Filipe on Unsplash
Joel Filipe
Photo by Lim Wu on Unsplash
Lim Wu
Card
Photo by NordWood Themes on Unsplash
NordWood Themes
Photo by Ev on Unsplash
Ev
Section Background
Photo by Iklas on Unsplash
Iklas
Photo by Iklas on Unsplash
Iklas

monochrome

Hero Background
Photo by Redd Francisco on Unsplash
Redd Francisco
Photo by Rufat Mammadov on Unsplash
Rufat Mammadov
Card
Photo by Esther Jiao on Unsplash
Esther Jiao
Photo by Flow Clark on Unsplash
Flow Clark
Section Background
Photo by Mockaroon on Unsplash
Mockaroon
Photo by Peter Gargiulo on Unsplash
Peter Gargiulo

neutral-slate

Hero Background
Photo by Rubén García on Unsplash
Rubén García
Photo by Bhavya Kashyap on Unsplash
Bhavya Kashyap
Card
Photo by Martin Adams on Unsplash
Martin Adams
Photo by Luis de Leon on Unsplash
Luis de Leon
Section Background
Photo by Pascal Meier on Unsplash
Pascal Meier
Photo by Frederico Machado on Unsplash
Frederico Machado

ocean-blue

Hero Background
Photo by Hamdhulla Shakeeb on Unsplash
Hamdhulla Shakeeb
Photo by Michael Olsen on Unsplash
Michael Olsen
Card
Photo by Nattu Adnan on Unsplash
Nattu Adnan
Photo by Nattu Adnan on Unsplash
Nattu Adnan
Section Background
Photo by Thomas Vimare on Unsplash
Thomas Vimare
Photo by manu schwendener on Unsplash
manu schwendener

sunset-coral

Hero Background
Photo by Lucas George Wendt on Unsplash
Lucas George Wendt
Photo by Sylvain Cleymans on Unsplash
Sylvain Cleymans
Card
Photo by Veerle Contant on Unsplash
Veerle Contant
Photo by Wolfgang Hasselmann on Unsplash
Wolfgang Hasselmann
Section Background
Photo by Luke Chesser on Unsplash
Luke Chesser
Photo by Chris Appano on Unsplash
Chris Appano

tech-neon

Hero Background
Photo by Hiep Duong on Unsplash
Hiep Duong
Photo by Daniam Chou on Unsplash
Daniam Chou
Card
Photo by Madeline Lickteig on Unsplash
Madeline Lickteig
Photo by Ash Edmonds on Unsplash
Ash Edmonds
Section Background
Photo by Pawel Czerwinski on Unsplash
Pawel Czerwinski
Photo by Daniel Falcão on Unsplash
Daniel Falcão

vibrant-saas

Hero Background
Photo by Luke Chesser on Unsplash
Luke Chesser
Photo by Oliver Guhr on Unsplash
Oliver Guhr
Card
Photo by Luke Chesser on Unsplash
Luke Chesser
Photo by Sincerely Media on Unsplash
Sincerely Media
Section Background
Photo by Pawel Czerwinski on Unsplash
Pawel Czerwinski
Photo by Maxim Berg on Unsplash
Maxim Berg

warm-editorial

Hero Background
Photo by iam_os on Unsplash
iam_os
Photo by Mike Von on Unsplash
Mike Von
Card
Photo by Jez Timms on Unsplash
Jez Timms
Photo by Donald Giannatti on Unsplash
Donald Giannatti
Section Background
Photo by Plufow Le Studio on Unsplash
Plufow Le Studio
Photo by Kim R-K on Unsplash
Kim R-K

07Icons (63 UI across 3 sets · 8 brand)

Icon size scale

xs 16px
sm 20px
md 24px
lg 32px
xl 40px

UI icon set comparison 3 sets · same 21 concepts

All icons render in currentColor — they inherit the page text color. Use --icon-size-* tokens for sizing. Choose one set as your project default; swap by changing the import path.

Iconoir is the project default icon set. Phosphor & Solar are available alternatives — swap by changing your import path.

Iconoir Default

Clean outline strokes

MIT / free
arrow-right
bell
calendar
check
close
download
edit
eye
heart
home
lock
mail
menu
moon
plus
search
settings
star
sun
trash
user

Phosphor

Dual-tone depth

MIT / free
arrow-right
bell
calendar
check
close
download
edit
eye
heart
home
lock
mail
menu
moon
plus
search
settings
star
sun
trash
user

Solar

Bold dual-tone fills

MIT / free
arrow-right
bell
calendar
check
close
download
edit
eye
heart
home
lock
mail
menu
moon
plus
search
settings
star
sun
trash
user

Brand logos

cloudflare
github
kotlin
nestjs
next
React Logo react
tailwind
typescript

Background patterns

Tileable SVGs using currentColor. Use as CSS background-image or inline img.

chevron
circles
circuit
concentric-circles
crosshatch
dashes
diagonal-lines
diagonal-stripes
dot-grid
dots-large
graph-paper
hexagons
isometric
line-grid
noise
plus-signs
scales
squares
topographic
triangles
waves
zigzag

08Foundation (layout · effects · interaction · gradients · animations)

Z-index scale

TokenValue
--z-hide-1
--z-base0
--z-dropdown1000
--z-sticky1100
--z-banner1200
--z-overlay1300
--z-modal1400
--z-popover1500
--z-skipLink1600
--z-toast1700
--z-tooltip1800

Breakpoints

TokenValue
--breakpoint-sm640px
--breakpoint-md768px
--breakpoint-lg1024px
--breakpoint-xl1280px
--breakpoint-2xl1536px

Container widths

TokenValue
--container-sm640px
--container-md768px
--container-lg1024px
--container-xl1280px
--container-2xl1536px

Aspect ratios

1 / 1
--aspect-square
16 / 9
--aspect-video
3 / 4
--aspect-portrait
21 / 9
--aspect-wide

Opacity scale

0
0
5
0.05
10
0.1
20
0.2
40
0.4
60
0.6
80
0.8
100
1

Blur scale

Each box is a gradient with CSS filter:blur() applied at the token value.

--blur-none
0
--blur-sm
4px
--blur-md
8px
--blur-lg
12px
--blur-xl
24px

Focus ring

Outline: var(--focus-ring-width) solid var(--ring) — offset: var(--focus-ring-offset)

Gradient vars (ocean-blue palette)

--gradient-brand
--gradient-subtle
--gradient-hero
--gradient-mesh

State-layer opacities

TokenValuePreview
--state-hover0.08
--state-press0.12
--state-disabled0.5
--state-dragged0.16

Animations css/animations.css

Utility classes using --duration-base and --ease-out. Full prefers-reduced-motion suppression included.

.animate-fade-in
.animate-slide-up
.animate-scale-in
.animate-pulse
.animate-spin

All animations are suppressed when prefers-reduced-motion: reduce is set.

09States & Recipes (skeleton · spinner · empty · error · success · interaction)

Live demos using css/recipes.css. All states use only CSS custom properties — they respond to any palette. Reduced-motion is respected throughout.

Loading — skeleton + spinner

Card skeleton

Spinner variants

1rem (default)
1.5rem
Classes used
.skeleton { background:var(--muted); }
.skeleton::after { shimmer animation overlay }
.skeleton-text:last-child { width:60% }
.skeleton-circle { border-radius:50% }
.spinner { border-top-color:var(--primary) }
Empty state

No results yet

Try a different search term or create a new entry to get started.

Error state

Something went wrong

We couldn't complete your request. Please check your connection and try again.

Success state
Saved! Your changes have been saved successfully.
Interaction states — same button, different states
default
:hover sim
:active sim
:focus-visible sim
.is-disabled

Live interactive button — click and use keyboard Tab/Enter:

Import order: <palette>.cssbase.cssanimations.cssrecipes.css. See packages/tokens/RECIPES.md for full copy-paste examples.

01 Palettes02 Type07 Icons08 Foundation09 States10 Components11 Charts

10UI Component Catalog

All components use --lp-* tokens — switch the palette above to re-theme everything instantly.

Buttons

Form Controls

Invalid email address

Badges / Chips

Primary Secondary Muted Success Warning Info Destructive

Alerts

Info

This is an informational message for the user.

Success

Your changes have been saved successfully.

Warning

This action cannot be undone. Proceed with caution.

Error

Something went wrong. Please try again later.

Tabs

Overview content — a brief summary of this item's key properties and status.

Tooltip

This is a tooltip!

Progress

Upload progress70%
Loading…

Avatars

OC
AB
CD
EF

Card Variants

Plain Card

A simple card with title and body text. Used for basic content grouping.

Image Card

Card with a color-block image placeholder.

Action Card

Card with footer action buttons for primary interactions.

Table

Name Status Role Amount
Alice Brown Active Admin $4,200
Bob Chen Pending Editor $1,850
Clara Diaz Inactive Viewer $720

Pagination & Breadcrumb

Home Products Details

Stat / KPI Cards

Revenue

$48,200

▲ +12%

Users

1,840

▲ +5%

Conversion

3.2%

▼ -0.4%

Pricing Card

Pro Popular

$49/mo

  • Unlimited projects
  • Priority support
  • Custom domains
  • Analytics dashboard
01 Palettes02 Type07 Icons10 Components11 Charts

11Chart Color Tokens

Chart colors come from each palette's chart-1..5 tokens — switch the palette above to re-theme all charts.

Bar Chart — Weekly Activity

0255075100 MonTueWedThuFriSatSun

Area Chart — Monthly Trends

0255075100 JanFebMarAprMayJun
Series ASeries BSeries C

Donut Chart — Distribution

Alpha 28%
Beta 22%
Gamma 20%
Delta 18%
Epsilon 12%

Sparkline in KPI Card

Revenue

$12,450

▲ +8.3%