3 ms·
This is really great work, but I think a lot of folks on HN don't look kindly on the CSS Zen Garden or that era of CSS. They think the markup/stylesheet separat
by TimTheTinker 11d ago
This is really great work, but I think a lot of folks on HN don't look kindly on the CSS Zen Garden or that era of CSS. They think the markup/stylesheet separation of concerns was a terrible idea, an idea that Tailwind exists to fix. (I think they're wrong, that separation of concerns is good, Tailwind is a hack, and get off my lawn while you're at it.)
The point is - now the modern vanilla web platform really can support first-class CSS-styled app components, from design systems, in production. This is really cool!
HTML and CSS were originally designed as document-oriented languages for digital document display; think MS Word or PDF with cross-document hyperlinks, and not an app SDK. The idea was simply "style your web site's titles, headings, paragraphs, footers, etc. in just one place; change it there and the whole site will update". That's the dream that CSS Zen Garden was meant to showcase. Interactivity and web apps came later, and CSS has taken a very long time to catch up.
But catch up it has, and I'll be glad when frontend web development sheds Tailwind and React in favor of the updated vanilla web platform; and I won't complain if we use super light web component libraries like Lit[0]).
[0] https://lit.dev https://lit.dev
- yosito 10d agoI agree completely. Personally, Tailwind never really resonated with me, though I've used it several times, and we did even briefly consider it for this project. I always felt that it was an approach created by people who never understood the paradigm of CSS, and didn't want to. Since my career started with CSS, I've always been more of a purist.
- TimTheTinker 10d agoI think a collection of basic utility classes (w-100, m-2-t) and layout components (<Flex dir="row" gap="2">, etc.) are equivalent ideas, and they are nice for quickly setting up a one-off layout that's very readable. But Tailwind turns this practical idea into a religion that locks projects in to using it and harms readability. Human readability is a very useful proxy for good modularity and separation of concerns (and modularity increases scalability and reusability). Since LLMs take the whole thing in at once, they are terrible at module boundaries. (They also suck at theory of mind, and their comments reflect it, but I digress.)