Theming

The design system is defined entirely with CSS variables. Override a variable and every component follows.

Conventions

Tokens follow the background / foreground convention: --primary is the surface color and --primary-foreground is the text color used on it. Tokens are mapped into Tailwind, so utilities like bg-primary, text-muted-foreground and border-input are available everywhere.

Color tokens

TokenSwatchUsed for
--backgroundPage surfaces and inputs
--foregroundPrimary text color
--cardCard surfaces
--card-foregroundText on cards
--popoverPopovers, menus, dialogs
--popover-foregroundText in popovers
--primaryPrimary actions
--primary-foregroundText on primary
--secondarySecondary actions
--secondary-foregroundText on secondary
--mutedMuted surfaces
--muted-foregroundMuted text
--accentHover/active surfaces
--accent-foregroundText on accent
--destructiveDestructive actions
--destructive-foregroundDestructive text
--successSuccess states
--success-foregroundSuccess text
--warningWarning states
--warning-foregroundWarning text
--infoInformational states
--info-foregroundInformational text
--borderDefault borders
--inputInput borders
--ringFocus rings
--brandCountry Club gold
--sidebarSidebar background
--sidebar-foregroundSidebar text
--sidebar-primarySidebar active items
--sidebar-accentSidebar hover surfaces
--chart-1Chart series 1
--chart-2Chart series 2
--chart-3Chart series 3
--chart-4Chart series 4
--chart-5Chart series 5

Radius

All radii derive from a single --radius token (0.625rem). The scale spans rounded-xs through rounded-4xl.

:root {
  --radius: 0.625rem; /* change once, every component follows */
}

Typography

Body text uses DM Sans. Headline sizes (text-xl and above) automatically switch to Fraunces, the serif display face — add font-sans to opt out per element.

A serif headline

A sans headline (font-sans)

Body text set in DM Sans.

Overriding tokens

/* your-app.css — after importing the kit styles */
:root,
[data-theme="light"] {
  --brand: #2f6b4f; /* a greener club */
}

[data-theme="dark"] {
  --brand: #5aad6b;
}