UI components organized by purpose. Import each directly from its folder (@/components/ui/image, @/components/layout/wrapper). The full, always-current inventory is COMPONENTS.md, generated by bun run generate:manifest.
components/
├── ui/ → Primitives (reusable across projects)
├── layout/ → Site chrome (customize per project)
└── effects/ → Animation & visual enhancements
Built on Base UI for accessibility.
| Component | Purpose |
|---|---|
image/ |
Optimized images (always use this, never next/image) |
link/ |
Smart navigation (auto-detects external) |
form/ |
Form components with validation |
select/ |
Custom dropdowns (accessible, Base UI) |
menu/ |
Dropdown menus |
accordion/ |
Expandable sections |
tabs/ |
Tab navigation |
tooltip/ |
Hover hints |
alert-dialog/ |
Confirmation dialogs |
toast/ |
Notifications |
checkbox/ |
Checkboxes |
switch/ |
Toggle switches |
fold/ |
Scroll-based folding |
scrollbar/ |
Custom scrollbars |
real-viewport/ |
Sets the --scrollbar-width CSS property |
marquee/ |
Infinite scrolling text |
sanity-image/ |
Sanity-optimized image component |
not-configured/ |
Placeholder for unconfigured integrations |
error-view/ |
Renders a route's error.tsx boundary UI |
not-found-view/ |
Renders a route's not-found.tsx UI |
See layout/README.md.
See effects/README.md.