Documentation

Krizaka UI

The design system every Krizaka product is built on — tokens, a Tailwind preset and accessible React primitives.

@krizaka/ui is one set of components — buttons, cards, dialogs, menus, fields — written once against semantic tokens, for the web and for React Native, so a product changes its identity by changing values, never components.

The code writes this documentation. Every component page is generated, at each build of this site, from the package's own code: what the component is, when to use it and when not, its examples rendered live with the code you copy (web and React Native), its props read from its types and its accessibility. One list of components, one link to share.

All components

34 components

Install in four lines

npm install @krizaka/ui@beta @krizaka/tailwind@beta @krizaka/tokens@beta tailwindcss
app/globals.css
@import "tailwindcss";
@import "@krizaka/tailwind";        /* tokens + utilities + motion signature */
@import "@krizaka/ui/tailwind.css"; /* Tailwind generates the classes the primitives use */
import { Button } from "@krizaka/ui/button";

export default function Save() {
  return <Button variant="primary">Save</Button>;
}

One entry point per primitive (@krizaka/ui/card, @krizaka/ui/dialog…): an app ships only what it imports.

The component contract

Every primitive follows the same rules, checked in the repository before it is released:

RuleWhat it means for you
Tokens onlyNo palette colour, no light: / dark: class: dark, light and a product theme only change --kz-* values.
ComposableCompound parts (Card.Root, Card.Media…) and asChild to render your own link or element.
className winsYour classes are merged last (tailwind-merge): override any part without forking.
AccessibleRadix behaviour for overlays and inputs, visible keyboard focus (--kz-ring), names required where a screen reader needs one.
Server-safe when it can beA primitive without state or effect has no "use client": it renders in a Server Component.
Reduced motionEntrance and idle motion stop under prefers-reduced-motion.
Documented by its codeEach component carries its documentation (meta.ts), its named examples and a description for every prop; the release fails without them.

Where the pieces live

PackageRole
@krizaka/tokensThe --kz-* vocabulary: CSS, typed constants, React Native themes.
@krizaka/tailwindThe Tailwind v4 preset: bg-surface-1, text-fg-secondary, border-border-default…
@krizaka/uiThe primitives (this section), the brand marks and the motion signature.
@krizaka/intlMoney, numbers, dates and plurals, formatted the same way everywhere.

The source and the release notes are on GitHub.

On this page