SlideShare uma empresa Scribd logo
1 de 34
Matheus S. Thomaz 
AG2 Publicis Modem - 04/09/2014
O QUE É?
LESS 
is more 
while 
CSS 
is always sucks
“With great power comes great responsability” 
Tio Ben
“With great power comes great responsability” 
voltaire
Pré processador CSS 
Uma linguagem que, após compilada, gera CSS.
POR QUE UTILIZAR 
LESS?
Ou melhor, 
PORQUE NÃO 
UTILIZAR CSS?
Desorganizado. 
Não tem padrão. 
Folhas se estilo (podem ficar) muito extensas. 
Repetitivo. 
Uso de prefixos. 
[...]
VANTAGENS
Organização 
Imports 
Aninhamento (nested) 
Variáveis 
Funções 
Mixins 
[...]
Principais 
FEATURES
Variáveis 
INPUT 
@verde: #6BAF2A; 
@fSize: 20px;h1 { 
color: @verde; 
font-size: @fSize; 
} 
OUTPUT 
h1 { 
color: #6BAF2A; 
font-size: 20px; 
} 
http://lesscss.org/features/#features-overview-feature-variables
Operações 
INPUT 
@corLorem: #111; 
@fSize: 20px;h1 { 
color: @corLorem * 3; 
font-size: @fSize + 4; 
} 
div { 
background: (@corLorem + #222) * 1.5; 
} 
OUTPUT 
h1 { 
color: #333; 
font-size: 24px; 
} 
div { 
background: #4d4d4d; 
} 
http://lesscss.org/features/#features-overview-feature-operations
Funções 
INPUT 
@corLorem: #842210; 
div { 
background: saturate(@corLorem, 10%); 
} 
Funções de cor 
lighten(@corLorem, 10%) 
darken(@corLorem, 10%) 
saturate(@corLorem, 10%) 
desaturate(@corLorem, 10%) 
fadein(@corLorem, 10%) 
fadeout(@corLorem, 10%) 
OUTPUT 
div { 
background: #7d2717; 
} 
http://lesscss.org/features/#mixins-as-functions-feature
Mixins 
INPUT 
.rounded (@radius: 5px) { 
border-radius: @radius; 
-webkit-border-radius: @radius; 
-moz-border-radius: @radius; 
} 
#header { 
.rounded; 
} 
#footer { 
.rounded(10px); 
} 
OUTPUT 
#header { 
border-radius: 5px; 
-webkit-border-radius: 5px; 
-moz-border-radius: 5px; 
} 
#footer { 
border-radius: 10px; 
-webkit-border-radius: 10px; 
-moz-border-radius: 10px; 
} 
http://lesscss.org/features/#mixins-feature
Nested 
INPUT 
#header { 
.logo {float: left} 
.menu { 
ul {float: right;color: blue; 
li {float: left; 
&:hover {} 
} 
} 
} 
} 
.btn {boder dfdsfsdf-sdfsdf 
&-red {color: red;} 
} 
OUTPUT 
#header .logo { 
float: left; 
} 
#header .menu ul { 
float: right; 
color: blue 
} 
#header .menu ul li { 
float: left; 
} 
http://lesscss.org/features/#features-overview-feature-nested-rules
Selecionar parente 
INPUT 
#header { 
a {color: blue; 
&:hover {color: red;} 
} 
} 
.button { 
&-ok { 
background-image: url("ok.png"); 
} 
&-cancel { 
background-image: url("cancel.png"); 
} 
} 
OUTPUT 
#header a {color: blue;} 
#header a:hover {color: red;} 
.button-ok { 
background-image: url("ok.png"); 
}.button-cancel { 
background-image: url("cancel.png"); 
} 
http://lesscss.org/features/#parent-selectors-feature
Loops 
INPUT 
.loop(@counter) when (@counter > 0) { 
.loop((@counter - 1)); 
width: (10px * @counter); 
}div { 
.loop(5); 
} 
OUTPUT 
div { 
width: 10px; 
width: 20px; 
width: 30px; 
width: 40px; 
width: 50px; 
}
Import 
INPUT 
@import "foo"; 
@import "foo.less"; 
@import "foo.php"; 
@import "foo.css"; 
OUTPUT 
// Tudo que os outros arquivos conterem 
:)
COMO USAR?
Client side (odeio essa po**a) 
Incluir .less da mesma forma do .css 
Incluir less.js 
<link href=”style.less” rel=”stylesheet/less” type=”text/css” /> 
<script src=”less.js” type=”text/javascript” />
“Server” Side (agora sim o) 
Utilizando node 
npm install -g less 
$ lessc style.less > style.css
“Server” Side (agora sim o) 
Utilizando compiladores - crunchapp.net
“Server” Side (agora sim o) 
Utilizando compiladores - alphapixels.com/prepros/
“Server” Side (agora sim o) 
Utilizando compiladores - koala-app.com/
VAI USAR LESS?
Conheça o Less Hat 
Melhor (na minha opnião) biblioteca de mixins - lesshat.madebysource.com
PERGUNTAS?
PORQUE LESS 
E não outro preprocessador?
Porque eu tava afim de 
aprender LESS :)
LESS 
Sass 
Stylus
PERGUNTAS?
OBRIGADO! 
Matheus S. Thomaz 
AG2 Publicis Modem - 28/08/2014

