A progressive, atomic, highly reusable, flexible and configurable headless UI component library for ReactJS.
HIGHLIGHTS
- Ships with zero styles (Paint on a blank canvas - no colors, background-colors or shadows except the ones you define)
- Uses modern HTML tags for component structure where necessary (e.g. details, summary, dialog and menu)
- Minimizes the use of
useState()
especially for things CSS can already handle. (e.g. toggling the visibility of a DOM node or capturing invalid state) - Reduces boilerplate associated with setting up a component especially around structure, testability and reusability.
- makes use of the very best third-party libraries to handle forms, toasts, utilities and state management (i.e. react-hook-form, react-busser, react-day-picker, react-dropzone & sonner
There are lots of headdless UI libraries out there (e.g. Material UI, Radix UI e.t.c). While many of these UI libraries give you the flexibility and atomicity to build what you want in a fairly easy manner, they don't give you a lot of options for configuration. Sometimes, all you have a set of strict primitives or bloated themeing configurations. Furthermore, useState()
is over used for things that CSS can do already. react-busser-headless-ui steps into these gaps with superior rendering performance and optimized state management.
One of the reasons i started this project is that i kept waiting for Radix UI to support DatePicker primitives but till date it doesn't.