News for hackers. Stuff that matters.
Re:Stepping Away from Sass by stickfigure on Friday April 26, 2019 @09:10AM (#19757023)
Hi, you seem to be the leading critic of nesting on this page, so I have a question for you.

Assuming you're using a component framework like React, Vue, or Angular (and not a shadow dom based system like Polymer), how do you isolate your component CSS?

When I make a component 'MyComponent', I give it the className 'MyComponent'. Then I can create a SCSS file and scope its entire contents:

    .MyComponent {
        // all the css specific to MyComponent
    }
Without nesting, how do you keep your component-specific CSS from polluting the rest of your app? Do you scope every rule every time? Isn't that tedious?
Re:Stepping Away from Sass by gitgud on Friday April 26, 2019 @09:29AM (#19757210)
Thank you, I'll wear the title of: leading critic of nesting proudly! disclaimer I'm not a hugely experienced programmer, but have done a few open source projects in Vue, React and am currently working on a series of Angular applications with a team at work.

In Vue and Angular component styles are automatically encapsulated at the component level by scoping (I think) so nesting isn't really necessary to target specific components. Angular also recently deprecated a method of breaking out of component styling and soon it will be completely removed from the framework.

Although I'm a critic I'm not totally against nesting, I just feel that SASS encourages it, so without discipline things can get very complex and fragile. One level of nesting is OK with me though I suppose...

Re:Stepping Away from Sass by rhizome on Friday April 26, 2019 @06:52PM (#19762459)
without discipline things can get very complex and fragile

In what way(s) is SASS different than anything else in this regard?

Re:Stepping Away from Sass by gitgud on Friday April 26, 2019 @08:54PM (#19763040)
True, this could be said for any system, but in this case SASS makes it easy to create nested relationships, whereas CSS makes it hard.
Re:Stepping Away from Sass by riz_ on Friday April 26, 2019 @09:35AM (#19757267)
Not OP, but you could use CSS modules, styled components or styled-jsx, all of which auto-generate unique classnames (styled-jsx uses a HTML attribute for it, I think).
Re:Stepping Away from Sass by stickfigure on Friday April 26, 2019 @03:10PM (#19760862)
I see.

These solutions all seem quite a lot more complicated than nested scopes! And at least for styled components (angular, I presume) and styled-jsx (react), they're framework-specific. Why are these solutions better?