Всем привет!
На прошедшей неделе совместно с проектом LoftBlog мы проводили открытый вебинар по БЭМ, где в процессе знакомились с БЭМ-стеком и сверстали макет страницы Яндекс.Музыки.
В процессе подготовки к вебинару мы решили, что смотивируем пользователей на активное знакомство с БЭМ-платформой и придумали небольшое задание.
До дня защитника отечества – 23 февраля 2015 года мы ждем ваши проекты на БЭМ. Под проектами мы подразумеваем любые варианты разработки веб-проекта, будь то верстка страницы, написание отдельного компонента (слайдер чего-либо, корзина товаров и т.п.), БЭМ проект с бэкендом на node.js/php или разработка своей библиотеки с часто используемыми блоками.
Исполнителей лучших работ мы вознаградим подарками от команды БЭМ. Мы будем выбирать не по крутости проекта, а по полноте использования БЭМ стека и качеству выполнения. За основу можно брать заготовку для БЭМ проектов – Project-stub.
Результаты мы опубликуем на сайте bem.info. На вопросы, возникшие в процессе верстки проекта, команда и сообщество БЭМ с радостью ответит на бэм-форумe, а также не забывайте, что на сайте bem.info собрано много полезной информации и документации по БЭМ.
Требования:
- Использование БЭМ платформы (bemjson, bemhtml/bh, i-bem.js).
- Ссылка в комментарии к этому посту на открытый репозиторий с исходниками Вашего проекта на Github
Запись вебинара доступна на Youtube Тяжело в учении, легко в бою. Всем удачи в освоении и Stay BEMed!
Доброго дня, Николай. Был на вебинаре, все очень понравилось, а главное проникся идеей БЭМ. Поэтому не откладывая в долгий ящик решил реализовать свой небольшой проект.
Вот ссылка - https://github.com/phamap/bem-card-world
Еще нашел небольшую неточность в документации. Не знаю как на маках, но ubuntu 12.04 не установились зависимости, поэтому пришлось набирать в консоли "npm run deps". Да и клонировал я обычный project-stub, поэтому сборка как на вебинаре тоже не работала) пришлось лезть в конфиг и искать чего не хватает. В остальном разработка по БЭМ проходит весело)
Супер, твою работу обязательно оценим с комментариями. Результаты будут после 23 февраля 2015 года. Ты большой молодец! p.s. Расскажи немного подробней, какие зависимости не поставились, если возможно скинь на http://gist.github.com лог. Мы постараемся пофиксить, если сможем повторить.
@phamap предположу, что ты пытался ставить зависимости под root-ом? если так, то это сознательное поведение на строне
bower
.не поставились bower зависимости. да, пытался ставить под рутом. под линуксом без рута, что-то да обязательно не поставится, поэтому все, что связано с npm или node приходится через sudo ставить. кстати, решение взял здесь - https://ru.bem.info/forum/issues/65/
2 февраля 2015 г., 15:53 пользователь Vladimir Grinenko notifications@github.com написал:
##
С уважением, Алексей. http://phamap.github.io
Рекомендую ставить nodejs через nvm, тогда рут не нужен будет.
учту, спасибо)
Добавили развернутые ответы с полезными ссылками на вопросы под видео на ютубе http://youtu.be/1GWoMnYldYc
@phamap Не знаю как на U12.04, но на 14.04 и 14.10 всё с полпинка заработало
так я же не говорю, что у меня что-то не работает) просто зависимости пришлось вручную ставить, но это не проблема, я уже привык, что в линуксе много чего руками делать нужно)
@phamap зато начинаешь понимать как всё устроено )
на работает команда дист dist
вот часть файла
packege.json
вот файл борщика
при запуске
enb run dist
вываливается только помощь по использованиюа вот так - npm run dist ?)
@phamap что-то я не заметил ))
Но сейчас другая возникла проблема
может я что пропустил?
@belozyorcev а откуда у тебя в
project-stub
такойpackage.json
? Ты его переписывал? Т.к. в оригинальном файле ничего про дист не сказано. Dist можно собрать вbem-components
иbem-core
, а вproject-stub
его еще настроить нужно. Да и что тебе в нем собирать?@belozyorcev если речь о моей сборке, то я поменял .enb/make.js и package.json для того чтобы все работало. помимо блока scripts в package.json были добавлены еще несколько дополнительных зависимостей, после этого собрано все заново.
@belozyorcev Чтобы собирать
dist
, тебе нужно не только добавить команду вpackage.json
и конфигборщика
, нужно еще добавить таск вenb
конфиг. Вот тут 2 коммита, где добавляется возможность сборки диста, раз и два@tavriaforever спасибо :)
хорошо было бы, чтобы оно в комплекте уже шло )
@belozyorcev кажется, что для
project-stub
ты не должен хотеть собрать dist, а скорее то, что мы называемmerged-bundle
.см. https://github.com/enb-bem/enb-bem-techs/blob/master/docs/build-merged-bundle.md
@tavriaforever Николай , объясни мне пожалуйста, если у нас модификатор отвечает за внешний вид , почему мы пишет тогда стили не для модификатора при миксе. Яркий пример тому кнопки, вместо того чтобы задать какой то модификатор, Вы делаете микс и стилизуете элемент какого-то блока к примеру так : user__name , это как - то в корни расходиться с понятием БЭМ.
@Rahnar модификатор отвечает не только за внешний вид, но и за состояние блока. Опиши, плз, пример поподробней. Но если я правильно понял, то ты о примере типа
Тут сделано именно миксом, чтобы выполнился шаблон блока
image
. И это не расходится с БЭМ.@sipayRT Не могу понять , в каких случаях стилизуют по миксу , в каких по элементу , в каких по модификатору.
Пересмотрел кучу видео , одни просто создают блок на уровне проекта, и туда кладут стили для кнопки без использования модификатора. button button.css Другие стилизуют по миксу аля
типа этот блок является вложенным блоком , блока header другие это лепят так
потом по модификатору стилизуют.
так стилизуют все кнопки для текущего проекта
так стилизуют элемент блока
так стилизуют блок/элемент в определённом состоянии
Всё зависит от задачи и контекста.
@Guria Благодарю. Просто в документации нигде это не написанно.
@tadatuta на project-stub я делаю интерфейс модуля и мне нужно получить его сборку для вставки в существующий проект на yii (php 5.2). Я прочитал про merged bundle и не совсем уверен, что это то, что нужно. (может я не так понял его назначение и как использовать)
Перейти на nodejs пока не можем.
@belozyorcev если речь про проект на yii, то скорее всего действительно нужен именно
dist
.Про сборку
dist
нужно понимать следующее. Его сборка ничем не отличается от сборки обычного бандла, но с дополнительным первым шагом, на котором декларация bemdecl.js создается динамически по интроспекции файловой системы (итерируемся по всем блокам, элементам и модификаторам и создаем на их основе bemdecl).Пример описания сборки dist-а есть в bem-components.
Ещё есть небольшое руководство по сборке dist-а: https://github.com/enb-bem/enb-bem-techs/blob/master/docs/build-dist.md
Еще есть книжка по теории множеств ;-)
Пока больше всего подошёл способ предложенный @tavriaforever :) А со своми конфигами разберусь позже :)
Всем привет!
Хочу представить на суд общественности свою работу: https://github.com/oozywaters/Halcyon
Здесь представлена верстка случайного HTML-шаблона, найденного на просторах интернета, с применением БЭМ-технологий. В проекте задействован фреймворк bootstrap, а также некоторые jQuery-плагины для создания прикольных анимированных штук :)
круто) как раз хотел проект на БЭМ и bootstrap попробовать, а тут живой пример) если не секрет, сколько ушло на разработку такой страницы?