Mais conteúdo relacionado

Destaque

Word formation - prefixes and sufixes
Word formation - prefixes and sufixesWord formation - prefixes and sufixes
Word formation - prefixes and sufixes
Adriana Sales Zardini
 
Planejemanto de inglês 1º ano do ensino médio
Planejemanto de inglês   1º ano do ensino médioPlanejemanto de inglês   1º ano do ensino médio
Planejemanto de inglês 1º ano do ensino médio
Isabel Araujo
 
Plano De Aula - Trabalhando a Língua Inglesa no cotidiano
Plano De Aula - Trabalhando a Língua Inglesa no cotidianoPlano De Aula - Trabalhando a Língua Inglesa no cotidiano
Plano De Aula - Trabalhando a Língua Inglesa no cotidiano
Fabio Lemes
 

Destaque (14)

Suffixes
SuffixesSuffixes
Suffixes
 
Word formation inglês aeronáutico adriana zardini
Word formation inglês aeronáutico adriana zardiniWord formation inglês aeronáutico adriana zardini
Word formation inglês aeronáutico adriana zardini
 
GÊNEROS TEXTUAIS E EDUCAÇÃO INICIAL DO PROFESSOR DE LÍNGUA INGLESA: UM LEVANT...
GÊNEROS TEXTUAIS E EDUCAÇÃO INICIAL DO PROFESSOR DE LÍNGUA INGLESA: UM LEVANT...GÊNEROS TEXTUAIS E EDUCAÇÃO INICIAL DO PROFESSOR DE LÍNGUA INGLESA: UM LEVANT...
GÊNEROS TEXTUAIS E EDUCAÇÃO INICIAL DO PROFESSOR DE LÍNGUA INGLESA: UM LEVANT...
 
Word formation - prefixes and sufixes
Word formation - prefixes and sufixesWord formation - prefixes and sufixes
Word formation - prefixes and sufixes
 
Word formation
Word formationWord formation
Word formation
 
suffixation
suffixation suffixation
suffixation
 
O uso de gêneros textuais nas aulas de LE do Ensino Médio: refletindo e ressi...
O uso de gêneros textuais nas aulas de LE do Ensino Médio: refletindo e ressi...O uso de gêneros textuais nas aulas de LE do Ensino Médio: refletindo e ressi...
O uso de gêneros textuais nas aulas de LE do Ensino Médio: refletindo e ressi...
 
Suffixation
SuffixationSuffixation
Suffixation
 
Types of word formation
Types of word formationTypes of word formation
Types of word formation
 
Word formation process
Word formation processWord formation process
Word formation process
 
Processes of word formation
Processes of word formationProcesses of word formation
Processes of word formation
 
Planejemanto de inglês 1º ano do ensino médio
Planejemanto de inglês   1º ano do ensino médioPlanejemanto de inglês   1º ano do ensino médio
Planejemanto de inglês 1º ano do ensino médio
 
Plano De Aula - Trabalhando a Língua Inglesa no cotidiano
Plano De Aula - Trabalhando a Língua Inglesa no cotidianoPlano De Aula - Trabalhando a Língua Inglesa no cotidiano
Plano De Aula - Trabalhando a Língua Inglesa no cotidiano
 
Aulas de Inglês, criativas, divertidas
Aulas de Inglês, criativas, divertidasAulas de Inglês, criativas, divertidas
Aulas de Inglês, criativas, divertidas
 

Semelhante a Less

Blog cozinha internacional da dona sinhá
Blog cozinha internacional da dona sinháBlog cozinha internacional da dona sinhá
Blog cozinha internacional da dona sinhá
Amebas
 
Criando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zeroCriando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zero
Eduardo Shiota Yasuda
 
rails_and_agile
rails_and_agilerails_and_agile
rails_and_agile
Juan Maiz
 
