How it started
Second year of university. I kept copying the same button and input styles from project to project, tweaking colors each time. At some point I thought - why not just make a package once and install it everywhere?
So I did. No big plans, no roadmap. Just wanted to stop copy-pasting.
What's inside
The library is called dkcodec-ui-kit. It has three components: Button2D, Toggle2D, and Input2D. The idea behind all of them is a flat 2D style - no shadows, no gradients, clean geometric shapes with a slight offset effect.
import { Button2D, Toggle2D, Input2D } from 'dkcodec-ui-kit'
// Basic usage
<Button2D>Click me</Button2D>
// With customization
<Button2D
size="lg"
textColor="darkblue"
btnColor="lightblue"
borderColor="blue"
background="darkblue"
>
Custom Button
</Button2D>Everything is written in TypeScript, fully typed. You get autocomplete and instant feedback if you pass the wrong prop type.
The components support five sizes (sm, md, lg, xl, 2xl) and let you override colors through props - text, background, border, inner fill. Not the most sophisticated API in the world, but it works and it's intuitive.
What happened after publishing
I pushed it to npm and kind of forgot about it. Then checked the stats a month later and saw 584 downloads in the first month. For a tiny library built by a second-year student with three components that felt pretty good.

I didn't promote it anywhere seriously. People just found it through npm search.
What I'd do differently now
Honestly, the code is pretty basic - I was just learning at the time. A few things I'd change today:
No interactive docs. The README has examples, but there's no Storybook playground. That's the first thing I'd add - people want to see components before installing a library.
Three components is too few. A UI kit needs at least a modal, a select, and some layout primitives to be actually useful in a real project.
Webpack instead of a proper bundler. I'd switch to something like tsup or Rollup for better tree-shaking and smaller bundle output.
What's next
The library is still sitting there and I plan to come back to it. The 2D flat style is something I genuinely like - there's a lot of SaaS dashboards out there that would look great with this aesthetic.
When I do update it, the priorities are: more components, Storybook docs, and a cleaner build setup.
For now it's a small proof that you don't need to wait until you're "ready" to publish something. A second-year student with three components got 677 total downloads.