css методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД?...

155
CSS МЕТОДОЛОГИИ от О до Б ( Алексей Охрименко ) IPONWEB 1

Upload: others

Post on 24-May-2020

19 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

CSS МЕТОДОЛОГИИот О до Б ( Алексей Охрименко ) IPONWEB

1

Page 2: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

АЛЕКСЕЙ ОХРИМЕНКО

TWITTER: AI_BOY

setInterval(moveIt)

2

Page 3: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

3

Page 4: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

➤ https://telegram.me/angular2 ➤ https://telegram.me/react_js ➤ https://telegram.me/nodejs_ru ➤ https://telegram.me/typescript_ru ➤ https://telegram.me/JSlang

➤ https://github.com/aiboy/awesome-telegram-ru

4

Page 5: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

Angular 2 meetuphttps://telegram.me/angular2

5

FACEBOOK - ANGULAR 2 - RU

Page 6: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

IPONWEB

6

Page 7: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

7

Page 8: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД?

➤ Знаете < 2

8

Page 9: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД?

➤ Знаете < 2 ➤ CSS-модули победили

9

Page 10: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД?

➤ Знаете < 2 ➤ CSS-модули победили ➤ BEM победил

10

Page 11: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД?

➤ Знаете < 2 ➤ CSS-модули победили ➤ BEM победил ➤ CSS препроцессоров достаточно

11

Page 12: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД?

➤ Знаете < 2 ➤ CSS-модули победили ➤ BEM победил ➤ CSS препроцессоров достаточно ➤ CSS-методологии не нужны

12

Page 13: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

CSS-МЕТОДОЛОГИИ

13

Page 14: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

CSS-МЕТОДОЛОГИИ

КТО КАКИЕ ЗНАЕТ?

14

Page 15: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

СКОЛЬКО ИХ ВООБЩЕ?

15

Page 16: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

16

Page 17: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

CSS МЕТОДОЛОГИЯ ЭТО …

17

Page 18: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

НЕ CSS И НЕ СПОСОБ РЕШЕНИЯ

CSS ПРОБЛЕМ

18

Page 19: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

19

Page 20: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 21: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 22: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

НЕ ВИЗУАЛЬНЫЕ ПАТТЕРНЫ

22

Page 23: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/

23

Page 24: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

NICOLE SULLIVAN

MEDIA OBJECT

http://www.stubbornella.org/content/2010/06/25/the-media-object-saves-hundreds-of-lines-of-code/

24

Page 25: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

НЕ ДИЗАЙН ПАТТЕРНЫ

25

Page 26: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media { width: 400px; background: skyblue; } .media, .bd { overflow:hidden; } .media .img { float:left; margin-right: 10px; } .media .img img { display:block; }

26

Page 27: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media { display: flex; align-items: flex-start; } .media-figure { margin-right: 1em; } .media-body { flex: 1; }

27

Page 28: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

НЕ ИДЕОЛОГИЯ

28

Page 29: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

29

Page 30: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

WET VS DRY

30

Page 31: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

WRITE EVERYTHING TWICE

VS

DON’T REPEAT YOURSELF

31

Page 32: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

СЕМАНТИЧНАЯ

VS

ФУНКЦИОНАЛЬНАЯ

32

Page 33: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<div class="app"> <div class="feed"></div> <div class="profile"></div> <div class="aside"></div> </div>

.feed { border: 1px solid red; width: 300px; height: 50px; } .profile { border: 1px solid red; width: 300px; height: 50px; } .aside { border: 1px solid red; width: 300px; height: 50px; }

33

СЕМАНТИЧНАЯ ИДЕОЛОГИЯ

Page 34: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<div class="app"> <div class="box"></div> <div class="box"></div> <div class="box"></div> </div>

.box { border: 1px solid red; width: 300px; height: 50px; }

34

ФУНКЦИОНАЛЬНАЯ ИДЕОЛОГИЯ

Page 35: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<div class="app"> <div class="feed"></div> <div class="profile"></div> <div class="aside"></div> </div>

