Components
Eight primitives, deliberately few. Each supports dark mode, works mobile-first, is keyboard accessible, and is typed end to end. Compose them into patterns.
Text
@/components/TextThe single entry point for typography. Pick a variant; get the right font and scale.
Display
Heading
Body — comfortable to read at any length.
Label · monospaceCaption — secondary detail and helper text.
Icon
@/components/IconA calibrated wrapper around Lucide with locked stroke and three sizes.
Button
@/components/ButtonFour variants, three sizes, plus loading and icon slots. Tactile on press.
Input
@/components/InputLabelled fields with hints, errors, and an optional leading icon. Fully wired for screen readers.
We'll never share it.
That name is taken.
Card · Surface · Stack
@/componentsStructured content, neutral elevation, and the layout primitive that ties them together.
Interactive card
Lifts gently on hover. Built for tappable rows.
Sheet
@/components/SheetA focused overlay built on Base UI's Dialog — focus-trapped, scroll-locked, reduced-motion aware.