Zeno

UI Primitives

Reusable UI components built on Base UI and Tailwind CSS

Zeno ships a set of unstyled-but-themed React primitives in the @zeno-lib/ui package. They mirror shadcn/ui 1:1 in API and naming and are built on top of Base UI.

import { Button } from "@zeno-lib/ui/button"
import { Dialog, DialogContent, DialogTrigger } from "@zeno-lib/ui/dialog"

Anatomy

  • Composition via Base UI's render prop — pass another element to swap the underlying tag (e.g. render a Button as a Next.js Link)
import Link from "next/link"
import { Button } from "@zeno-lib/ui/button"

<Button render={<Link href="/recover">Recover</Link>} variant="link" />

Theming

Theme tokens live in @zeno-lib/ui/styles/theme.css. Import it once in your consuming app's global stylesheet:

@import "@zeno-lib/ui/styles/theme.css";

See Theming for token overrides and dark mode.

Examples

Button

Card

Create project
Deploy your new project in one click.

Project name, framework and region.

Form field

Alert

Accordion

Yes. It follows the WAI-ARIA design pattern.

Badge

DefaultSecondaryOutlineDestructive

Component index

Layout

Forms

  • Button@zeno-lib/ui/button
  • Button Group@zeno-lib/ui/button-group
  • Checkbox@zeno-lib/ui/checkbox
  • Field@zeno-lib/ui/field
  • Input@zeno-lib/ui/input
  • Input Group@zeno-lib/ui/input-group
  • Input OTP@zeno-lib/ui/input-otp
  • Label@zeno-lib/ui/label
  • Radio Group@zeno-lib/ui/radio-group
  • Select@zeno-lib/ui/select
  • Slider@zeno-lib/ui/slider
  • Switch@zeno-lib/ui/switch
  • Textarea@zeno-lib/ui/textarea
  • Toggle@zeno-lib/ui/toggle
  • Toggle Group@zeno-lib/ui/toggle-group
  • Native Select@zeno-lib/ui/native-select. shadcn doesn't ship a native variant; reach for it when you want the OS-level picker, otherwise use Select.

Overlays

Data display

  • Accordion@zeno-lib/ui/accordion
  • Avatar@zeno-lib/ui/avatar
  • Badge@zeno-lib/ui/badge
  • Calendar@zeno-lib/ui/calendar
  • Carousel@zeno-lib/ui/carousel
  • Chart@zeno-lib/ui/chart
  • Collapsible@zeno-lib/ui/collapsible
  • Empty@zeno-lib/ui/empty
  • Item@zeno-lib/ui/item
  • Kbd@zeno-lib/ui/kbd
  • Table@zeno-lib/ui/table

Feedback

Utilities