.feed { border: 1px solid red; width: 300px; height: 50px; } .profile { border: 1px solid blue; width: 300px; height: 50px; } .aside { border: 1px solid red; width: 300px; height: 50px; }

35

СЕМАНТИЧНАЯ ИДЕОЛОГИЯ

Page 36: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<div class="app"> <div class="box"></div> <div class="box new"></div> <div class="box"></div> </div>

.box { border: 1px solid red; width: 300px; height: 50px; }

.new { border: 1px solid blue; }

36

ФУНКЦИОНАЛЬНАЯ ИДЕОЛОГИЯ

Page 37: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

CSS ZEN GARDER

http://www.csszengarden.com

37

Page 38: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

CSS МЕТОДОЛОГИЯ ЭТО..

➤НЕ CSS И ЭТО НЕ ТОЛЬКО О ПРОБЛЕМАХ CSS

➤НЕ ВИЗУАЛЬНЫЕ ПАТТЕРНЫ ➤НЕ ДИЗАЙН ПАТТЕРНЫ ➤НЕ ИДЕОЛОГИЯ

38

Page 39: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ТАК ЧТО-ЖЕ ТОГДА CSS-МЕТОДОЛОГИЯ?

39

Page 40: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

40

Page 41: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

41

Page 42: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

42

Page 43: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ВСЕГО ЛИШЬ НАБОР ПРАВИЛ

43

Page 44: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ТФЬУ-CSS

44

Page 45: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

НЕ ВСЕ ЖЕ ТАК ПРОСТО?

45

Page 46: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ЗА КАЖДЫМ ПРАВИЛОМ ДОЛЖНЫ БЫТЬ

ЖЕЛЕЗНЫЕ АРГУМЕНТЫ

46

Page 47: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ШЕСТЬ РАЗНЫХ CSS

МЕТОДОЛОГИЙ47

Page 48: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

3 ТИПА CSS МЕТОДОЛОГИИ

48

Page 49: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

49

Page 50: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

#1 - СЕЛЕКТОРОВ50

Page 51: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

#2 - ПАПОК и ФАЙЛОВ

51

Page 52: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

#3 - ПОЛНАЯ52

Page 53: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ОБЫЧНЫЙ ПОДХОД

Page 54: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<link rel="stylesheet" href="css/normalize.css">

Page 55: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/index.css">

Page 56: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<!-- first page --><div class="media"> <img class="figure" src="http://placekitten.com/100/100"> <p class="body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </div>

Page 57: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media { display: flex; align-items: flex-start; width: 400px; background: skyblue; } .media .figure { margin: 1em; } .media .body { flex: 1; }

Page 58: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<!-- next page --><div class="next-page"> <div class="media"> <img class="figure" src="http://placekitten.com/100/100"> <p class="body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </div> </div>

Page 59: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media { display: flex; align-items: flex-start; width: 400px; background: skyblue; } .media .figure { margin: 1em; } .media .body { flex: 1; } .next-page .media { background: red; }

Page 60: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 61: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media .figure { margin: 1em; } .media .body { flex: 1; } .next-page .media { background: red; }

.next-page .media .media { background: skyblue; }

Page 62: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

OOCSS

#1 - СЕЛЕКТОРОВ

ФУНКЦИОНАЛЬНАЯ ИДЕОЛОГИЯ

62

Page 63: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ФЕВРАЛЬ 2009http://www.slideshare.net/stubbornella/object-oriented-css

63

Page 64: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ПРАВИЛА

➤ Никаких родительских селекторов ➤ Разделение структуры от представления

64

Page 65: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/index.css">

Page 66: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

/* structure */.media { display: flex; align-items: flex-start; } .media-figure { margin: 1em; } .media-body { flex: 1; } /* visual */.media-default { background: skyblue; width: 400px; }

Page 67: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<!-- first page --><div class="media media-default"> <img class="media-figure" src="http://placekitten.com/100/100"> <p class="media-body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </div>

Page 68: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

/* structure */.media { display: flex; align-items: flex-start; } .media-figure { margin: 1em; } .media-body { flex: 1; } /* visual */.media-default { background: skyblue; width: 400px; } .media-special-offer { background: red; width: 400px; }

