Skip to content

A progressive, unstyled, accessible, atomic, highly reusable, flexible and configurable headless UI component library for ReactJS

License

Notifications You must be signed in to change notification settings

isocroft/react-busser-headless-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

code style: prettier PRs Welcome

react-busser-headless-ui

A progressive, unstyled, accessible, atomic, highly reusable, flexible and configurable headless UI component library for ReactJS.

HIGHLIGHTS

We all deserve a UI library that allows us to ship minimal CSS to devices, demands minimal boilerplate to create simple and complex components, deploys flexible theming options and doesn't lock us into a particular CSS framework (e.g. Tailwind, Bulma, Bootstrap).

Finally, a UI library that ties UI components to routers (e.g. app/page NextJS_Router, Tanstack_Router, React_Router) to ensure more cohesive functionality and behavior especially for components like <Tabs/> and <Modals/>.

Therefore, react-busser-headless-ui:

  • Ships with zero styles (Paint on a blank canvas - no colors and no 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(...) for everything 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.
  • Also, 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

components-init component-next-init component-showcase component-next-showcase component-last-showcase Screenshot 2025-11-18 at 6 03 08 PM

Preamble

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 that lock you into a specific pattern for building your components on an atomic level or bloated themeing configurations whose styling defaults aren't helpful to you in relation to your custom design system for UI widgets/components. 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.

This project is also inspired (in part) by Base UI which is a collaborative effort from the team members of the Material UI and Radix UI projects. However, still fundamentally different.

Getting Started

About

A progressive, unstyled, accessible, atomic, highly reusable, flexible and configurable headless UI component library for ReactJS

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published