A while ago I was about to install another dropdown library. I'd already added one for modals and one for tooltips. Somewhere between npm install and opening the docs, I stopped and asked myself a dumb question: why am I doing this?
The browser already has a dropdown. It already has a modal. It already has an accordion. I was about to spend a weekend — and a few hundred kilobytes of JavaScript — rebuilding things my browser ships for free.
That was the moment I realized I'd been fighting the browser for years without noticing.
What "fighting the browser" looks like
Modern frontend has a reflex: reach for a library for everything. And to make those libraries look custom, you reset all the defaults, override the styles, and reimplement the behavior — keyboard navigation, focus trapping, ARIA roles, form integration.






