Registry

76 free items you can install with the shadcn CLI: the theme, the free components and the free blocks. Each one is a JSON file with its source and dependencies. The Pro components and the macOS app blocks come with CupertinoUI Pro. How the registry works

1. Add the namespace

components.json
{
  "registries": {
    "@cupertinoui": "https://www.cupertino-ui.com/r/{name}.json"
  }
}

2. Install items

npx shadcn@latest add @cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/button @cupertinoui/window
macOS thememacos-themeTheme

The macOS 27 theme: colors, fills, materials, text styles, radii and control sizes, mapped onto shadcn tokens. Import app/macos.css from your global stylesheet.

clsxtailwind-mergetw-animate-css
npx shadcn@latest add @cupertinoui/macos-theme
ButtonbuttonComponent

Push buttons in every macOS 27 style: the accent-filled default button, bordered, tinted, borderless and destructive, from mini to extra large.

@cupertinoui/macos-themeclass-variance-authority@base-ui/react
npx shadcn@latest add @cupertinoui/button
Text FieldinputComponent

A single-line text field with the macOS hairline border and accent focus ring.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/input
Text AreatextareaComponent

A multi-line text field that grows with its content.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/textarea
LabellabelComponent

An accessible label for form controls, set in the macOS body text style.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/label
Search Fieldsearch-fieldComponent

A capsule search field with a magnifying glass, in content, Liquid Glass toolbar and sidebar styles, and a filter field.

@cupertinoui/macos-themeclass-variance-authoritylucide-react
npx shadcn@latest add @cupertinoui/search-field
CheckboxcheckboxComponent

A 16pt rounded checkbox that fills with the accent color, with mixed state support.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/checkbox
Radio Groupradio-groupComponent

A set of radio buttons where only one can be selected at a time.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/radio-group
SwitchswitchComponent

The macOS 27 toggle with a pill-shaped knob, in mini, small, medium and large sizes.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/switch
SlidersliderComponent

A thin capsule track with the macOS 27 pill knob. Supports ranges and tick marks.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/slider
StepperstepperComponent

A number field with the small up and down arrows beside it, stepped by clicks, held arrows and the keyboard.

@cupertinoui/macos-theme@base-ui/reactlucide-react
npx shadcn@latest add @cupertinoui/stepper
Progress IndicatorprogressComponent

A determinate progress bar in the accent color.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/progress
Pop-up ButtonselectComponent

A pop-up button that opens a menu of options, in bordered and System Settings styles.

@cupertinoui/macos-themelucide-react@base-ui/react
npx shadcn@latest add @cupertinoui/select
TabstabsComponent

A tabs for switching between views, with a plain tab bar variant.

@cupertinoui/macos-themeclass-variance-authority@base-ui/react
npx shadcn@latest add @cupertinoui/tabs
SeparatorseparatorComponent

A hairline that divides content horizontally or vertically.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/separator
Menudropdown-menuComponent

A pull-down menu with shortcuts, checkmarks, submenus and the macOS 27 rounded highlight.

@cupertinoui/macos-themelucide-react@base-ui/react
npx shadcn@latest add @cupertinoui/dropdown-menu
Context Menucontext-menuComponent

The menu that appears on right-click or Control-click.

@cupertinoui/macos-themelucide-react@base-ui/react
npx shadcn@latest add @cupertinoui/context-menu
Menu BarmenubarComponent

The macOS menu bar: the app menus on the left and status items with the clock on the right.

@cupertinoui/macos-themelucide-react@base-ui/react
npx shadcn@latest add @cupertinoui/menubar
DialogdialogComponent

A modal panel window with a close button in the traffic light position.

@cupertinoui/macos-theme@cupertinoui/buttonlucide-react@base-ui/react
npx shadcn@latest add @cupertinoui/dialog
Alertalert-dialogComponent

A macOS 27 alert: a narrow glass panel with a bold title, message and capsule buttons.

