Skip to content

Components

58 components you copy into your project and own — real @nisli/ui, ported from shadcn/ui. Install any of them with npx @nisli/ui add <name>.

accordion →

A vertically stacked set of collapsible sections. Port of shadcn/ui accordion.

alert →

Displays a callout for user attention. Port of shadcn/ui alert.

alert-dialog →

A modal dialog that interrupts the user with an important choice. Port of shadcn/ui alert-dialog.

aspect-ratio →

Displays content within a desired aspect ratio. Port of shadcn/ui aspect-ratio.

attachment →

A file/attachment chip with upload-state, size, and orientation variants. Port of shadcn/ui attachment.

avatar →

An image element with a fallback for representing a user. Port of shadcn/ui avatar.

badge →

Displays a badge or a component that looks like a badge. Port of shadcn/ui badge.

breadcrumb →

Displays the path to the current resource using a hierarchy of links. Port of shadcn/ui breadcrumb.

bubble →

A chat bubble (the coloured message body) with variants and alignment. Port of shadcn/ui bubble.

button →

Displays a button. Port of shadcn/ui button.

button-group →

Groups related buttons and controls together. Port of shadcn/ui button-group.

calendar →

A date-picker calendar grid with single/range selection and keyboard nav. Original behavior; visuals from shadcn/ui calendar.

card →

Displays a card with header, content, and footer. Port of shadcn/ui card.

carousel →

A slide carousel with drag, prev/next, and keyboard nav. Port of shadcn/ui carousel (embla).

checkbox →

A native checkbox styled with pure CSS. Port of shadcn/ui checkbox.

collapsible →

An interactive component that expands/collapses a panel. Port of shadcn/ui collapsible.

combobox →

An autocomplete select — a Popover + Command composition with single/multiple selection. Classic shadcn/ui combobox pattern.

command →

A command palette: type-to-filter list with keyboard highlight and selection. Visuals from shadcn/ui command; cmdk-convention behavior, zero-dep.

context-menu →

A menu opened by right-clicking, positioned at the pointer. Port of shadcn/ui context-menu.

dialog →

A modal dialog overlaying the page. Port of shadcn/ui dialog.

direction →

Provides an LTR or RTL writing direction to descendant components. Port of shadcn/ui direction.

drawer →

A draggable edge panel (bottom by default) with drag-to-dismiss. Port of shadcn/ui drawer (vaul).

dropdown-menu →

A menu of actions or choices triggered by a button. Port of shadcn/ui dropdown-menu.

empty →

An empty-state block with icon, title, description, and actions. Port of shadcn/ui empty.

form-field →

The field family: a label + control + description + error composition helper that wires ids and aria, plus FieldGroup/FieldSet/FieldLegend/FieldContent/FieldLabel/FieldTitle/FieldSeparator for grouped and responsive layouts. Port of shadcn/ui field.

hover-card →

A pointer-hover card that reveals a floating preview. Port of shadcn/ui hover-card.

input →

A native form input with theme styling. Port of shadcn/ui input.

input-group →

Combines inputs, textareas, buttons, and addons into one control group. Port of shadcn/ui input-group.

input-otp →

A one-time-password input: a single native input overlaying slot cells. Port of shadcn/ui input-otp.

item →

A flexible list row with media, content, actions, and separators. Port of shadcn/ui item.

kbd →

Displays keyboard input or a group of keys. Port of shadcn/ui kbd.

label →

Renders an accessible label associated with controls. Port of shadcn/ui label.

marker →

A styled marker row with icon and content parts. Port of shadcn/ui marker.

menubar →

A horizontal bar of menus (like an application menu). Port of shadcn/ui menubar.

message →

A chat message row with avatar/content/header/footer. Port of shadcn/ui message.

message-scroller →

A scroll container for chat messages with stick-to-bottom autoscroll and a scroll-to-end button. Port of shadcn/ui message-scroller.

navigation-menu →

A non-modal menu bar of triggers and content panels. Port of shadcn/ui navigation-menu.

pagination →

Pagination with page navigation, previous/next, and ellipsis. Port of shadcn/ui pagination.

popover →

Floating content anchored to a trigger. Port of shadcn/ui popover.

progress →

Displays an indicator showing completion progress of a task. Port of shadcn/ui progress.

radio-group →

A set of native radio buttons where only one can be selected. Port of shadcn/ui radio-group.

resizable →

Resizable panel groups with draggable handles. Port of shadcn/ui resizable (react-resizable-panels).

scroll-area →

A themed scroll container with native scrolling and a thin styled scrollbar. Port of shadcn/ui scroll-area.

select →

A native select styled like shadcn/ui's native-select, with a themeable chevron.

separator →

Visually or semantically separates content. Port of shadcn/ui separator.

sheet →

A dialog that slides in from a screen edge. Port of shadcn/ui sheet.

sidebar →

A composable, collapsible sidebar with a provider, frame variants, and a full menu/group part family. Port of shadcn/ui sidebar.

skeleton →

A placeholder to show while content is loading. Port of shadcn/ui skeleton.

slider →

A native range slider styled to match shadcn/ui slider (single thumb).

spinner →

An animated loading status icon. Port of shadcn/ui spinner.

switch →

A native toggle switch styled with pure CSS. Port of shadcn/ui switch.

table →

A responsive table built from real table elements. Port of shadcn/ui table.

tabs →

A set of layered sections of content, displayed one at a time. Port of shadcn/ui tabs.

textarea →

A native multi-line text input with theme styling. Port of shadcn/ui textarea.

toast →

A toaster stack + toast() function, sonner-style. Original zero-dep implementation.

toggle →

A two-state button that can be on or off. Port of shadcn/ui toggle.

toggle-group →

A set of two-state buttons with single or multiple selection. Port of shadcn/ui toggle-group.

tooltip →

A floating label with an anchor-pointing arrow, shown on hover/focus. Port of shadcn/ui tooltip.

Primitives

Behavioral building blocks the components depend on — keyboard navigation, dismissal, floating positioning. Not visual components; installed automatically as dependencies, or on their own.