The classic Mac OS X interface — gel buttons, pinstripes, brushed metal — rebuilt as a shadcn/ui registry.
aqua.duca.dev · Docs · Mail demo · Chat demo
Aqua recreates the Apple interface of 2000–2007 as accessible React components: Radix primitives underneath, Tailwind CSS gel gradients on top. Like everything in the shadcn ecosystem, it is not a package you import — components are copied into your project as open code. Change anything, own everything.
Register the namespace in your components.json:
{
"registries": {
"@aqua": "https://aqua.duca.dev/r/{name}.json"
}
}Install the theme, then add components:
npx shadcn@latest add @aqua/theme
npx shadcn@latest add @aqua/button @aqua/tabs @aqua/selectComponents import from your own project:
import { Button } from "@/components/ui/button"
<Button>gorgeous</Button>Core — Alert, Avatar, Badge, Button, Checkbox, Code Block, Cursor, Dialog, Dropdown Menu, Input, Label, Loader, Progress, Radio Group, Select, Slider, Switch, Tabs, Textarea, Toast, Tooltip
Signature — the pieces that only make sense in this design language:
- Window — brushed metal chrome with traffic lights
- Dock — magnifying icons, haloed labels, running indicators
- Chat Bubble — iChat gradient bubbles with sculpted tails
- iPod — white shell, LCD screen, a working click wheel
- Cursor — wrap your app and get the era arrow, hand and I-beam back
Every component is themable through a single CSS variable:
:root {
--aqua-accent: #e02f6b; /* strawberry */
}The gel gradients, edges and focus rings are derived with color-mix, so one line rethemes everything — globally or scoped to any subtree.
Aqua ships /llms.txt and /llms-full.txt with complete setup and per-component usage, and every docs page has a Copy AI prompt button that produces a ready-to-paste instruction for your agent of choice.
This repository is the registry and its documentation site (Next.js 15, Tailwind v4, Bun).
bun install
bun run dev # docs site on localhost:3000
bun run registry:build # rebuild public/r/*.json from registry.jsonComponent sources live in registry/aqua/ui/. The docs live in components/docs-content.tsx.
Designed and built by Igor Duca (@ducaswtf). The original design language belongs to Apple — this is a tribute, not an affiliation.
