Яндекс

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

Яндекс

Мастер-класс:
строим сервис по БЭМ

БЭМ

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

Слайды

bit.ly/odessajs2015-bem

будет много ссылок

Мастер-класс: строим сервис по БЭМ

Используем БЭМ

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

                      __
                     /  \        ______________
                     |  |       /               \
                     @  @       | It looks      |
                     || ||      | like you      |
                     || ||   <--| are nterested |
                     |\_/|      | in BEM.       |
                     \___/      \______________ /

Мастер-класс: строим сервис по БЭМ

Используем БЭМ
в существующем коде

Мастер-класс: строим сервис по БЭМ

Используем БЭМ
в существующем коде
на примере Material Design Lite

 

Material Design Lite

 

Create a visual language that synthesizes classic principles of good design with the innovation and possibility of technology and science.

google.com/design/spec/material-design/introduction.html

 

Гугл делает «убийцу Бутстрапа», внутри БЭМ… БЭМ, Карл!

из внутренней переписки Яндекса

Material Design Lite

Смотрим внутрь

Material Design Lite

Смотрим внутрь

 

BEM Project Stub

BEM Project Stub

Смотрим внутрь

BEM Project Stub

Смотрим внутрь

     (ノ◕ヮ◕)ノ*:・゚✧

 

Как устроены БЭМ-проекты

новая документация

Material Design Lite

Что можно изменить

Что можно изменить

Что можно изменить

Что можно изменить

Что можно изменить

 

Подробно про формат *.deps.js

новая документация

 

 …но зачем?

история про буханку и троллейбус

«…но зачем?»

      ᕦ(ò_óˇ)ᕤ

Точечные переопределения

pages/text-only/blocks/mdl-color-definitions/mdl-color-definitions.scss

$color-primary: $palette-pink-500 !default;
$color-primary-dark: $palette-pink-700 !default;

Material Design Lite

Что ещё можно изменить

Что ещё можно изменить

Пристальный взгляд Фрая

<ul class="mdl-menu mdl-menu--bottom-right">
    <li class="mdl-menu__item">Lorem</li>
    <li class="mdl-menu__item">Ipsum</li>
</ul>

Что ещё можно изменить

Ничего не напоминает?

<ul style="background-color: green" class="mdl-menu mdl-menu--bottom-right">
    <li style="color: red" class="mdl-menu__item">Lorem</li>
    <li style="color: red" class="mdl-menu__item">Ipsum</li>
</ul>
     (ノಠ益ಠ)ノ彡┻━┻

Что ещё можно изменить

CSS

.mdl-menu {
    background-color: green;

    &__item {
        color: red;
    }
}

HTML

mdl-menu tag ul    __item tag li

Что ещё можно изменить

CSS

.mdl-menu {
    background-color: green;

    &__item {
        color: red;
    }
}

BEMHTML ⓹

block('mdl-menu')(
    tag()('ul'),
    elem('item').tag()('li')
)

Что ещё можно изменить

BEMHTML ⓹

block('mdl-menu')(
    tag()('ul'),
    elem('item').tag()('li')
)

BEMJSON ⓹

{
    block: 'mdl-menu',
    mods: { 'bottom-right': true },
    content: [
        { elem: 'item', content: 'Lorem' },
        { elem: 'item', content: 'Ipsum' }
    ]
}

BEMHTML+BEMJSON

     ☜( ಠ‿↼ )☞

Material Design Lite

A ещё?

A ещё?

Автоматическое построение сайта библиотеки блоков ⓺:

Для примера: bem-components

Используем БЭМ

в существующем коде

 

Заключение

Заключение

Заключение

                      __
                     /  \        ______________
                     |  |       /               \
                     @  @       | It looks      |
                     || ||      | like you      |
                     || ||   <--| are nterested |
                     |\_/|      | in BEM.       |
                     \___/      \______________ /

Контакты

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

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

github.com/veged

veged@yandex-team.ru