Top
Best
New

Posted by twapi 14 hours ago

Oat – Ultra-lightweight, zero dependency, semantic HTML, CSS, JS UI library(oat.ink)
https://github.com/knadh/oat

Related: https://nadh.in/blog/javascript-ecosystem-software-developme...

432 points | 118 comments
jamamp 5 hours ago|
I think it's valiant to try to do all of this with semantic HTML elements to achieve the right effects, and try to go for a "classless CSS" paradigm to get a nice looking and functional web app (as a fan of classless CSS myself). But scrolling through the component catalog, it unfortunately feels like it's all over the place and inconsistent with semantic vs basic elements, data tags vs aria attributes, and sprinkling some css classes over some of it.

I do very much like that by introducing aria attributes, the CSS reacts to it and styles it appropriately. As opposed to a full-blown react component library which does all of that for you. It would be a good exercise for developers to think aria-first and let the library just help with styling.

Lastly, I think the best part is that this component library has a native sidebar. So many of these I see and they have a nice web page which showcases all the components and I want to replicate their layout and nav/sidebars but they only focus on smaller re-usable components and not the layout. So that's a nice touch, I think. And, as someone who keeps an eye on but doesn't do a lot of frontend, the fact that a sidebar is an aside > nav > ul next to a main just makes so much sense and doesn't have a lot of cruft around it.

skeledrew 7 hours ago||
This site got me going. Almost had whiplash when I tapped a link and the page loaded literally instantly. I've almost forgotten that that's possible on the internet. I'm not a web dev, but I'm inspired to get into it now because of this site.
darkvertex 6 hours ago||
You should try making a site with Astro. Load speed is cray cray.
allthetime 5 hours ago||
Yeah I’m a recent Astro convert. To be fair, any static site will have this effect. It’s just everyone is using react to make landing pages now.
robertoandred 56 minutes ago||
React sites are easily static.
1718627440 3 hours ago||
I mean you also have HN as a reference.
synergy20 1 hour ago||
https://github.com/fosiao/rclone-webui-oat seems replacing the heavy duty unmaintained react version at https://github.com/rclone/rclone-webui-react
JSR_FDED 8 hours ago||
This has the simplicity I thought I was going to get from DaisyUI but didn’t. Pairing this with Datastar seems like a super powerful combination that leans on actual web standards, not “ecosystems”.
swiftcoder 13 hours ago||
The motivating blog post[1] linked from the front page is probably going to generate a more interesting discussion than the framework itself.

As someone who has to deal with both angular and nextjs for different (but overlapping) stacks at work, I find myself increasingly sympathetic to this viewpoint.

[1]: https://nadh.in/blog/javascript-ecosystem-software-developme...

e12e 6 hours ago||
Nice link - still relevant IMNHO - even though it's from 2021.

Discussed at the time:

https://news.ycombinator.com/item?id=28892933

latchkey 5 hours ago||
It has updates at the bottom. Most recently 14 Sep 2025.
skeledrew 7 hours ago|||
This website pleases me greatly. 0 time from tap to fully loaded pages.
xyzzy_plugh 8 hours ago||
Previously (2021): https://news.ycombinator.com/item?id=28892933
swiftcoder 7 hours ago||
Ah ha, figured it must have been discussed here before!
roxolotl 9 hours ago||
There’s a ton of semantic drop in css libraries similar to this. Love seeing new ones. Quality varies wildly but this site shows 50+ drop in stylesheets for those writing semantic html: https://dohliam.github.io/dropin-minimal-css/
layer8 4 hours ago||
I had to read your comment three times before figuring out that you mean “drop-in”. Sometimes hyphens do matter! :)
neya 4 hours ago|||
This isn't upvoted enough. This is more interesting than the OP's project! Thanks for sharing!
sgc 5 hours ago|||
I love it. You can use the right arrow to cycle through them.
heyyeah 3 hours ago||
do you have any recommendations from the list?
hiyer 12 hours ago||
Reminds me of what bootstrap [1] was like around a decade ago. It's gotten quite a bit bloated since then though.

1. https://getbootstrap.com/

culi 2 hours ago||
<aside> is not the correct semantic element for sidebars. The purpose of <aside> is for content that is indirectly related to the "main" content of the page. Sometimes a sidebar fits that definition but not always
potato-peeler 12 hours ago||
Thank you testing this on older browsers before releasing. This is truly an ultra minimal library - https://ibb.co/DDGmLYdg, https://ibb.co/h1WQG3GK
appplication 5 hours ago|
Genuine question, do you normally use old browsers as your daily driver for interfacing with the web? I’d be interested in learning why.
recursive 2 hours ago||
Presumably it's relevant not because they use old browsers but because some of their software's users do. And I doubt most of them have a reason for doing so.
appplication 3 minutes ago||
That makes sense. As a solo dev for my side projects, I’ve intentionally decided to not support legacy browsers, which I understand bugs some folks (weirdly, usually the super tech minded types you find in here) but I’m just one guy and I have a hard time seeing the value in these user segments being worth the squeeze.
jitbit 3 hours ago|
I tried doing something like that in my app, and quickly discovered that some modern semantic/functional tags are STILL not supported in some browsers. Or work badly.

For example, in Safari showModal for a dialog tag causes recalculating layout for EVERY element on a page, it’s up to 59x slower than chromium…. :(

But I love the idea

More comments...