@cupertinoui/macos-theme@cupertinoui/button@base-ui/react
npx shadcn@latest add @cupertinoui/alert-dialog
SheetsheetComponent

A panel that slides in from an edge of the window.

@cupertinoui/macos-themelucide-react@base-ui/react
npx shadcn@latest add @cupertinoui/sheet
PopoverpopoverComponent

Rich content in a glass bubble attached to a control.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/popover
TooltiptooltipComponent

A small label that explains a control on hover.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/tooltip
WindowwindowComponent

The window frame: corner radius, shadow, traffic lights, the inactive state, dragging, resizing, and minimizing into the Dock.

@cupertinoui/macos-themelucide-react
npx shadcn@latest add @cupertinoui/window
DockdockComponent

The Liquid Glass shelf of app icons with magnification, running indicators, badges, labels and auto-hide. Windows minimize into it.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/dock
Grouped Formgrouped-formComponent

The System Settings layout: titled sections of rounded groups, each row a label and a control.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/grouped-form
InspectorinspectorComponent

An inspector pane like Xcode's or Pages': sections of right-aligned labels beside small controls.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/inspector
Icon Tileicon-tileComponent

The colored rounded-square icons used in System Settings and other lists.

@cupertinoui/macos-themeclass-variance-authority
npx shadcn@latest add @cupertinoui/icon-tile
AvataravatarComponent

A round picture of a person, with initials on the macOS contact gradient as a fallback.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/avatar
ChartchartComponent

shadcn/ui's Recharts charts, restyled after Swift Charts: secondary axis labels, hairline grids, round markers and a glass tooltip.

@cupertinoui/macos-themerecharts
npx shadcn@latest add @cupertinoui/chart
ToggletoggleComponent

A button that stays pressed, like Bold in a format bar.

@cupertinoui/macos-theme@base-ui/reactclass-variance-authority
npx shadcn@latest add @cupertinoui/toggle
Toggle Grouptoggle-groupComponent

Toggles in a row: one of several, or any number with multiple.

@cupertinoui/macos-theme@cupertinoui/toggle@base-ui/reactclass-variance-authority
npx shadcn@latest add @cupertinoui/toggle-group
Button Groupbutton-groupComponent

Buttons and fields joined into one control, like the + and − buttons under a list.

@cupertinoui/macos-theme@cupertinoui/separator@base-ui/reactclass-variance-authority
npx shadcn@latest add @cupertinoui/button-group
FieldfieldComponent

Form layout: a label, the control, a description and errors, in groups and fieldsets.

@cupertinoui/macos-theme@cupertinoui/label@cupertinoui/separatorclass-variance-authority
npx shadcn@latest add @cupertinoui/field
Input Groupinput-groupComponent

A text field with icons, text or buttons inside it.

@cupertinoui/macos-theme@cupertinoui/button@cupertinoui/input@cupertinoui/textareaclass-variance-authority
npx shadcn@latest add @cupertinoui/input-group
OTP Inputinput-otpComponent

A verification code field with one box per character, on Base UI's OTP Field.

@cupertinoui/macos-theme@base-ui/reactlucide-react
npx shadcn@latest add @cupertinoui/input-otp
Native Selectnative-selectComponent

The browser's own select, dressed as a macOS pop-up button.

@cupertinoui/macos-themelucide-react
npx shadcn@latest add @cupertinoui/native-select
Combo BoxcomboboxComponent

A text field that filters a menu of choices as you type.

@cupertinoui/macos-theme@cupertinoui/button@cupertinoui/input-group@base-ui/reactlucide-react
npx shadcn@latest add @cupertinoui/combobox
CalendarcalendarComponent

The macOS graphical date picker: today in red, the chosen day on an accent circle.

@cupertinoui/macos-theme@cupertinoui/buttonlucide-reactreact-day-picker
npx shadcn@latest add @cupertinoui/calendar
AlertalertComponent

An inline callout in a pane: a tinted box with a symbol, a title and a description.

