PostCSS
Front-End Meetup #1
Tiago Vilas Boas
(Montanha)
10 anos de experiência em TI
tiago@artesites.com.br
http://www.artesites.com.br
Quem já usa PostCSS?
PostCSS
Etapas:
O que não é?
O que esses plugins podem fazer?
Autoprefixer
a {
display: flex;
}
a {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex
}CSS:
Compilado:
Font Magician
/* before */
body {
font-family: "Alice";
}CSS:
Font Magician
/* after */
@font-face {
font-family: "Alice";
font-style: normal;
font-weight: 400;
src: local("Alice"), local("Alice-Regular"),
url("http://fonts.gstatic.com/alice.eot?#") format("eot"),
url("http://fonts.gstatic.com/alice.woff2") format("woff2"),
url("http://fonts.gstatic.com/alice.woff") format("woff"),
url("http://fonts.gstatic.com/s/alice.ttf") format("truetype")
}
body {
font-family: "Alice";
}Compilado:
CSSNano
/* normalize selectors */
h1::before, h1:before {
/* reduce shorthand even further */
margin: 10px 20px 10px 20px;
/* reduce color values */
color: #ff0000;
/* drop outdated vendor prefixes */
-webkit-border-radius: 16px;
border-radius: 16px;
/* remove duplicated properties */
font-weight: normal;
font-weight: normal;
/* reduce position values */
background-position: bottom right;
}
/* correct invalid placement */
@charset "utf-8";CSS:
CSSNano
@charset "utf-8";h1:before{margin:10px 20px;
color:red;border-radius:16px;font-weight:normal;
background-position:100% 100%}Compilado:
Tá! E como uso o PostCSS?
$ npm install gulp-postcss
$ npm install autoprefixerE como fica no Gulp?
var postcss = require('gulp-postcss');
var gulp = require('gulp');
var autoprefixer = require('autoprefixer');
var cssnano = require('cssnano');
gulp.task('css', function () {
var processors = [
autoprefixer({browsers: ['last 1 version']}),
cssnano(),
];
return gulp.src('./src/*.css')
.pipe(postcss(processors))
.pipe(gulp.dest('./dest'));
});
Conclusões
Referências
Dúvidas?