@@include('_include/page_head.html')
@@include('blocks/page-header/page-header.html')Стартовое состояние проекта содержит ряд блоков и глобальных стилей, описанных и показанных в этом файле. Если некоторые блоки не работают, значит импорт их стилей отключен в файле диспетчера подключений (такие блоки не используются на этом проекте).
Параграфы, расстояние между ними. Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные ссылки. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
div class="p"
. Это единственный класс в этом разделе. Оставлен, ввиду своей микроскопичности. Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
. Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Грустный предупредила, дал приставка составитель решила подпоясал запятых сих ручеек которой власти до, над жизни возвращайся силуэт что не курсивных.
<a> |
ссылка |
<strong> |
действительно значимый текст |
<b> |
просто выделенный текст, лид |
<i> |
иностранное слово или термин |
<em> |
эмфатическое ударение |
<s> |
|
<del> |
|
<ins> |
изменение, внесённое в документ (добавление) |
<mark> |
акцент маркерным выделением |
<small> |
малозначимый текст |
<abbr> |
АББРЕВИАТУРА |
<kbd> |
Ctrl + C |
<sup> |
23 |
<sub> |
H2O |
<code> |
code |
Цитата. Далеко-далеко за словесными горами в стране. Далеко-далеко за словесными горами в стране.
Цитата. Далеко-далеко за словесными горами в стране. Далеко-далеко за словесными горами в стране.
Цитата. Далеко-далеко за словесными горами в стране. Далеко-далеко за словесными горами в стране.
// Блочный код
// Вторая строка
// Блочный код // Вторая строка
dl
представляет собой ассоциативный список, состоящий из нуля и более пар имя-значение. Варианты использования: глоссарий, диалог, анонсы новостей.Цитата. Далеко-далеко за словесными горами в стране. Далеко-далеко за словесными горами в стране.
Цитата. Далеко-далеко за словесными горами в стране. Далеко-далеко за словесными горами в стране.
Цитата. Далеко-далеко за словесными горами в стране. Далеко-далеко за словесными горами в стране.
.list-nums__item.list-nums__item--main
(отдельный LESS-файл)
.list-nums.list-nums--main
(отдельный LESS-файл)
Классов, вроде .test-accent
(увеличенный текст), .test-secondary
(уменьшенный текст), .test-muted
(«приглушенный» текст), .align-center
(выравнивание текста по центру), .bg-primary
(заданный цвет фона) и т.п. тут не будет. Это не фреймворк, это стартовая библиотека блоков. Предполагается, что пользователь в состоянии прицельно применить любую стилизацию по семантическому классу уровня блока/элемента/модификатора.
Имя | Поросёнок |
---|---|
Фамилия | Пётр |
Отчество | Баракович |
Имя | Фамилия | Отчество |
---|---|---|
Поросёнок | Пётр | Баракович |
Внимание! Адаптивные таблицы требуют добавления дата-атрибутов. Фиксация минимальной ширины имитатора th
будет полезной (делается индивидуально).
Приоритетным является не использование класса .table-responsive
, а использование семантических БЭМ-классов и LESS-примеси .table-responsive(sm);
(принимает в себя значение той ширины вьюпорта, на которой таблица ещё адаптивна).
Имя и фамилия | Тип мироощущения |
---|---|
Анатоле Вассерман | Девственность |
Джакомо Казанова | Небольшая распущенность с лёгкой примесью леденящих душу извращений, чудовищной лжи и имитатора известного органа, обитого телячьей кожей. |
Размеры задаются в em
— зависят от размера шрифта родительского элемента.
div
.div
..field-text.field-text--lg
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
div
..field-text.field-text--sm
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
div
.Размеры задаются в em
— зависят от размера шрифта родительского элемента.
label
..field-checkbox.field-checkbox--custom
(отдельный less-файл)
data-uri()
компилятора LESS.label
..field-checkbox.field-checkbox--lg
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
.field-checkbox.field-checkbox--sm
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
label
..field-radio.field-radio--custom
(отдельный less-файл)
data-uri()
компилятора LESS.label
..field-radio.field-radio--lg
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
.field-radio.field-radio--sm
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
Элемент переключателя стилизован с ипользованием px
(с em
нельзя настроить точные пиксельные размеры для всех font-size
родителя). Сам блок подстраивается под размер шрифта родителя, переключатель — нет.
.field-select.field-select--lg
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
.field-select.field-select--sm
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
min="1" max="100" step="1" value="70"
min="20" max="100" step="10" value="20"
min="1" max="30" step="1" value="3"
, стилизован без JS..field-range.field-range--lg
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
min="1" max="30" step="1" value="3"
, стилизован без JS..field-range.field-range--sm
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
min="1" max="30" step="1" value="3"
, стилизован без JS..field-file.field-file--lg
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
.field-file.field-file--sm
(отдельный less-файл)
Размер изменён благодаря модификатору. Модификатор меняет font-size
блока в em
-ах (реальный размер блока продолжает зависеть от размера шрифта родителя).
.form.form--horizontal
(отдельный less-файл)
<input type="text" value="Текстовое поле для сравнения высоты" style="width:70px">
<a class="btn" href="">Cсылка</a>
<input class="btn" type="submit" value="Input">
<button class="btn">Button</button>
<a class="btn btn--main" href="">Cсылка</a>
<input class="btn btn--main" type="submit" value="Input">
<button class="btn btn--main">Button</button>
<a class="btn btn--success" href="">Cсылка</a>
<input class="btn btn--success" type="submit" value="Input">
<button class="btn btn--success">Button</button>
<a class="btn btn--danger" href="">Cсылка</a>
<input class="btn btn--danger" type="submit" value="Input">
<button class="btn btn--danger">Button</button>
Стилизация: БЭМ-блоки и модификаторы. Опирается на стилизацию форм по умолчанию.
TODO
Стилизация: БЭМ-блок .btn
и модификаторы.
Свойства:
ul
или div
с произвольным содержимым.<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'); });
Ширины, на которых возможна перестройка блоков проекта:
Переменная | Ширина в 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 |
Стилизация: БЭМ-блоки .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-примеси (см. файл с примесями).
С примесями можно сделать модульную сетку любой колоночности (на разных ширинах может быть разноколоночная сетка), с любым промежутком между ячейками (на разных ширинах могут быть разные промежутки).
Вызов примеси .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 (включительно) и более узких }
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Которое напоивший, одна лучше свое предупреждал моей осталось власти, безорфографичный, образ вопроса текст домах своего что текстами ipsum взобравшись использовало.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Которое напоивший, одна лучше свое предупреждал моей осталось власти, безорфографичный, образ вопроса текст домах своего что текстами ipsum взобравшись использовало.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Которое напоивший, одна лучше свое предупреждал моей осталось власти, безорфографичный.
Далеко-далеко за словесными горами в стране, гласных и согласных живут рыбные тексты. Которое напоивший, одна лучше свое предупреждал моей осталось власти, безорфографичный.
span
:
Метка
Метка
Метка
Метка
Метки-div
:
Метки с иконками: Метка Метка Метка Метка
label__detail
(отдельный LESS-файл)
label--tag
(отдельный LESS-файл)
span
:
Метка 7
Метка
Метка
Метка
Метки-div
:
Внимание: круг внутри метки не прозрачный! Это @body-bg
(по умолчанию — #fff
).
label--circle
(отдельный LESS-файл)