such as variables, mixins (i.e. functions) and extensions. PostCSS made writing for multiple browsers more bearable CSS Modules mean the end of global namespaces. We're increasingly tacking on more solutions The core pain point of CSS is still the same:
is. Web owes its success to its accessibility. This accessibility is made possible with clear separation between content, style, and logic. This accessibility is compulsory, not a nice to have.
separate content and style (styling in markup) Lots of repetition as you apply 10, 20 classes to each element No styling in markup, no repeated class calls Repeats heavily in CSS as code is not reused across components Can encode DOM structure in CSS class names
it is shared scope You're probably familiar with not being able to control markup or CSS No amount of well defined scope or well crafted selectors will stop someone from directly targeting your element
It's being ignored. Stop ignoring it. CSS4 Spec is exciting! ‑‑variables, :scope... play with it! SASS 3.1 supports first class functions BEM vs Atomic is like tabs vs spaces. Pros and cons. Try both out. Don't choose one blindly. Good interfacing between HTML/CSS/JS needed for separation of concerns