Criada por Håkon Wium Lie, Cascading Style Sheets (CSS) é uma linguagem para especificação de folhas de estilo de páginas da internet, descrevendo como essas páginas são apresentadas em telas, impressão, etc. O principal objetivo da linguagem CSS é possibilitar uma divisão entre o conteúdo da página e sua organização visual, sendo geralmente usada para organizar visualmente documentos escritos em HTML e XML.
Por meio de uma sintaxe simples, essa linguagem se tornou um padrão na internet. Porém, essa simplicidade pode se tornar um gargalo quando falamos de grandes aplicações, envolvendo folhas de estilo de alta complexidade. Nesse cenário, surgiram os pré-processadores de CSS que oferecem recursos para facilitar o desenvolvimento e manutenção de grandes aplicações.
O que são pré-processadores?
Pré-processadores são programas que recebem uma entrada, normalmente um texto, efetuando conversões em seu conteúdo que podem incluir substituições e inclusões condicionais.
No caso dos pré-processadores CSS este fluxo não é diferente, onde os códigos são desenvolvidos através de seus recursos facilitadores, depois submetido ao processador tendo como resultado seu conteúdo adequado as limitações do CSS. O principal benefício dos pré-processadores é o ganho na produtividade, seja na criação ou manutenção de estilos, gerando aplicações com estilo organizado e sem duplicação de código.
Confira os principais pré-processadores disponíveis no mercado.
Pré-processador | Descrição |
---|---|
Less | Criada por Alexis Sellier, LESS é uma linguagem de folhas de estilo dinâmica originalmente desenvolvida com Ruby, mas suas versões atuais usam JavaScript para processamento. |
Sass | Criada por Hampton Catlin e Natalie Weizenbaum, Sass é uma linguagem de folha de estilos dinâmica que possui dois tipos de sintaxe, Sass e Scss, sendo originalmente desenvolvida com Ruby, mas possui versões em PHP, Java e C. |
Stylus | Criada por TJ Holowaychuk, Stylus é uma linguagem de folhas de estilo dinâmica desenvolvida com NodeJS e possui suporte para sintaxe indentada e tradicional do CSS. |
Os principais recursos dos pré-processadores
Recurso | Descrição |
---|---|
Variáveis | As váriáveis são usadas para armazenar informações, nos pré-processadores essas variávies na verdade funcionam como constantes, sendo definida apenas uma vez, ótimo para guardar as principais cores de um template, fonte padrão, etc. |
Operadores | Os operadores são úteis para cálculos matemáticos como controle de altura e largura, podendo também ser baseado em variáveis. |
Aninhamento | Embora as linguagens de marcação como HTML e XML disponibilizem meios de aninhar conteúdo o CSS não oferece esse tipo de suporte, o que acaba gerando confusão na folha de estilo e duplicação nas declarações. Os pré-processadores oferecem uma alternativa simples de aninhamento que resolve esse problema, deixando o código mais limpo e de fácil entendimento. |
Importação | O CSS oferece esse recurso mas para cada importação é gerado uma requisição HTTP, o que não é muito interessante, com os pré-processadores uma vez processado será gerado um arquivo CSS com todo conteúdo necessário, possibilitando organizar os estilos mas sem comprometer o desempenho. |
Mixins | Os mixins permitem que sejam criados grupos de declarações, como por exemplo classes, que serão reutilizadas no decorrer do código, onde é possível definir parâmetros, possibilitando também o comportamento de herança. |
Funções | Este recurso não é oferecido por todos os pré-processadores, seu objetivo é disponibilizar funções pré-definidas, visando operações matemáticas, tipo de variável, definição de cores, etc. |
Confira os recursos e funções pré-definidas do pré-processador de CSS LESS.
Criando folhas de estilo usando LESS
Com os conceitos apresentados, vamos ao que interessa, nesse exemplo iremos desenvolver um componente para listagem de comentários usando os recursos do LESS.
O exemplo possui comentários no código LESS indicando os recursos utilizados, possibilitando um melhor entendimento sobre seus conceitos, além disso, foi usado uma versão javascript do processador executando as conversões no lado do cliente, isso não é recomendado para projetos reais onde existe necessidade de performance, para estes o ideal é usar um processador gerando arquivo CSS antes de enviar ao servidor, trabalhando normalmente seguindo os padrões do CSS.
Confira o código-fonte do exemplo no GitHub.
Conclusão
Os pré-processadores de CSS oferecem diversos recursos visando facilitar criação e manutenção de folhas de estilos, apenas quem já sofreu realizando mudanças significativas em estilos de grandes aplicações consegue identificar os benefícios das variáveis, mixins, etc. O uso de pré-processadores é uma realidade no mercado, podendo ser facilmente encontrado em projetos abertos de front-end ou como requisito de oportunidades de emprego.