TinyWidgets
A collection of tiny, reusable, UI components
— wrapped in a helpful app layout with header, side bar, dark mode, and more.
Components
Hooks, Functions, & Objects
Dependencies
TinyWidgets uses React for DOM manipulation, Vanilla-Extract at build-time for styling, Lucide for icons, and TinyBase for state management. Its philosophy is all about simplicity, decent defaults, a streamlined DOM, and concise styling.
But, just to be clear - that doesn't mean you need to use Vanilla-Extract, Lucide, or TinyBase in the apps you build with these widgets. You can set arbitrary class names (from Tailwind, for example!) on all components if you like.
Of course, this site is itself a demo of TinyWidgets, showing off the components and layout in action. Check out the individual components by navigating the API documentation in the side bar.
GZipped Assets
Meet the family
TinyWidgets is part of a group of small libraries designed to help make rich client and local-first apps easier to build. Check out the others!
Help out!
This project was created because I want to be able to build lots of local-first apps quickly and without the overhead of all the app boilerplate each time.
Making it open source seemed like the right thing to do, so please try and it out and get involved. I'll always be interested in issues, more style variants, new components altogether, or even some professional-grade design assistance. I'm not a designer...
See you on GitHub!