А есть какие ни будь кейсы, в bem-tools для верстки одного проекта под разные устройтсва, разных форматов экрана? Не имея в виду атрибуты 'm', 's' в компонентах, а как оперативно делить один проект на разные стили, может автоматически подключать разные файлы стилей для разных устройств при сборки или еще что ни будь?
Вопрос возник из-за наличия уровней в bem-components с реализациями под разные платформы?
https://github.com/bem/bem-components/tree/v2/desktop.blocks/input https://github.com/bem/bem-components/tree/v2/touch.blocks/input
Или это и есть ответ? ;-)
:) Да, частично ответ. Спасибо, @zxqfox. А если для своих блоков, не компонентных, как делить стили? Так например не только для desktop/touch, а разных соотношений сторон (4:3; 16:9), мобильных/планшетов. Применяя адаптивную верстку, что можно посоветовать? Конечно скорее всего на основе "@media", врятли есть альтернативы универсальней.
Можно точно так же распилить на уровни. Но для разных соотношений сторон, на мой взгляд, нет смысла делить, потому что нет случаев, когда в сборку попадут только стили для
4:3
или только16:9
. Стили будут всегда вместе. Для@media
могу посоветовать использовать хелперы препроцессоров (того же стайлуса).Например (если меня не побъет @tadatuta), можно делать так в базовом файле (это less):
И в ваших блоках:
На выходе будет:
Пример для стилуса: https://github.com/verybigman/bem-grid/blob/master/common.blocks/variables/variables.styl https://github.com/verybigman/bem-grid/blob/master/common.blocks/mq/mq.styl
не имею ничего против, если речь не об универсальной библиотеке, которую захотят использовать всякими нетривиальными способами ;)
Спасибо :)
@zxqfox Написал stulys-ом в директории common.blocks/mq/mq.styl
В блоке page (common.blocks/page/page.deps.js) сделал:
Теперь в других блоках проекта применяю: например:
Еще раз спасибо за помощь, вроде работает :)