Sass - Argumentos do Mixin

Descrição

Os valores de SassScript podem ser considerados como argumentos em mixins, que são passados ​​quando o mixin é incluído e estão disponíveis como variáveis ​​dentro do mixin. O argumento é o nome de uma variável, que é separada por vírgula ao definir um mixin. Existem dois tipos de argumentos, como -

  • Argumentos de Palavras-Chave
  • Argumentos Variáveis

Argumentos de Palavras-Chave

O argumento de palavra-chave explícita pode ser usado para incluir em mixins. Os argumentos, que são nomeados, podem ser passados ​​em qualquer ordem e os valores padrão do argumento podem ser omitidos.

Por exemplo, crie um arquivo SASS com o seguinte código -

@mixin bordered($color, $width: 2px) {
   color: #77C1EF;
   border: $width solid black;
   width: 450px;
}

.style  {
   @include bordered($color:#77C1EF, $width: 2px);
}

O código acima será compilado no arquivo CSS conforme mostrado abaixo -

.style {
   color: #77C1EF;
   border: 2px solid black;
   width: 450px;
}

Argumentos Variáveis

O argumento variável é usado para passar qualquer número de argumentos ao mixin. Ele contém argumentos de palavra-chave passados ​​para a função ou mixin. Argumentos de palavras-chave passados ​​para o mixin podem ser acessados ​​usando a função de palavras-chave ($ args) que retorna valores mapeados para String.

Por exemplo, crie um arquivo SASS com o seguinte código -

@mixin colors($background) {
   background-color: $background;
}

$values: magenta, red, orange;
.container {
   @include colors($values...);
}

O código acima será compilado no arquivo CSS conforme mostrado abaixo -

.container {
   background-color: magenta;
}

Exemplo

O exemplo a seguir demonstra o uso de argumentos no arquivo SCSS -

argument.htm

<html>
   <head>
      <title> Mixin example of sass</title>
      <link rel = "stylesheet" type = "text/css" href = "argument.css"/>
   </head>

   <body>
      <div class = "style">
         <h1>Example using arguments</h1>
         <p>Different Colors</p>
         <ul>
            <li>Red</li>
            <li>Green</li>
            <li>Blue</li>
         </ul>
      </div>
   </body>
</html>

Em seguida, crie o arquivo argument.scss .

argument.scss

@mixin bordered($width: 2px) {
   background-color: #77C1EF;
   border: $width solid black;
   width: 450px;
}

.style  {
   @include bordered(2px);
}

Você pode dizer ao SASS para observar o arquivo e atualizar o CSS sempre que o arquivo SASS for alterado, usando o seguinte comando -

sass --watch C:\ruby\lib\sass\argument.scss:argument.css

A seguir, execute o comando acima; ele criará o arquivo argument.css automaticamente com o seguinte código -

style.css

.style {
   background-color: #77C1EF;
   border: 2px solid black;
   width: 450px;
}

Resultado

Vamos realizar as seguintes etapas para ver como funciona o código fornecido acima -

  • Salve o código html fornecido acima em argument.htm Arquivo.

  • Abra este arquivo HTML em um navegador, uma saída é exibida conforme mostrado abaixo.