# Aqua — full component reference for LLMs > Aqua recreates the classic Mac OS X (2000–2007) interface as a shadcn/ui registry: accessible React components on Radix primitives, styled with Tailwind CSS into gel gradients, pinstripes and brushed metal. Made by Igor Duca (https://duca.dev, @ducaswtf on X). ## Setup 1. The project must have shadcn/ui initialized (npx shadcn@latest init). 2. Register the namespace in components.json: { "registries": { "@aqua": "https://aqua.duca.dev/r/{name}.json" } } 3. Install the theme first: npx shadcn@latest add @aqua/theme 4. Add components as needed: npx shadcn@latest add @aqua/button @aqua/tabs Components are copied into the project as source files and import as @/components/ui/. Dependencies (Radix packages, lucide-react, shiki) install automatically. ## Theming Every component derives its color from the --aqua-accent CSS variable and falls back to Aqua blue (#2f7de0) when the theme is absent. To retheme globally: :root { --aqua-accent: #e02f6b; } Scoped themes work too — set --aqua-accent on any element and its subtree recomputes (the derived --aqua-gel-* variables are declared on the universal selector). ## Avatar (@aqua/avatar) The iChat buddy icon: photo, initials over a gel color, or the classic generic silhouette. Install: npx shadcn@latest add @aqua/avatar Docs: https://aqua.duca.dev/docs/avatar Registry JSON: https://aqua.duca.dev/r/avatar.json import { Avatar } from "@/components/ui/avatar" | | | | (generic silhouette) Props: size (sm|default|lg), shape (square|circle), color (any hex, rendered as gel), randomColor (stable hash of initials). ## Alert (@aqua/alert) Soft gradient notice panel in note, caution and stop flavors. Install: npx shadcn@latest add @aqua/alert Docs: https://aqua.duca.dev/docs/alert Registry JSON: https://aqua.duca.dev/r/alert.json import { Alert, AlertDescription, AlertTitle } from "@/components/ui/alert" Low battery… Variants: default (note/blue), warning (caution/yellow), destructive (stop/red). Accepts an svg icon as first child. ## Dropdown Menu (@aqua/dropdown-menu) Aqua context menu: white panel, gel highlight, checkable items and submenus. Install: npx shadcn@latest add @aqua/dropdown-menu Docs: https://aqua.duca.dev/docs/dropdown-menu Registry JSON: https://aqua.duca.dev/r/dropdown-menu.json import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from "@/components/ui/dropdown-menu" Also exports CheckboxItem, RadioGroup/RadioItem, Label, Separator, Shortcut, Sub menus. Item variant="destructive" gets red gel highlight. ## Label (@aqua/label) Etched form label in classic panel typography. Install: npx shadcn@latest add @aqua/label Docs: https://aqua.duca.dev/docs/label Registry JSON: https://aqua.duca.dev/r/label.json import { Label } from "@/components/ui/label" — pairs with Input/Textarea via htmlFor. ## Radio Group (@aqua/radio-group) Glossy round radios that fill with gel and a white pip when selected. Install: npx shadcn@latest add @aqua/radio-group Docs: https://aqua.duca.dev/docs/radio-group Registry JSON: https://aqua.duca.dev/r/radio-group.json import { RadioGroup, RadioGroupItem } from "@/components/ui/radio-group" ## Textarea (@aqua/textarea) Multi-line Aqua text well with an inset shadow and blue focus halo. Install: npx shadcn@latest add @aqua/textarea Docs: https://aqua.duca.dev/docs/textarea Registry JSON: https://aqua.duca.dev/r/textarea.json import { Textarea } from "@/components/ui/textarea"