O que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seoO que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seo
introfini
 

Semelhante a Less (20)

HTML + CSS
HTML + CSSHTML + CSS
HTML + CSS
 
Arquitetura CSS
Arquitetura CSSArquitetura CSS
Arquitetura CSS
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
Programando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um FrameworkProgramando para programadores: Desafios na evolução de um Framework
Programando para programadores: Desafios na evolução de um Framework
 
Blog cozinha internacional da dona sinhá
Blog cozinha internacional da dona sinháBlog cozinha internacional da dona sinhá
Blog cozinha internacional da dona sinhá
 
Criando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zeroCriando uma arquitetura de front-end do zero
Criando uma arquitetura de front-end do zero
 
Simplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na práticaSimplificando o full stack - desenvolvimento web na prática
Simplificando o full stack - desenvolvimento web na prática
 
Simplificando o Javascrip
Simplificando o JavascripSimplificando o Javascrip
Simplificando o Javascrip
 
rails_and_agile
rails_and_agilerails_and_agile
rails_and_agile
 
Design Responsivo com Sass
Design Responsivo com SassDesign Responsivo com Sass
Design Responsivo com Sass
 
ITCSS - Um adeus para desorganização
ITCSS - Um adeus para desorganização ITCSS - Um adeus para desorganização
ITCSS - Um adeus para desorganização
 
Aula html5
Aula html5Aula html5
Aula html5
 
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3 Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
 
Edição de conteúdo web usando Javascript de ponta a ponta
Edição de conteúdo web usando Javascript de ponta a pontaEdição de conteúdo web usando Javascript de ponta a ponta
Edição de conteúdo web usando Javascript de ponta a ponta
 
Cobol Web com Net Express 5.1 - Parte 3
Cobol Web com Net Express 5.1 - Parte 3Cobol Web com Net Express 5.1 - Parte 3
Cobol Web com Net Express 5.1 - Parte 3
 
Angular js
Angular jsAngular js
Angular js
 
Devmedia - Conhecendo o framework front-end Foundation
Devmedia - Conhecendo o framework front-end FoundationDevmedia - Conhecendo o framework front-end Foundation
Devmedia - Conhecendo o framework front-end Foundation
 
Evento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de FrontEvento Front End SP - Arquitetura de Front
Evento Front End SP - Arquitetura de Front
 
O que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seoO que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seo
 
Introdução ao framework CakePHP
Introdução ao framework CakePHPIntrodução ao framework CakePHP
Introdução ao framework CakePHP
 

Mais de Matheus Thomaz

Mais de Matheus Thomaz (10)

Auto-gerenciamento
Auto-gerenciamentoAuto-gerenciamento
Auto-gerenciamento
 
Jekyll
JekyllJekyll
Jekyll
 
Jekyll
JekyllJekyll
Jekyll
 
Programar é pensar
Programar é pensarProgramar é pensar
Programar é pensar
 
Minicurso Iniciando no Mundo Front-End - Dia 01 - SASPI {5}
Minicurso Iniciando no Mundo Front-End - Dia 01 - SASPI {5}Minicurso Iniciando no Mundo Front-End - Dia 01 - SASPI {5}
Minicurso Iniciando no Mundo Front-End - Dia 01 - SASPI {5}
 
Minicurso Iniciando no Mundo Front-End - Dia 02 - SASPI {5}
Minicurso Iniciando no Mundo Front-End - Dia 02 - SASPI {5}Minicurso Iniciando no Mundo Front-End - Dia 02 - SASPI {5}
Minicurso Iniciando no Mundo Front-End - Dia 02 - SASPI {5}
 
Minicurso Iniciando no Mundo Front-End - Dia 03 - SASPI {5}
Minicurso Iniciando no Mundo Front-End - Dia 03 - SASPI {5}Minicurso Iniciando no Mundo Front-End - Dia 03 - SASPI {5}
Minicurso Iniciando no Mundo Front-End - Dia 03 - SASPI {5}
 
Minicurso Iniciando no Mundo Front-End - Dia 05 - SASPI {5}
Minicurso Iniciando no Mundo Front-End - Dia 05 - SASPI {5}Minicurso Iniciando no Mundo Front-End - Dia 05 - SASPI {5}
Minicurso Iniciando no Mundo Front-End - Dia 05 - SASPI {5}
 
Minicurso Iniciando no Mundo Front-End - Dia 04 - SASPI {5}
Minicurso Iniciando no Mundo Front-End - Dia 04 - SASPI {5}Minicurso Iniciando no Mundo Front-End - Dia 04 - SASPI {5}
Minicurso Iniciando no Mundo Front-End - Dia 04 - SASPI {5}
 
