colors
two layers: a stable raw palette (six swatches) and a semantic token set (what components actually reference). swap a semantic mapping in packages/ui/styles/tokens.css and every surface follows.
all rendered live from packages/ui/tokens.ts so this page can never drift from what ships.
import from @klera/ui/tokens (colors, palette)
variants
raw palette
blue500
#007fffblue550
#1a4fefblue900
#000080sky300
#89cff0gold400
#efbd1atextPrimary
#eef4f7the actual hex values. do not reference these directly in components — use the semantic tokens below.
semantic tokens
--bg
#000080page background--bg-panel
rgba(255, 255, 255, 0.05)default panel/card surface--bg-panel-hover
rgba(255, 255, 255, 0.08)panel/card on hover--bg-input
rgba(255, 255, 255, 0.08)input field surface--bg-input-focus
rgba(255, 255, 255, 0.12)input on focus--text
#eef4f7primary text--text-muted
rgba(255, 255, 255, 0.55)secondary text--text-dim
rgba(255, 255, 255, 0.35)tertiary text / placeholder--border
rgba(255, 255, 255, 0.08)default border--border-focus
rgba(255, 255, 255, 0.24)border on focus--divider
rgba(255, 255, 255, 0.14)section divider lines--brand-primary
#007fffprimary action / accent--brand-primary-50
rgba(0, 127, 255, 0.5)primary at half opacity--brand-card
#1a4fefelevated brand card surface--brand-deep
#000080ground / canvas--brand-gold
#efbd1awarning / urgent accent--brand-sky
#89cff0soft accent / care teamwhat components reference. swap these in tokens.css to retheme.