Яндекс

Владимир Гриненко, Виталий Харисов, Яндекс

Яндекс

БЭМ без bem-tools

БЭМ

Владимир Гриненко, Виталий Харисов,
8 апреля 2016, DUMP, Екатеринбург

Страхи

БЭМ — это просто!

Всё или ничего Используй по частям

Методология — просто

bem.info/
method

Всё или ничего Модульная методология

Суть методологии — компонентный подход

Суть методологии — компонентный подход

Библиотеки блоков легко

Demo

JavaScript по БЭМ —
тоже легко

Декларативное описание состояния

.button {
    border-radius: 5px;
}

.button_disabled {
    opacity: .5;
}

Декларативное описание состояния

BEMDOM.decl('button', {








});

Декларативное описание состояния

BEMDOM.decl('button', {
    onSetMod: {




    }


});

Декларативное описание состояния

BEMDOM.decl('button', {
    onSetMod: {
        disabled: {


        }
    }


});

Декларативное описание состояния

BEMDOM.decl('button', {
    onSetMod: {
        disabled: {
            true: { this._onDisabled(); }

        }
    },
    _onDisabled: function() {}

});

Декларативное описание состояния

BEMDOM.decl('button', {
    onSetMod: {
        disabled: {
            true: { this._onDisabled(); },
            '': { this._onEnabled(); }
        }
    },
    _onDisabled: function() {},
    _onEnabled: function() {}
});

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

.button {
    width: 200px;
    color: red;
}

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

.button {
    width: 200px;
    color: red;
}

.button {
    height: 50px;
    color: green;
}

Шаблонизация

Инлайновые стили

<div style="font-size: 12px; font-weight: bold"></div>

Инлайновый HTML

<form class="form" action="/" method="post">
    <input class="form__input" type="search">
    <input class="form__button" type="submit" value="Отправить">
</form>

Семантическое дерево

form
    input
    button
        Отправить

BEMJSON

{
    block: 'form',
    content: [
        { elem: 'input' },
        {
            elem: 'button',
            content: 'Отправить'
        }
    ]
}

BEMHTML

http://goo.gl/jbCxwm

bem-components и шаблоны

Бесплатное обновление

Вот и всё

Сборка

Сборка

Сборка

Итог

And one more thing

bem-tools 2.0

Ваши вопросы!

Контакты

Владимир Гриненко, Виталий Харисов


bem.info

info@bem.info