Page 69: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<div class="media media-special-offer"> <img class="media-figure" src="http://placekitten.com/100/100"> <p class="media-body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </div>

Page 70: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 71: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

SMACSSФУНКЦИОНАЛЬНАЯ ИДЕОЛОГИЯ

#2 - ФАЙЛЫ и ПАПКИ

71

Page 72: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ОКТЯБРЬ 2011https://smacss.com

http://www.webconfs.com/domain-age.php

72

Page 73: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ПРАВИЛА

➤ Base ➤ Layout ➤ Module ➤ State ➤ Theme

73

Page 74: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

74

<link rel="stylesheet" href="css/base/normalize.css"> <link rel="stylesheet" href="css/layout/page.css"> <link rel="stylesheet" href="css/module/media.css"> <link rel="stylesheet" href="css/state/media.css"> <link rel="stylesheet" href="css/theme/default.css">

Page 75: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

75

<link rel="stylesheet" href="css/base/normalize.css"> <link rel="stylesheet" href="css/layout/page.css"> <link rel="stylesheet" href="css/module/media.css"> <link rel="stylesheet" href="css/state/media.css"> <link rel="stylesheet" href="css/theme/default.css">

Page 76: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

76

<link rel="stylesheet" href="css/base/normalize.css"> <link rel="stylesheet" href="css/layout/page.css"> <link rel="stylesheet" href="css/module/media.css"> <link rel="stylesheet" href="css/state/media.css"> <link rel="stylesheet" href="css/theme/default.css">

Page 77: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

77

<link rel="stylesheet" href="css/base/normalize.css"> <link rel="stylesheet" href="css/layout/page.css"> <link rel="stylesheet" href="css/module/media.css"> <link rel="stylesheet" href="css/state/media.css"> <link rel="stylesheet" href="css/theme/default.css">

Page 78: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media { display: flex; align-items: flex-start; } .media-figure { margin: 1em; } .media-body { flex: 1; }

Page 79: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

79

<link rel="stylesheet" href="css/base/normalize.css"> <link rel="stylesheet" href="css/layout/page.css"> <link rel="stylesheet" href="css/module/media.css"> <link rel="stylesheet" href="css/state/media.css"> <link rel="stylesheet" href="css/theme/default.css">

Page 80: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media-disabled { opacity: 0.5; }

Page 81: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

81

<link rel="stylesheet" href="css/base/normalize.css"> <link rel="stylesheet" href="css/layout/page.css"> <link rel="stylesheet" href="css/module/media.css"> <link rel="stylesheet" href="css/state/media.css"> <link rel="stylesheet" href="css/theme/default.css">

Page 82: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media-default { background: skyblue; width: 400px; } .media-special-offer { background: red; width: 400px; }

Page 83: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 84: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

BEM

#1 - СЕЛЕКТОРОВ

СЕМАНТИЧЕСКАЯ ИДЕОЛОГИЯ

84

Page 85: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

МАРТ 2009

http://vitaly.harisov.name/article/independent-blocks.html)

ФЕВРАЛЬ 2010

АВГУСТ 2007

Устаканилась

Публичный доступ https://github.com/bem/bem-tools

85

Page 86: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ПРАВИЛА

➤ Базовые примитивы: блок, элемент, модификатор

➤ Независимость блоков ➤ Вложенность элементов блока < 1 ➤ На DOM элементе может быть > 1 блока

➤ «Слойоная» архитектура (layers)86

Page 87: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.MEDIA

.MEDIA__FIGURE

.MEDIA_SPECIAL-OFFER

Page 88: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

88

<link rel="stylesheet" href="css/layer-common/i-html/i-html.css"> <link rel="stylesheet" href="css/layer-common/media/media.css"> <link rel="stylesheet" href="css/layer-common/media/__body/media__body.css"> <link rel="stylesheet" href="css/layer-common/media/__figure/media__figure.css"> <link rel="stylesheet" href="css/layer-common/media/_special-offer/media_special-offer.css">

Page 89: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

89

