htmlcat.net: A Reference for Native Web UI Without Libraries

A new reference site called htmlcat.net catalogs ways to build UI and interactivity using only the HTML, CSS, and JavaScript that browsers already ship with, no external libraries required. It covers CSS features like :has(), @scope, and Container Queries alongside native components like the dialog element and the Popover API. For developers who reach for a library every time they need a modal or a tooltip, the site is a reminder of how much has quietly moved into the browser itself.

What the site actually is
htmlcat.net is organized around a simple premise: before installing a UI library, check whether the browser can already do it. The site lists concrete techniques, grouped by CSS and by HTML/JS, for building components that used to require third-party code.
On the CSS side, it highlights the :has() selector, which lets a parent element be styled based on what it contains, effectively enabling parent-based conditional styling that was previously impossible without JavaScript. It also covers @scope, which limits CSS rules to a defined subtree so component styles don't leak into the rest of the page, and Container Queries, which let elements respond to the size of their parent container rather than the viewport.
On the HTML/JS side, the dialog element is featured as a way to build accessible modal windows with built-in focus trapping and backdrop handling, no scripting required beyond calling showModal(). The Popover API is listed too, offering a native way to build tooltips, menus, and dropdowns that were previously implemented with custom positioning libraries.
Why this is surfacing now
For much of the last decade, web development leaned heavily on frameworks and utility libraries to compensate for gaps in what browsers could do natively. Building a modal meant wiring up focus management, scroll locking, and ARIA attributes by hand, or pulling in a dependency that did it for you.
That gap has been closing. Chrome, Safari, and Firefox have shipped CSS and DOM features over the past few release cycles that directly replace patterns developers used to solve with JavaScript or preprocessors. :has() shipped across major browsers relatively recently, and the Popover API and dialog element have matured to the point where they're usable in production without heavy fallback code.
Sites like htmlcat.net exist because this shift is easy to miss. Browser release notes are scattered across changelogs, and developers who learned a pattern with a library three years ago have little reason to revisit it unless something like this consolidates the alternatives in one place.
Why it matters
The practical upside is smaller bundle sizes and fewer dependencies to maintain. Every library added to a frontend project brings version upgrades, potential breaking changes, and additional JavaScript sent to the browser. Replacing a modal library with a native dialog element, or a positioning library with the Popover API, removes that maintenance surface entirely.
There's also a readability argument. Code that uses native platform features tends to be easier for another developer to understand later, since it doesn't require familiarity with a specific library's API or conventions - just knowledge of the web platform itself.
The caveat is browser support. Features like :has() and the Popover API are newer additions, and projects that need to support older browser versions will still need polyfills or fallback logic. Checking actual usage analytics before ripping out a library is a reasonable first step.
Takeaway
htmlcat.net isn't introducing anything new to the web platform - it's collecting features that already exist but haven't been widely adopted in everyday development. For teams auditing their dependency list, it's a useful checklist of what the browser can now handle on its own.
Reference: https://htmlcat.net/
Comments
Post a Comment