> At the end of the day these are all more tools in our toolbelt. If you want you can keep writing CSS the same way you always have.
I don't really stand by GP's comment but I also don't think their concern can be dismissed this easily. We generally write CSS as teams. You'll have to read as much CSS as you'll have to write. Ideally you actually read more than you write so you can reuse existing rules and follow established patterns
Anyone writing CSS for a day-job, an OS project, or even just following a tutorial will have to at least familiarize themselves with these concepts
>>Everything I need, I get from CSS + a decent preprocessor (usually LESS these days). Maybe this is a symptom of using CSS, but I rarely even encounter people describing layouts in the way GSS appears to want me to code them.
I'm not sure how you could possibly know whether or not CSS is good enough without knowing what else may be possible. It sounds like you work with CSS professionally, so it isn't going to bother you if something takes an hour -- that's a perfectly good, billable hour.
Supposedly, people in the past did not know that horses are slow. For my part, I hate CSS. I can't quite imagine what this new system will be like, but it's wonderful to think that progress may be coming.
>>Which any skilled coder can do away with in a few minutes.
I think the skill you're talking about must be skill with CSS. General programming knowledge doesn't help much in a CSS trainwreck scenario -- at least, it doesn't seem to help me.
Basically what you've said is that CSS can be efficient and powerful when in the hands of an experienced CSS expert. That's not an especially good reflection on the design of CSS itself.
> [...] the day-to-day concern is doing CSS quickly and well, not replacing CSS with something entirely different.
This exactly. I don't think we're ever actually going to get rid of CSS (probably not during my career at least), so I'm very interested in technologies like GSS that ultimately don't try to change the behavior of the browser - just the behavior of the developers.
> If styling became 5x faster overnight, it wouldn't necessarily be a good thing for practitioners
I personally would love for styling to get 5x faster. There's be no reason for me to charge any less for the work, so that'd basically be 5x more dollars for the styling portion of any given project - however, styling already makes up a pretty low percentage of our projects' total spent time, so once again I'm pretty skeptical of anything that could reduce that.
Furthermore, I rarely do layout-related CSS to begin with: Bootstrap handles that pretty well, and most layout work beyond that is well within the capabilities of any intermediate developer.
I think that's the crux of the issue, really. Even though CSS is a subpar tool for doing layouts, the abstractions available today pretty much remove that pain: and CSS is quite good at the non-layout side of styling.
GP is pointing out the parts that haven't changed at all, and are old (over two decades), simple, and common enough to be considered basic knowledge. I had the same reaction to those and one or two others.
Now if this was someone relatively new to CSS I'd understand, but the opening paragraph establishes how long this person was around. Padding-vs-margin in particular was necessary knowledge to do good layouts back in those earlier days (less so now only due to flex and grid, which aren't on here).
CSS is underrated skill but experienced CSS developer has to know about:
- every browser quirk possible.
- various standard hacks to workaround these quirks
- preprocessors like Sass or Less
- tons of completely non-logical CSS rules (eg: `margin:
auto` will center only horizontally but not vertically )
- methodologies like BEM, OCSS or SMACSS
- CSS frameworks like Bootstrap or Foundation
- CSS specifity, z-index stacking rules etc.
- responsive web development
- basic JavaScript also can be helpful
etc.
And he/she has to be good at communication with graphic/ux designers and be super patient (`2px left, please`, `change color for 3% brighter, please`, `slow down this transition and insert 2px border` etc.) And good eye for details also is needed.
So I don't think that someone "who can only do CSS" is worse than programmer. I think the opposite is true: programming is pretty damn easy comparing to sitting all day and trying to randomly tweak CSSes to make website look as it was designed by graphic/ux designers.
This is the reason I hate writing CSS. I like programming though. Because programming it's a looot easier.
Programming is logical. You tell computer what to do and computer does it. If it does not, you debug and eventually you win. CSS is not logical so IMHO it's harder.
> The amount of time it would take me to learn some useful CSS.
What's with the myth that CSS is hard? It's perhaps the easiest thing about web dev.
Learn flexbox, learn units of measurements, learn specificity, learn media-queries - 5 hours max (a week of lunch at the desk) playing around in JSfiddle, and you're most of the way there.
Bootstrap is fine but pulling in a framework that has 656 classes seems a little unnecessary most of the time.
>I also really enjoy building CSS UIs from scratch, but editing existing stylesheets is a pain point. Band-aid after band-aid.
I feel the same. I fiddled with css on personal projects just fine, but in my job, diving into years of accumulated, imbricated classes is a nightmare and even though I try, 80% of the time I end up passing the problem to the design team.
> We have people with a religion of separating style from content, so they introduce the complexities necessary to do that.
Yeah...I've seen lots of code review arguments where one developer refuses to alter the HTML to make the styling easier (e.g. order of elements, wrapping elements in certain ways) and then the CSS styling requires all sorts of complex tricks. If Google or screen readers won't see any difference, striving to separate styling from content like that is a waste of time in my opinion and you should make compromises. People complain about e.g. Bootstrap's "text-center" and column classes as well because they're not semantic but they can save time when used appropriately.
> In the saved time I've polished up my CSS skills...
reply