Stylus - Palavras chave em argumentos
Já vimos como é fácil criar mixins e functions no Stylus. Mas como os parâmetros podem ser passados para obtermos os resultados esperados? Vem comigo que eu te mostro ;)
O Stylus suporta keyword arguments, ou “kwargs”. Isso significa que você não precisa manter a mesma ordem dos parâmetros quando invocar uma function ou um mixin, e inclusive pode fazer algumas variações um bastante diferentes. Vamos ver nos exemplos para ficar mais claro:
1 | body { |
Que irá compilar:
1 | body { |
Se você ainda não conhece o Stylus, recomendo que leia o primeiro artigo da série, para que você possa montar seu ambiente e colocar o Stylus pra rodar :)
O Stylus tem uma função embutida (_Built-in Function), chamada rgba
, que retorna o valor CSS
para rgba
.
Essa função aceita 4 parâmetros: red
, green
, blue
e alpha
. Como você pode ver no exemplo acima, na primeira chamada de color
, fazemos no padrão do CSS, chamando os parâmetros na ordem em que eles devem ser chamados.
Na segunda chamada de color
, nós nomeamos os parâmetros, ainda mantendo a ordem. E, como você pode ver, a compilação é a mesma.
Agora olhe que loucura: na terceira chamada, os parâmetros não estão em ordem, mas ainda assim as coisas compilam como deveriam, pois o Stylus sabe exatamente onde deve colocar cada valor, pois nomeamos os argumentos!
E mais interessante: perceba que o último argumento não está nomeado!
Então como o Stylus sabe onde deve ir esse valor?
Como já tinhamos nomeado alpha
, blue
e red
, o único argumento que sobrou foi o green
. Logo, esse valor só pode ser dele ;)
Agora veja a quarta chamada: temos somente dois valores nomeados. Quando isso acontece, o Stylus atribui os valores dos argumentos nomeados, e os que não estão nomeados, ele coloca na ordem em que deveriam ser chamados na function ou mixin, excluindo apenas os que já foram passados com nome.
Olhe novamente para a última chamada:
1 | color: rgba(alpha: 0.5, blue: 100, 255, 200); |
Os valores para alpha
e blue
o Stylus já tem. A ordem para passar os parâmetros é:
1 | rgba(red, green, blue, alpha) |
Então ainda faltam os valores para red
e green
, que receberão, respectivamente, os próximos valores :D
Mas como eu faço para saber qual a ordem que eu devo passar os parâmetros?
O Stylus tem uma função chamada p()
, que retorna como o mixin ou a function foram criados.
Se você colocar no seu arquivo Stylus:
1 | p(rgba) |
Você terá como retorno no seu terminal:
1 | inspect: rgba(red, green, blue, alpha) |
E isso funciona também para os mixins e functions criados por você! :D
Da hora não?
Aproveite essa incrível ferramenta e até o próximo artigo :)
Sobre o #1postperday: https://blog.da2k.com.br/2014/12/31/um-post-por-dia/
Tem alguma sugestão para os próximos posts do #1postperday? Deixe ela aqui: https://github.com/fdaciuk/fdaciuk.github.io/issues/1