Plutôt que d'écrire à la main plusieurs classes CSS similaires avec une légère variation, SCSS permet de créer des boucles générant pour nous ces différentes classes.
Les boucles @for fonctionnent de façon très similaire aux boucles for en JavaScript. Il faut premièrement définir une variable, lui donner une valeur de départ et une valeur à atteindre.
Par exemple, afin de configurer la taille de plusieurs titres (headings) à l'aide d'une boucle @for, il est possible de faire:
Ce qui produit le code suivant:
Un peu comme les ${} avec les littéraux de gabarit en Javascript.
through
Lorsque through est utilisé à la place de to, le chiffre à atteindre dans la boucle est inclus.
Par exemple, le même code que précédemment, mais avec through:
Produit le code suivant:
Où le nombre 5 est inclus.
Les boucles @each ressemblent aux boucles @for à la différence qu'elles servent à itérer sur une liste d'items. À tour de rôle, une variable prend la valeur de chaque item dans la liste et devient accessible.
Par exemple, une de boucle configurant la couleur de plusieurs messages peut être écrite ainsi avec une boucle @each:
Ce qui produit, une fois le code compilé en css, le code suivant:
Map (utilisation de clé et valeur)
Dans certains cas, identifier une valeur à l'aide d'une clé dans une boucle peut s'avérer très pratique. Heureusement, la boucle @each peut aussi itérer sur un tableau de clés et de valeurs.
Par exemple, pour créer une rapidement des classes ayant des noms textuels et des valeurs numériques il est possible de faire:
Ce qui produit, une fois le code compilé en css, le code suivant: