kini-ui
v0.1.0
Published
A warm, pastel design system. CLI that scaffolds tokens, theme utilities, and components into your project.
Readme
kini-ui
A warm, pastel design system for React. 30 components, OKLCh color science, CSS Modules, zero runtime dependencies.
Install
npx kini-ui initThe CLI walks you through setup: where to put styles, components, and lib files, whether to self-host fonts or use a CDN, and whether to include the Tailwind preset. It writes a kini-ui.json config to your project root.
Add components
npx kini-ui add button
npx kini-ui add dialog
npx kini-ui add toastEach component is a pair of files (.tsx + .module.css) copied directly into your project. You own the code, modify it however you want.
Components
| Category | Components | |---|---| | Inputs | button, checkbox, input, radio-group, select, slider, textarea, toggle | | Data display | avatar, badge, kbd, progress, separator, skeleton, spinner, table, tooltip | | Feedback | alert, dialog, dropdown-menu, popover, sheet, toast | | Navigation | accordion, breadcrumb, collapsible, pagination, tabs | | Layout | card, scroll-area |
Theming
Kini ships four theme axes controlled via data-* attributes on <html>:
| Attribute | Values | What it does |
|---|---|---|
| data-theme | light, dark | Swaps the full color palette |
| data-density | comfortable, compact | Tightens spacing and font sizes |
| data-radius | rounded, sharp | Switches between soft and tight corners |
| style="--color-primary: ..." | Any OKLCh value | Overrides the accent color |
The theme engine (registry/lib/theme.ts) persists settings to localStorage and resolves system appearance from prefers-color-scheme.
Design tokens
All styling goes through CSS custom properties defined in registry/styles/tokens.css:
- Colors in OKLCh with warm-sand neutrals (hue 58) — never pure gray
- Three font families: Bricolage Grotesque (display), Figtree (body), JetBrains Mono (code)
- Spacing on a 4px base: xs (4px) through 3xl (64px)
- Warm-tinted shadows at six levels
Full reference in DESIGN.md.
Diff
Check what you've changed locally against the upstream registry:
npx kini-ui diffLicense
MIT
