SlideShare a Scribd company logo
1 of 54
Download to read offline
slide1
slide 2
Всякое про верстку
Юрий Артюх
Привет
• Меня зовут Юра
• Я лентяй
y = 70 – 1/x;
каръера
сколько готов потратить на Sublime
y = 70 – 1/x;
каръера
сколько готов потратить на Sublime
Причины не покупать
• И так работает
• А вдруг мне нужен WebShtorm
• Это стоит денег
• Atom попробую
• Стать объектом шуток для коллег
Причины покупать
¯_(ツ)_/¯
Emoji
Flex Box
https://github.com/xieranmaya/blog/issues/6
всегда изучайте что-то
новое
Самое тяжелое
начинать проект
Сборка фронтенда,
2004 н.э.
Потом появился Sass
и Compass, 2008
Grunt, 2011
Gulp, 2013 и Yeoman
Автоматизируйте все
Данные
https://www.npmjs.com/package/generator-man
Зачем PostCSS
• Когда вы постоянно оптимизируете свою
работу
• Когда вы хотите понимать что происходит (на
самом деле нет)
Что можно делать?
• Autoprefixer, очевидно
• mq-packer
• rtlсss
• Все что позволяет фантазия
Если вы ленивый китаец
.foo {
定位: 相对;
背景颜⾊色: 三⽂文⻥鱼;
背景图⽚片: ⽆无;
字体家族: Helvetica, Arial;
颜⾊色: ⽩白;
⾏行行⾼高: 1.68;
字⺟母间距: 2px;
浮动: 左;
显示: ⽆无;
层级: 1000 !重要;
}

.foo {
position: relative;
background-color: salm
background-image: none
font-family: Helvetica
color: white;
line-height: 1.68;
letter-spacing: 2px;
float: left;
display: none;
z-index: 1000 !importa
}
Как я привык писать Sass
Как я пишу PostCSS
Все равно лень!
Визуальная проверка
Backstop
https://github.com/garris/BackstopJS
Проверка зависимостей
webpack-bundle-analyzer
Stylelint
Простые ошибки
DIV
disPlay: block
width: 100px

Перезапись свойств
.block
margin-top: 10px
margin: 0 auto
Специфичность селекторов
.superclass .block
display: block
.block
margin: 0 0 0 0

Близкие цвета
.block .class1 .class2 .class3
background: #010101
color: #000 

{
"rules": {
"property-case": "lower",
"no-indistinguishable-colors":true,
"selector-type-case": "lower",
"no-unknown-animations":true,
"indentation": "tab",
"selector-max-compound-selectors": 3,
"no-duplicate-selectors": true,
"shorthand-property-no-redundant-values": true,
"max-nesting-depth": 2,
"no-descending-specificity": true,
"declaration-colon-space-after": “always",
…
ошиблись два раза –
правило
Проверка БЭМ
(SUIT, или любого другого кодстайла)
//* @define component
.component
display: block
&__element
display: none
.other-component // Ошибка, зависимость
display: none


// BEM
.block
.block__element
.block_modifier
// SUIT
.MyComponent
.MyComponent.is-active
.MyComponent--modifier
// MINE
.block.is-active
.block .block__element.is-rotating
.block_modifier.is-active
WTF
{
"plugin/selector-bem-pattern": {
"componentName": “[a-z0-9-_]+$”,
"componentSelectors": "^(?:.(?:
{componentName}|is[-](?:[a-z0-9-_]*))
[ ]?(?:__[a-z0-ಠ_ಠ9-_]+)?(?:_[a-z0-9]+
(?:-[a-z0-9]+)*){0,2}[ ]?)+$"
}
}

WTF
WTF
WTF
Что даст
http://regexr.com/
• лучше понимать конфиги, .htaccess, делать
поиск по тексту, и быть крутым пацаном
(девчонкой)
• Наконец-то напишете свою регулярку для
email
• Сможете лениться еще больше
• Завоевать девушку своей мечты
На самом деле нет
Lint-staged
package.json:
{
"lint-staged": {
"*.css": "stylelint",
},
"pre-commit": "lint-staged"
}

git-guppy
(run gulp task on git hook)
husky, pre-commit
gulp.task('pre-commit', function () {
return gulp
.src(‘*.css’)
.pipe(stylelint())
});
Делитесь правилами
и воруйте
{
"extends": “stylelint-akella-krasavchik",
"rules": {
"indentation": "tab",
"number-leading-zero": null
}
}
Будьте ленивыми!
Три заповеди
верстальщика
1) Сделать счастливым дизайнера
2) Сделать счастливым программиста
3) Сделать счастливым следующего парня
работающего с твоим кодом
Спасибо!
• Юрий Артюх
• facebook.com/akella
• twitter.com/akella
• cssing.org.ua

More Related Content

Viewers also liked

Збираю фронтенд на Brunch і чудово себе почуваю
Збираю фронтенд на Brunch і чудово себе почуваюЗбираю фронтенд на Brunch і чудово себе почуваю
Збираю фронтенд на Brunch і чудово себе почуваюStfalcon Meetups
 
Stakeholders and expectations, або коли проекти успішні?
Stakeholders and expectations, або коли проекти успішні?Stakeholders and expectations, або коли проекти успішні?
Stakeholders and expectations, або коли проекти успішні?Stfalcon Meetups
 