<link rel="stylesheet" href="css/layer-common/i-html/i-html.css"> <link rel="stylesheet" href="css/layer-common/media/media.css"> <link rel="stylesheet" href="css/layer-common/media/__body/media__body.css"> <link rel="stylesheet" href="css/layer-common/media/__figure/media__figure.css"> <link rel="stylesheet" href="css/layer-common/media/_special-offer/media_special-offer.css"> <link rel="stylesheet" href="css/layer-theme/media/media.css">

Page 90: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

90

<link rel="stylesheet" href="css/layer-common/i-html/i-html.css"> <link rel="stylesheet" href="css/layer-common/media/media.css"> <link rel="stylesheet" href="css/layer-common/media/__body/media__body.css"> <link rel="stylesheet" href="css/layer-common/media/__figure/media__figure.css"> <link rel="stylesheet" href="css/layer-common/media/_special-offer/media_special-offer.css">

Page 91: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

91

<link rel="stylesheet" href="css/layer-common/i-html/i-html.css"> <link rel="stylesheet" href="css/layer-common/media/media.css"> <link rel="stylesheet" href="css/layer-common/media/__body/media__body.css"> <link rel="stylesheet" href="css/layer-common/media/__figure/media__figure.css"> <link rel="stylesheet" href="css/layer-common/media/_special-offer/media_special-offer.css">

Page 92: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

92

<link rel="stylesheet" href="css/layer-common/i-html/i-html.css"> <link rel="stylesheet" href="css/layer-common/media/media.css"> <link rel="stylesheet" href="css/layer-common/media/__body/media__body.css"> <link rel="stylesheet" href="css/layer-common/media/__figure/media__figure.css"> <link rel="stylesheet" href="css/layer-common/media/_special-offer/media_special-offer.css">

Page 93: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

93

<link rel="stylesheet" href="css/layer-common/i-html/i-html.css"> <link rel="stylesheet" href="css/layer-common/media/media.css"> <link rel="stylesheet" href="css/layer-common/media/__body/media__body.css"> <link rel="stylesheet" href="css/layer-common/media/__figure/media__figure.css"> <link rel="stylesheet" href="css/layer-common/media/_special-offer/media_special-offer.css">

Page 94: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media { display: flex; align-items: flex-start; width: 400px; }

Page 95: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media { display: flex; align-items: flex-start; width: 400px; }

Page 96: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

96

<link rel="stylesheet" href="css/layer-common/i-html/i-html.css"> <link rel="stylesheet" href="css/layer-common/media/media.css"> <link rel="stylesheet" href="css/layer-common/media/__body/media__body.css"> <link rel="stylesheet" href="css/layer-common/media/__figure/media__figure.css"> <link rel="stylesheet" href="css/layer-common/media/_special-offer/media_special-offer.css">

Page 97: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media__body { flex: 1; }

.media__figure { margin: 1em; }

Page 98: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

98

<link rel="stylesheet" href="css/layer-common/i-html/i-html.css"> <link rel="stylesheet" href="css/layer-common/media/media.css"> <link rel="stylesheet" href="css/layer-common/media/__body/media__body.css"> <link rel="stylesheet" href="css/layer-common/media/__figure/media__figure.css"> <link rel="stylesheet" href="css/layer-common/media/_special-offer/media_special-offer.css">

Page 99: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

99

<link rel="stylesheet" href="css/layer-common/i-html/i-html.css"> <link rel="stylesheet" href="css/layer-common/media/media.css"> <link rel="stylesheet" href="css/layer-common/media/__body/media__body.css"> <link rel="stylesheet" href="css/layer-common/media/__figure/media__figure.css"> <link rel="stylesheet" href="css/layer-common/media/_special-offer/media_special-offer.css">

Page 100: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media_special-offer { background: red; }

Page 101: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<!-- first page --><div class="media"> <img class="media__figure" src="http://placekitten.com/100/100"> <p class="media__body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </div>

Page 102: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<!-- next page --><div class="media media_special-offer"> <img class="media__figure" src="http://placekitten.com/100/100"> <p class="media__body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </div>

Page 103: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 104: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ATOMIC DESIGN

#2 - ФАЙЛЫ и ПАПКИ

ФУНКЦИОНАЛЬНАЯ ИДЕОЛОГИЯ

104

