Яндекс

Сергей Бережной, Яндекс

Яндекс

БЭМ: Разработка под несколько платформ

БЭМ

Сергей Бережной,
руководитель отдела
разработки поисковых интерфейсов

 

БЭМ

Для тех, кто ничего не знает про БЭМ

БЭМ

Кроме блоков, элементов и модификаторов, есть ещё части…

bem.info/method/definitions

 

Разработка для нескольких платформ

«Несколько платформ»

Разработка для нескольких платформ

Нативная разработка

Плюсы:

Нативная разработка

Минусы:

Адаптивный дизайн

Плюсы:

Адаптивный дизайн

Минусы:

«Золотая середина»

Плюсы:

«Золотая середина»

Минусы:

БЭМ

Переопределения

Переопределения

CSS

.button {
    border: 1px solid #666;
    font-size: 13px;
}

Переопределения

Можем разложить на части:

.button {
    border: 1px solid #666;
}
.button {
    font-size: 13px;
}

Уровни переопределения

Уровни переопределения

common.blocks/button/button.css

.button { border: 1px solid #666; }

desktop.blocks/button/button.css

.button { font-size: 13px; }

touch.blocks/button/button.css

.button { font-size: 26px; }

Платформы собираются из уровней переопределения

desktop touch-pad touch-phone
common common common
desktop touch touch
  touch-pad touch-phone

БЭМ

«Не только CSS»™

Основные понятия: Технология реализации

БЭМ: «Не только CSS»™

Аналогичный декларативный стиль с возможностью точечного переопределения применим для других технологий:

БЭМ: Разработка для нескольких платформ

Реальные примеры

 

Заключение

Tl;dr

Контакты

Сергей Бережной

руководитель отдела
разработки поисковых интерфейсов

github.com/veged

veged@yandex-team.ru