@cupertinoui/macos-themeclass-variance-authority
npx shadcn@latest add @cupertinoui/alert
BadgebadgeComponent

A small capsule: an accent label, a grey count or the red badge of a Dock icon.

@cupertinoui/macos-theme@base-ui/reactclass-variance-authority
npx shadcn@latest add @cupertinoui/badge
SpinnerspinnerComponent

The macOS spinning progress indicator: twelve spokes that turn a step at a time.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/spinner
SkeletonskeletonComponent

A grey placeholder that pulses while content loads.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/skeleton
EmptyemptyComponent

The empty state of a list or pane: a large grey symbol, a title and a hint.

@cupertinoui/macos-themeclass-variance-authority
npx shadcn@latest add @cupertinoui/empty
ToasttoastComponent

macOS notifications: glass banners at the top right that slide in and stack.

@cupertinoui/macos-theme@cupertinoui/button@cupertinoui/spinner@base-ui/reactlucide-react
npx shadcn@latest add @cupertinoui/toast
BreadcrumbbreadcrumbComponent

A path like Finder's path bar: small icons and names, separated by chevrons.

@cupertinoui/macos-theme@base-ui/reactlucide-react
npx shadcn@latest add @cupertinoui/breadcrumb
PaginationpaginationComponent

Page links: borderless, with the current page filled with the accent color.

@cupertinoui/macos-theme@cupertinoui/buttonlucide-react
npx shadcn@latest add @cupertinoui/pagination
Navigation Menunavigation-menuComponent

Site navigation with menus that morph from one to the next, on the menu material.

@cupertinoui/macos-theme@base-ui/reactclass-variance-authoritylucide-react
npx shadcn@latest add @cupertinoui/navigation-menu
CommandcommandComponent

A command palette in the style of Spotlight, built on cmdk.

@cupertinoui/macos-theme@cupertinoui/dialogcmdklucide-react
npx shadcn@latest add @cupertinoui/command
CardcardComponent

A macOS box: a rounded panel with a hairline edge, a header, content and a footer.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/card
AccordionaccordionComponent

Disclosure sections like Finder's Get Info window, with triangles that turn as they open.

@cupertinoui/macos-theme@base-ui/reactlucide-react
npx shadcn@latest add @cupertinoui/accordion
CollapsiblecollapsibleComponent

A section that shows and hides its content with a height animation.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/collapsible
CarouselcarouselComponent

Slides you swipe or step through with round arrow buttons, built on Embla.

@cupertinoui/macos-theme@cupertinoui/buttonembla-carousel-reactlucide-react
npx shadcn@latest add @cupertinoui/carousel
Aspect Ratioaspect-ratioComponent

Keeps content, such as an image, at a width-to-height ratio.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/aspect-ratio
ItemitemComponent

A row of a list: an icon or picture, a title and description, and actions at the end.

@cupertinoui/macos-theme@cupertinoui/separator@base-ui/reactclass-variance-authority
npx shadcn@latest add @cupertinoui/item
KbdkbdComponent

Key caps for keyboard shortcuts: ⌘, ⇧, ⌥, ⌃ and letters.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/kbd
TabletableComponent

A plain table styled as a macOS list: grey column titles, stripes and an accent selected row.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/table
Tree Viewtree-viewComponent

An outline of rows that open and close with disclosure triangles, with arrow-key navigation and focused and unfocused selection.

@cupertinoui/macos-themelucide-react
npx shadcn@latest add @cupertinoui/tree-view
Scroll Areascroll-areaComponent

A scrolling region with macOS overlay scrollers that appear while you scroll.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/scroll-area
ResizableresizableComponent

A split view: panels with dividers to drag, like Mail's message list and preview.

@cupertinoui/macos-themereact-resizable-panels
npx shadcn@latest add @cupertinoui/resizable
Code Blockcode-blockComponent

Code with syntax colors in SF Mono, a title, line numbers and a copy button.

