@@include('_include/page_head.html') @@include('blocks/page-header/page-header.html')

Библиотека блоков проекта

Стартовое состояние проекта содержит ряд блоков и глобальных стилей, описанных и показанных в этом файле. Если некоторые блоки не работают, значит импорт их стилей отключен в файле диспетчера подключений.

Типографика, код

Стилизация: теги (см. глобальные стили)

Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные ссылки. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.

Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.

Заголовок 1

Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.

Заголовок 2

Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.

Заголовок 3

Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.

Заголовок 4

Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.

Заголовок 5

Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.

Заголовок 6

Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.

  • Пункт 1
    • Подпункт 1
    • Подпункт 2
  • Пункт 2
  • Пункт 3
  1. Пункт 1
    1. Подпункт 1
    2. Подпункт 2
  2. Пункт 2
  3. Пункт 3

Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.

Определяемая сущность 1
Некое, возможно, относительно длинное определение упомянутой сущности. Скорее всего, многострочное.
Определяемая сущность 2
Некое, возможно, относительно длинное определение. Скорее всего, многострочное.
Некое, возможно, относительно длинное определение упомянутой сущности.

Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.

Это div с классом .p. Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.


<a> ссылка, внешний вид
<strong> действительно значимый текст
<b> просто выделенный текст, лид
<i> иностранное слово или термин
<em> эмфатическое ударение
<s> информация, утратившая актуальность
<del> изменение, внесённое в документ (удаление)
<ins> изменение, внесённое в документ (добавление)
<mark> акцент маркерным выделением
<small> малозначимый текст
<abbr> АББРЕВИАТУРА
<kbd> Ctrl + C
<sup> 23
<sub> H2O
тег address

Цитата. Далеко-далеко за словесными горами в стране. Далеко-далеко за словесными горами в стране.

Emmet

Строчный код: <section>

// Блочный код
// Вторая строка

Таблицы

Стилизация: теги (см. глобальные стили)

Таблица 1
Имя Поросёнок
Фамилия Пётр
Отчество Баракович
Таблица 2
Имя Фамилия Отчество
Поросёнок Пётр Баракович

Адаптивные таблицы

Стилизация: БЭМ-блок .table-responsive

Внимание! Адаптивные таблицы требуют добавления дата-атрибутов. Фиксация минимальной ширины имитатора th будет полезной (делается индивидуально).

Приоритетным является не использование класса .table-responsive, а использование семантических БЭМ-классов и LESS-примеси .table-responsive(sm); (принимает в себя значение той ширины вьюпорта, на которой таблица ещё адаптивна).

@@include('blocks/table-responsive/table-responsive.html')

Формы по умолчанию

Стилизация: теги (см. глобальные стили)

Это legend fieldset





Стилизованные формы

Стилизация: БЭМ-блоки и модификаторы. Опирается на стилизацию форм по умолчанию.

Варианты разметки и модификаторы
Стандартный флажок
Пояснение не обязательно.
Стандартные флажки
Разметка никак не модифицируется, просто добавляются дополнительные label.
Собственный флажок
Есть общее название. При желании флажков можно написать несколько подряд. Изображения в формате SVG, вписываются в CSS-файл функцией data-uri() компилятора LESS.
Собственные флажки
Разметка никак не модифицируется, просто добавляются дополнительные label.
Стандартная радиокнопка
Пояснение не обязательно.
Стандартные радиокнопки
Разметка никак не модифицируется, просто добавляются дополнительные label.
Собственная радиокнопка
Есть общее название. При желании радиокнопок можно написать несколько подряд. Изображения в формате SVG, вписываются в CSS-файл функцией data-uri() компилятора LESS.
Собственные радиокнопки
Разметка никак не модифицируется, просто добавляются дополнительные label.
Переключатель-флажок
Графика не используется, всё нарисовано CSS-ом.
Переключатели-флажки
Графика не используется, всё нарисовано CSS-ом.
Range
min="1" max="100" step="1" value="70", стилизован без JS.
Range
min="1" max="30" step="1" value="3", стилизован без JS.
Выбор файлов
Горизонтальная форма
Общее название
Есть общее название.
Нет общего названия, но оставлен пустой div для него.
Нет общего названия и отсутствует пустой div для него.

