1️⃣
Разметка
  • 1. 1. Введение
  • 1. 2. Введение в HTML
  • 1. 3. Подходы к разметке
  • 1. 4. Работа со спецификацией
  • 1. 5. Проверка валидности
  • 1. 6. Часто используемые теги и типовые ошибки
  • 1. 7. Методика семантической разметки
    • 1. 7. 1. Определяем DOCTYPE
    • 1. 7. 2. Шаг 1. Выделяем крупные смысловые блоки на каждой странице сайта
    • 1. 7. 3. Шаг 2. Размечаем в блоках крупные смысловые разделы
    • 1. 7. 4. Шаг 3. Выделяем заголовок всего документа и заголовки смысловых разделов
    • 1. 7. 5. Шаг 4. Размечаем мелкие элементы в смысловых разделах
    • 1. 7. 6. Шаг 5. Размечаем фразовые элементы
  • 1. 8. Использование тега br
  • 1. 9. DOCTYPE
  • 1. 10. Как работает атрибут target
  • 1. 11. Правильное использование ссылок и кнопок
  • 1. 12. Как делать пустые ссылки?
  • 1. 13. Как правильно скрывать элементы?
  • 1. 14. Когда применять список терминов (dl)?
  • 1. 15. Как использовать ссылки mailto: и tel:
  • 1. 16. Именование сущностей
  • 1. 17. Разметка по БЭМ
    • 1. 17. 1. Введение
    • 1. 17. 2. Предыстория
    • 1. 17. 3. Частые проблемы из-за неправильной CSS-архитектуры проекта
    • 1. 17. 4. Основные понятия
    • 1. 17. 5. Свод правил БЭМ-а
    • 1. 17. 6. БЭМ для CMS
    • 1. 17. 7. Названия классов по БЭМ
    • 1. 17. 8. БЭМ — это про компоненты
    • 1. 17. 9. Темизация
    • 1. 17. 10. Плюсы и минусы БЭМ
    • 1. 17. 11. Алгоритм выделения блоков
    • 1. 17. 12. Типовые интерфейсные решения
    • 1. 17. 13. Блоки и элементы
    • 1. 17. 14. Миксы блоков и элементов
    • 1. 17. 15. Модификаторы блоков и элементов
    • 1. 17. 16. Типовые ошибки
  • Дополнительные материалы
Powered by GitBook
On this page
  1. 1. 17. Разметка по БЭМ

1. 17. 9. Темизация

Previous1. 17. 8. БЭМ — это про компонентыNext1. 17. 10. Плюсы и минусы БЭМ

Last updated 1 year ago

Тема — это общий дизайн и оформление вашего сайта. Темы определяют, где и как на сайте будут отображаться кнопки, меню и другие виджеты. Тема определяет цветовую схему, шрифты, размеры, отступы и другие характеристики дизайна.

Для одного сайта может быть несколько тем. Иногда тема задаётся по умолчанию, а бывает, что тему выбирает пользователь, а может быть так, что тема зависит от настроек операционной системы.

Обычная тема для сайта
Брендированная тема для сайта
Тёмная тема для сайта
Объёмная тема для сайта

Если разбирать тему в терминологии БЭМ-а, то тема — это внешний вид блока, а значит будет задаваться как базовый класс и его модификатор. В базовом классе определяются параметры цветов, типографики и отступов по умолчанию. А класс модификатора состоит из специфических свойств темы: особенный цвет, особенное декоративное оформление, особенные размеры, отступы и так далее.

Можно миксовать тему к самому внешнему блоку, например, body:

<body class="page
  theme
  theme--color-brand">
  ...
</body>
.theme {
  /* настройки по умолчанию */
}

.theme--color-brand {
  /* брендовые цвета текста */
  color: #6e90e6;

  /* брендовые цвета фона */
  background-color: #e2e9fc;

  ...
}

Тема может применяться и к отдельному блоку. К примеру, так:

<section class="features">
  <h2 class="features__title">Тема по умолчанию</h2>
  <p class="features__description">Это первая тема, с которой сталкивается пользователь, когда откроет ваш сайт.</p>
</section>
...
<section class="features container theme theme--dark">
  <h2 class="features__title">Переходим на тёмную сторону!</h2>
  <p class="features__description">Тёмная тема в дизайне интерфейсов к 2020 году стала чуть ли не обязательной. Вслед за Apple и Android на поезд Dark Mode «впрыгнули» и другие крупнейшие игроки рынка: Google, What’s App, Instagram.</p>
</section>
.theme {
  /* настройки по умолчанию */
}

.theme--dark {
  /* цвета текста для тёмной темы */

  /* цвета фона для тёмной темы */
}

Чтобы гибко управлять темами, лучше поделить их по функциональности свойств: цвет, шрифт, отступы, размеры и другие. Получается, что тема будет состоять из нескольких маленьких тем. Эти мини темы можно менять независимо друг от друга, допустим, изменить цвет, не трогая типографику и отступы.

Несколько тем для body:

<body class="page
  theme
  theme--color-inverse
  theme--space-default
  theme--size-default
  theme--gap-medium">
  ...
</body>
.theme {
  /* настройки по умолчанию */
}

.theme--color-inverse {
  /* цвета текста для инверсной (или тёмной) темы */
  color: black;

  /* цвета фона для инверсной (или тёмной) темы */
  background-color: white;
}

.theme--space-default {
  /* отступы для ритма внутри сеток */
  padding: 16px;
}

.theme--size-default {
  /* размеры в текстовых блоках */
  /* размер текста */
  font-size: 14px;

  /* межстрочный интервал */
  line-height: 1.6;
}

.theme--gap-medium {
  /* расстояния между колонками и строками сетки */
  /* отступы между столбцами и строками */
  gap: 30px;

  /* или внешние отступы */
  margin-right: 30px;
  margin-bottom: 30px;
}
Раздел с обычным оформлением и раздел с тёмной темой
Раздел с обычным оформлением и раздел с тёмной темой