Gulp
GulpGulp
Gulp
 

Último

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Último (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 

Less

  • 1. Matheus S. Thomaz AG2 Publicis Modem - 04/09/2014
  • 3. LESS is more while CSS is always sucks
  • 4. “With great power comes great responsability” Tio Ben
  • 5. “With great power comes great responsability” voltaire
  • 6. Pré processador CSS Uma linguagem que, após compilada, gera CSS.
  • 8. Ou melhor, PORQUE NÃO UTILIZAR CSS?
  • 9. Desorganizado. Não tem padrão. Folhas se estilo (podem ficar) muito extensas. Repetitivo. Uso de prefixos. [...]
  • 11. Organização Imports Aninhamento (nested) Variáveis Funções Mixins [...]
  • 13. Variáveis INPUT @verde: #6BAF2A; @fSize: 20px;h1 { color: @verde; font-size: @fSize; } OUTPUT h1 { color: #6BAF2A; font-size: 20px; } http://lesscss.org/features/#features-overview-feature-variables
  • 14. Operações INPUT @corLorem: #111; @fSize: 20px;h1 { color: @corLorem * 3; font-size: @fSize + 4; } div { background: (@corLorem + #222) * 1.5; } OUTPUT h1 { color: #333; font-size: 24px; } div { background: #4d4d4d; } http://lesscss.org/features/#features-overview-feature-operations
  • 15. Funções INPUT @corLorem: #842210; div { background: saturate(@corLorem, 10%); } Funções de cor lighten(@corLorem, 10%) darken(@corLorem, 10%) saturate(@corLorem, 10%) desaturate(@corLorem, 10%) fadein(@corLorem, 10%) fadeout(@corLorem, 10%) OUTPUT div { background: #7d2717; } http://lesscss.org/features/#mixins-as-functions-feature
  • 16. Mixins INPUT .rounded (@radius: 5px) { border-radius: @radius; -webkit-border-radius: @radius; -moz-border-radius: @radius; } #header { .rounded; } #footer { .rounded(10px); } OUTPUT #header { border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; } #footer { border-radius: 10px; -webkit-border-radius: 10px; -moz-border-radius: 10px; } http://lesscss.org/features/#mixins-feature
  • 17. Nested INPUT #header { .logo {float: left} .menu { ul {float: right;color: blue; li {float: left; &:hover {} } } } } .btn {boder dfdsfsdf-sdfsdf &-red {color: red;} } OUTPUT #header .logo { float: left; } #header .menu ul { float: right; color: blue } #header .menu ul li { float: left; } http://lesscss.org/features/#features-overview-feature-nested-rules
  • 18. Selecionar parente INPUT #header { a {color: blue; &:hover {color: red;} } } .button { &-ok { background-image: url("ok.png"); } &-cancel { background-image: url("cancel.png"); } } OUTPUT #header a {color: blue;} #header a:hover {color: red;} .button-ok { background-image: url("ok.png"); }.button-cancel { background-image: url("cancel.png"); } http://lesscss.org/features/#parent-selectors-feature
  • 19. Loops INPUT .loop(@counter) when (@counter > 0) { .loop((@counter - 1)); width: (10px * @counter); }div { .loop(5); } OUTPUT div { width: 10px; width: 20px; width: 30px; width: 40px; width: 50px; }
  • 20. Import INPUT @import "foo"; @import "foo.less"; @import "foo.php"; @import "foo.css"; OUTPUT // Tudo que os outros arquivos conterem :)
  • 22. Client side (odeio essa po**a) Incluir .less da mesma forma do .css Incluir less.js <link href=”style.less” rel=”stylesheet/less” type=”text/css” /> <script src=”less.js” type=”text/javascript” />
  • 23. “Server” Side (agora sim o) Utilizando node npm install -g less $ lessc style.less > style.css
  • 24. “Server” Side (agora sim o) Utilizando compiladores - crunchapp.net
  • 25. “Server” Side (agora sim o) Utilizando compiladores - alphapixels.com/prepros/
  • 26. “Server” Side (agora sim o) Utilizando compiladores - koala-app.com/
  • 28. Conheça o Less Hat Melhor (na minha opnião) biblioteca de mixins - lesshat.madebysource.com
  • 30. PORQUE LESS E não outro preprocessador?
  • 31. Porque eu tava afim de aprender LESS :)
  • 34. OBRIGADO! Matheus S. Thomaz AG2 Publicis Modem - 28/08/2014