primary
colors.primary- 50
#eff6ff - 100
#dbeafe - 200
#bfdbfe - 300
#93c5fd - 400
#60a5fa - 500
#3b82f6 - 600
#2563eb - 700
#1d4ed8 - 800
#1e40af - 900
#1e3a8a
Single source of truth for the visual language: palettes, spacing, radii, typography, motion, layering, and breakpoints. Every value below is exported from kovax-react and accessible through themeToken("…").
Each palette uses the 50 → 900 ladder. Use 50–200 for surfaces, 300–500 for accents, 600–900 for text and focus.
colors.primary#eff6ff#dbeafe#bfdbfe#93c5fd#60a5fa#3b82f6#2563eb#1d4ed8#1e40af#1e3a8acolors.secondary#f8fafc#f1f5f9#e2e8f0#cbd5e1#94a3b8#64748b#475569#334155#1e293b#0f172acolors.success#ecfdf5#d1fae5#a7f3d0#6ee7b7#34d399#10b981#059669#047857#065f46#064e3bcolors.warning#fffbeb#fef3c7#fde68a#fcd34d#fbbf24#f59e0b#d97706#b45309#92400e#78350fcolors.error#fef2f2#fee2e2#fecaca#fca5a5#f87171#ef4444#dc2626#b91c1c#991b1b#7f1d1dbaseColorswhite#ffffffblack#000000Type ramp, weights, line-heights, and tracking. Components consume these via the same string tokens.
text.xsThe quick brown fox
0.75remtext.smThe quick brown fox
0.875remtext.baseThe quick brown fox
1remtext.lgThe quick brown fox
1.125remtext.xlThe quick brown fox
1.25remtext.2xlThe quick brown fox
1.5remtext.3xlThe quick brown fox
1.875remtext.4xlThe quick brown fox
2.25remtext.5xlThe quick brown fox
3remfontWeight.thinAa Bb Cc 123
100fontWeight.extralightAa Bb Cc 123
200fontWeight.lightAa Bb Cc 123
300fontWeight.regularAa Bb Cc 123
400fontWeight.mediumAa Bb Cc 123
500fontWeight.semiboldAa Bb Cc 123
600fontWeight.boldAa Bb Cc 123
700fontWeight.extraboldAa Bb Cc 123
800fontWeight.blackAa Bb Cc 123
900lineHeight.noneLorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vitae velit fringilla, dictum lorem at, sollicitudin lectus.
1lineHeight.tightLorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vitae velit fringilla, dictum lorem at, sollicitudin lectus.
1.15lineHeight.snugLorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vitae velit fringilla, dictum lorem at, sollicitudin lectus.
1.3lineHeight.normalLorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vitae velit fringilla, dictum lorem at, sollicitudin lectus.
1.5lineHeight.relaxedLorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vitae velit fringilla, dictum lorem at, sollicitudin lectus.
1.65lineHeight.looseLorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur vitae velit fringilla, dictum lorem at, sollicitudin lectus.
1.85letterSpacing.tighterKOVAX REACT
-0.04emletterSpacing.tightKOVAX REACT
-0.02emletterSpacing.normalKOVAX REACT
0emletterSpacing.wideKOVAX REACT
0.02emletterSpacing.widerKOVAX REACT
0.04emletterSpacing.widestKOVAX REACT
0.08emInset and stack rhythm. Bars below show the actual rem width — the bar at 5xl is 96px on the default root.
spacing.none0remspacing.2xs0.25remspacing.xs0.5remspacing.sm0.75remspacing.md1remspacing.lg1.5remspacing.xl2remspacing.2xl2.5remspacing.3xl3remspacing.4xl4remspacing.5xl6remComposable radii — pair smaller values for compact UI and larger for cards / marketing surfaces.
borderRadius.none0borderRadius.xs0.25remborderRadius.sm0.375remborderRadius.md0.5remborderRadius.lg0.75remborderRadius.xl1remborderRadius.2xl1.25remborderRadius.3xl1.5remborderRadius.full9999pxElevation ladder plus utility shadows: an inner shadow for sunken surfaces and a focus ring for accessibility.
shadow.nonenoneshadow.xs0 1px 1px 0 rgb(0 0 0 / 0.04)shadow.sm0 1px 2px 0 rgb(0 0 0 / 0.05)shadow.md0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1)shadow.lg0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1)shadow.xl0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1)shadow.2xl0 25px 50px -12px rgb(0 0 0 / 0.25)shadow.innerinset 0 2px 4px 0 rgb(0 0 0 / 0.06)shadow.focusRing0 0 0 3px rgb(59 130 246 / 0.35)Pair duration and easing tokens for transitions. Legacy <code>transition.*</code> strings remain for back-compat.
duration.instant · easing.standard0ms · cubic-bezier(0.2, 0, 0, 1)duration.fast · easing.standard120ms · cubic-bezier(0.2, 0, 0, 1)duration.normal · easing.standard200ms · cubic-bezier(0.2, 0, 0, 1)duration.slow · easing.standard320ms · cubic-bezier(0.2, 0, 0, 1)duration.slower · easing.standard500ms · cubic-bezier(0.2, 0, 0, 1)duration.slow · easing.linear320ms · linearduration.slow · easing.standard320ms · cubic-bezier(0.2, 0, 0, 1)duration.slow · easing.decelerate320ms · cubic-bezier(0, 0, 0.2, 1)duration.slow · easing.accelerate320ms · cubic-bezier(0.4, 0, 1, 1)duration.slow · easing.bounce320ms · cubic-bezier(0.34, 1.56, 0.64, 1)transition.defaultall 0.2s ease-in-outtransition.fastall 0.1s ease-in-outtransition.slowall 0.3s ease-in-outPredictable stacking for overlays. Higher value renders above lower one.
| Token | Value | Used for |
|---|---|---|
zIndex.hide | -1 | Hidden below content |
zIndex.base | 0 | Default flow |
zIndex.docked | 10 | Pinned UI (sidebars, FAB) |
zIndex.dropdown | 1000 | Menus, comboboxes |
zIndex.sticky | 1100 | Sticky headers |
zIndex.banner | 1200 | Site-wide banners |
zIndex.overlay | 1300 | Backdrop / overlays |
zIndex.modal | 1400 | Modal dialogs |
zIndex.popover | 1500 | Popovers, dropdowns over modals |
zIndex.skipLink | 1600 | Skip-to-content link |
zIndex.toast | 1700 | Transient notifications |
zIndex.tooltip | 1800 | Tooltips on top of everything |
Em-based viewport breakpoints — they scale with the user's root font size for better accessibility.
| Token | Value | Media query |
|---|---|---|
breakpoint.sm | 30em | @media (min-width: 30em) |
breakpoint.md | 48em | @media (min-width: 48em) |
breakpoint.lg | 62em | @media (min-width: 62em) |
breakpoint.xl | 80em | @media (min-width: 80em) |
breakpoint.2xl | 96em | @media (min-width: 96em) |