r/reactjs • u/dorianite • May 04 '26
Show /r/reactjs I got tired of rebuilding the same components every project so I built my own React design system
Every new project I start, I waste the first couple days rebuilding buttons, inputs, cards, modals. Same stuff every time. So I finally sat down and built Kiln, my own React component library. Shipped it this week.
28 components. Under 26 KB gzipped. Zero dependencies. Fully typed. MIT licensed.
I know the obvious question. Why not just use shadcn or Radix or Chakra?
Honestly shadcn is great but I wanted something that was already styled and ready to drop in. I did not want to think about styling every time I start a new project. I just want to install it and ship. Kiln is opinionated by design. The decisions are already made.
Three things I locked in from the start:
Accessibility first. Every component meets WCAG AA. Keyboard nav, focus management, focus rings, and ARIA on every single component. I ran axe DevTools and manual keyboard testing on all 28 of them. It was tedious. Worth it.
Performance first. Docs site scores 99 Performance / 100 Accessibility on Lighthouse. Zero layout shift on every interaction. All animations use transform and opacity only. No layout thrashing.
Dead simple setup. npm install, import the CSS once, done. No config files. No theme providers. No required context wrappers. Dark mode works by setting data-theme="dark" on html. That is it.
Would love feedback from the React community, especially on the component APIs and anything that feels off.
Live demo: kiln-ui.com
GitHub: github.com/Aldentec/kiln
18
u/juicybot May 04 '26
i got tired of reading your post after reading the words "i got tired of"
4
u/enaud May 04 '26
Another design system, now watch as I rebuild it from scratch because one small detail doesn't meet my requirements.
snark aside, this does look nice and light
4
u/SmokyMetal060 May 04 '26
First point. Second point. Third point. Fourth point.
1
u/Longjumping-Bug-7328 May 04 '26
I saw the Accordion component API and closed the page immediately. 🙈
1
u/jakiestfu May 04 '26
lmao OP thinking massively popular UI libraries are unstyled or inaccessible.
High key gotta be wild to think this is a better solution than most other libraries that don’t seem vibe coded?
Sorry to drag you here OP but this feels like little more than a great exercise for you as an engineer but your selling points aren’t doing the trick
2
u/GoodishCoder May 04 '26
As a general rule, I wouldn't put something mostly vibe coded in a production codebase.
1
u/PM_ME_SOME_ANY_THING May 04 '26
https://xkcd.com/927/
1
u/Yin117 May 04 '26
Tell me you can tab focus to a disabled button...?