Группы текстовых полей, селектов, кнопок

Плюс возможные добавочные неинтерактивные элементы.

$
.00
$ .00
$

Группа кнопок

Радиокнопки как кнопки

Флажки (чекбоксы) как кнопки

TODO

Кнопки

Стилизация: БЭМ-блок .btn и модификаторы.

Приоритетным является подход, в котором используются LESS-примеси .btn(), .btn-color(цвет_текста; цвет_фона; цвет_бордюра) и .btn-size([sm|md|lg]).

Cсылка Cсылка Cсылка Cсылка

Cсылка (lg) Cсылка Cсылка (sm)

Свойства:

События

<span role="presentation" class="dropdown" id="test">
  <a href="#" class="dropdown__toggler" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Ссылка с выпадающим элементом</a>
  <ul class="dropdown__menu" aria-labelledby="qwer">
    <li><a href="#">Пункт списка (выпадает <code>ul</code>)</a></li>
    <li><a href="#">Another action</a></li>
    <li><a href="#">Something else here</a></li>
    <li><a href="#">Separated link</a></li>
  </ul>
</span>
// Факт открытия
$('#test').on('shown.nth.dropdown', function () {
  console.log('shown.nth.dropdown');
});

// Факт закрытия
$('#test').on('hidden.nth.dropdown', function () {
  console.log('hidden.nth.dropdown');
});

Breakpoints

Ширины, на которых возможна перестройка блоков проекта:

Переменная Ширина в px по умолчанию ID сетки, начинающей срабатывать
@screen-xs 0 XS
@screen-sm 480 SM
@screen-md 768 MD
@screen-lg 992 LG
@screen-xl 1200 XL
@screen-xxl 1800 XXL

Модульная сетка на flexbox

Стилизация: БЭМ-блоки .row, .col-[ID]-[COL], .col-[ID]-offset-[COL]

Возможные ID сетки: xs, sm, md, lg, xl, xxl (xxl по умолчанию закомментированы). Вдохновлено Bootstrap 4.

.col-xs-12 .col-sm-6 .col-md-4 .col-lg-3
.col-xs-12 .col-sm-6 .col-md-4 .col-lg-3
.col-xs-12 .col-sm-6 .col-md-4 .col-lg-3
.col-xs-12 .col-sm-6 .col-md-4 .col-lg-3
.col-md-2  .col-lg-3
.col-md-10  .col-md-offset-1  .col-lg-9

LESS-примеси

Приоритетным является подход, в котором вместо упомянутых классов модульной сетки используются семантические БЭМ-овские классы и LESS-примеси (см. файл с примесями).

С примесями можно сделать модульную сетку любой колоночности (на разных ширинах может быть разноколоночная сетка), с любым промежутком между ячейками (на разных ширинах могут быть разные промежутки).

Вызов примеси .col(xs, 12); (возможно, не 12, а какое-то своё кол-во колонок) обязателен для элементов, являющихся прямыми потомками родителя модульной сетки.

.block-name {
  .row(); // БЭМ-блок — обёртка элементов модульной сетки

  &__element {
  // Разные ширины элемента на разных вьюпортах
  .col(xs, 6);
  .col(sm, 5);
  .col(md, 4);
  .col(lg, 3);
  .col(xl, 2);
  .col(xxl, 1);
  }
}
.block-name {
  // в примесь можно передать ширину промежутка между ячейками
  .row(10px);

  &__first-element {
    // xs-сетка, 6 колонок из @grid-columns (12 по умолчанию),
    // промежутки 10px
    .col(xs, 6, @grid-columns, 10px);
  }
}

Максимально подробный пример:

