CSS Variables Reference
Every overridable CSS custom property in Kiso, organized by category.
Kiso defines semantic CSS custom properties that components resolve through. Override any of them in your Tailwind stylesheet to customize the framework without touching component code.
@import "tailwindcss";
@import "../builds/tailwind/kiso";
@theme {
--color-primary: var(--color-violet-600);
--color-primary-foreground: var(--color-white);
--kiso-radius: 0.375rem;
}
Structural
Framework-level layout and geometry tokens. Defined in engine.css.
| Variable | Default | Purpose |
|---|---|---|
--kiso-radius |
0.25rem |
Base radius unit (scales the entire border-radius system) |
--kiso-container |
80rem |
Max content width for Container component |
Radius Scale
Computed from --kiso-radius using multipliers. Changing the base shifts
every rounded-* utility proportionally. At the default 0.25rem, values
match Tailwind’s built-in defaults.
| Variable | Multiplier | Default | Tailwind utility |
|---|---|---|---|
--radius-xs |
× 0.5 | 0.125rem |
rounded-xs |
--radius-sm |
× 1 | 0.25rem |
rounded-sm |
--radius-md |
× 1.5 | 0.375rem |
rounded-md |
--radius-lg |
× 2 | 0.5rem |
rounded-lg |
--radius-xl |
× 3 | 0.75rem |
rounded-xl |
--radius-2xl |
× 4 | 1rem |
rounded-2xl |
--radius-3xl |
× 6 | 1.5rem |
rounded-3xl |
--radius-4xl |
× 8 | 2rem |
rounded-4xl |
@theme {
--kiso-radius: 0.375rem; /* rounder — 1.5× default */
--kiso-radius: 0; /* sharp — no rounding */
}
Typography
Font family tokens. Defined in engine.css.
| Variable | Default | Purpose |
|---|---|---|
--font-sans |
Geist, system stack | Default sans-serif font |
--font-mono |
Geist Mono, monospace stack | Monospace font |
@theme inline {
--font-sans: "Inter", ui-sans-serif, system-ui, sans-serif;
}
Semantic Colors
Purpose-named color tokens that flip automatically in dark mode. Components
use bg-primary, text-foreground, etc. — never raw palette shades.
Brand Colors
Each has a -foreground companion for accessible text on that background.
| Token | Light | Dark | Purpose |
|---|---|---|---|
--color-primary |
rose-500 | rose-400 | Primary actions, brand |
--color-primary-foreground |
white | zinc-950 | Text on primary |
--color-secondary |
teal-600 | teal-400 | Secondary actions |
--color-secondary-foreground |
white | zinc-950 | Text on secondary |
--color-success |
green-600 | green-400 | Positive feedback |
--color-success-foreground |
white | zinc-950 | Text on success |
--color-info |
sky-600 | sky-400 | Informational |
--color-info-foreground |
white | zinc-950 | Text on info |
--color-warning |
amber-500 | amber-400 | Caution |
--color-warning-foreground |
amber-950 | zinc-950 | Text on warning |
--color-error |
red-600 | red-400 | Errors, destructive |
--color-error-foreground |
white | zinc-950 | Text on error |
Surface Colors
| Token | Light | Dark | Purpose |
|---|---|---|---|
--color-background |
white | zinc-950 | Page background |
--color-foreground |
zinc-950 | zinc-50 | Default text |
--color-muted |
zinc-100 | zinc-800 | Muted surface |
--color-muted-foreground |
zinc-500 | zinc-400 | Muted text |
--color-accent |
zinc-100 | zinc-800 | Hover/accent surface |
--color-accent-foreground |
zinc-900 | zinc-50 | Text on accent |
--color-inverted |
zinc-900 | white | Inverted surface |
--color-inverted-foreground |
white | zinc-950 | Text on inverted |
--color-elevated |
zinc-100 | zinc-800 | Elevated surface (soft variant) |
--color-accented |
zinc-300 | zinc-700 | Accented border/ring |
Border & Ring
| Token | Light | Dark | Purpose |
|---|---|---|---|
--color-border |
zinc-200 | zinc-800 | Default border |
--color-border-accented |
zinc-300 | zinc-700 | Stronger border |
--color-ring |
zinc-400 | zinc-600 | Focus ring |
Customizing brand colors
Two approaches — override the semantic token directly, or define a full shade scale and let Kiso auto-wire it:
/* Approach 1: Direct override */
@theme {
--color-primary: oklch(0.55 0.10 237);
--color-primary-foreground: white;
}
/* Approach 2: Define shade scale (Kiso auto-wires 500/400/50/950) */
@theme {
--color-primary-50: oklch(...);
--color-primary-400: oklch(...);
--color-primary-500: oklch(...);
--color-primary-950: oklch(...);
}
Dashboard Layout
Defined in dashboard.css. Only present when dashboard layout components are
used.
Geometry
| Variable | Default | Purpose |
|---|---|---|
--sidebar-width |
16rem |
Sidebar panel width |
--topbar-height |
3.5rem |
Top navigation bar height |
--sidebar-duration |
220ms |
Sidebar open/close animation duration |
Sidebar Surface
| Variable | Light | Dark | Purpose |
|---|---|---|---|
--sidebar-background |
white | zinc-950 | Sidebar surface |
--sidebar-foreground |
zinc-900 | zinc-100 | Sidebar text |
--sidebar-border |
zinc-200 | zinc-800 | Sidebar divider |
--sidebar-accent |
zinc-100 | zinc-800 | Sidebar hover/active surface |
--sidebar-accent-foreground |
zinc-700 | zinc-300 | Sidebar hover/active text |
@theme {
--sidebar-width: 18rem;
--topbar-height: 4rem;
--sidebar-background: var(--color-zinc-900);
--sidebar-foreground: var(--color-zinc-100);
}