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

CSS3TinyWidgets (CSS)
2.20kB
JavaScriptTinyWidgets (JS)
3.99kB
JavaScriptTinyBase
12.71kB
JavaScriptReact
45.26kB

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!


TinyBase
The reactive data store for local-first apps.

TinyWidgets
A collection of tiny, reusable, UI components.

TinyTick
A tiny but very useful task orchestrator.

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!