duck/ui
A dark-first component registry with holographic accents and thick sticker borders. It rides on shadcn distribution, so the CLI, the MCP server and your editor already know what to do with it.
What it is
duck/ui is a registry, not a package. Nothing is imported from node_modules. The CLI copies source files into your project and from that moment the code is yours to edit, delete or rewrite.
It is built on the shadcn registry schema, which means three things work without any code on our side: the shadcn CLI can install from it, the shadcn MCP server can browse it, and any assistant that reads llms.txt can follow its rules.
The theme implements the full shadcn CSS variable contract. Install it and every shadcn component already in your project is restyled, with no markup changes.
# add the registry namespace, then the theme
npx shadcn add @duck/themeThe four rules
These are enforced in the docs, in the skill, and in code review. They are what keeps a playful system from becoming a loud one.
One holo per viewport
The iridescent finish marks the single most important element on screen. A second one halves the value of the first.
Lime is the meal, holo is the seasoning
Default actions are solid duck lime. Reserve the gradient for the one thing you want remembered.
Dark is designed first
The dark palette is the reference. Light is derived from it and tested separately, not inverted.
Semantic tokens only
Components reference bg-primary and text-muted-foreground, never a raw color. Retuning the theme retunes the whole system.
What ships
One theme and 17 components. The theme is the part that matters most: it covers backgrounds, surfaces, borders, rings, charts and the duck extras that the components build on.
The components are the pieces shadcn does not have. Anything standard, a dialog, a dropdown, a table, comes from shadcn itself and picks up the duck styling for free.
