Tell that to a decent number of people I have worked with over the past 20 years. In fact, I know people to this day who have been writing CSS for decades who don't really know fundamental things like specificity, inheritance, or the cascade. Pattern matching into the sunset, not a single fundamental piece of CSS specifications ever internalized, still getting paid (its okay).<p><a href="https://www.w3.org/Style/CSS/specs.en.html" rel="nofollow">https://www.w3.org/Style/CSS/specs.en.html</a><p>You can read this and know most things about CSS. For a bit anyway. You'll forget things you don't use. You might remember them again one day.
I never got very good with CSS or HTML styling. I know enough to generally fix obvious stuff, but I'm kind of a luddite and still use Bootstrap for most of my stuff. I've mostly stopped doing web stuff, so the only time I touch CSS is when I'm doing an admin screen or something, so it doesn't have to look great.<p>Still, a part of me wonders how different my life would be if I had taken to frontend programming enough to make things that look nice. It's not like there isn't anything enjoyable about it, I just ended up taking to backend distributed systems work a bit sooner.
I detest writing CSS and HTML. I just find it boring fiddly and annoying. I have started doing "vibe" coding with LLM's. Giving a decent prompt produces results that are... pretty good.<p>Almost 100% in lighthouse for both mobile and desktop, responsive, reusable components, dark/light mode and a design that was better than I could do in the 2-3 hours I spent doing it (while sipping wine).<p>I know its not a solution for everyone, and probably won't work for the prettier designs out there, but you can go a long way with these tools this day.<p>I know there is a reluctance to not use LLM's for code tasks, and I am one of the largest critics, but for me this solves a real pain point. I don't want to write CSS/HTML anymore and these tools do a good enough job of it that I don't have to.
HN Confessional: I wrote a custom theme for my server management software a few years ago that's basically just a rewrite of the stock theme's rather large CSS file. Among a little more than 1200 lines, I include `!important` <i>175 times</i>. I imagine that causes hives among our more discerning front-end devs.
And the fix is another framework, because of course it's another framework. Frameworks are to CSS what greige paint is to a house. Trying to implement the missing 5% of a CSS framework without knowing how to implement "complex" CSS from the ground up means you are never implementing the missing 5%. Your site or app or whatever is just going to look like every other site that uses that framework.<p>Now that CSS is more or less feature complete and the fact that there's just one web browser means you don't need the clever tricks rolled up in a framework to center a div or to have a grid layout that works without resorting to tables. It's literally part of the CSS spec and has been implemented in every browser for a decade now.
> The last big driver of time-wasting in CSS is the drive for pixel perfection<p>I agree. Also users/product managers do not care. They will see UI that is a little bit “off” and think negatively about your brand. Congrats, now you have a ticket to make the UI look pixel perfect.<p>I suppose the audience for this isn’t people who actually get paid to write CSS, but instead casual blog writers. It’s definitely ok and normal to have little blips on your side project.
I recently started a green field project using copilot and tailwind. I’m blown away by how good ai is with css. I’m just glad no one has to try wrestle with css like we did back in the days.
(2022)<p>You've turned your/rriepe's substack series (<a href="https://news.ycombinator.com/from?site=yousuckatcss.substack.com">https://news.ycombinator.com/from?site=yousuckatcss.substack...</a>) into a book? Or actually maybe it's the other way around (based on rriepe's profile[0])<p>[0]: <a href="https://news.ycombinator.com/user?id=rriepe">https://news.ycombinator.com/user?id=rriepe</a>
I enjoy working with CSS immensely. It takes some thought to get things right from the beginning, but I find it's always clear what can be done to improve it.<p>With modern features like CSS nesting, anyway; just a few years ago when IE support and whatnot was more relevant it was a different story. Now you can just throw everything into a flexbox.
The CASS site on iOS WebKit has bullets overflowing into the border and a mix of fonts that doesn’t look great:<p><a href="https://casscss.github.io/cass/" rel="nofollow">https://casscss.github.io/cass/</a>
There’s a reason everything I’ve done in the last 5 years uses bootstrap. And doesn’t have to look like bootstrap. Our internal graphic designer loathes bootstrap and didn’t recognize I had used it until I told them.
Hot take: you suck at CSS because you never bothered learning it.<p>A long time ago, everyone in my team kept making excuses why they hate css. I went to Lynda.com and found a pretty good class. I can't remember the instructor, but it was so good that I still use the same patterns more than a decade later. I tried to get the whole team to take it, but no one wanted to. "It's a waste of time", "It's not even a programming language."<p>They built all kinds of tooling around css, trying to avoid css. We had dormant css that no one could ever figure out if it was used, we had important and position absolute everywhere. Today, it's not so different. You see divs with 20 or 30 classes in them.<p>Just learn css. Any class is better than no class.
My view is that those who designed CSS suck when it comes to designing intuitive systems.<p>I would not advocate constraint solvers, in the future I hope ViTs are so cheap to run that they can infer the right layout of things at any orientation and size in single digit milliseconds, solving the layout problem for good =)