Ultra-lightweight UI library

Semantic, minimal, zero dependencies. ~8KB CSS and JS.

Oat is an ultra-lightweight HTML + CSS, semantic UI component library with zero dependencies. No framework, build, or dev complexity. Just include the tiny CSS and JS files and you are good to go building decent looking web applications with most commonly needed components and elements.

Semantic tags and attributes are styled contextually out of the box without classes, forcing best practices, and reducing markup class pollution. A few dynamic components are WebComponents and use minimal JavaScript.


Light like an oat flake

6KB CSS, 2.2KB JS, minified + gzipped.

That's it.

Zero dependencies

Fully-standalone with no dependencies on any JS or CSS frameworks or libraries. No Node.js ecosystem garbage or bloat.

Semantic HTML

Native elements like <button>, <input>, <dialog> and semantic attributes like role="button" are styled directly. No classes.

Accessibility

Semantic HTML and ARIA roles are used (and forced in many places) throughout. Proper keyboard navigation support for all components and elements.

Easy customization

Easily customize the overall theme by overriding a handful of CSS variables. data-theme="dark" on body automatically uses the bundled dark theme.


Why?

This was made this after the unending frustration with the over-engineered bloat, complexity, and dependency-hell of pretty much every Javascript UI library and framework out there; the continuous PTSD of rug-pulls and lockins of the Node.js ecosystem trash. [1] I've published this, in case other Node.js ecosystem trauma victims find it useful.

My goal is a simple, minimal, vanilla, standards-based UI library that I can use in my own projects for the long term without having to worry about trash. Long term because it's just simple vanilla CSS and JS. The look and feel is influenced by the shadcn aesthetic.