Foundations

Colors, type, icons, spacing, shadows, and the brand marks that every component inherits from. Tokens follow the shadcn/ui naming contract so any community component drops in unmodified.

Colors

Two brand palettes, one semantic layer.

Forest (the dark green) and Lime (the contrast accent) are the two BTNG colours. Every component reads semantic tokens — background, foreground, primary, accent, border — which remap automatically between light and dark modes.

Brand

A single monochrome green ramp. Every background, text, and border in the system is drawn from this scale. In light mode --primary is 950; in dark it flips to 400 so the button pops against the near-black background.

50
100
200
300
400
500
600
700
800
900
950

Lime

The full Tailwind Lime palette, for contrast-banging CTAs and their hover tints. --accent is bound to --lime-300 in both modes.

50
100
200
300
400
500
600
700
800
900
950

Semantic tokens

What every component reads. Toggle light/dark in the header to watch them remap.

Surface

backgroundPage background
cardCards, elevated surfaces
popoverFloating content
mutedInset, hover states
secondarySubdued button fill

Action

primaryForest — main action
accentLime — contrast CTAs
destructiveDelete, cancel

Text

foregroundBody copy, headings
muted-foregroundSupporting copy
primary-foregroundText on primary
accent-foregroundText on accent

Border

borderInputs, cards
inputForm inputs
ringFocus rings
Typography

Display and Text, Geist Variable throughout.

Display (72 → 24) handles marketing headlines with -2% letter-spacing on the four largest steps; Text (20 → 12) handles body and UI. One font family. Weight is 400 for UI, bold restored inside .prose.

Display

tight tracking on 72/60/48/36
text-display-2xl72 / 90 · -2%Hero display
text-display-xl60 / 72 · -2%Extra-large marketing
text-display-lg48 / 60 · -2%Large marketing
text-display-md36 / 44 · -2%Page titles
text-display-sm30 / 38 · 0Section openers
text-display-xs24 / 32 · 0Card titles

Text

text-xl20 / 30The quick brown fox — Lead paragraph
text-lg18 / 28The quick brown fox — Prose body
text-base16 / 24The quick brown fox — UI body
text-sm14 / 20The quick brown fox — Labels, captions
text-xs12 / 18The quick brown fox — Metadata, badges
Icons

Phosphor Icons, regular weight unless state says otherwise.

Render at size-4 for inline UI, size-5 for touch targets, size-6 for primary actions. Reserve weight='fill' for selected or active state.

ShoppingBag
Heart
MagnifyingGlass
Bell
User
Star
Check
X
Plus
Minus
Truck
Package
Tag
CreditCard
GearSix
ArrowRight
CaretRight

Weights

thin
light
regular
bold
fill
duotone
Grids & Spacing

Four-pixel base, Tailwind defaults.

Standard Tailwind spacing — no custom tokens. One density per page: comfortable (gap-6 / p-6) for marketing, compact (gap-4 / p-4) for product UI.

w-14px
w-28px
w-312px
w-416px
w-624px
w-832px
w-1248px
w-1664px
w-2496px

Radii

The base --radius is 4px. shadcn's calc ladder derives the rest.

rounded-xs2px — buttons, inputs
rounded-sm3px — badges, small cards
rounded-md3.5px — default
rounded-lg4px — cards
rounded-xl6px — dialogs
Shadows & Blurs

Standard Tailwind elevation.

shadow-xs through shadow-2xl. Never stack more than two shadows on a single surface. Buttons combine their own inset with a whisper of outer drop.

shadow-xs

Idle interactive surfaces

shadow-sm

Hovered cards

shadow-md

Dropdowns, popovers

shadow-lg

Floating panels

shadow-xl

Dialogs

shadow-2xl

Heavy overlays

shadow-3xl

Marketing hero elevation

Backdrop blurs

Four native Tailwind backdrop-blur-* utilities. Each tile shows the named radius applied over the same colour field.

backdrop-blur-sm8px · Sticky navs
backdrop-blur-md16px · Floating toolbars
backdrop-blur-lg24px · Side panels
backdrop-blur-xl40px · Full-screen overlays
Logos

One wordmark, one mark, both theme-aware.

The wordmark uses fill=currentColor so it tracks the surrounding text token. The square mark is a fixed-colour asset served from Next.js app/icon.svg for favicons.

Wordmark

fill=currentColor, tracks --foreground.

Square mark
BTNG square mark

Served as app/icon.svg and app/apple-icon.png. Fixed colour for favicons.