.root {
    // При указании переменных подряд имена можно не писать, оставлены для наглядности
    // @xs-grid-gutter: 1rem;  // XS-ширина: указан промежуток между ячейками сетки
    // @sm-grid-gutter: 1.8rem;// SM-ширина: указан промежуток между ячейками сетки
    // @md-grid-gutter: 2rem;  // MD-ширина: указан промежуток между ячейками сетки
    // @lg-grid-gutter: 3rem;  // LG-ширина: указан промежуток между ячейками сетки
    // @xl-grid-gutter: 4rem;  // XL-ширина: указан промежуток между ячейками сетки
    // @xxl-grid-gutter: 5rem; // XXL-ширина: указан промежуток между ячейками сетки
    // Короткая форма указания промежутков для всех ширин:
    // 1rem; 1.8rem; 2rem; 3rem; 4rem; 5rem
  .row(
    @xs-grid-gutter: 1rem;
    @sm-grid-gutter: 1.8rem;
    @md-grid-gutter: 2rem;
    @lg-grid-gutter: @grid-gutter-width;
    @xl-grid-gutter: 4rem;
    @xxl-grid-gutter: 5rem;
  );

  &__cuprum {
    // Для каждого вызова примеси указан промежуток между колонками (совпадает с тем, что у соответствующего вызова .row() для родительского элемента)
    .col(xs, 1, 2, 1rem);   // XS-ширина, 1 колонка в 2-колоночной сетке
    .col(sm, 2, 5, 1.8rem); // SM-ширина, 2 колонки в 5-колоночной сетке
    .col(md, 2, 8, 2rem);   // MD-ширина, 2 колонки в 8-колоночной сетке
    .col(lg, 2, @grid-columns, @grid-gutter-width); // LG-ширина, 2 колонки в 12-колоночной сетке (если @grid-columns оставлена по умолчанию)
    .col(xl, 3, 10, 4rem);   // XL-ширина, 3 колонки в 10-колоночной сетке
  }

  &__aurum {
    .col(xs, 1, 2, 1rem);
    .col(sm, 3, 5, 1.8rem);
    .col(md, 6, 8, 2rem);
    .col(lg, 10, @grid-columns, @grid-gutter-width);
    .col(xl, 7, 10, 4rem);
  }
}
    

Реальный пример 1:

.root {
  // Промежуток между колонками будет отличаться только на XS-ширине, это первый
  // ожидаемый примесью параметр, указываем только его.
  .row(1rem);

  &__cuprum {
    .col(xs, 1, 2, 1rem); // 1 из 2, нужно указать измененный для .row() промежуток
    .col(sm, 4); // начиная с SM — 4 из 12 (12 по умолчанию, можно не указывать)
    .col(md, 3); // начиная с MD — 3 из 12 (12 по умолчанию, можно не указывать)
  }

  &__aurum {
    .col(xs, 1, 2, 1rem);
    .col(sm, 8);
    .col(md, 9);
  }
}
    

Реальный пример 2:

.root {
  .row(); // Промежуток везде одинаковый (берется из переменной)

  &__cuprum {
    // Пока вьюпорт не стал равен или шире MD, блок 100% ширины родителя
    .col(xs, 12); // по умолчанию — 12 из 12 (обязательный вызов примеси)
    .col(md, 3);  // начиная с MD — 3 из 12
  }

  &__aurum {
    // Пока вьюпорт не стал равен или шире MD, блок 100% ширины родителя
    .col(xs, 12); // по умолчанию — 12 из 12 (обязательный вызов примеси)
    .col(md, 9);  // начиная с MD — 9 из 12
  }
}
    

Примеси адаптивности

Стилизация: нет, только примеси.

К нужным элементам добавляем примеси, элементы скрываются на тех или иных ширинах вьюпорта.

В примесях указано только значение display: none;, без !important.

.block-name {
  .hidden-up(lg);   // Скрыть на LG (включительно) и более широких
  .hidden-down(sm); // Скрыть на SM (включительно) и более узких
}
@@include('blocks/page-footer/page-footer.html') @@include('_include/page_bottom.html')