@@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
Некое, возможно, относительно длинное определение. Скорее всего, многострочное.
Некое, возможно, относительно длинное определение упомянутой сущности.

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


<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





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

Стилизация: БЭМ-блоки .field-text, .field-checkbox, .field-radio, .field-select, .field-file, .field-actions, .form и модификаторы. Опирается на стилизацию форм по умолчанию.

Варианты разметки и модификаторы @@include('blocks/field-text/field-text.html',{ "type": "text", "name": "Любое поле, выглядящее как текстовое", "placeholder": "input[type=text]", "helpText":"Обёртка — label. Можно сделать обёртку div, но тогда, возможно, захочется элемент .field-text__name делать label и связывать его с полем по id поля." }) @@include('blocks/field-text/field-text.html',{ "type": "textarea", "name": "Многострочное текстовое поле", "placeholder": "textarea", "helpText": "Обёртка — label." }) @@include('blocks/field-checkbox/field-checkbox.html',{ "name": "Стандартные флажки", "text": "Флажок", "mod": "", "helpText": "Есть общее название. При желании флажков можно написать несколько подряд." }) @@include('blocks/field-checkbox/field-checkbox.html',{ "name": "Собственные флажки", "text": "Флажок", "mod": "custom", "helpText": "Есть общее название. При желании флажков можно написать несколько подряд. Изображения в формате SVG, вписываются в CSS-файл функцией data-uri() компилятора LESS." }) @@include('blocks/field-radio/field-radio.html',{ "name": "Стандартные радиокнопки", "text": "Радиокнопка", "mod": "", "helpText": "Есть общее название. При желании радиокнопок можно написать несколько подряд." }) @@include('blocks/field-radio/field-radio.html',{ "name": "Собственные радиокнопки", "text": "Радиокнопка", "mod": "custom", "helpText": "Есть общее название. При желании радиокнопок можно написать несколько подряд. Изображения в формате SVG, вписываются в CSS-файл функцией data-uri() компилятора LESS." }) @@include('blocks/field-select/field-select.html',{ "name": "Селект", "options": "", "helpText": "Обёртка — <label>." }) @@include('blocks/field-range/field-range.html',{ "name": "Range", "properties": "min=\"1\" max=\"100\" step=\"1\" value=\"70\"", "helpText": "min=\"1\" max=\"100\" step=\"1\" value=\"70\", стилизован без JS." }) @@include('blocks/field-range/field-range.html',{ "name": "Range", "properties": "min=\"1\" max=\"30\" step=\"5\" value=\"10\"", "helpText": "min=\"1\" max=\"30\" step=\"5\" value=\"10\", стилизован без JS." }) @@include('blocks/field-file/field-file.html', { "name": "Выбор файлов", "helpText": "Работа этого стилизованного поля требует Javascript-а. Но только работа. Стилизация — нет." }) @@include('blocks/field-actions/field-actions.html', { "actions": "" })
Горизонтальная форма
Общее название
Есть общее название.
Нет общего названия, но оставлен пустой div для него.
Нет общего названия и отсутствует пустой div для него.

Кнопки

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

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

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

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

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-4 .col-md-4 .col-lg-3
.col-xs-12 .col-sm-4 .col-md-4 .col-lg-3
.col-xs-12 .col-sm-4 .col-md-4 .col-lg-3
.col-xs-12 .col-sm-4 .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')