UI primitives
The shadcn Base UI primitives Zeno builds on, and how to add them
Zeno's primitives are the shadcn components, built on Base UI and styled with Tailwind CSS. Browse the full catalog on the shadcn components page, and add any of them with the CLI:
pnpm dlx shadcn@latest add button dialogThen import them from the shared ui package:
import { Button } from "@{yourWorkspace}/ui/components/button"
import { Dialog, DialogContent, DialogTrigger } from "@{yourWorkspace}/ui/components/dialog"Anatomy
Base UI components compose through the render prop. Pass another element to swap the
underlying tag, for example to render a Button as a Next.js Link:
import Link from "next/link"
import { Button } from "@/components/ui/button"
<Button render={<Link href="/recover">Recover</Link>} variant="link" />Theming
See Theming to add Zeno's design tokens, dark mode, and overrides.