Page 105: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

МАЙ 2013http://www.slideshare.net/bradfrostweb/atomic-design/14-Tiny_Bootstraps_for_every_clientDave

105

Page 106: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ПРАВИЛА

➤ Atoms ➤ Molecules ➤ Organisms ➤ Templates ➤ Pages

106

Page 107: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

107

<link rel="stylesheet" href="css/atoms/normalize.css"> <link rel="stylesheet" href="css/molecules/media-body.css"> <link rel="stylesheet" href="css/molecules/media-figure.css"> <link rel="stylesheet" href="css/organisms/media.css"> <link rel="stylesheet" href="css/templates/template.css"> <link rel="stylesheet" href="css/pages/page.css">

Page 108: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

108

<link rel="stylesheet" href="css/atoms/normalize.css"> <link rel="stylesheet" href="css/molecules/media-body.css"> <link rel="stylesheet" href="css/molecules/media-figure.css"> <link rel="stylesheet" href="css/organisms/media.css"> <link rel="stylesheet" href="css/templates/template.css"> <link rel="stylesheet" href="css/pages/page.css">

Page 109: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media-body { flex: 1; }

.media-figure { margin: 1em; }

Page 110: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

110

<link rel="stylesheet" href="css/atoms/normalize.css"> <link rel="stylesheet" href="css/molecules/media-body.css"> <link rel="stylesheet" href="css/molecules/media-figure.css"> <link rel="stylesheet" href="css/organisms/media.css"> <link rel="stylesheet" href="css/templates/template.css"> <link rel="stylesheet" href="css/pages/page.css">

Page 111: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.media { display: flex; align-items: flex-start; width: 400px; } .media-default { background: skyblue; } .media-special-offer { background: red; }

Page 112: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

112

<link rel="stylesheet" href="css/atoms/normalize.css"> <link rel="stylesheet" href="css/molecules/media-body.css"> <link rel="stylesheet" href="css/molecules/media-figure.css"> <link rel="stylesheet" href="css/organisms/media.css"> <link rel="stylesheet" href="css/templates/template.css"> <link rel="stylesheet" href="css/pages/page.css">

Page 113: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

113

<link rel="stylesheet" href="css/atoms/normalize.css"> <link rel="stylesheet" href="css/molecules/media-body.css"> <link rel="stylesheet" href="css/molecules/media-figure.css"> <link rel="stylesheet" href="css/organisms/media.css"> <link rel="stylesheet" href="css/templates/template.css"> <link rel="stylesheet" href="css/pages/page.css">

Page 114: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<!-- first page --><div class="media media-default"> <img class="media-figure" src="http://placekitten.com/100/100"> <p class="media-body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </div>

Page 115: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<div class="media media-special-offer"> <img class="media-figure" src="http://placekitten.com/100/100"> <p class="media-body"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </div>

Page 116: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 117: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ATOMIC CSS

#1 - СЕЛЕКТОРОВ

ФУНКЦИОНАЛЬНАЯ ИДЕОЛОГИЯ

117

Page 118: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

НОЯБРЬ 2014http://acss.io

118

Page 119: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ПРАВИЛА

➤ 1 класс селектор на 1 CSS свойство ➤ Значение свойства внутри названия класса

➤ Helpers ( для типичных задач вроде clearfix )

119

Page 120: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/index.css">

Page 121: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

.D\(f\) { display: flex; } .AI\(fs\) { align-items: flex-start; } .M\(default\) { margin: 1em; } .F\(1\) { flex: 1; } .W\(400px\) {

Page 122: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

} .F\(1\) { flex: 1; } .W\(400px\) { width: 400px; } .Bg\(default\) { background: skyblue; } .Bg\(special-offer\) { background: red; }

Page 123: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

} .F\(1\) { flex: 1; } .W\(400px\) { width: 400px; } .Bg\(default\) { background: skyblue; } .Bg\(special-offer\) { background: red; }

Page 124: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

} .F\(1\) { flex: 1; } .W\(400px\) { width: 400px; } .Bg\(default\) { background: skyblue; } .Bg\(special-offer\) { background: red; }

