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

Add one import to your app's global stylesheet, depending on what you need:

All styles (recommended for most apps) — base styles, animations, and design tokens:

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

Design tokens only — if you already have your own Tailwind setup and just need Zeno's color, radius, and spacing variables:

@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