La directive @at-root dans SASS
La directive @at-root est conçue
pour extraire les règles du sélecteur parent
à la racine du fichier.
Prenons l'exemple suivant avec des sélecteurs de premier niveau d'imbrication :
.parent {
background-color: #fdd;
@at-root .child {
border: 1px solid;
}
}
Résultat de la compilation, nous obtenons le code suivant :
.parent {
background-color: #fdd;
}
.child {
border: 1px solid;
}
Examinons maintenant le fonctionnement
de la directive @at-root avec
plusieurs sélecteurs :
.main-parent {
background-color: #fdd;
@at-root {
.first-child {
border: 1px solid;
}
.second-child {
font-weight: bold;
}
}
.step-child {
color: #232523;
}
}
Après compilation, le code ressemble à ceci :
.main-parent {
background-color: #fdd;
}
.first-child {
border: 1px solid;
}
.second-child {
font-weight: bold;
}
.main-parent .step-child {
color: #232523;
}
Dites quel sera le résultat de la compilation du code suivant :
.primary-button {
background-color: #3272c7;
@at-root {
.block-button {
color: #ff0000;
}
.content-button {
color: #ccb42a;
}
}
.warning-button {
border: 2px solid #232523;
}
}