@kavoo-ui/ui-lib
v2.0.0
Published
Kavoo design system — React component library
Downloads
266
Readme
Clipora UI
The Clipora design system as a runnable React component library — React 19 · Vite 7 · TypeScript · Tailwind CSS v4 · shadcn pattern · Storybook 10.
Every component is built from the Clipora tokens (color ramps, type scale,
spacing, radii, elevation, motion easings) defined in src/styles/globals.css.
Quick start
cd clipora-ui
npm install
npm run storybook # opens http://localhost:6006Other scripts:
npm run dev # Vite dev server (app sandbox)
npm run build # type-check + production build
npm run build-storybook # static Storybook for hostingThis repo was generated in an environment without Node, so it ships as source only — run
npm installlocally to pull dependencies and launch.
How the design system maps in
src/styles/globals.css is the single source of truth. The Clipora tokens are
expressed as CSS variables on :root, flipped under .dark, and projected into
Tailwind v4 via @theme inline so utilities like bg-primary, text-spark,
shadow-brand, and bg-grad-brand exist.
| Clipora token | shadcn / Tailwind variable |
| ------------------------ | ----------------------------------- |
| --blue-500 (primary) | --primary → bg-primary |
| --spark-500 | --spark → bg-spark |
| --green-500 | --success |
| --r-md (14px) | --radius → rounded-md |
| --e-1…3, --e-brand | shadow-e1…e3, shadow-brand |
| Switzer / Geist Mono | font-sans / font-mono |
Light is the default theme; add class="dark" to <html>. In Storybook, use the
Theme toolbar toggle (light/dark) — it's wired in .storybook/preview.tsx with a
global decorator, so no extra addon is required.
Components
src/components/ui/ — 24 components, each with a *.stories.tsx.
Actions & display — Button (7 variants), Badge (status), Card, Avatar, Progress, Skeleton, Separator Forms — Input, Textarea, Label, Switch, Checkbox, RadioGroup, Slider, Toggle, ToggleGroup, Select Navigation — Tabs (segmented), Accordion Overlays — Dialog, Popover, Tooltip, DropdownMenu Feedback — Toast (Sonner) Foundations — Typography (full type scale as a component), Colors story
Highlights:
- Button —
brand(gradient),primary,secondary,ghost,spark,destructive,link; sizessm/default/lg/icon - Badge —
brand,spark,success,warning,neutral,outline(+ optionaldot) - Typography — polymorphic (
variant+tone,asoverride)
Everything is exported from src/index.ts, so consumers can import { Button, Dialog, toast } from "clipora-ui".
Adding more shadcn components
components.json is configured (New York style, lucide icons, @/ alias), so:
npx shadcn@latest add dialog dropdown-menu tooltipNew components inherit the Clipora theme automatically because they read the same CSS variables.
Project layout
clipora-ui/
├─ .storybook/ main.ts · preview.tsx (globals.css + theme toggle)
├─ src/
│ ├─ components/
│ │ ├─ ui/ button, badge, card, input, label, switch, tabs, typography
│ │ └─ foundations/ colors.stories.tsx
│ ├─ lib/utils.ts cn()
│ ├─ styles/globals.css ← tokens + Tailwind v4 theme
│ └─ index.ts barrel export
├─ components.json shadcn config
├─ vite.config.ts · tsconfig.json · package.json