Было:
snippet/
0.0.1/
0.0.2/
0.0.2-exp342/
ticket-748/
roma/
roma2/
| --- | |
| title: Видеорезультат | |
| imports: | |
| - base.page | |
| - portal.head | |
| - serp.organic | |
| - serp.serp | |
| - serp.video | |
| blocks: | |
| serp.video: test |
Было:
snippet/
0.0.1/
0.0.2/
0.0.2-exp342/
ticket-748/
roma/
roma2/
Первая версия общего репозиторий дизайнеров Яндекс.Поиска.
Search/
blocks/
controls/
media/
serp/
snippet/
snippet.js
Грамотная архитектура веб-приложения важна не только для продакшен-версий, но и для долгоживущих прототипов. Итеративные изменения возможны лишь в условиях, котогда сложность проведения последующей итерации не растет экспоненциально.
Ниже пойдет речь о четырех наиболее рациональных способах организации взаимодействия компонентов интерфейса в Beast.
Методолгия БЭМ предлагает самый удобный и простой способ провязывания компонентов — когда одни (элементы) подчиняются другим (блокам). Принято считать, что все связи в ирерахических структурах должны быть направлены от родителя к ребенку, а ребенок не должен ничего знать о контексте своего использования. Однако, основываясь на том, что элементы не могут существовать без своего родительского блока, это правило можно и нужно нарушать, но только при связывании блока и элемента.
| /* | |
| * Блок тумбнеила | |
| * Ширина задается числом колонок сетки (добавлением классов grid_col_1, grid_col_2...) | |
| * Высота вычисляется согласно пропорции (_ratio), в процентах от ширины | |
| */ | |
| .thumb | |
| display inline-block | |
| background center center no-repeat | |
| background-size cover |
| /* | |
| * Динамическая сетка | |
| * Внедряется подмешиванием DOM-узлу поведенческих классов: grid_col_3, grid_cell... | |
| */ | |
| .grid | |
| box-sizing border-box | |
| /* | |
| * Генерирует стили для сетки |
| /* | |
| * Формат для внешнего пользователя | |
| */ | |
| <CardMovies> | |
| <item href="#"> | |
| <thumb>...</thumb> | |
| <title>Черный Лебедь</title> | |
| </item> | |
| <item href="#"> | |
| <thumb>...</thumb> |
| /* | |
| * Фрагмент описания компонента Suggest гибридного приложения для iOS | |
| */ | |
| Beast.decl({ | |
| /* | |
| * Основной блок | |
| */ | |
| Suggest: { |