
I love naming classes using BEM, which is a good way to indicate what classes represent (and where to find them in your project), without forcing it into a hierarchy that will cause problems later if you have to change the markup.
Problem is, it can get a bit verbose though. Especially if you’re being super specific with your names. Writing CSS selectors for long class names is repetitive and annoying. So here’s 2 tips for making it easier using SCSS:
/* SASS */
.feature-box {
background: #fff;
&__title {
color: #000;
}
}
/* CSS */
.feature-box {
background: #fff;
}
.feature-box__title {
color: #000;
}
I use the above a lot. But it can get tricky if you want to add a modifier to the block – which I’ve heard many people say you shouldn’t do, but I often find I need to. For example if I need a wider version of the feature box where the title is larger, I’d do this:
/* SASS */
.feature-box {
&--wide & {
width: 100%;
&__title {
color: #000;
}
}
}
/* CSS */
.feature-box--wide {
background: #fff;
}
.feature-box--wide .feature-box__title {
color: #000;
}