Zentauri UI

Beautiful, minimalist React components

A highly customizable component + hooks library built with Tailwind CSS and Framer Motion, focused on subtle interactions and a cohesive dark aesthetic. Use interactive previews and typed hooks to assemble production layouts without reinventing primitives.

Why this library

Built for product engineers

Opinionated visuals with escape hatches—fast to scan, fast to ship.

Composable primitives

Build layouts from small pieces with predictable props and clear defaults.

Many appearances

Glass, solid, outline, and gradient families across buttons, inputs, and overlays.

Motion where it helps

Optional animated entry points for modals, tabs, and toasts powered by Framer Motion.

Hooks you will use

Headless utilities for storage, debouncing, media queries, and focus management.

Path-level imports

Import only what you need from `@zentauri-ui/zentauri-components/ui/...` bundles.

TypeScript-first

Typed APIs and variant props so refactors stay safe as your design system grows.

Live previews

Components in context

Toggle Preview and Code—snippets mirror real props from the package.

Rotate keys from the security tab.

Demo slider

Value: 42

Headless hooks

Utilities that match the kit

Typed helpers for storage, timing, gestures, and layout—each with an interactive preview route.

useLocalStorage

Preview

JSON-serialized state mirrored to localStorage with cross-tab storage events.

Use case: Persists UI preferences, draft forms, or lightweight client caches across sessions.

useDebouncedValue

Preview

Returns a value that updates only after the source has been stable for a delay.

Use case: Ideal for search-as-you-type, autosuggest, and expensive effects tied to fast-changing inputs.

useClickOutside

Preview

Listens for pointer or touch events outside a ref element and closes floating UI.

Use case: Pairs with menus, popovers, and pickers so a single ref boundary defines “inside” versus dismiss.

useMediaQuery

Preview

Subscribes to window.matchMedia and updates when the query result changes.

Use case: Branch layouts, feature flags, or responsive behavior from any valid media query string.

Browse all hooks

Composition

Patterns that ship together

Inputs, overlays, and feedback primitives combine without custom glue code.

Auth-style form

Controlled fields with inline validation messaging.

Input docs

Dashboard strip

Badge + progress readout for health or rollout metrics.

API success rateLive

99.2%

Progress docs

Scoped surface

Preview panel

This toggle only affects this box—your app controls global theme via Tailwind dark: variants or layout-level classes.

See Installation for globals, @source scanning, and theme overrides.

Install

Add the package in one minute

Pick your package manager, copy the command, then follow the full Tailwind v4 setup on the installation page.

npm install @zentauri-ui/zentauri-components

CLI (optional)

Scaffold or add components into your repo with the published CLI.

npx @zentauri-ui/zentauri-components init

Theming

Variants and surfaces

Compose with appearance props, then align tokens in Tailwind v4—override `@theme` or map appearances in your app layer.

Button appearances

Landscape

How Zentauri fits in

Every stack makes tradeoffs—here is a compact, honest snapshot. Try the previews and judge for your team.

AspectZentauri UIShadCNChakra UIRadix
Distributionnpm package + optional CLI to vendor/copy sourcesCopy-paste / CLI into your reponpm package, runtime themingUnstyled primitives (compose yourself)
StylingTailwind v4-first, CVA variantsTailwind + CSS variablesEmotion / styled-systemBring your own styles
MotionFirst-class animated entry points (e.g. modals, tabs)Typically add your own motionBuilt-in transition propsUnstyled; add Framer or CSS
Hooks catalogShipped alongside UI in one packageFocused on components; hooks vary by recipeSome logic hooksPrimitive-focused

Reference & FAQ

Why teams pick Zentauri UI

Zentauri UI pairs a tight visual language with practical defaults: glass and solid appearances, motion variants where they matter, and documentation that mirrors real import paths.

Instead of abstract galleries, you get per-component previews with code you can paste into a React or Next.js repo.

What ships today

The library covers layout, forms, overlays, data display, and feedback primitives—from buttons and inputs through modals, tables, and toasts—plus a growing set of hooks for window size, media queries, and other browser concerns.

Each family has its own preview route so you can compare density, animation, and accessibility notes before adopting a pattern org-wide.

Common use cases

  • Bootstrap dashboards with tables, navigation, overlays, and feedback components.
  • Prototype marketing flows with buttons, cards, accordions, and form controls.
  • Add motion-rich modals, drawers, tabs, and toasts with consistent animation tokens.
  • Document an internal design system with import paths that match published npm exports.
  • Extend Tailwind v4 themes while keeping class APIs predictable for contributors.

Stack and compatibility

Components assume React 18+ and Tailwind CSS v4 with the published preset. Framer Motion backs animated variants; react-icons supplies consistent iconography in examples.

Keep peer installs aligned with the Installation page to avoid duplicate motion or merge conflicts in class composition.

How to explore the library

Start with Installation to wire Tailwind scanning and package aliases. Browse Components for UI families, Hooks for utilities, and use site search when you know a primitive name but not its route.

Set NEXT_PUBLIC_SITE_URL in deployment so canonical and Open Graph URLs resolve correctly for sharing.

FAQ

Is Zentauri UI only for Next.js?

No. Components are React-first; the docs emphasize Next.js App Router patterns because they are common, but you can use the package with Vite, Remix, or other React 18+ setups that support Tailwind CSS v4.

Where do I install the package?

Install @zentauri-ui/zentauri-components from npm, follow the Installation guide for Tailwind v4 scanning and peer dependencies, then import from the documented ui paths.

Are previews the same as production exports?

Yes. Preview routes demonstrate the same exports you import in your app so you can copy snippets and align versions with your lockfile.