n nisli
GitHub

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

A label + control + description + error composition helper that wires ids and aria. 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 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.