Global theme tokens are CSS custom properties installed by the CLI into src/styles/bambi.css. Import once at the root of your app:
@import ' ./styles/bambi.css ' ;
Override any token in your own :root block to customise the theme globally:
--bambi-primary-500 : oklch ( 60 % 0.25 30 );
--bambi-radius-md : 0.5 rem ;
[ data-theme = ' dark ' ], .dark {
--bambi-primary : var ( --bambi-primary-400 );
Component-specific token defaults, such as --bambi-button-*, live in component CSS instead of this global token file. Override them on the component selector, a more specific component selector, or inline style.
Colors use the OKLCH color space. The global token file exposes complete 50 through 950 scales for neutral, primary, danger, success, and warning. Light semantic aliases are defined in :root; dark mode overrides semantic aliases in [data-theme='dark'], .dark.
Scale Default semantic alias Purpose --bambi-neutral-50 … --bambi-neutral-950background, foreground, surfaces, bordersBase UI surfaces and text --bambi-primary-50 … --bambi-primary-950primary, ring, primary intentBrand and primary actions --bambi-danger-50 … --bambi-danger-950dangerDestructive actions --bambi-success-50 … --bambi-success-950successPositive actions --bambi-warning-50 … --bambi-warning-950warningCautionary actions
By default, light mode maps --bambi-primary to --bambi-primary-500; dark mode maps it to --bambi-primary-400.
Token Light Dark --bambi-primaryvar(--bambi-primary-500)var(--bambi-primary-400)--bambi-primary-foregroundoklch(100% 0 0)oklch(9% 0 0)--bambi-secondaryvar(--bambi-neutral-100)var(--bambi-neutral-800)--bambi-secondary-foregroundvar(--bambi-neutral-950)var(--bambi-neutral-50)--bambi-accentvar(--bambi-neutral-100)var(--bambi-neutral-800)--bambi-accent-foregroundvar(--bambi-neutral-950)var(--bambi-neutral-50)
Token Light Dark --bambi-dangervar(--bambi-danger-500)var(--bambi-danger-600)--bambi-danger-foregroundoklch(100% 0 0)var(--bambi-neutral-50)--bambi-successvar(--bambi-success-500)var(--bambi-success-500)--bambi-success-foregroundvar(--bambi-neutral-950)var(--bambi-neutral-950)--bambi-warningvar(--bambi-warning-500)var(--bambi-warning-400)--bambi-warning-foregroundvar(--bambi-neutral-950)var(--bambi-neutral-950)--bambi-mutedvar(--bambi-neutral-100)var(--bambi-neutral-800)--bambi-muted-foregroundvar(--bambi-neutral-500)var(--bambi-neutral-400)
Token Light Dark --bambi-backgroundvar(--bambi-neutral-50)var(--bambi-neutral-950)--bambi-foregroundvar(--bambi-neutral-950)var(--bambi-neutral-50)--bambi-cardvar(--bambi-color-white)var(--bambi-neutral-900)--bambi-card-foregroundvar(--bambi-neutral-950)var(--bambi-neutral-50)--bambi-popovervar(--bambi-color-white)var(--bambi-neutral-900)--bambi-popover-foregroundvar(--bambi-neutral-950)var(--bambi-neutral-50)
Token Light Dark --bambi-bordervar(--bambi-neutral-200)var(--bambi-neutral-800)--bambi-inputvar(--bambi-neutral-200)var(--bambi-neutral-800)--bambi-input-backgroundvar(--bambi-color-white)var(--bambi-neutral-900)--bambi-input-foregroundvar(--bambi-neutral-950)var(--bambi-neutral-50)--bambi-input-placeholdervar(--bambi-neutral-500)var(--bambi-neutral-400)--bambi-ringvar(--bambi-primary)var(--bambi-primary)--bambi-separatorvar(--bambi-neutral-200)var(--bambi-neutral-800)
These tokens are used internally by components. Override them to change hover colors without touching the base intent colors.
Token Default --bambi-intent-primary-bgvar(--bambi-primary)--bambi-intent-primary-fgvar(--bambi-primary-foreground)--bambi-intent-primary-hover-bgvar(--bambi-primary-600) / var(--bambi-primary-300) dark--bambi-intent-secondary-bgvar(--bambi-secondary)--bambi-intent-secondary-fgvar(--bambi-secondary-foreground)--bambi-intent-secondary-hover-bgvar(--bambi-accent)--bambi-intent-danger-bgvar(--bambi-danger)--bambi-intent-danger-fgvar(--bambi-danger-foreground)--bambi-intent-danger-hover-bgvar(--bambi-danger-600) / var(--bambi-danger-400) dark--bambi-intent-success-bgvar(--bambi-success)--bambi-intent-success-fgvar(--bambi-success-foreground)--bambi-intent-success-hover-bgvar(--bambi-success-600) / var(--bambi-success-400) dark--bambi-intent-warning-bgvar(--bambi-warning)--bambi-intent-warning-fgvar(--bambi-warning-foreground)--bambi-intent-warning-hover-bgvar(--bambi-warning-600) / var(--bambi-warning-300) dark
Token Value --bambi-radius-sm0.375rem--bambi-radius-md0.5rem--bambi-radius-lg0.75rem--bambi-radius-xl1rem--bambi-radius-full9999px
Token Value --bambi-font-sanssystem-ui, sans-serif--bambi-font-monoui-monospace, monospace
Token Value --bambi-text-xs0.75rem--bambi-text-sm0.875rem--bambi-text-base1rem--bambi-text-lg1.125rem
Token Value --bambi-font-weight-normal400--bambi-font-weight-medium500--bambi-font-weight-semibold600--bambi-font-weight-bold700
Token Light Dark --bambi-shadow-sm0 1px 2px 0 oklch(0% 0 0 / 0.05)oklch(0% 0 0 / 0.3)--bambi-shadow-md0 4px 6px -1px oklch(0% 0 0 / 0.1), …oklch(0% 0 0 / 0.4), …--bambi-shadow-lg0 10px 15px -3px oklch(0% 0 0 / 0.1), …oklch(0% 0 0 / 0.4), …
Shadow opacity is higher in dark mode to remain visible on dark surfaces.