# sve-ui
> Styled, accessible Svelte 5 components built on Bits UI. No Tailwind and no config in the consumer project: install, import the stylesheet once, and theme with CSS variables. Light and dark out of the box.
## Usage rules
- Install with `pnpm add sve-ui`. Import `sve-ui/theme.css` ONCE at the app root; without it components render unstyled. The consumer project needs no Tailwind and no config.
- Single components are default imports: `Button, Input, Textarea, Label, Badge, Spinner, Text, Heading, Slider, Skeleton, Separator, Code`.
- Composite components are namespaces composed with dots: `Dialog.*, Select.*, Combobox.*, Card.*, Alert.*, Tabs.*, Accordion.*, Avatar.*, DropdownMenu.*, Popover.*, Tooltip.*, Switch.*, Checkbox.*, RadioGroup.*`.
- Overlays (Dialog/DropdownMenu/Popover/Tooltip/Select/Combobox) portal to
. Mirror the theme class (`dark`/`light`) onto so portaled content gets the right --sve-* tokens.
- Use a custom element as an overlay trigger via the Bits `child` snippet: `{#snippet child({ props })}{/snippet}`.
- Theme by overriding `--sve-*` CSS variables. Do not put Tailwind layout/margin utilities on sve-ui components; scoped styles win, so wrap them in a
instead.
- `Slider` uses `value` + `onValueChange` (not bind:value) and `thumbLabel` for an accessible name. `Switch`/`Checkbox` need `aria-label` when unlabelled. `Tooltip` requires a `Tooltip.Provider` ancestor.
## Docs
- [Introduction](https://sveui.org/docs)
- [Installation](https://sveui.org/docs/installation)
- [Theming](https://sveui.org/docs/theming)
- [AI & Agents](https://sveui.org/docs/ai-agents)
## Components
### Display
- [Avatar](https://sveui.org/components/avatar): Image with graceful fallback.
- [Badge](https://sveui.org/components/badge): Compact status and count labels.
- [Card](https://sveui.org/components/card): Surface container for grouped content.
- [Carousel](https://sveui.org/components/carousel): A scrolling track of slides with controls.
- [Heading](https://sveui.org/components/heading): Semantic, sized display titles.
- [Text](https://sveui.org/components/text): Body copy with size and tone.
- [Skeleton](https://sveui.org/components/skeleton): Loading placeholder for content.
### Forms
- [Button](https://sveui.org/components/button): Primary action. Variants, tones and sizes.
- [Button Group](https://sveui.org/components/button-group): Attaches related buttons into one control.
- [Input](https://sveui.org/components/input): Single-line text field with states.
- [Input Group](https://sveui.org/components/input-group): An input with prefix and suffix addons.
- [Field](https://sveui.org/components/field): Label, help text and validation, wired to one control.
- [Checkbox](https://sveui.org/components/checkbox): Boolean choice, accessible by default.
- [Radio Group](https://sveui.org/components/radio-group): Single choice from a set.
- [Switch](https://sveui.org/components/switch): On/off toggle control.
- [Select](https://sveui.org/components/select): Listbox for picking one option.
- [Combobox](https://sveui.org/components/combobox): Filterable autocomplete select.
- [Slider](https://sveui.org/components/slider): Pick a value along a range.
- [Textarea](https://sveui.org/components/textarea): Multi-line text field.
- [Label](https://sveui.org/components/label): Accessible form label.
- [Toggle](https://sveui.org/components/toggle): Two-state toggle button.
- [Toggle Group](https://sveui.org/components/toggle-group): Grouped toggle buttons.
- [Calendar](https://sveui.org/components/calendar): Date grid for selection.
- [Date Field](https://sveui.org/components/date-field): Segmented date input.
- [Date Picker](https://sveui.org/components/date-picker): Calendar-based date selection.
- [Range Calendar](https://sveui.org/components/range-calendar): Date range grid.
- [Date Range Field](https://sveui.org/components/date-range-field): Segmented date range input.
- [Date Range Picker](https://sveui.org/components/date-range-picker): Calendar-based range selection.
- [Time Field](https://sveui.org/components/time-field): Segmented time input.
- [Time Range Field](https://sveui.org/components/time-range-field): Segmented time range input.
- [PIN Input](https://sveui.org/components/pin-input): One-time-code / PIN entry.
- [Rating Group](https://sveui.org/components/rating-group): Star rating input.
### Feedback
- [Alert](https://sveui.org/components/alert): Inline status and messaging.
- [Busy](https://sveui.org/components/busy): Marks a region as loading, and says so.
- [Empty](https://sveui.org/components/empty): The state a list is in with nothing to show.
- [Spinner](https://sveui.org/components/spinner): Indeterminate loading indicator.
- [Toast](https://sveui.org/components/toast): Transient notifications, triggered imperatively.
- [Progress](https://sveui.org/components/progress): Determinate progress bar.
- [Meter](https://sveui.org/components/meter): Bounded scalar measurement.
### Navigation
- [Tabs](https://sveui.org/components/tabs): Switch between related panels.
- [Accordion](https://sveui.org/components/accordion): Collapsible disclosure sections.
- [Sidebar](https://sveui.org/components/sidebar): Composable app-shell navigation.
- [Breadcrumb](https://sveui.org/components/breadcrumb): Hierarchical page trail.
- [Navigation Menu](https://sveui.org/components/navigation-menu): Top-level nav with menus.
- [Menubar](https://sveui.org/components/menubar): Desktop-style menu bar.
- [Collapsible](https://sveui.org/components/collapsible): Single expand/collapse region.
- [Toolbar](https://sveui.org/components/toolbar): Grouped controls container.
### Overlays
- [Dialog](https://sveui.org/components/dialog): Modal with focus trap and overlay.
- [Dropdown Menu](https://sveui.org/components/dropdown-menu): Contextual action menu.
- [Popover](https://sveui.org/components/popover): Floating content anchored to a trigger.
- [Tooltip](https://sveui.org/components/tooltip): Hover/focus hint text.
- [Alert Dialog](https://sveui.org/components/alert-dialog): Confirmation modal.
- [Command](https://sveui.org/components/command): Command palette / fuzzy search menu.
- [Sheet](https://sveui.org/components/sheet): Side drawer panel.
- [Context Menu](https://sveui.org/components/context-menu): Right-click action menu.
- [Link Preview](https://sveui.org/components/link-preview): Hover card preview.
### Data
- [Table](https://sveui.org/components/table): Styled data table with sortable headers.
- [Pagination](https://sveui.org/components/pagination): Page-by-page navigation.
### Layout
- [Resizable](https://sveui.org/components/resizable): Panes with a draggable, keyboard-operable divider.
- [Stack](https://sveui.org/components/stack): Vertical spacing primitive.
- [Flex](https://sveui.org/components/flex): Flexbox layout primitive.
- [Separator](https://sveui.org/components/separator): Visual or semantic divider.
- [Scroll Area](https://sveui.org/components/scroll-area): Styled custom scroll container.
- [Aspect Ratio](https://sveui.org/components/aspect-ratio): Constrain content ratio.
### Utilities
- [Code](https://sveui.org/components/code): Copyable code block.
- [Kbd](https://sveui.org/components/kbd): A keycap for a keyboard shortcut.
## Optional
- The sve-ui-usage agent skill ships inside the package: `node_modules/sve-ui/skills/sve-ui-usage/SKILL.md` after installing, no separate download.
- [GitHub repository](https://github.com/rodriabregu/sve-ui): source and issues.
- [npm package](https://www.npmjs.com/package/sve-ui)
- Coming soon: .