All streams
Search
Write a publication
Pull to refresh
5
0
Виталий Харисов @vithar

Разработчик интерфейсов

Send message
Так хорошо

.block_theme_big .block__elem

А так плохо

.block .another-block__elem
БЭМ не запрещает использовать :first-child и прочие псевдоклассы.

Не рекомендуется использовать селекторы на теги и каскад от внутренностей одного блока к другому блоку / его элементам.
Самая главная проблема тут — нарушение инкапсуляции. По-хорошему, блок знает только про свои элементы и обращается к ним, а в этом примере блок header обращается к элементам блока button, что ведёт к очень болезненному рефакторингу, когда изменится внутренняя структура блока button.

ru.bem.info/methodology/css/#Принцип-открытостизакрытости
Нет ничего плохого в front-page__section-promo-subinfo-title. Зато тут програмно можно определить, что front-page это блок, а section-promo-subinfo-title — элемент.

Но я бы скорее сделал front-page__section и front-page__subinfo-title
Когда нужно что-то изменить в готовом компоненте, создаётся модификатор этого компонента на своём уровне, в котором точечно доопределяются/переопределяются элементы этого компонента, добавляя нужные миксы к другим элементам этого компонента или к другим компонентам.

Это позволяет не писать стили вида

.my-component__element .foreign-component__element

а писать

.foreign-component_my-style .foreign-component__element
У нас всё сделано из компонент (блоков) у каждого из которых свой шаблон. И мы можем добавить произвольный класс элементу или в шаблон компонента (bemhtml) или на уровне данных (bemjson).

В этом нет смысла. Текущая методология достаточно обрезана бритвой Оккама, чтобы быть способной выразить всё, что нужно.

Это не БЭМ. Ключевое отличие БЭМ от любого другого именования с кучей подчёркиваний — можно в любой момент программно определить что есть блок, что элемент, а что модификатор в любом произвольном идентификаторе.


https://ru.bem.info/methodology/naming-convention/

Это чистый БЭМ, называется миксы и так и рекомендуется делать в документацмм :


https://ru.bem.info/methodology/css/#Миксы

Мы для отделения слов внутри имени используем -, а не _

Тут имя модификатора — focused

Много всего используется. И tcp-info, и определение скорости загрузки suggest на главной и в поиске, и настройка пользователя save-data: on в браузере.

Как правило, сначала показывается основная версия, а при следующем запросе лёгкая. Но иногда по tcp-info можно понять, что сразу надо отдавать лёгкую.
yandex.ru/search/touch/?lite=1&text=котики

Должен быть мобильный User Agent.
У нас БЭМ, поэтому такой проблемы просто нет.

В десктопной Бабуле везде просто растр. Там нет ретины и проще отдавать один вариант всем. Там нет острой необходимости сделать минимально.

Всегда можно было.

Количество пользователей, устройства которых не поддерживают SVG, но поддерживают VML настолько мало, что нет смысла делать отдельный формат, который никто не знает, непонятно как редактировать.

Простой и понятный дизайн можно сделать сложно и наоборот.


Реализация мобильной Бабули как раз в том и состоит, чтобы сделать минимальный код, сохранив дизайн основной версии.

Information

Rating
Does not participate
Location
Симферополь, Республика Крым, Россия
Works in
Date of birth
Registered
Activity

Specialization

Frontend Developer
Lead
HTML
CSS
BEM
SCSS
Adaptive layout
TypeScript
JavaScript
Crossbrowser layout
Web development
React