El octavo-habito-resumen
El octavo-habito-resumenEl octavo-habito-resumen
El octavo-habito-resumenmaryaalex
 
Jovana Mijatovic
Jovana Mijatovic Jovana Mijatovic
Jovana Mijatovic dr Šarac
 

Viewers also liked (8)

CSS по БЕМ
 CSS по БЕМ CSS по БЕМ
CSS по БЕМ
 
Збираю фронтенд на Brunch і чудово себе почуваю
Збираю фронтенд на Brunch і чудово себе почуваюЗбираю фронтенд на Brunch і чудово себе почуваю
Збираю фронтенд на Brunch і чудово себе почуваю
 
Stakeholders and expectations, або коли проекти успішні?
Stakeholders and expectations, або коли проекти успішні?Stakeholders and expectations, або коли проекти успішні?
Stakeholders and expectations, або коли проекти успішні?
 
El octavo-habito-resumen
El octavo-habito-resumenEl octavo-habito-resumen
El octavo-habito-resumen
 
20170326Words
20170326Words20170326Words
20170326Words
 
Asanas e o Ashtaunga Yoga
Asanas e o Ashtaunga YogaAsanas e o Ashtaunga Yoga
Asanas e o Ashtaunga Yoga
 
Jovana Mijatovic
Jovana Mijatovic Jovana Mijatovic
Jovana Mijatovic
 
Good Code
Good CodeGood Code
Good Code
 

More from Stfalcon Meetups

Conversion centered design 3
Conversion centered design 3Conversion centered design 3
Conversion centered design 3Stfalcon Meetups
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon Meetups
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon Meetups
 
Design of the_future_30_05_2019
Design of the_future_30_05_2019Design of the_future_30_05_2019
Design of the_future_30_05_2019Stfalcon Meetups
 
Global sales - a few insights
Global sales - a few insightsGlobal sales - a few insights
Global sales - a few insightsStfalcon Meetups
 
How to build your own startup
How to build your own startupHow to build your own startup
How to build your own startupStfalcon Meetups
 
Первая и последняя встреча с клиентом
Первая и последняя встреча с клиентом Первая и последняя встреча с клиентом
Первая и последняя встреча с клиентом Stfalcon Meetups
 
Парнерство нидерланды
Парнерство нидерландыПарнерство нидерланды
Парнерство нидерландыStfalcon Meetups
 
Риси гарного менеджера
Риси гарного менеджераРиси гарного менеджера
Риси гарного менеджераStfalcon Meetups
 
Между заказчиком и разработчиком
Между заказчиком и разработчикомМежду заказчиком и разработчиком
Между заказчиком и разработчикомStfalcon Meetups
 
майстер-клас “Управління ризиками”
майстер-клас “Управління ризиками”майстер-клас “Управління ризиками”
майстер-клас “Управління ризиками”Stfalcon Meetups
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDStfalcon Meetups
 

More from Stfalcon Meetups (20)

Conversion centered design 3
Conversion centered design 3Conversion centered design 3
Conversion centered design 3
 
Discovery phase
Discovery phaseDiscovery phase
Discovery phase
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020
 
Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020Stfalcon QA Meetup 31.01.2020
Stfalcon QA Meetup 31.01.2020
 
Stfalcon PM Meetup 21.11
Stfalcon PM Meetup 21.11Stfalcon PM Meetup 21.11
Stfalcon PM Meetup 21.11
 
Stfalcon PM Meetup 21.11
Stfalcon PM Meetup 21.11Stfalcon PM Meetup 21.11
Stfalcon PM Meetup 21.11
 
Design of the_future_30_05_2019
Design of the_future_30_05_2019Design of the_future_30_05_2019
Design of the_future_30_05_2019
 
2 5404811386729530203
2 54048113867295302032 5404811386729530203
2 5404811386729530203
 
Team evolution
Team evolutionTeam evolution
Team evolution
 
Mobile&Privacy
Mobile&PrivacyMobile&Privacy
Mobile&Privacy
 
Global sales - a few insights
Global sales - a few insightsGlobal sales - a few insights
Global sales - a few insights
 
How to build your own startup
How to build your own startupHow to build your own startup
How to build your own startup
 
Первая и последняя встреча с клиентом
Первая и последняя встреча с клиентом Первая и последняя встреча с клиентом
Первая и последняя встреча с клиентом
 
Парнерство нидерланды
Парнерство нидерландыПарнерство нидерланды
Парнерство нидерланды
 
Риси гарного менеджера
Риси гарного менеджераРиси гарного менеджера
Риси гарного менеджера
 
Между заказчиком и разработчиком
Между заказчиком и разработчикомМежду заказчиком и разработчиком
Между заказчиком и разработчиком
 
Cv vs resume
Cv vs resumeCv vs resume
Cv vs resume
 
Vue.js
Vue.jsVue.js
Vue.js
 
майстер-клас “Управління ризиками”
майстер-клас “Управління ризиками”майстер-клас “Управління ризиками”
майстер-клас “Управління ризиками”
 
Kubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CDKubernetes: від знайомства до використання у CI/CD
Kubernetes: від знайомства до використання у CI/CD
 

Перевірка і оптимізація верстки