Skip to Content
Docs

Components

The design-system components and colour tokens a page may use.

View as Markdown

import { Button, ... } from "@0x1audio/design-system"

Only these components and tokens below the hero; no hex colours; one filled Button per view; design empty, working, done and error states; check light and dark.

The same index the MCP tool ui_components returns, so an agent and this page never disagree.

Actions

ComponentPropsUse it for
ButtonclassName, variant, size, ...propsvariant = default (filled) · secondary · outline · ghost · destructive · outline-destructive · link; size = sm · default · lg · icon · icon-sm.
TabsclassName, ...props (TabsPrimitive.Root.Props)a segmented control for switching what a list shows (Sounds, MIDI, Other).

Inputs

ComponentPropsUse it for
InputclassName, type, ...props (React.ComponentProps<"input">)one field look: bg-field, a hairline border-input, shadow-xs, a stronger border on hover, the ink ring on focus.
TextareaclassName, ...props (React.ComponentProps<"textarea">)one field look: bg-field, a hairline border-input, shadow-xs, a stronger border on hover, the ink ring on focus.
Comboboxitems: readonly ComboboxOption[], value: string, onValueChange: (value: string) => void, placeholder?: string, empty?: stringone field look: bg-field, a hairline border-input, shadow-xs, a stronger border on hover, the ink ring on focus.
InputOTPid?: string, disabled?: boolean, onValueChange?: (value: string) => voidone field look: bg-field, a hairline border-input, shadow-xs, a stronger border on hover, the ink ring on focus.
SearchFieldvalue: string, onChange: (value: string) => void, label: string, placeholder?: string, size?: keyof typeof searchSizes, className?: stringsearch in a toolbar.
CheckboxclassName, ...props (CheckboxPrimitive.Root.Props)as named.
SwitchclassName, ...props (SwitchPrimitive.Root.Props)as named.
SliderclassName, thumbLabels, valueText, origin, ...propsas named.
FolderFieldvalue: string, onValueChange: (value: string) => void, onBrowse: () => void, placeholder?: string, disabled?: boolean, browseLabel?: string, className?: stringas named.

Structure

ComponentPropsUse it for
PageSectiontitle, description, actions, className, children, ...propsa titled part of a page, with at most one action (usually "See all").
CardclassName, ...props (React.ComponentProps<"div">)a raised surface for a group of related things.
SeparatorclassName, orientation, ...props (SeparatorPrimitive.Props)between groups in a menu or a toolbar.
IconTilesize, tone, className, ...propsan icon on a plate (empty states, step lists, settings hubs).
AppIconname: string, accent?: string, icon?: string, size?: AppIconSize, className?: stringthe tile that stands for an app, everywhere (desktop, web, docs).
Avatarname: string, src?: string, size?: keyof typeof avatarSizes, className?: stringa person, as the first letter of their name or email on a bg-secondary disc, or their photo.

Feedback

ComponentPropsUse it for
EmptyStateicon, title, description, actions, pixel, className, children, ...propswhat will appear here, and the first step (at most two actions).
Callouttone, icon, title, actions, className, children, ...propsa message inside the page.
SkeletonclassName, ...props (React.ComponentProps<"div">)loading, in the shape of the final layout.
SpinnerclassName, ...props (ComponentProps<"span">)inside a button that is working ("Installing…"), or a one-line status.
ProgressclassName, pulse, indeterminate, value, ...propsa job with a known size (value) or not (indeterminate).
BadgeclassName, tone, ...propsa short status in a row or card (tone).
Toastertheme, position, ...props (ToasterProps)bottom-right of the page above the player strip, one line as wide as it needs, one optional action (usually Undo, Try again or Show in Finder) drawn as an…
Tooltiplabel: ReactNode, shortcut?: string, side?: "top" | "bottom" | "left" | "right", disabled?: boolean, children: ReactElement, className?: stringan icon button's name and key on hover and focus ("Show details ⌥⌘I"), ink on the page colour, centred under it.
KbdclassName, ...props (React.ComponentProps<"kbd">)a key in a hint or a menu.
ListSummaryclassName, ...props (React.ComponentProps<"p">)a list's closing line, "Showing 3 of 40 sounds".

Audio

ComponentPropsUse it for
Waveformlabel: string, detail?: string, wave?: Wave | null, empty: string, className?: stringthe Library outside the desktop (cloud web, app pages).
LibraryDialogopen: boolean, onOpenChange: (open: boolean) => void, onPick: (paths: string[]) => void, multiple?: boolean, disabled?: booleanthe Library outside the desktop (cloud web, app pages).
Dropzonetitle?: ReactNode, description?: ReactNode, dragging?: boolean, disabled?: boolean, multiple?: boolean, onChoose?: (paths: string[]) => void, extra?: ReactNode, className?: stringthe Library outside the desktop (cloud web, app pages).
ActionFormaction: string | ActionSpec, host?: ActionHost, openWith?: string[], onSettled?: (outcome: Settled) => void, className?: stringgenerated app UIs.
AppHeroaccent?: string, icon?: string, wordmark: ReactNode, description?: ReactNode, art?: ReactNode, className?: stringgenerated app UIs.

Colour tokens

Use them as bg-<token>, text-<token>, border-<token>. Never a hex colour.

accent · accent-foreground · background · border · border-strong · brand · card · card-foreground · chrome · destructive · field · field-hover · foreground · hover · input · lit · muted · muted-foreground · popover · popover-foreground · pressed · primary · primary-foreground · ring · scrim · secondary · secondary-foreground · secondary-hover · secondary-pressed · selected · subtle-foreground · success · warning · warning-foreground · wave

On this page