Components you copy and own
Styled Tailwind components built on @gentleduck/primitives. The CLI copies the source into your project, so every file is yours.
The full kit
Buttons, dialogs, selects, tabs, sidebar, data table, calendar, command, and carousel. Styled and ready to ship.
Built on primitives
Every component sits on the headless
@gentleduck/primitiveslayer. Styled and unstyled are one family.Tailwind and cva
Written with
cva()variants andcn()merging. OverrideclassNameon any instance without forking.Themes and dark mode
OKLCH tokens in CSS variables, with dark mode built in. Change a few variables to swap the palette.
Accessible by default
Keyboard, focus, and ARIA behavior come straight from duck-primitives. The styled layer never breaks them.
Copy, don’t depend
The CLI writes the source into your project. Patch it, restyle it, or extend it. It’s your code.
Install
Scaffold once, then add components one at a time. Works with Next.js, Vite, Remix, and Astro.
Set up your project
npx @gentleduck/cli initAdd your first component
npx @gentleduck/cli add button
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.