SlideShare uma empresa Scribd logo
Pre vs Pos
Nath Paiva
Dev. Front-end @ GetNinjas
Twitter: @NathPaiva
Github: @NathPaiva
William Costa
Dev. Front-end @ GetNinjas
Twitter: @wilcosta_dev
Github: @williamcosta
PRÉ PROCESSADORES
O que é?
O Pre processador são programas que
recebem um valor de entrada, que passa
pelo processador que faz alterações no
conteúdo recebido entregando um outro
valor.
Basicamente com o pré processador no CSS
é a mesma coisa.
Escrevemos o nosso código na sintaxe que
é interpretada pelo nosso pré processador,
no qual após compilado nada mais é do que
o nosso velho e bom CSS.
Quais são?
Qual vamos usar?
Syntax
// Sintaxe SCSS e LESS
body {
font: 100% $font-stack;
color: $primary-color;
}
// Sintaxe SASS
body
font: 100% $font-stack;
color: $primary-color;
// Sintaxe Stylus
body
font 100% $font-stack
color $primary-color
Variables
// Variâveis SCSS e SASS
$font-stack: Helvetica, sans-serif;
$primary-color: #333;
// Variáveis LESS
@font-stack: Helvetica, sans-serif;
@primary-color: #333;
//Variáveis Stylus
font-stack = Helvetica, sans-serif;
primary-color = #333;
$font-stack = Helvetica, sans-serif;
$primary-color = #333;
Nested
nav {
ul {
margin: 0;
padding: 0;
list-style: none;
}
li { display: inline-block; }
a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
}
nav ul {
margin: 0;
padding: 0;
list-style: none;
}
nav li {
display: inline-block;
}
nav a {
display: block;
padding: 6px 12px;
text-decoration: none;
}
Mixin
@mixin border-radius($radius: 5px) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
-ms-border-radius: $radius;
border-radius: $radius;
}
.box-1 { @include border-radius(); }
.box-2 { @include border-radius(10px); }
.box-1 {
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
border-radius: 5px;
}
.box-2 {
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
border-radius: 10px;
}
Function
$grid-width: 40px;
$gutter-width: 10px;
@function grid-width($n) {
@return $n * $grid-width + ($n - 1) * $gutter-width;
}
#sidebar { width: grid-width(5); }
#sidebar {
width: 240px;
}
Extends
%message {
border: 1px solid #ccc;
padding: 10px;
color: #333;
}
.success {
@extend %message;
border-color: green;
}
.error {
@extend %message;
border-color: red;
}
.warning {
@extend %message;
border-color: yellow;
}
.message, .success, .error, .warning {
border: 1px solid #cccccc;
padding: 10px;
color: #333;
}
.success {
border-color: green;
}
.error {
border-color: red;
}
.warning {
border-color: yellow;
}
Metodologia
Metodologias
Aqui temos as principais metodologias
para organizarmos nosso CSS:
OOCSS (Oriented Object CSS)
SMACSS
ITCSS
BEM
DRY CSS
Atomic
$lighten: #FFF;
$darken: #626262;
.header {
position: relative;
background-color: $lighten;
&__brand {
padding: 20px 0;
fill: $darken;
}
&--fixed {
position: fixed;
}
&--darken {
background-color: $darken;
.header__brand {
fill: $lighten;
}
}
}
.header {
position: relative;
background-color: #FFF;
}
.header__brand {
padding: 20px 0;
fill: #626262;
}
.header--fixed {
position: fixed;
}
.header--darken {
background-color: #626262;
}
.header--darken .header__brand {
fill: #FFF;
}
MAS PERA…
CUIDADO!
PostCss
O que é?
O PostCss é uma ferramenta baseada
em plugins de JS que cria rotinas para
o CSS.
Sem a necessidade de escrever em uma
syntax diferente .
Basicamente o PostCSS transforma o
CSS em código que o JS consegue
interpretar, para dessa forma aplicar
modificações nele.
Como funciona?
parser
plugins
stringfier
.css
Alguns Plugins
Autoprefixer
https://github.com/postcss/autoprefixer
Pre vs Pos
$ npm install —-save-dev autoprefixer
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var autoprefixer = require('autoprefixer');
gulp.task('postcss', function () {
return gulp.src('./style.css')
.pipe(postcss([autoprefixer]))
.pipe(gulp.dest('./prod'));
});
cssnext
http://cssnext.io/
Pre vs Pos
$ npm install —-save-dev postcss-cssnext
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var cssnext = require('postcss-cssnext');
gulp.task('postcss', function () {
return gulp.src(‘./style.css')
.pipe(postcss([cssnext({browsers: ['last 1 version']})]))
.pipe(gulp.dest('./prod'));
});
cssnano
http://cssnano.co/
Pre vs Pos
$ npm install —-save-dev cssnano
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var cssnano = require('cssnano');
gulp.task('postcss', function () {
return gulp.src('./style.css')
.pipe(postcss([cssnano]))
.pipe(gulp.dest('./prod'));
});
Font Magician
https://github.com/jonathantneal/postcss-font-magician
Pre vs Pos
$ npm install —-save-dev postcss-font-magician
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var magician = require('postcss-font-magician');
gulp.task('postcss', function () {
return gulp.src('./style.css')
.pipe(postcss([magician]))
.pipe(gulp.dest('./prod'));
});
PostCSS Nested
https://github.com/postcss/postcss-nested
Pre vs Pos
$ npm install —-save-dev postcss-nested
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var nested = require('postcss-nested');
gulp.task('postcss', function () {
return gulp.src('./style.css')
.pipe(postcss([nested]))
.pipe(gulp.dest('./prod'));
});
Lost Grid
http://lostgrid.org/
Pre vs Pos
$ npm install lost
var gulp = require('gulp');
var postcss = require('gulp-postcss');
var lost = require('lost');
gulp.task('postcss', function () {
return gulp.src('./style.css')
.pipe(postcss([lost]))
.pipe(gulp.dest('./prod'));
});
MAS PERA…
CUIDADO!
E o futuro… é CSS
Temos o CSS4 vindo ai e algumas features que encontramos em Pré e Pós Processadores já
estarão presentes. Algumas que estão na nova versão do CSS:
:root {
--mainColor: #E5E5E5;
}
!ul > li {
background-color: red;
}
a[href='foo' i] {
}
:not() | :has() | ::matches()
:read-only | :read-write
:required | :optional
:column(selector) | :nth-column(n) | :nth-last-column(n)
Variáveis
Subject Selector
Attribute Case-Sensitivity
Pseudo Classes
Structural Pseudo Classes
Referências
• http://sass-lang.com/
• https://medium.com/@neysimes
• https://www.youtube.com/watch?v=hWNzhKIa34w&t=1s
• https://www.postcss.parts
• http://postcss.org/
• http://css4.rocks/
• https://drafts.csswg.org/selectors-4/#overview
• https://css4-selectors.com/selectors/
Sem perguntas certo?
valeu pessoal 😬

Mais conteúdo relacionado

PPTX
A importância de padronizar nosso CSS
PDF
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
PPTX
Clean code: programando com WordPress de forma profissional
ODP
Zend Framework
PDF
jQuery
PDF
Projetando para WordPress
PDF
NoSQL Livre
PPTX
A importância de padronizar nosso CSS
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Clean code: programando com WordPress de forma profissional
Zend Framework
jQuery
Projetando para WordPress
NoSQL Livre

Semelhante a Pre vs Pos (20)

PDF
Aula de Desenvolvimento de Sistemas Web - CSS3
PDF
Resumo CSS – w3schools.pdf
PPTX
Facilitando sua vida com SASS
PPTX
Arquivo só pra encher linguiça ex CSS.pptx
PDF
Sass - css bomba[do]
PDF
Sass, css bomda[do]
PDF
Arquitetura CSS
PDF
SUIT CSS como padrão de escrita de estilos
PDF
02-Introdução CSS - DDW II
PDF
Apostila css
PPTX
Minicurso CSS
PPT
Alta produtividade com front end com sass e compass
PPTX
Introdução ao CSS - os princípios básicos
PDF
Apostila: CSS
PDF
CSS - Cansei de Ser Subestimado
PPTX
2014 - Desenvolvimento Web - 03 CSS
ODP
CSS - Folhas de Estilo em Cascata
PPTX
Aula02 Desenvolvimento em Ambiente Web - CSS 3
PPTX
Construindo layout de sites com CSS
PPSX
Css Aula 1
Aula de Desenvolvimento de Sistemas Web - CSS3
Resumo CSS – w3schools.pdf
Facilitando sua vida com SASS
Arquivo só pra encher linguiça ex CSS.pptx
Sass - css bomba[do]
Sass, css bomda[do]
Arquitetura CSS
SUIT CSS como padrão de escrita de estilos
02-Introdução CSS - DDW II
Apostila css
Minicurso CSS
Alta produtividade com front end com sass e compass
Introdução ao CSS - os princípios básicos
Apostila: CSS
CSS - Cansei de Ser Subestimado
2014 - Desenvolvimento Web - 03 CSS
CSS - Folhas de Estilo em Cascata
Aula02 Desenvolvimento em Ambiente Web - CSS 3
Construindo layout de sites com CSS
Css Aula 1
Anúncio

Último (7)

PPTX
Mapeamento de Objeto para Tabela Relacional
PPTX
Curso de Windows 11 resumido na prática.pptx
DOC
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
PDF
Evolução em código: algoritmos genéticos com PHP
PDF
apresentacao introducao computacao ead.pdf
DOC
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
PDF
Dos requisitos ao código: como criar código rastreável em PHP
Mapeamento de Objeto para Tabela Relacional
Curso de Windows 11 resumido na prática.pptx
COMO AUTOMATIZR JOGOS SUPER NINTENDO ATRAVES DA PROGRAMAÇÃO
Evolução em código: algoritmos genéticos com PHP
apresentacao introducao computacao ead.pdf
CODIGO PARA AUTOMATIZAR A JOGABILIDADE SUPER MARIO
Dos requisitos ao código: como criar código rastreável em PHP
Anúncio

Pre vs Pos

  • 2. Nath Paiva Dev. Front-end @ GetNinjas Twitter: @NathPaiva Github: @NathPaiva William Costa Dev. Front-end @ GetNinjas Twitter: @wilcosta_dev Github: @williamcosta
  • 4. O que é? O Pre processador são programas que recebem um valor de entrada, que passa pelo processador que faz alterações no conteúdo recebido entregando um outro valor. Basicamente com o pré processador no CSS é a mesma coisa. Escrevemos o nosso código na sintaxe que é interpretada pelo nosso pré processador, no qual após compilado nada mais é do que o nosso velho e bom CSS.
  • 8. // Sintaxe SCSS e LESS body { font: 100% $font-stack; color: $primary-color; } // Sintaxe SASS body font: 100% $font-stack; color: $primary-color; // Sintaxe Stylus body font 100% $font-stack color $primary-color
  • 10. // Variâveis SCSS e SASS $font-stack: Helvetica, sans-serif; $primary-color: #333; // Variáveis LESS @font-stack: Helvetica, sans-serif; @primary-color: #333; //Variáveis Stylus font-stack = Helvetica, sans-serif; primary-color = #333; $font-stack = Helvetica, sans-serif; $primary-color = #333;
  • 12. nav { ul { margin: 0; padding: 0; list-style: none; } li { display: inline-block; } a { display: block; padding: 6px 12px; text-decoration: none; } } nav ul { margin: 0; padding: 0; list-style: none; } nav li { display: inline-block; } nav a { display: block; padding: 6px 12px; text-decoration: none; }
  • 13. Mixin
  • 14. @mixin border-radius($radius: 5px) { -webkit-border-radius: $radius; -moz-border-radius: $radius; -ms-border-radius: $radius; border-radius: $radius; } .box-1 { @include border-radius(); } .box-2 { @include border-radius(10px); } .box-1 { -webkit-border-radius: 5px; -moz-border-radius: 5px; -ms-border-radius: 5px; border-radius: 5px; } .box-2 { -webkit-border-radius: 10px; -moz-border-radius: 10px; -ms-border-radius: 10px; border-radius: 10px; }
  • 16. $grid-width: 40px; $gutter-width: 10px; @function grid-width($n) { @return $n * $grid-width + ($n - 1) * $gutter-width; } #sidebar { width: grid-width(5); } #sidebar { width: 240px; }
  • 18. %message { border: 1px solid #ccc; padding: 10px; color: #333; } .success { @extend %message; border-color: green; } .error { @extend %message; border-color: red; } .warning { @extend %message; border-color: yellow; } .message, .success, .error, .warning { border: 1px solid #cccccc; padding: 10px; color: #333; } .success { border-color: green; } .error { border-color: red; } .warning { border-color: yellow; }
  • 20. Metodologias Aqui temos as principais metodologias para organizarmos nosso CSS: OOCSS (Oriented Object CSS) SMACSS ITCSS BEM DRY CSS Atomic
  • 21. $lighten: #FFF; $darken: #626262; .header { position: relative; background-color: $lighten; &__brand { padding: 20px 0; fill: $darken; } &--fixed { position: fixed; } &--darken { background-color: $darken; .header__brand { fill: $lighten; } } } .header { position: relative; background-color: #FFF; } .header__brand { padding: 20px 0; fill: #626262; } .header--fixed { position: fixed; } .header--darken { background-color: #626262; } .header--darken .header__brand { fill: #FFF; }
  • 24. O que é? O PostCss é uma ferramenta baseada em plugins de JS que cria rotinas para o CSS. Sem a necessidade de escrever em uma syntax diferente . Basicamente o PostCSS transforma o CSS em código que o JS consegue interpretar, para dessa forma aplicar modificações nele.
  • 29. $ npm install —-save-dev autoprefixer var gulp = require('gulp'); var postcss = require('gulp-postcss'); var autoprefixer = require('autoprefixer'); gulp.task('postcss', function () { return gulp.src('./style.css') .pipe(postcss([autoprefixer])) .pipe(gulp.dest('./prod')); });
  • 32. $ npm install —-save-dev postcss-cssnext var gulp = require('gulp'); var postcss = require('gulp-postcss'); var cssnext = require('postcss-cssnext'); gulp.task('postcss', function () { return gulp.src(‘./style.css') .pipe(postcss([cssnext({browsers: ['last 1 version']})])) .pipe(gulp.dest('./prod')); });
  • 35. $ npm install —-save-dev cssnano var gulp = require('gulp'); var postcss = require('gulp-postcss'); var cssnano = require('cssnano'); gulp.task('postcss', function () { return gulp.src('./style.css') .pipe(postcss([cssnano])) .pipe(gulp.dest('./prod')); });
  • 38. $ npm install —-save-dev postcss-font-magician var gulp = require('gulp'); var postcss = require('gulp-postcss'); var magician = require('postcss-font-magician'); gulp.task('postcss', function () { return gulp.src('./style.css') .pipe(postcss([magician])) .pipe(gulp.dest('./prod')); });
  • 41. $ npm install —-save-dev postcss-nested var gulp = require('gulp'); var postcss = require('gulp-postcss'); var nested = require('postcss-nested'); gulp.task('postcss', function () { return gulp.src('./style.css') .pipe(postcss([nested])) .pipe(gulp.dest('./prod')); });
  • 44. $ npm install lost var gulp = require('gulp'); var postcss = require('gulp-postcss'); var lost = require('lost'); gulp.task('postcss', function () { return gulp.src('./style.css') .pipe(postcss([lost])) .pipe(gulp.dest('./prod')); });
  • 46. E o futuro… é CSS Temos o CSS4 vindo ai e algumas features que encontramos em Pré e Pós Processadores já estarão presentes. Algumas que estão na nova versão do CSS: :root { --mainColor: #E5E5E5; } !ul > li { background-color: red; } a[href='foo' i] { } :not() | :has() | ::matches() :read-only | :read-write :required | :optional :column(selector) | :nth-column(n) | :nth-last-column(n) Variáveis Subject Selector Attribute Case-Sensitivity Pseudo Classes Structural Pseudo Classes
  • 47. Referências • http://sass-lang.com/ • https://medium.com/@neysimes • https://www.youtube.com/watch?v=hWNzhKIa34w&t=1s • https://www.postcss.parts • http://postcss.org/ • http://css4.rocks/ • https://drafts.csswg.org/selectors-4/#overview • https://css4-selectors.com/selectors/