Introduction
The headless components for Svelte.
Bits UI is a collection of headless component primitives for Svelte that prioritizes developer experience, accessibility, and flexibility. Our vision is to empower developers to build high-quality, accessible user interfaces without sacrificing creative control or performance.
Why Bits UI?
Bring Your Own Styles
Most components ship with zero styling. Minimal styles are included only when absolutely necessary for core functionality. You maintain complete control over the visual design, applying your own styles through standard Svelte class props or targeting components via data attributes. See our styling guide for implementation details.
Empowering DX
Every component is designed with developer experience in mind:
- Extensive TypeScript support
- Predictable behavior and consistent APIs
- Comprehensive documentation and examples
- Flexible event override system for custom behavior
- Sensible defaults
Built for Production
- Strives to follow W3C ARIA Authoring Practices
- Built-in keyboard navigation
- Screen reader optimization
- Focus management
Composable Architecture
Components are designed to work independently or together, featuring:
- Render Delegation for maximum flexibility
- Chainable events and callbacks
- Override-friendly defaults
- Minimal dependencies
Community
Bits UI is an open-source project built and maintained by Hunter Johnston with design support from Pavel Stianko and his team at Bitworks Studio. We always welcome contributions and feedback from the community.
Found an accessibility issue or have a suggestion? Open an issue.
Acknowledgments
Built on the shoulders of giants:
- Melt UI - Inspired our internal architecture and powered the first version of Bits UI
- Radix UI - Reference for component API design
- React Spectrum - Inspiration for date/time components