Display
Presentational atoms for surfacing information, status, and identity. No interactivity required.
@codefast/ui/badgeCompact label for status, category, or count. Four variants cover most use cases.
@codefast/ui/alertContextual banner with icon, title, and body. Supports default and destructive variants.
@codefast/ui/avatarUser icon with image support and initials fallback. Compose with AvatarGroup for stacks.
@codefast/ui/spinnerIndeterminate loading indicator. Wrap children — shown when loading is false.
@codefast/ui/aspect-ratioLocks content to a specific width-to-height ratio. Useful for images, videos, and embeds.
@codefast/ui/carouselEmbla-powered slide carousel with prev/next controls. Supports horizontal and vertical axes.
@codefast/ui/chartRecharts wrapper with consistent theming, tooltip, and legend. Supports all chart types.
@codefast/ui/itemRow layout for lists. Composes media, content, title, description, and action slots.
@tanstack/react-table · TableA sortable, filterable, paginated table built with TanStack Table and the Table primitives.
Tailwind utility classesStyled headings, paragraphs, lists, blockquotes, and tables built from Tailwind utility classes.
Form
Input primitives and controls for collecting user data. All keyboard-accessible and screen-reader ready.
@codefast/ui/input-groupComposes an input with leading/trailing addons, text labels, and icon buttons.
@codefast/ui/input-numberNumeric input with increment/decrement controls, min/max/step, and format options.
@codefast/ui/input-otpOne-time password input with slot groups and separator. Built on input-otp.
@codefast/ui/input-passwordPassword field with a show/hide toggle. Extends Input Group with no extra markup.
@codefast/ui/input-searchSearch field with a leading icon and a one-click clear button. Controlled or uncontrolled.
@codefast/ui/textareaMultiline text input. Pair with Label and field utilities for accessible forms.
@codefast/ui/selectAccessible dropdown selector. Supports groups, disabled options, and custom triggers.
@codefast/ui/native-selectStyled HTML select element with option groups. Zero JS — best for mobile forms.
@codefast/ui/checkboxBinary control with indeterminate state. Controlled or uncontrolled via onCheckedChange.
@codefast/ui/checkbox-groupMulti-select group of checkboxes sharing a value array. Supports disabled items.
@codefast/ui/checkbox-cardsCard-style multi-select. Each card has a built-in checkbox with highlighted selected state.
@codefast/ui/radioSingle native radio input. Use Radio Group for accessible keyboard-navigable groups.
@codefast/ui/radio-groupSingle-selection group. Use value + onValueChange for controlled behaviour.
@codefast/ui/radio-cardsCard-style single-select. Each card highlights when selected, ideal for plan pickers.
@codefast/ui/switchToggle control for boolean settings. Fires onCheckedChange with the new boolean value.
@codefast/ui/sliderRange input with keyboard support. Supports min, max, step, and multiple thumbs.
@codefast/ui/togglePressable button with active/inactive state. Use ToggleGroup for exclusive selection.
@codefast/ui/toggle-groupSingle or multiple selection group of toggle buttons. Ideal for toolbars and alignment pickers.
@codefast/ui/calendarFull calendar built on @daypicker/react. Supports single, multiple, and range selection.
Calendar · PopoverA date and date-range picker composed from a Popover and the Calendar component.
@codefast/ui/fieldLayout wrapper that composes label, description, error, and control in vertical or horizontal orientation.
@codefast/ui/formReact Hook Form integration with accessible label, description, and error message binding.
Overlay
Floating UI: modals, popovers, menus, and tooltips. All trap focus and close on Escape.
@codefast/ui/dialogModal window with focus trap, backdrop blur, and accessible close. Use AlertDialog for destructive confirms.
@codefast/ui/tooltipHover label with delay and side placement control. Supports rich content including Kbd.
@codefast/ui/popoverNon-modal floating panel anchored to a trigger. Use for settings panels and pickers.
@codefast/ui/alert-dialogBlocking confirmation modal requiring an explicit decision. Backs the browser back button.
@codefast/ui/commandCommand palette with fuzzy search, groups, keyboard shortcuts, and empty state.
@codefast/ui/drawerBottom sheet drawer built on Vaul. Supports drag-to-dismiss and scale background.
@codefast/ui/hover-cardRich preview card that appears on hover. Ideal for user profiles and link previews.
@codefast/ui/sheetSide-anchored panel (left, right, top, or bottom). Useful for settings and detail drawers.
Feedback
Status indicators, confirmations, and loading states that communicate async operations to users.
@codefast/ui/progressDeterminate progress bar. Pass value 0–100. Colour via className on the indicator slot.
@codefast/ui/progress-circleCircular progress indicator with optional value label and animation. Multiple sizes.
@codefast/ui/skeletonShimmer placeholder for any shape of content — cards, text lines, avatars.
@codefast/ui/sonnerToast notifications via Sonner. Supports success, error, warning, and custom durations.
Layout
Structural components for organising and containing content. Compose freely with any child.
@codefast/ui/cardElevated surface for grouping related content. Compose Header, Content, and Footer slots freely.
@codefast/ui/accordionExpandable sections with smooth animation. Supports single or multiple open items.
@codefast/ui/separatorSemantic horizontal or vertical divider. Renders as hr with role=separator.
@codefast/ui/scroll-areaCustom-styled scrollbar that matches your design system. Hides native OS scrollbars.
@codefast/ui/collapsibleTogglable content section with animated expand/collapse. Controlled or uncontrolled.
@codefast/ui/resizableDrag-to-resize panel groups. Supports horizontal, vertical, and nested layouts.