@skrewww
Open-source React and TypeScript design system with a token-driven foundation, live documentation, and machine-readable component contracts for coding agents.
Install this registry
npx shadcn@latest add https://skrewww.com/r/registry.json pnpm dlx shadcn@latest add https://skrewww.com/r/registry.json bunx shadcn@latest add https://skrewww.com/r/registry.json curl -s https://skrewww.com/r/registry.json Components
56 totalUniversal Primitive/Semantic/Brand tokens, component-tier defaults required by distributed components, Shape/Surface mode overrides, and the shared .sr-only ac…
npx shadcn@latest add https://skrewww.com/r/foundation.json Button is a primary interactive trigger for user actions — submit, confirm, navigate, or initiate a process.
npx shadcn@latest add https://skrewww.com/r/button.json Card is a general-purpose content container grouping related information with a clear visual boundary.
npx shadcn@latest add https://skrewww.com/r/card.json Text Input is a single-line text entry for short, free-form data such as names, emails, or search terms.
npx shadcn@latest add https://skrewww.com/r/text-input.json Form Field is a shared field wrapper for label, description, required indicator, and validation placement — not a visual input.
npx shadcn@latest add https://skrewww.com/r/form-field.json Validation Message is inline typed feedback paired with a field — error, warning, success, or info — with icon and text.
npx shadcn@latest add https://skrewww.com/r/validation-message.json Spinner is an indeterminate loading indicator for operations without a meaningful completion percentage.
npx shadcn@latest add https://skrewww.com/r/spinner.json Divider is a thin separator line between content sections — horizontal or vertical, semantic or decorative.
npx shadcn@latest add https://skrewww.com/r/divider.json Link is semantic navigational text styled as inline or standalone links — not for primary actions.
npx shadcn@latest add https://skrewww.com/r/link.json Checkbox is a native checkbox for independent or multi-select choices, including indeterminate group states.
npx shadcn@latest add https://skrewww.com/r/checkbox.json React progress bar for uploads and background tasks, with measured value/max progress, an indeterminate mode, a visible label, and optional percentage text.
npx shadcn@latest add https://skrewww.com/r/progress-bar.json Skeleton is temporary placeholder shapes that preserve layout while known content is loading.
npx shadcn@latest add https://skrewww.com/r/skeleton.json Radio is a native radio button for a single option inside a mutually exclusive group.
npx shadcn@latest add https://skrewww.com/r/radio.json Switch is a boolean settings control for immediate on/off changes — not a substitute for Checkbox in forms.
npx shadcn@latest add https://skrewww.com/r/switch.json Textarea is a multi-line native textarea for longer free-text content, composed with FormField for label and validation.
npx shadcn@latest add https://skrewww.com/r/textarea.json Pagination is a paged navigation control with Previous/Next boundaries, numbered pages, and optional ellipsis.
npx shadcn@latest add https://skrewww.com/r/pagination.json Avatar is a circular visual identity for a user or entity with image, initials, or icon fallback.
npx shadcn@latest add https://skrewww.com/r/avatar.json Breadcrumb is an ordered hierarchical trail showing location with navigable ancestors and a current-page indicator.
npx shadcn@latest add https://skrewww.com/r/breadcrumb.json Radio Group is an accessible grouping layer for mutually exclusive radio options with legend, helper text, and errors.
npx shadcn@latest add https://skrewww.com/r/radio-group.json Slider is a single-value control for selecting a number within min/max by dragging or keyboard-adjusting a thumb along a track.
npx shadcn@latest add https://skrewww.com/r/slider.json Stepper shows progress through a fixed, known-length, ordered sequence of named steps — a compound Stepper + Step API built against the verified live Navigatio…
npx shadcn@latest add https://skrewww.com/r/stepper.json Table is a native HTML table foundation with captions, headers, body rows, footers, cell alignment, responsive overflow, RTL support, print-friendly scrolling,…
npx shadcn@latest add https://skrewww.com/r/table.json Badge is a compact non-interactive label for status, classification, or numeric counts at a glance.
npx shadcn@latest add https://skrewww.com/r/badge.json Tag is a compact classification label for categories, filters, or user-applied values — distinct from read-only Badge status metadata.
npx shadcn@latest add https://skrewww.com/r/tag.json List Item is a single row inside a collection — avatar, title, description, metadata, and optional trailing content.
npx shadcn@latest add https://skrewww.com/r/list-item.json Timeline is a vertical, chronological event list built on Content/Timeline Item rows — Default outlined-ring or Highlighted solid-dot markers, connector suppre…
npx shadcn@latest add https://skrewww.com/r/timeline.json Empty State is a zero-content placeholder with title, description, and optional recovery actions for collections, search, or first-use flows.
npx shadcn@latest add https://skrewww.com/r/empty-state.json Alert is a persistent inline feedback block for contextual status tied to page content — not auto-dismissing.
npx shadcn@latest add https://skrewww.com/r/alert.json Toast is a transient floating notification for confirming actions or reporting short-lived events.
npx shadcn@latest add https://skrewww.com/r/toast.json Button Group joins related independent Buttons with shared outer chrome and a 2px divider gap — layout only; each Button keeps its own behavior.
npx shadcn@latest add https://skrewww.com/r/button-group.json Toggle Group is exclusive segmented selection (radiogroup) with joined chrome — Segmented Control is this presentation, not a separate component.
npx shadcn@latest add https://skrewww.com/r/toggle-group.json Accordion is a set of stacked collapsible sections for progressive disclosure, built from Accordion Item building blocks.
npx shadcn@latest add https://skrewww.com/r/accordion.json Tabs is a navigation pattern that switches between related in-context views using tablist/tab/tabpanel semantics and roving focus.
npx shadcn@latest add https://skrewww.com/r/tabs.json Search Field is a search-specific text field with leading magnifying-glass icon and optional clear action — built on shared text-input control behavior.
npx shadcn@latest add https://skrewww.com/r/search-field.json Credit Card Field is a compound UI control for card number, expiry, and CVC in one shell — visual pattern only, not a payment processor or PCI vault.
npx shadcn@latest add https://skrewww.com/r/credit-card-field.json Number Input is direct numeric entry with optional steppers and min/max/step — not currency, quantity business logic, or a Slider.
npx shadcn@latest add https://skrewww.com/r/number-input.json File Upload is a native file input with drag-and-drop dropzone, advisory validation, selected-file list, and multipart form submission — selection only, not ne…
npx shadcn@latest add https://skrewww.com/r/file-upload.json Popover is a non-modal floating panel for supplementary or lightly interactive content anchored to a trigger.
npx shadcn@latest add https://skrewww.com/r/popover.json Tooltip is a brief supplementary label for a trigger, shown on keyboard focus or pointer hover.
npx shadcn@latest add https://skrewww.com/r/tooltip.json Dialog is a modal overlay that interrupts workflow for focused attention, information, or a decision.
npx shadcn@latest add https://skrewww.com/r/dialog.json Drawer is an edge-anchored modal panel for supplementary settings, filters, or secondary forms.
npx shadcn@latest add https://skrewww.com/r/drawer.json Menu is a compact command surface for contextual actions — distinct from Select (form values) and Popover (supplementary content).
npx shadcn@latest add https://skrewww.com/r/menu.json Split Button joins one primary Button action with a related Menu trigger using shared outer chrome — composition only; Button and Menu keep their own APIs.
npx shadcn@latest add https://skrewww.com/r/split-button.json Calendar Day is a single selectable day cell inside a month calendar grid.
npx shadcn@latest add https://skrewww.com/r/calendar-day.json Calendar Grid is a composed month-view calendar with single-date or range selection and grid keyboard navigation.
npx shadcn@latest add https://skrewww.com/r/calendar-grid.json Select is a combobox-style single-select with a Popover listbox trigger and hidden native select for form submission.
npx shadcn@latest add https://skrewww.com/r/select.json Combobox is an editable searchable single-select with a filterable listbox — distinct from non-searchable Select and query-only Search Field.
npx shadcn@latest add https://skrewww.com/r/combobox.json Date Picker is a date-only field with editable D MMM YYYY text entry (en-GB) and calendar popover for single-date selection.
npx shadcn@latest add https://skrewww.com/r/date-picker.json Phone Number Field pairs a country/dial-code selector with a phone number input — UI pattern only, not SMS verification or carrier lookup.
npx shadcn@latest add https://skrewww.com/r/phone-number-field.json Tree View is a hierarchical, keyboard-navigable tree — file explorers, nested category browsers, org charts. Composes Content/Tree Item rows with roving-tabind…
npx shadcn@latest add https://skrewww.com/r/tree-view.json Data Table is an interactive data-table pattern composing Table with header sorting and external Pagination — no columns-config prop; the consumer writes their…
npx shadcn@latest add https://skrewww.com/r/data-table.json Bar Chart compares categories with vertical or horizontal bars — a single series by default, or several series grouped, stacked, or stacked to 100%. Static and…
npx shadcn@latest add https://skrewww.com/r/bar-chart.json Line Chart shows a trend across ordered categories — a single series by default, or several series as separate lines. Static and non-tabbable, with an optional…
npx shadcn@latest add https://skrewww.com/r/line-chart.json Area Chart shows magnitude over ordered categories with a filled area under each line — a single series by default, or several series overlapped, stacked, or s…
npx shadcn@latest add https://skrewww.com/r/area-chart.json Chart Card is a Card composed for a chart: an optional title/description/actions header, and a body that owns loading/empty/error presentation around a chart t…
npx shadcn@latest add https://skrewww.com/r/chart-card.json Chart Metric is a labeled value with an optional directional delta, for use above a chart or standalone — the delta's direction drives only its icon, never a c…
npx shadcn@latest add https://skrewww.com/r/chart-metric.json