Yes, that bad side is what I meant with "cascading disaster". My wording was 
bad, so let me fix that: by separate places, I mean more like Svelte's CSS 
blocks in comparison to JSX's inline styling. Proposing inline-css as a part of 
their library/framework workflow is not only bad engineering with zero regards 
to the underlying platform but also ugly (makes reading the code very hard). In 
comparison, Svelte users define their styles in the same component (same file) 
but in a separate place. That makes tooling and the whole authoring experience 
incomparably better than writing styles where you also define structure and 
also the behavior.

The C of CSS, our cascading problem, is due to the lack of a design for good 
encapsulation. An intern thought that he was making that cancel button red and 
now so many red elements are scattered around on many screens where nobody 
expected... I totally agree with you that such a situation is unacceptable. 
Ability to set global rules is great to have coherence in the language and 
style of communication the application has (⩬ design system), however, those 
global rules shouldn't be set by accident and this by itself is one of the 
challenges that can make the library that you describe very successful if 
solved well.

Reply via email to