StorybookGitHub

Components

Installable UI primitives and components.

Accordion
A vertically stacked set of interactive headings that each reveal a section of content.
Alert
Displays a callout for user attention, with optional destructive styling.
Alert Dialog
A modal dialog that interrupts the user with important content and expects a response.
Aspect Ratio
Displays content within a fixed, desired width-to-height ratio.
Attachment
Displays a file, image, or upload as a card with media, title, description, and actions.
Avatar
An image element with a fallback for representing a user or entity.
Badge
Displays a badge or a component that looks like a badge.
Breadcrumb
Displays the path to the current resource using a hierarchy of links.
Bubble
A chat message bubble with alignment, color variants, and an optional reactions badge.
Button
A polymorphic button with variants, sizes, icons, and a CTA group helper.
Button Group
Groups related buttons together with consistent styling, orientation, and separators.
Calendar
A date field component that allows users to enter and edit dates, and navigate by month and year.
Card
Displays a card with header, content, and footer.
Carousel
A carousel of slides with previous/next controls and keyboard navigation.
Chart
A themeable wrapper around Unovis for building bar, line, and area charts with tooltips and legends.
Checkbox
A control that allows the user to toggle between checked and not checked.
Collapsible
An interactive component which expands and collapses a panel of content.
Combobox
An autocomplete input that filters a searchable list of options in a popover.
Command
Command menu for search and quick actions.
Container
Constrains content to a max width and centers it with responsive side padding.
Context Menu
Displays a menu at the pointer, triggered by a right click.
Date Picker
A popover-driven calendar for picking a single date from a button-style trigger.
Dialog
A window overlaid on either the primary window or another dialog window.
Drawer
A panel that slides in from an edge of the screen, built on Vaul.
Dropdown Menu
Displays a menu of actions or options triggered by a button.
Empty
Displays an empty state placeholder with icon, title, description, and actions.
Field
Combine labels, controls, descriptions, and errors into accessible form fields.
Form
Composable, validated form fields built on vee-validate with labels and error messages.
Heading
A polymorphic heading element with configurable level, size, weight, and tone.
Hover Card
Displays content in a popover when a trigger is hovered.
Icons
A namespaced icon registry with a renderer component, grid layout, and searchable gallery.
Input
Displays a form input field or a component that looks like an input field.
Input Group
Groups an input with addons, icons, and inline actions.
Input OTP
Accessible one-time-password input with grouped, animated character slots.
Item
A flexible layout primitive for rows of content with media, title, description, and actions.
Kbd
Displays a keyboard key or shortcut.
Label
Renders an accessible label associated with controls.
Link Spread
An invisible full-coverage link overlay that makes an entire card or row clickable.
Link Text
A styled, polymorphic text link with tone, underline, and size variants.
Logos
A typed logo component with size variants and a brand logo set.
Marker
A compact inline marker for labeling content, with an optional icon and separator style.
Menubar
A horizontal application menu bar with nested dropdown menus, like native desktop menus.
Message
A chat message layout primitive with avatar, header, content, and footer slots.
Message Scroller
An auto-scrolling viewport for chat-style message lists that tracks the live edge and lets users scroll away and back.
Native Select
A styled wrapper around the native HTML select element.
Navigation Menu
A collection of links for site or application navigation, with optional flyout content.
Number Field
An input for entering a number, with increment and decrement controls.
Pagination
Navigation for paged content, with first, previous, next, last, and page-number controls.
Popover
Displays rich content in a portal, anchored to a trigger element.
Progress
Displays an indicator showing the completion progress of a task.
Radio Group
A set of checkable buttons where only one item can be checked at a time.
Range Calendar
A calendar for selecting a date range, such as a start and end date.
Resizable
Accessible resizable panel groups and layouts.
Scroll Area
Augments native scroll functionality for custom, cross-browser styling.
Scroll Fade
A scrollable container that fades its edges to hint at overflowing content.
Select
Displays a list of options for the user to pick from, triggered by a button.
Separator
Visually or semantically separates content.
Sheet
Extends the Dialog component to display content that complements the main content of the screen.
Shimmer
An animated shimmering text or inline-content effect.
Sidebar
A composable, themeable sidebar with collapsible, floating, and inset variants.
Skeleton
Use to show a placeholder while content is loading.
Slider
An input where the user selects a value from within a given range.
Sonner
An opinionated toast component, themed to match the design system.
Spinner
A loading indicator that spins an icon with accessible status semantics.
Stepper
A set of steps that are used to indicate progress through a multi-step process.
Switch
A control that allows the user to toggle between on and off states.
Table
A responsive table component for displaying tabular data.
Tabs
A set of layered sections of content—known as tab panels—that are displayed one at a time.
Tags Input
An input field for creating and managing a list of tags.
Text
A flexible typography component for rendering body text with consistent sizing, weight, and tone.
Textarea
Displays a form textarea or a component that looks like a textarea.
Toggle
A two-state button that can be either on or off.
Toggle Group
A set of two-state buttons that can be toggled on or off, grouped together.
Tooltip
A popup that displays information related to an element when it receives keyboard focus or the mouse hovers over it.