@cupertinoui/macos-theme@cupertinoui/buttonclass-variance-authoritylucide-reactshiki
npx shadcn@latest add @cupertinoui/code-block
Hover Cardhover-cardComponent

A preview that appears while the pointer rests on a link, on the popover's glass.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/hover-card
DrawerdrawerComponent

A panel that slides in from an edge and can be swiped away.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/drawer
DirectiondirectionComponent

Sets left-to-right or right-to-left for the Base UI parts inside.

@cupertinoui/macos-theme@base-ui/react
npx shadcn@latest add @cupertinoui/direction
BubblebubbleComponent

Message bubbles as in Messages: blue for what you send, grey for what you receive.

@cupertinoui/macos-theme@base-ui/reactclass-variance-authority
npx shadcn@latest add @cupertinoui/bubble
MessagemessageComponent

A message with its sender, avatar and footer, holding one or more bubbles.

@cupertinoui/macos-theme
npx shadcn@latest add @cupertinoui/message
Message Scrollermessage-scrollerComponent

A transcript that keeps the newest message in view, with a button back to it.

@cupertinoui/macos-theme@cupertinoui/button@shadcn/reactlucide-react
npx shadcn@latest add @cupertinoui/message-scroller
AttachmentattachmentComponent

A file in a message: its icon or picture, name and size, with an upload state.

@cupertinoui/macos-theme@cupertinoui/button@base-ui/reactclass-variance-authority
npx shadcn@latest add @cupertinoui/attachment
MarkermarkerComponent

A note between messages: a date, a status or a divider.

@cupertinoui/macos-theme@base-ui/reactclass-variance-authority
npx shadcn@latest add @cupertinoui/marker
TracetraceComponent

The steps an assistant takes, with status and details that unfold.

@cupertinoui/macos-theme@cupertinoui/collapsiblelucide-react
npx shadcn@latest add @cupertinoui/trace
QuestionnairequestionnaireComponent

Questions asked one at a time, with choices, text answers and progress.

@cupertinoui/macos-theme@cupertinoui/button@shadcn/reactlucide-react
npx shadcn@latest add @cupertinoui/questionnaire
Sign Inlogin-01Block

A sign-in window with email and password, a remember-me checkbox and a password-reset confirmation.

@cupertinoui/macos-theme@cupertinoui/avatar@cupertinoui/button@cupertinoui/checkbox@cupertinoui/icon-tile@cupertinoui/input@cupertinoui/label@cupertinoui/windowlucide-react
npx shadcn@latest add @cupertinoui/login-01
Preferencespreferences-01Block

An app's Settings window: a tabs switches between General, Appearance and Notifications, each a grouped form of switches, pop-up buttons and a slider.

@cupertinoui/macos-theme@cupertinoui/grouped-form@cupertinoui/select@cupertinoui/slider@cupertinoui/switch@cupertinoui/tabs@cupertinoui/window
npx shadcn@latest add @cupertinoui/preferences-01
Savesave-panel-01Block

A save dialog with a file name, a folder pop-up, optional tags, and Cancel and Save.

@cupertinoui/macos-theme@cupertinoui/button@cupertinoui/input@cupertinoui/label@cupertinoui/select@cupertinoui/window
npx shadcn@latest add @cupertinoui/save-panel-01
Reminder Listreminders-01Block

A short reminder list you can search, check off and add to.

@cupertinoui/macos-theme@cupertinoui/button@cupertinoui/checkbox@cupertinoui/input@cupertinoui/search-field@cupertinoui/windowlucide-react
npx shadcn@latest add @cupertinoui/reminders-01
Feedbackfeedback-01Block

A feedback window with a topic, a subject, a message and a short thank-you after sending.

@cupertinoui/macos-theme@cupertinoui/button@cupertinoui/checkbox@cupertinoui/icon-tile@cupertinoui/input@cupertinoui/label@cupertinoui/select@cupertinoui/textarea@cupertinoui/windowlucide-react
npx shadcn@latest add @cupertinoui/feedback-01