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.
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.
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.
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”.
This is gorgeous. I hate frontend because of its sheer gratuity, and this is the kind of thing that might get me back into it. The only other contender for interactivity I'd consider is HTMX, and I'm going to boldly assume I'll be able to combine them without too much bother.
Bravo to the author, keep at it. I'll be recommending this to anyone who will listen.
<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
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/
I know that guy from listmonk! I always thought the frontend could use some love and planned to spend a couple of days on contributing a couple of ideas, but I never came around. Now I know why things are as they are :)
Why do all the UI component libraries always feature an accordion (something i can build myself in 5 minutes and very rarely need), but always omit a date picker / calendar component (something that is needed almost in every corporate web form and really requires a lot of effort to build)?
Particularly the use of the label, fieldset and legend elements as native accessible solutions instead of instrumenting divs. Even the styling and the example resembles it a bit!
This is where it falls from grace IMHO. Grid classes are fundamentally non-semantic. I know they're popular and useful, but there must be a better (semantic) way of doing this. I haven't found it yet, but there must be.
Don't know about anyone else, but the first thing I do with these types of libraries to check out the Accordion component and see if it slides out with a nice animation. This has become my litmus test for how well designed a component library is.
My initial reaction was that I have to use this just because of the buzzword density in the title. But after reading up, it looks like the author was pretty successful in moving the bloat from code to announcement title. I'll give this a try!
The "preview" and "code" buttons in the components break the "alt+arrow" bindings to go back to the previous page. Instead it just alternates between "preview" and "code".
No, this is "Oat - Ultra-lightweight, semantic, zero-dependency Javascript UI component library". If it doesn't work without javascript it is not an HTML UI component library.
Seems pretty unresponsive to me. I'm getting at least half a second of delay before the accordion, drop-down, or switch do anything. Chrome on Windows.
I used to think bootstrap was bloated too...and then i had heard - now, i don't know if its true - that bootstrap was originally intended *ONLY* as an internal prototype building tool, and any bloat did not matter...because expected audience, usage would be totally fine for a bloated framework...When i heard, i gave boostrap more of a pass...but, then again, i stopped using it, and began using other, lighter weight frameworks...and nowadays, i so rarely touch any web stuff...and when i do its only for me so then use zero frameworks, and merely display whatever default the browser shows with zero CSS, javascript...then again, my private web page needs are so basic anyway.
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…. :(
Looks neat. Assuming the site is built using the framework, I ran a couple of the component pages (e.g., accordion) through Lighthouse and there are a number of accessibility issues. Just a heads up.
This is a very nice library. At a first reading it seems complete (but did I see summary/detail - I don't remember). Bookmarked for further investigation. Congratulations and thank you.
Amazing! I recently started building something similar for the same reasons, but more out of frustration rather than out of desire. I'll have to give this one a try and see if it fills the need.
Looks good and like the lightweight aspect. As always, what do I have to do get tabs that look like tabs? What do people have against tabs that look like tabs, instead of buttons?
5 day old repo, 2000 stars on GitHub, 400 total weekly downloads on npm. Frontpage of hacker news with a bunch of weird comments. Moderation has been lacking recently.
You are jumping to conclusions. The author is the CTO of the largest online brokerage in India but more importantly, they have created many open source software of good quality. His website and blog are of great quality. Whether you think this library deserves more attention or not is your personal preference but it is far from spam. I havr no affiliation with them but like their work.
I'm not sure which comments you're finding weird, but I spot checked a bunch and didn't see anything that looked particularly bogus, other than https://news.ycombinator.com/item?id=47026348 and some trollish ephemera.
The upvotes on the submission look legit to me, as does the submission itself.
Sad that HN is now also getting boted by LLMs. People are just shameless. HN is one of the few places left where you can post / self promote something you have made only for people to take advantage of it.
This is kind of misleading. It says it's an HTML UI library, then it says HTML + CSS, and then it says it also includes JavaScript. Why is this better than, say, DaisyUI?
I just want something that's as easy to use as DaisyUI or even Bulma with one good set of components & themeing(beyond just palletes, like rounding, blur, transparency etc) & I'm good. For all the self-hosting model afficianados surely needing a build platform to create a blackhole of npm modules & internet connectivity for even a single build surely negates the entire point of a coding LLM if we still force it to deal with frontend
Which actually makes sense: Oat's driving philosophy seems to be to use and enhance native controls as much as possible, and the date picker is already a native type on the input element.
jamamp|15 days ago
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|15 days ago
thedumbname|13 days ago
darkvertex|15 days ago
1718627440|15 days ago
swiftcoder|16 days ago
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|15 days ago
Discussed at the time:
https://news.ycombinator.com/item?id=28892933
skeledrew|15 days ago
xyzzy_plugh|15 days ago
JSR_FDED|15 days ago
potato-peeler|15 days ago
appplication|15 days ago
hiyer|15 days ago
1. https://getbootstrap.com/
hkt|15 days ago
Bravo to the author, keep at it. I'll be recommending this to anyone who will listen.
humanindia|14 days ago
[deleted]
culi|15 days ago
roxolotl|15 days ago
layer8|15 days ago
neya|15 days ago
sgc|15 days ago
heyyeah|15 days ago
nkmnz|15 days ago
synergy20|15 days ago
anton-107|15 days ago
anton-107|15 days ago
rohitpaulk|15 days ago
weiliddat|15 days ago
JCattheATM|15 days ago
kitd|16 days ago
gaigalas|15 days ago
https://oat.ink/components/#form
Looks a lot like a raw HTML+CSS framework I made in 2009:
https://alganet.github.io/ghiaweb/ (it has some small glitches, browser widgets changed a lot since 2009).
Particularly the use of the label, fieldset and legend elements as native accessible solutions instead of instrumenting divs. Even the styling and the example resembles it a bit!
https://oat.ink/components/#grid
This is where it falls from grace IMHO. Grid classes are fundamentally non-semantic. I know they're popular and useful, but there must be a better (semantic) way of doing this. I haven't found it yet, but there must be.
Nelkins|14 days ago
jlg23|16 days ago
eddd-ddde|15 days ago
superkuh|15 days ago
recursive|15 days ago
mega-tux|8 days ago
mkl|16 days ago
skeledrew|15 days ago
recursive|15 days ago
temporallobe|15 days ago
mxuribe|15 days ago
wsaryoo|10 days ago
https://jingz.github.io/farga/site/index.html
wsaryoo|10 days ago
jitbit|15 days ago
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
mrbluecoat|15 days ago
masklinn|15 days ago
vpribish|15 days ago
I like your presentation of the components, but i'm having trouble finding the essential distinctions
leejoramo|15 days ago
gormen|10 days ago
saila|15 days ago
elseleigh|15 days ago
bpev|16 days ago
mixmastamyk|15 days ago
neon_me|16 days ago
unknown|15 days ago
[deleted]
Xeoncross|15 days ago
bitbasher|15 days ago
https://oatpp.io/
scandox|15 days ago
Maxion|16 days ago
TrevorFSmith|15 days ago
intrasight|15 days ago
afishhh|15 days ago
[1] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...
animal_spirits|15 days ago
andrei_says_|16 days ago
mgaunard|15 days ago
freeopinion|15 days ago
edit: clarification, focus
scirob|15 days ago
dankobgd|15 days ago
pphysch|15 days ago
yoz-y|16 days ago
Looks okay, but I don’t see why to use this over something like Marx if all you need is to not have bare browser default styling.
kitd|15 days ago
mcknz|15 days ago
scandinavian|16 days ago
codegeek|15 days ago
ssiddharth|15 days ago
dang|15 days ago
The upvotes on the submission look legit to me, as does the submission itself.
sschueller|15 days ago
BoneShard|15 days ago
humanindia|14 days ago
[deleted]
unknown|15 days ago
[deleted]
koakuma-chan|16 days ago
villgax|15 days ago
httpsterio|15 days ago
dang|15 days ago
maximalthinker|15 days ago
[deleted]
rado|16 days ago
[deleted]
dingi|15 days ago
[deleted]
altcunn|15 days ago
[deleted]
boston_clone|15 days ago
akrauss|15 days ago
bdcravens|15 days ago
https://oat.ink/components/#form
Which actually makes sense: Oat's driving philosophy seems to be to use and enhance native controls as much as possible, and the date picker is already a native type on the input element.
bartvk|15 days ago
visarga|16 days ago
recursive|15 days ago
deafpolygon|16 days ago
bartvk|15 days ago