quinta-feira, 12 de julho de 2012

Aumente sua produtividade com o LESS CSS

CSS (Cascading Style Sheets) é uma linguagem de marcação utilizada na camada de desenvolvimento para apresentação de documentos. Conheça o LESS e aumente sua flexibilidade.

O LESS é um pré-processador para CSS que possui sua sintaxe também baseada em CSS, tornando-se um framework fácil, flexível e dinâmico para desenvolvimento web. Cada vez mais é exigido do desenvolvedor front-end um melhor desempenho, e essa tecnologia web facilita e muito o desenvolvimento de aplicações. Porém é necessário antes um profissional com boa experiência como desenvolvedor front-end, caso contrário ele não irá desfrutar das vantagens do LESS.

Com o conhecimento do LESS você vai:

Implementar dinamismo nas folhas de estilos; Trabalhar com recursos fundamentais da programação, como funções e classes; Facilitar a manutenção e alteração de valores nas folhas de estilos; Reaproveitar estilos no CSS; Escrever estilos mais simples.

Como configurar o LESS?

A implementação pode ser realizada de duas maneiras bem simples. A primeira é com Javascript e a segunda é pelo Node.js. Hoje explicarei a forma simples de instalação do LESS na sua aplicação web. O primeiro passo é configurar seu editor html para suportar a sintaxe CSS no arquivo css.less.

Então baixe less.js no lesscss.org no topo da página principal, a seguir adicione a tag ao header da página, com o atributo src preenchido com o caminho para o less.js. O atributo type não é obrigatório para documentos em HTML5.

Listagem 1: Referenciando o Less.js

<script src="less-1.3.0.min.js" type="text/javascript"></script>

Agora é preciso vincular o css.less e alterar no atributo rel para stylesheet/less. Coloque o caminho correto do arquivo css e o tipo de arquivo, que no caso é text/css.

Importante: certifique-se de incluir o arquivo de estilo antes do elemento script.

Listagem 2: Referenciando o CSS.LESS


<link rel="stylesheet/less" href="css.less" type="text/css">


Variáveis

Um recurso fundamental para programação é a criação de variáveis e com o LESS é possível definir valores em suas folhas de estilos. Facilitando a manutenção e alteração de valores no css, que muitas vezes é necessário fazê-lo. O exemplo abaixo pode ser utilizado em diferentes propriedades e estilos do css.

Listagem 2: Exemplo de uso de variáveis


@verde: #6BAF2A;
@fonte_h1: bold 18px "Times New Roman", Arial;
 
h1{
    color: @verde;
    font: @fonte_h1;
}
 
a{
    color: @verde;
}
 
LESS compilado para css:
 
h1{
    color: #6BAF2A;
    font:  bold 14px "Times New Roman", Arial;
}
 
a{
    color: #6BAF2A;
}


Mixins

Conceito de OOP para utilização de classes dentro de classes. No LESS é permitido o reaproveitamento de estilos, apenas utilizando o nome da classe com ponto e vírgula no final de cada linha de comando dentro da definição de estilos de outros elementos.

Listagem 4: Exemplo de reaproveitamento de classes


.fonte{
    border: 1px solid #666;
    text-align: justify;
}
 
.header h2{
    text-decoration: uppercase;
    .fonte;
}
 
article p{
    margin: 0 11px;
    .fonte;
}
 
/*LESS compilado para css:*/
 
.fonte{
    border: 1px solid #666;
    text-align: justify;
}
 
.header h2{
    text-decoration: uppercase;
    border: 1px solid #666;
    text-align: justify;
}
 
article p{
    margin: 0 11px;
    border: 1px solid #666;
    text-align: justify;
}


Funções

O LESS permite parâmetros em mixins, podendo passar valores como: @radius: 10px. Essa dinâmica no CSS, sempre foi o sonho de todo desenvolvedor front-end. Criar funções para os estilos, isso sim é vida!! rsrs
Cuidado: o nível de interpretação de layout precisa ser levado em conta no momento do desenvolvimento. É necessário identificar os mixins na aplicação web.

