Есть БЭМ-проект, который постоянно дополняется новыми страницами. Стилистика дизайна выдерживается более-менее,
т. к. есть некоторое количество стандартизованных решений (например, по виду заголовков, ссылок, списков и т.п.).
Доступ к собранным на одной странице стандартизованным блокам у дизайнера есть.
Но при создании нового макета каждый раз выскакивают отличия от стандарта
(например, различается типографика (line-height, font-size), несмотря на то, что есть .content__title_size_m
, в кот. указаны line-height, font-size и т.п.).
Для примера возьмём .content__title. Я вижу только три способа для верстки новых страниц, получаемых от дизайнера:
- доопределение этого блока модификаторами под КОНКРЕТНУЮ страницу ( МИНУС: разрастание блока в принципе ненужным функционалом)
- создание блоков под КОНКРЕТНУЮ страницу (например,
.start-business__title
) и миксование их к.content__title
( МИНУС: разрастание количества дополнительных блоков в проекте) - доопределение стандартных блоков модификаторами и жесткое указание дизайнеру использовать только эти варианты на ВСЕХ новых страницах, чтобы избежать предыдущих двух пунктов.
Очень не хочется разрастания проекта, которое происходит в 1-ом и 2-ом вариантах. С подобной проблемой, думаю, многие сталкивались. Хотелось бы услышать, как другие справляются или что делают в подобных ситуациях.
В классическом программировании это называется рефакторинг, когда общие куски выносятся в новое место, зависимый от старых кусков код переписывается под новые, и в итоге старые куски просто удаляются.
После N итераций код становится в M раз лучше ;-), где M логарифмически зависит от N, что означает, что чем больше раз мы пытаемся что-то улучшить — тем меньше фактических улучшений делаем.
Ближе к исходному вопросу: та же самая ситуация, только переосмысливать нужно БЭМ-сущности, а остальное все то же самое — делаем новый более хороший блок, вместо старого, начинаем использовать его, вместо старого, ну и закапываем старый.
Спасибо за ответ) В принципе так и делаю.
Тут возникает вопрос не совсем по теме: "Как лучше взаимодействовать с дизайнером на этапе создания макета?" Есть стайлгайд, но различия всё равно появляются. Т.е. или стайлгайд несовершенен, или дизайнер невнимательно читает данный документ.
Возможно, есть какие-то наработки в рамках БЭМ для дизайнера? Может быть, дизайнеру нужно создать какую-то свою базу БЭМ-фотошоп-сущностей, соответствующих стайлгайду?
@karalkou если стайлгайд создавался вместе с дизайнером, а отхождения от него незначительные, то стоит просто договориться, что при верстке расхождения по умолчанию будут игнорироваться. А в случае, если это действительно обоснованные изменения, то они будут применяться и к старой верстке (т.е. вместо создания новых модификаторов будут обновляться существующие блоки).
@tadatuta спасибо)