DEV Community

Cover image for Software Engineering : CSS
John Peters
John Peters

Posted on

Software Engineering : CSS

Using CSS is like hitting your thumbnail with a hammer. It's very painful and it lasts for a long time. Once the pain subsides, you say "I must learn to never do that again"

CSS is simple in concept, complex in 'getting things just right'. This is probably due to the fact that HTML was for hyper-TEXT-markup. Along came video, images, floating, colors, backgrounds, margins, paddings, clear, and the rest. There's so much to learn that a huge web site CSS-Tricks became it's own business.

Anytime we deal directly with CSS we are using a DSL (Domain System Language) DSLs are not real languages in the sense of JavaScript, Typescript or C#, just try to 'find all references' as proof. Had CSS been a 'real' language things would have been immediately better.

Along came SCSS/SASS, the intent being to put loose rules around specificity. Ahh nice, the first steps in getting to a 'real' language. Just the ability to have definitions early on was a major success. So much so that CSS later adopted their own way of doing it.

Today, I only use SCSS and HTML Grid with an occasional Flexbox. This allows me to zero in on specificity and farm off layout issues to the grid or flexbox.

Other styling frameworks couple nicely with the above, so there's no problem there. It's just a question of 'how much style do we need?' In the era of Mobile first, these style frameworks are perfect for that. Bootstrap is king, but there are others that are strong.

SCSS is still not a 'real' language but it's miles ahead of CSS. Lean SCSS, the grid and use flexbox sparingly. Then when you need a new website, start it off with other templated work. It's just too much effort to spin up a web concept without having tons of premade layouts to start from.


Discussion (0)