Blocos de conteúdo em mixins no SASS

Para passar um bloco de estilos dentro de um mixin, usamos a diretiva @content, no lugar da qual os estilos que precisamos serão inseridos.

Vamos considerar um exemplo:

styles.scss@mixin active {
  * div {
    @content;
  }
}

@include active {
  #block {
    color: red;
  }
}

Resultado da compilação:

styles.css* div #block {
  color: red; 
}

É importante saber que se especificarmos a diretiva @content mais de uma vez ou dentro de um loop, o bloco de estilos será chamado o mesmo número de vezes.

styles.scss@mixin active {
  div {
    @content;
  }
navbar {
    @content;
  }
}
@include active {
  #block {
    color: red;
  }
  button {
    color:green;
  }
}

Após a compilação, veremos:

styles.cssdiv #block {
  color: red; 
}
div button {
  color: green; 
}

navbar #block {
  color: red; 
}
navbar button {
  color: green; 
}
Задание 1

Explique qual será o resultado da compilação do seguinte código:

styles.scss@mixin super-link {
  a {
    @content;
  }
}
@include super-link {
  color: blue;
  text-decoration: underline;
}
Задание 2

Explique qual será o resultado da compilação do seguinte código:

styles.scss@mixin super-link {
  a {
    @content;
  }
  a .primary-link{
    @content;
    font-weight: bold;
  }
}
@include super-link {
  color: blue;
  text-decoration: underline;
}
Задание 3

Suponha que você tenha o seguinte mixin:

styles.scss@mixin colors {
  ...
}

Usando a diretiva @content, defina para todos os links pertencentes a #primary a cor da fonte como azul e sublinhado ondulado.