Page 125: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

} .F\(1\) { flex: 1; } .W\(400px\) { width: 400px; } .Bg\(default\) { background: skyblue; } .Bg\(special-offer\) { background: red; }

Page 126: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

} .F\(1\) { flex: 1; } .W\(400px\) { width: 400px; } .Bg\(default\) { background: skyblue; } .Bg\(special-offer\) { background: red; }

Page 127: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<!-- first page --><div class="D(f) AI(fs) W(400px) Bg(default)"> <img class="M(default)" src="http://placekitten.com/100/100"> <p class="F(1)"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </div>

Page 128: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<!-- first page --><div class="D(f) AI(fs) W(400px) Bg(default)"> <img class="M(default)" src="http://placekitten.com/100/100"> <p class="F(1)"> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </div>

Page 129: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 130: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

130

http://acss.io/guides/atomizer.html

Page 131: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

AXIOMATIC CSS

#1 - СЕЛЕКТОРОВ

СЕМАНТИЧЕСКАЯ ИДЕОЛОГИЯ

131

Page 132: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ОКТЯБРЬ 2014https://vimeo.com/101718785

http://alistapart.com/article/axiomatic-css-and-lobotomized-owls

132

Page 133: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ПРАВИЛА

➤ Без Class селекторов ➤ Максимально используем HTML5 семантику

➤ H1, H2 … nav, article…

133

Page 134: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

<link rel="stylesheet" href="css/normalize.css"> <link rel="stylesheet" href="css/index.css">

Page 135: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

135

<!-- first page --><article> <img src="http://placekitten.com/100/100"> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </article>

Page 136: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

article { display: flex; align-items: flex-start; width: 400px; background: skyblue; } article > img { margin: 1em; } article > p { flex: 1; }

Page 137: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 138: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

138

<!-- first page --><article> <img src="http://placekitten.com/100/100"> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </article>

<article> <img src="http://placekitten.com/100/100"> <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Accusamus minus rerum ullam fugit commodi ea officiis! Expedita nostrum illum nobis labore in totam excepturi. </p> </article>

Page 139: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 140: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

http://alistapart.com/article/axiomatic-css-and-lobotomized-owls

Page 141: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

article { display: flex; align-items: flex-start; width: 400px; background: skyblue; } article > img { margin: 1em; } article > p { flex: 1; } article + article { margin-top: 20px; }

Page 142: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров
Page 143: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

143

Page 144: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

CSS МЕТОДОЛОГИИ

НУЖНЫ144

Page 145: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

BEM ХОРОШ - НО НЕ ПОБЕДИЛ

145

Page 146: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

1) Google - не используют БЭМ (на главной странице) 2) Youtube - используют OOCSS 3) Facebook - что-то свое из семейства Functional 4) Baidu.com - используют ID и Tag селекторы :) 5) Yahoo - Atomic CSS ( не пупать с Atomic Design! ) 6) Amazon - свой аналог Atomic CSS 7) Wikipedia - смесь Utility classes и Axiomatic CSS

+ Все сайты на Bootstrap

146

Page 147: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

CSS-МОДУЛИ ПОБЕДИЛИ

147

Page 148: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

https://github.com/cssinjs/jss-compose

Page 149: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

https://github.com/cssinjs/jss-compose

Page 150: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

CSS ПРЕПРОЦЕССОРОВ ДОСТАТОЧНО

150

Page 151: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

151

Page 152: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

CSS-МЕТОДОЛОГИИ - ЭТО ВАЖНЫЙ, НО ВСЕГО ЛИШЬ ИНСТРУМЕНТ

152

Page 153: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

ВЫБИРАЙТЕ ПРАВИЛЬНЫЙ ИНСТРУМЕНТ ДЛЯ ТЕКУЩЕЙ РАБОТЫ

153

Page 154: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

THE END

154

Page 155: CSS методологии от О до Б - v2 · ЗАЧЕМ ВАМ ЭТОТ ДОКЛАД? Знаете < 2 css-модули победили bem победил css препроцессоров

АЛЕКСЕЙ ОХРИМЕНКО

TWITTER: AI_BOY

setInterval(moveIt)

http://bit.ly/2amSM76

155