js lab2017_lightning talks_postcss - there is a plugin for that

17
PostCSS Для этого существует плагин @PostCSS Андрей Ситник

Upload: geekslab-odessa

Post on 22-Jan-2018

107 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

PostCSS

Для этого существует плагин @PostCSS

Андрей Ситник

Page 2: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

2

2014

Page 3: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

Основной стек технологий1. AngularJS

2. Sass + Compass

— Vendor prefixes

— Sprites

3. Grunt для сборки

// 2014 �

3

Page 4: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

4

2015

Page 5: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

Проблемы �1. Время сборки проекта

2. Ненужные вендорные префиксы

3. Странности в спрайтах

4. Зависимость от Ruby

5

Page 6: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

Попытка #11. Убран Compass

2. Убрана зависимость от Ruby (LibSass)

3. Спрайтами теперь занимается grunt-spritesmith

4. Вендорными префиксами занимается Autoprefixer

5. cssmin сменился на cssnano

6

Page 7: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

Результаты1. Сборка проекта занимает гораздо меньше времени

2. Sass стили стали чище (нет ненужных миксинов)

3. Вендорные префиксы соответствуют статистике используемых

браузеров

4. Результирующий файл стал меньшего размера

7

Page 8: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

8

Page 9: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

9

2016

Page 10: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

SVG задача— Максимально быстрый переход

— Минимальные изменения в CSS стилях

— Возможность управлять стилизацией SVG иконок

Инструменты— postcss-inline-svg

— postcss-svgo

— postcss-assets

Page 11: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

postcss: {

options: {

processors: [

require('postcss-assets')({loadPaths: ['images/icons/']}),

require('postcss-inline-svg')({path: 'images/icons/'}),

require('postcss-svgo')(),

require('autoprefixer')({browsers: ['last 2 versions']})

]

},

app: {...}

}

01.

02.

03.

04.

05.

06.

07.

08.

09.

10.

11.

Page 12: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

=svg-icon($filename)

background: svg-load($filename + '.svg')

width: width($filename + '.svg')

height: height($filename + '.svg')

=svg-icon-no-size($filename)

background: svg-load($filename + '.svg')

01.

02.

03.

04.

05.

06.

07.

Page 13: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

13

Page 15: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

Ссылки— PostCSS website

— PostCSS plugins collection

— доклад от Андрея Ситника «PostCSS the Future after Sass and Less»

— Writing a PostCSS Plugin

— postcss-important-shorthand

15

Page 16: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

16

bit.do/jslab

Page 17: JS Lab2017_Lightning Talks_PostCSS - there is a plugin for that

17

Спасибо завнимание!

@Soul_Wishsoulwish.info