Skip to main content

Duck UI

55+ styled Tailwind components built on @gentleduck/primitives. The CLI copies source into your project so you own every file.

55+ components

A UI kit you fully own

The styled layer of gentleduck: Tailwind and cva on top of a11y-first primitives. Scaffold with the CLI, copy source into your project, edit any class without forking.

  • 55+ components

    Buttons, Dialogs, Selects, Tabs, Sidebar, Data Table, Calendar, Command, Carousel. The full kit, styled and ready to ship.

  • Built on duck-primitives

    Every component sits on top of the headless `@gentleduck/primitives` layer. Styled and unstyled are one family.

  • Tailwind + cva

    Components are authored with `cva()` variants and `cn()` merging. Override className per instance without forking.

  • Theming + dark mode

    OKLCH design tokens, CSS variables, and a built-in dark mode. Swap palettes by changing a few variables.

  • A11y inherited

    Keyboard, focus, and ARIA behavior from duck-primitives flows up unchanged. The styled layer never breaks it.

  • Copy, don’t depend

    The CLI writes source directly into your project. You own every file. Patch, restyle, or extend it.

Install

One command to scaffold, one per component. Works with Next.js, Vite, Remix, and Astro.

# Scaffold with the CLI
npx @gentleduck/cli init

# Add your first component
npx @gentleduck/cli add button

Component catalog

60 components grouped by category. Click any to jump straight to the docs.

Forms13

Overlay8

Free & open source

gentleduck is MIT licensed and will always be free and open source. Every package ships with full source access — fork it, modify it, own it.

Become a Sponsor