70+ ready-to-use components.
Built on Radix UI primitives with Tailwind CSS v4. Each component ships as a named sub-path import — no barrel files, no tree-shaking surprises, no config required.
- components
- 70
- live previews
- 70
- A–Z groups
- 16
A
6 componentsExpandable sections with smooth animation. Supports single or multiple open items.
Contextual banner with icon, title, and body. Supports default and destructive variants.
Blocking confirmation modal requiring an explicit decision. Backs the browser back button.
Locks content to a specific width-to-height ratio. Useful for images, videos, and embeds.
File/media card with upload states, three sizes, and horizontal or vertical orientations.
User icon with image support and initials fallback. Compose with AvatarGroup for stacks.
B
5 componentsCompact label for status, category, or count. Four variants cover most use cases.
Hierarchical location trail. Supports custom separators, ellipsis, and asChild links.
Chat message bubble with seven color variants, start/end alignment, and optional reaction pills.
Six variants and four sizes. Supports icons, loading state, and asChild composition.
Horizontal or vertical group that visually joins adjacent buttons into a single control.
C
10 componentsFull calendar built on @daypicker/react. Supports single, multiple, and range selection.
Elevated surface for grouping related content. Compose Header, Content, and Footer slots freely.
Embla-powered slide carousel with prev/next controls. Supports horizontal and vertical axes.
Recharts wrapper with consistent theming, tooltip, and legend. Supports all chart types.
Binary control with indeterminate state. Controlled or uncontrolled via onCheckedChange.
Card-style multi-select. Each card has a built-in checkbox with highlighted selected state.
Multi-select group of checkboxes sharing a value array. Supports disabled items.
Togglable content section with animated expand/collapse. Controlled or uncontrolled.
Command palette with fuzzy search, groups, keyboard shortcuts, and empty state.
D
5 componentsA sortable, filterable, paginated table built with TanStack Table and the Table primitives.
A date and date-range picker composed from a Popover and the Calendar component.
Modal window with focus trap, backdrop blur, and accessible close. Use AlertDialog for destructive confirms.
Bottom sheet drawer built on Vaul. Supports drag-to-dismiss and scale background.
E
1 componentsEmpty-state layout with media, title, description, and action slots.
F
2 componentsH
1 componentsRich preview card that appears on hover. Ideal for user profiles and link previews.
I
7 componentsText input with focus ring, disabled state, and file input styling.
Composes an input with leading/trailing addons, text labels, and icon buttons.
Numeric input with increment/decrement controls, min/max/step, and format options.
One-time password input with slot groups and separator. Built on input-otp.
Password field with a show/hide toggle. Extends Input Group with no extra markup.
Search field with a leading icon and a one-click clear button. Controlled or uncontrolled.
Row layout for lists. Composes media, content, title, description, and action slots.
K
1 componentsKeyboard shortcut display. Use KbdGroup to compose multi-key combos.
L
1 componentsAccessible form label that forwards htmlFor. Pairs with any form control.
M
4 componentsInline feed divider — a date, an unread line, or a section label as a plain, separator, or bordered row.
Chat message row pairing an avatar with a content column; mirrors for the current author.
Scroll manager for chat transcripts: follow-the-bottom, prepend preservation, anchored turns, and a scroll-to-edge button.
N
2 componentsStyled HTML select element with option groups. Zero JS — best for mobile forms.
P
4 componentsPage navigation with prev/next, ellipsis, and active page. Compose with your router.
Non-modal floating panel anchored to a trigger. Use for settings panels and pickers.
Determinate progress bar. Pass value 0–100. Colour via className on the indicator slot.
Circular progress indicator with optional value label and animation. Multiple sizes.
R
4 componentsSingle native radio input. Use Radio Group for accessible keyboard-navigable groups.
Card-style single-select. Each card highlights when selected, ideal for plan pickers.
Single-selection group. Use value + onValueChange for controlled behaviour.
Drag-to-resize panel groups. Supports horizontal, vertical, and nested layouts.
S
10 componentsCustom-styled scrollbar that matches your design system. Hides native OS scrollbars.
Accessible dropdown selector. Supports groups, disabled options, and custom triggers.
Semantic horizontal or vertical divider. Renders as hr with role=separator.
Side-anchored panel (left, right, top, or bottom). Useful for settings and detail drawers.
Composable application sidebar with collapsible groups, rail, and mobile sheet. Built for app shells.
Shimmer placeholder for any shape of content — cards, text lines, avatars.
Range input with keyboard support. Supports min, max, step, and multiple thumbs.
Toast notifications via Sonner. Supports success, error, warning, and custom durations.
Indeterminate loading indicator. Wrap children — shown when loading is false.
Toggle control for boolean settings. Fires onCheckedChange with the new boolean value.
T
7 componentsSemantic HTML table with styled header, body, footer, and caption slots.
Accessible tabbed interface. Automatic or manual activation via activationMode.
Multiline text input. Pair with Label and field utilities for accessible forms.
Pressable button with active/inactive state. Use ToggleGroup for exclusive selection.
Single or multiple selection group of toggle buttons. Ideal for toolbars and alignment pickers.
Hover label with delay and side placement control. Supports rich content including Kbd.
Styled headings, paragraphs, lists, blockquotes, and tables built from Tailwind utility classes.
Explore further
Ready to build?
Install the package, wire up the CSS, and start composing — or return home to see what codefast/ui offers.
pnpm add @codefast/ui