Listagem 5: Exemplo de uso de funções


.font(@verde){
    color: @verde;
    border-bottom: 2px dotted @verde;
}
 
 
.bordaRadius(@radius: 10px){
    border-radius: @radius;
    -moz-border-radius: @radius;
    -webkit-border-radius: @radius;
}
 
article img{
    margin: 5px 0;
    .bordaRadius;  
}
 
/*LESS compilado para css:*/
 
.font{
    color: #6BAF2A;
    border-bottom: 2px dotted #6BAF2A;
}
 
.bordaRadius{
    border-radius: 10px;
-moz-border-radius: 10px;
    -webkit-border-radius: 10px;   
}
 
article img{
    margin: 5px 0;
    border-radius: 10px;
    -moz-border-radius: 10px;
    -webkit-border-radius: 10px;   
}


Hierarquia de estilos

Vamos imaginar o elemento header com vários elementos filhos e para estilizar esses elementos teríamos algo parecido com o exemplo abaixo:

Listagem 6: Exemplo de estilização de elementos filhos


header{
    width: 960px;
}
 
header .logo{
    display: inline;
    float: left;
    margin: 0 10px;
}
 
header nav{
    clear: both;
    padding: 5px 0;
}
 
header nav li{
    display: inline;
    float: left;
}

Agora vamos reescrever essa mesma hierarquia, uma dentro da outra. O LESS ficará responsável por gerar os elementos parent no navegador do usuário.
Cuidado: não abuse na criação de vários níveis, o bom senso é importante durante o desenvolvimento.

Listagem 7: Exemplo de estilização de hierarquia com o LESS


header{
    width: 960px;
 
    .logo{
        display: inline;
        float: left;
        margin: 0 10px;
    }
 
    nav{
        clear: both;
        padding: 5px 0;
    }
 
    nav li{
        display: inline;
        float: left;
    }
}


Como ficarão os pseudo-elementos no LESS?

O framework CSS disponibiliza o símbolo "&" para herança de atributos e pseudo-elementos. Exemplo:

Listagem 8: Utilização de pseudo-elementos


nav li a{
    border: 1px solid @verde;
    height: 30px;
    &:hover{
        background: #444;  
    }
}
 
/*LESS compilado para css:*/
 
nav li a{
    border: 1px solid @verde;
    height: 30px;
}
 
nav li a:hover{
    background: #444;  
}


Palhetas de cores automáticas

No processo de criação o design, forma-se uma palheta de cores e o front-end pega o código de cada cor e coloca na folha de estilo. Esse processo é diferente com o LESS, a saturação de cada cor é empregada no estilo, por exemplo. Mas o framework disponibiliza outras funções para cores, como: darken, desaturate, fadein, fadeout, spin e outros.

Listagem 9: Utilização de cores no LESS


/*cores automáticas*/
 
@cor: #FAA246;
 
article{
    border-left: saturate(@cor, 20%);
}
 
section{
    background: darken(@cor, 20%);
}
 
aside{
    background: desaturate(@cor, 20%);
}
 
header{
    background: fadein(@cor, 20%);
}
 
footer{
    background: fadeout(@cor, 20%);
}


String em variáveis

Semelhante ao PHP, o LESS permite criar variáveis com strings como valor.

Listagem 10: Uso de variáveis string


@base_url: "http://dominio.com.br";
 
background: url("@{base_url}/images/bg.png");
 
/*LESS compilado para css:*/
 
background:url("<http://dominio.com.br/images/bg.png>");

Este artigo tem o objetivo foi apresentar a ferramenta LESS para se trabalhar de forma mais prática com CSS.

Até a próxima.

Demo (Download): https://gist.github.com/3077176



Créditos: Vinicius Moraes

1 comentários:

Postar um comentário

 
;