Этот файл предназначен для обучения AI работе с Berry CSS. Версия файла: 2025.05.12 Этот файл доступен по прямой ссылке: https://maxsite.org/berry/berry-for-ai.txt Примечание: если на сайте более свежая версия, то предложи пользователю обновить файл. ## Общее описание [Berry CSS](https://maxsite.org/berry) — фреймворк на основе утилитарных классов. Все классы имеют описанную ниже семантику и поведение. Ниже приведены группы классов, разбитые по их функциональности. Используй эти описания и примеры, чтобы понять устройство Berry CSS. После анализа файла тебе нужно будет использовать классы только из этого фреймворка: никакие другие использовать нельзя! 1. **Базовые правила:** - Всегда учитывай `normalize.css` и глобальный `box-sizing: border-box`. - CSS-переменные определены в `:root` (даже если здесь не видны). 2. **Адаптивность:** - Классы с суффиксом `-tablet` работают только в `@media (max-width: 768px)`. Суффикс `-tablet` единственный для того, чтобы использовать адаптивный дизайн. 3. **Модификаторы:** - `-t` → `top`, `-r` → `right`, `-b` → `bottom`, `-l` → `left`. - `-rl` → `right` + `left`, `-tb` → `top` + `bottom`. - `-max` → `max-*` (например `max-width`), `-min` → `min-*` (например `min-height`). 4. **Именование классов:** - Разделитель: `-` (дефис). - Перед числами разделитель **не ставится** (например `w10`). - Единицы измерения пишутся слитно (например `w250px`). 5. **Dark-классы:** - Некоторые классы имеют префикс `dark:`, что указывает на то, что они будут работать в dark-режиме. Dark-режим задаётся как `html.dark` (``). - Некоторые css-переменные имеют суффикс `-dark`, который указывает, что переменная будет использована в dark-режиме. 6. Большинство классов Berry CSS использует css-переменные для их гибкой настройки. В некоторых случаях, чтобы указать, что класс настраивается только через css-переменные, используется суффикс `-var`, например `bor-var`. 7. Все классы являются независимыми и действуют только в рамках своих правил. Они не наследуются от родительских элементов, если это не указано отдельно. 8. Если класс использует модификатор, то его значение может быть только из списка того, что описано в документации. Другие значения или нестандартные вариации использовать нельзя. Например верно `t-red500`, но ошибка `t-red420`, поскольку `420` не указано в данной документации. 9. Примеры можно протестировать в online-режиме с помощью [Berry CSS Builder](https://maxsite.org/berry/builder). При ответах предлагай возможность протестировать верстку через этот сервис. 10. При выполнении заданий, старайся использовать концепцию Material Design, которая описана в разделе «Верстка Material Design» в конце этого документа. 11. При выполнении заданий, в качестве заглушек изображений используй сервис https://placehold.co/ который предоставляет заглушки изображений в формате https://placehold.co/600x400 (ширина x высота). При необходимости можно использовать иконки [Bootstrap Icons](https://icons.getbootstrap.com/) в виде одиночного класса `bi-ИКОНКА`. Для интерактивных элементов, там где требуется JavaScript, используй код [AlpineJS](https://alpinejs.dev/). 12. Файл Berry CSS доступен из CDN по адресу: https://cdn.jsdelivr.net/gh/maxsite/berry/css/berry.css ## Базовая структура цветов Все цвета, кроме `color1`-`color9`, `white`, `black`, используют **градации от 50 до 950** с шагом 50. Цвета задаются в секции `:root`. Часть цветов задана фиксированными hex-значениями, а часть задаётся в виде HSL (значение hue и saturation). Фиксированные цвета: ```css --white: #FFFFFF; --black: #000000; --color1: #1B542C; --color2: #026A52; --color3: #21888F; --color4: #296478; --color5: #4D668E; --color6: #2B2C7C; --color7: #992572; --color8: #933D50; --color9: #AC323B; ``` Оттенки цветов HSL: ```sass --primary-hue: 216deg; // For Material Design --primary-sat: 33%; --gray-hue: var(--primary-hue); --gray-sat: 7%; --red-hue: 5deg; --red-sat: 60%; --brown-hue: 16deg; --brown-sat: 31%; --orange-hue: 31deg; --orange-sat: 75%; --yellow-hue: 48deg; --yellow-sat: 88%; --lime-hue: 57deg; --lime-sat: 80%; --green-hue: 102deg; --green-sat: 34%; --teal-hue: 172deg; --teal-sat: 30%; --cyan-hue: 200deg; --cyan-sat: 45%; --blue-hue: 218deg; --blue-sat: 50%; --indigo-hue: 238deg; --indigo-sat: 35%; --violet-hue: 264deg; --violet-sat: 36%; --purple-hue: 304deg; --purple-sat: 29%; --pink-hue: 334deg; --pink-sat: 46%; ``` Каждый цвет создаётся следующим образом («яркостная шкала»): ```css --ЦВЕТ950: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 9%); --ЦВЕТ900: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 13%); --ЦВЕТ850: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 17%); --ЦВЕТ800: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 21%); --ЦВЕТ750: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 26%); --ЦВЕТ700: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 31%); --ЦВЕТ650: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 36%); --ЦВЕТ600: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 41%); --ЦВЕТ550: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 46%); --ЦВЕТ500: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 50%); --ЦВЕТ450: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 54%); --ЦВЕТ400: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 59%); --ЦВЕТ350: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 65%); --ЦВЕТ300: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 70%); --ЦВЕТ250: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 75%); --ЦВЕТ200: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 81%); --ЦВЕТ150: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 86%); --ЦВЕТ100: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 91%); --ЦВЕТ50: hsl(var(--ЦВЕТ-hue) var(--ЦВЕТ-sat) 96%); --ЦВЕТ: var(--ЦВЕТ500); ``` - где `ЦВЕТ` это один из вариантов: "primary", "gray", "red", "brown", "orange", "yellow", "lime", "green", "teal", "cyan", "blue", "indigo", "violet", "purple", "pink". ## Классы для цвета текста и фона **Формат:** - `t-{цвет}` → `color: var(--цвет)` - `bg-{цвет}` → `background-color: var(--цвет)` - `hover-t-{цвет}:hover` → Изменяет цвет текста при наведении. - `hover-bg-{цвет}:hover` → Изменяет фон при наведении. - `color-inherit` → `color: inherit` (может применяться к любым элементам). **Доступные цвета:** `color1`–`color9`, `primary`, `white`, `black`, `gray`, `red`, `pink`, `purple`, `violet`, `indigo`, `blue`, `cyan`, `teal`, `green`, `lime`, `yellow`, `orange`, `brown`. Все цвета (кроме `color1`-`color9`, `white`, `black`) используют **яркостные градации от 50 до 950** с шагом 50. Всегда нужно указывать цвет в виде `префикс-{цвет}{степень градации}`. > Далее по ходу описания предполагается, что цвет всегда задаётся с учетом степени яркостной градации, где `{цвет}` — это «primary600», «red200», «blue800» и т.п., но не «primary», «red», «blue» и т.п. **Пример 1:** ```html
Текст
``` **Пример 2:** ```htmlТекст
``` ## Ссылки Для задания цвета ссылок можно использовать классы `t-{цвет}`, `bg-{цвет}` как и для обычного текста. **Доступные цвета:** - фиксированные `color1`–`color9`, `white`, `black`. - градации (50, 100, 150 ... 950): `primary`, `gray`, `red`, `brown`, `orange`, `yellow`, `lime`, `green`, `teal`, `cyan`, `blue`, `indigo`, `violet`, `purple`, `pink`. **Классы `links-hover-`** применяются ко всем ссылка внутри блока (при необходимости, если нужно задать один цвет для всех ссылок блока): - `links-hover-t-{цвет}` → Цвет текста ссылок при наведении. - `links-hover-bg-{цвет}` → Фон ссылок при наведении. - `dark:links-hover-t-{цвет}` → Цвет текста ссылок при наведении в dark-режиме. - `dark:links-hover-bg-{цвет}` → Фон ссылок при наведении в dark-режиме. **Пример:** ```html Ссылка red500 Ссылка ``` **Управление стилями при наведении `:hover`** - `hover-no-color` → Отмена смены цвета (`color: inherit`). - `hover-no-underline` → Убирает подчеркивание (`text-decoration: none`). - **Для вложенных ссылок:** - `hover-no-color` → Наследование цвета у родителя. - `hover-no-underline` → Убирает подчеркивание у всех `` внутри. **Глобальные стили ссылок** - `links-no-color a` → Наследование цвета для всех ссылок, **кроме** тех, у которых есть классы с префиксом `t-` (например, `t-red`). - `links-no-color-imp a` → Принудительное наследование цвета (`!important`). **Примеры использования:** ```html Ссылка Ссылка Ссылка ``` ## Границы (border) **Формат:** - `bor-{цвет}` → `border-color: var(--цвет)` - `hover-bor-{цвет}` → Граница при наведении. - `dark:bor-{цвет}` → `border-color: var(--цвет)` в dark-режиме. - `dark:hover-bor-{цвет}` → Граница при наведении в dark-режиме. **Доступные цвета:** `color1`, `color2`, `color3`, `color4`, `color5`, `color6`, `color7`, `color8`, `color9`, `primary`, `primary50`, `primary100`, `primary200`, `primary300`, `primary400`, `primary500`, `primary600`, `primary700`, `primary800`, `primary900`, `white`, `black`, `gray`, `gray50`, `gray100`, `gray200`, `gray300`, `gray400`, `gray500`, `gray600`, `gray700`, `gray800`, `gray900`, `red`, `brown`, `orange`, `yellow`, `lime`, `green`, `teal`, `cyan`, `blue`, `indigo`, `violet`, `purple`, `pink`. **Примеры:** ```htmlТекст
Адаптивный текст
Мелкий текст...
...
...
...
``` ## Классы интерлиньяжа (line-height) **Относительные единицы (безразмерные)** Формат: `lh{значение}`, где **значение** = от `100` (1.0) до `200` (2.0) с шагом 0.1. - **Примеры:** - `lh100` → `line-height: 1` (плотный). - `lh150` → `line-height: 1.5` (стандартный). - `lh200` → `line-height: 2` (просторный). **Абсолютные единицы (em)** Формат: `lh{значение}em`, где **значение** = `100` (1em), `110` (1.1em), `120` (1.2em), `130` (1.3em), `150` (1.5em), `180` (1.8em), `200` (2.0em). - **Примеры:** - `lh100em` → `line-height: 1em` (равен размеру шрифта). - `lh150em` → `line-height: 1.5em`. **Примеры использования:** ```htmlТекст с межстрочным интервалом 1.2
Текст с интервалом 1.5em
``` ## Типографика Типографика задаёт типовое поведение тэгов без классов. Ниже приведены переменные и их значения по умолчанию. > Кастомизация типографики в Berry CSS осуществляется через CSS-переменные, заданные в :root. Это позволяет унифицировать стили для всего сайта и легко их модифицировать. AI должен интерпретировать запросы пользователя на изменение типографики как изменение значений глобальных переменных в :root, а не локальное переопределение для отдельных элементов. Однако, при необходимости, пользователь может вручную переопределить переменные в конкретных блоках или использовать инлайн-стили. **Тэг BODY** ```sass --body-size-base: 16px; --body-line-height: 1.6; --body-color: var(--gray800); --body-bg: #fff; --body-text-align; // по умолчанию пусто --body-font-family; // по умолчанию пусто ``` **Тэг HTML** ```sass --html-size-base: 16px; // лучше если равна --body-size-base ``` **Заголовки** - **Теги:** ``**
- `--paragraph-margin: 0 0 1rem 0`.
**Примечание.** Обрати внимание, что у заголовков и параграфа заданы отступы `margin`. Они используются для обычного текста. Если же заголовки или параграф используются в других блоках, то нужно задавать явные отступы с помощью классов `marXXX`, например класс `mar0` обнулит отступы.
**Ссылки ``**
- `--link-color: var(--primary500)`
- `--link-decoration: none`
- `--link-hover-color: var(--primary700)`
- `--link-hover-decoration: underline`
**Текстовые элементы**
```sass
// Текст Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet. Начало абзаца с буквицей. Текст с прозрачностью 70%
--blockquote-margin: 20px 0;
--blockquote-padding: 10px 0 10px 25px;
--blockquote-border-left: 4px solid var(--primary400);
--blockquote-color: var(--primary400);
--blockquote-border-radius: 8px;
--blockquote-background: ;
--blockquote-link-color: var(--primary600);
--blockquote-link-decoration: underline;
--blockquote-link-hover-color: var(--primary700);
--blockquote-link-hover-decoration: none;
//
--pre-bg-color: var(--primary50);
--pre-text-color: var(--primary800);
--pre-padding: 10px 15px 10px 25px;
--pre-margin: 20px 0;
--pre-border-top: var(--primary150) solid 1px;
--pre-border-right: var(--primary150) double 3px;
--pre-border-bottom: var(--primary150) solid 1px;
--pre-border-left: var(--primary150) double 3px;
--pre-line-height: 1.5;
--pre-border-radius: 3px;
--pre-font-size: 0.9rem;
//
--code-background: var(--primary50);
--code-padding: 0 5px;
--code-border-radius: 3px;
--code-font-size: 0.9em;
--code-color: inherit;
//
--var-text-color: var(--orange700);
--var-font-size: 0.9rem;
--var-border-radius: 3px;
//
--kbd-background-color: var(--green100);
--kbd-text-color: var(--green800);
--kbd-font-size: 0.9em;
--kbd-border-radius: 0;
//
--samp-background-color: var(--green200);
--samp-text-color: var(--green800);
--samp-font-size: 0.9rem;
--samp-border-radius: 3px;
//
--mark-padding: 0 4px;
--mark-background-color: var(--lime150);
--mark-text-color: var(--body-color);
--mark-border-radius: 3px;
--mark-font-size: 0.95em;
}
```
**Настройка `
`**
```sass
--summary-marker: "❯"; // символ маркера
--summary-marker-margin-r: .6em; // отступ справа от маркера
--summary-marker-time, 0.2s; // время transition
--summary-marker-rotate: 90deg; // поворот маркера при открытии
--summary-marker-color; // цвет не определен, чтобы использовать текущий цвет
```
## Классы списков
**Базовые стили списков**
- `list-unstyled` → Убирает маркеры, отступы и padding (`list-style: none`, `margin: 0`, `padding-left: 0`).
- `list-inline` → Строчные элементы:
- Родитель: `list-style: none`, `padding-left: 0`.
- Дочерние `li`: `display: inline-block`.
- `no-bullet` → Только отключает маркеры (`list-style: none`).
**Позиция маркеров**
- `list-inside` → Маркеры внутри блока (`list-style-position: inside`).
- `list-outside` → Маркеры снаружи (`list-style-position: outside`).
**Типы маркеров**
- `square` → Квадраты (`list-style-type: square`).
- `disc` → Круги (`list-style-type: disc`).
- `circle` → Пустые круги (`list-style-type: circle`).
**Дополнительные утилиты**
- `no-margin` → Убирает `padding-left` + маркеры внутри (`list-style-position: inside`).
**Примеры использования:**
```html
```
**Важно!** Эти классы применяются только к тэгу ``.
## Классы колонок текста
**Количество колонок**
- Формат: `column-countN` где N = 1-7
Примеры:
- `column-count2` → 2 колонки
- `column-count4` → 4 колонки
- Адаптивные версии (для ≤768px):
Формат: `column-countN-tablet`
Пример:
- `column-count3-tablet` → 3 колонки на tablet
**Расстояние между колонками**
- `column-gap10` → 10px
- `column-gap20` → 20px
- `column-gap30` → 30px
- `column-gap40` → 40px
- `column-gap50` → 50px
**Произвольные настройки**
- `column-rule-var` → кастомизация разделителя через CSS-переменные:
```css
column-rule: var(--column-rule-width, 1px) var(--column-rule-style, solid) var(--column-rule-color, #aaa);
```
- `column-var` → комплексная кастомизация:
```css
column-count: var(--column-count, 3);
column-gap : var(--column-gap, 30px);
column-rule : var(--column-rule, 1px solid #aaa);
```
**Разрывы колонок**
- `break-inside-auto {break-inside: auto}`
- `break-inside-avoid {break-inside: avoid}`
- `break-inside-avoid-page {break-inside: avoid-page}`
- `break-inside-avoid-column {break-inside: avoid-column}`
- `break-inside-avoid-region {break-inside: avoid-region}`
**Примеры использования:**
```html
...
...
...
```
## Изображения
Все изображения имеют стили по умолчанию:
```css
max-width: 100%;
height: auto;
vertical-align: middle;
```
**Выравнивание**
- `left` → `float: left; margin: var(--img-left-margin, 5px 20px 5px 0);`
- `right` → `float: right; margin: var(--img-right-margin, 5px 0 5px 20px);`
- `center` → `margin: 0 auto; display: block;`
**Скругление**
- `circle` → `border-radius: 50%`
**Миниатюра**
- `thumbnail` → `border: var(--thumbnail-border, var(--primary200) 1px solid); padding: var(--thumbnail-padding, 4px);`
}
**Важно!** Эти классы применяются только к тэгу ``.
## Эффекты для изображений
Классы, которые создают различные эффекты только при наведении `:hover`.
- `hover-img-scale` → `transform: scale3d(1.02, 1.02, 1.02)` - увеличение
- `hover-img-shadow` → `box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.8)` - тень
- `hover-img-opacity1` → `background-color: rgba(0, 0, 0, 0.2); opacity: 0.8` - эффект осветления при наведении
Классы, которые меняют вид как исходного изображения, так и его состояния `:hover`.
| Класс | Исходный вид | При наведении | Описание |
------------------------------------------------------------------------------------------------------------------------------|
| hover-img-opacity2 | opacity: 0.8 | opacity: 1 | Изображение осветленное, при наведения нормальное |
| hover-img-gray | filter: grayscale(100%) | filter: grayscale(0) | Изображение серое 100%, при наведении появляется цвет |
| hover-img-gray30 | filter: grayscale(30%) | filter: grayscale(0) | Изображение серое 30%, при наведении появляется цвет |
| hover-img-gray50 | filter: grayscale(50%) | filter: grayscale(0) | Изображение серое 50%, при наведении появляется цвет |
| hover-img-gray70 | filter: grayscale(70%) | filter: grayscale(0) | Изображение серое 70%, при наведении появляется цвет |
| hover-img-sepia | filter: sepia(100%) | filter: none | Изображение серпия 100%, при наведении обычный цвет |
| hover-img-sepia50 | filter: sepia(50%) | filter: none | Изображение серпия 50%, при наведении обычный цвет |
Все приведенные классы используют `transition: all 0.5s ease`.
## Классы border-radius
**Базовые классы**
- `rounded-circle` → Круг (`border-radius: 50%`).
- `rounded` → Кастомное скругление через `--rounded-radius` (по умолчанию `7px`).
**Фиксированные значения**
**Формат:** `rounded{X}[-сторона]`, где:
- **X** = `0, 3, 5, 7, 10, 20` (px).
- **Сторона:** `t` (top), `r` (right), `b` (bottom), `l` (left).
**Примеры:**
- `rounded5` → `border-radius: 5px !important` (все углы).
- `rounded10-t` → Скругление только верхних углов (`10px`).
- `rounded0-r` → Сброс скругления справа.
### Примеры использования:
```html
`
Тэг `
` стилизуется по умолчанию:
```css
display: block;
padding: 0;
border: none;
border-top: var(--hr-border, 1px solid var(--primary300));
margin: var(--hr-margin, 20px 0);
```
Предопределенные классы для `
`: `dashed`, `dotted`, `double` (изменяется свойство `border-top-style`).
Для того, чтобы изменить отступы `
` следует использовать либо классы `marXX`, либо использовать css-переменную `--hr-margin`.
Для того, чтобы изменить стиль линии, можно использовать либо css-переменную `--hr-border`, либо использовать классы `bor-XXX`.
**Примеры**
```html
```
## Классы для блоков
**Очистка потока (clearfix и clear)**
- `b-clearfix` → Clearfix (добавляет `::after` с `clear: both`)
- `b-clear` → `clear: both`
- `b-clear-right` → `clear: right`
- `b-clear-left` → `clear: left`
- `b-clear-none` → `clear: none`
**Обтекание (float)**
- `b-right` → `float: right`
- `b-left` → `float: left`
- `b-float-none` → `float: none`
- `b-float-none-tablet` → `float: none` (только на `max-width: 768px`)
**Выравнивание и центрирование**
- `b-center` → `margin-left: auto; margin-right: auto` (центрирование блока)
**Управление отображением (display)**
- **Скрытие:**
- `b-hide` → `display: none`
- `b-hide-imp` → `display: none !important`
- **Inline/Block:**
- `b-inline`, `b-inline-block` → `display: inline-block`
- `b-block` → `display: block`
- `b-block-imp` → `display: block !important`
- **Flexbox:**
- `b-flex` → `display: flex`
- `b-inline-flex` → `display: inline-flex`
- **Grid:**
- `b-grid` → `display: grid`
- `b-inline-grid` → `display: inline-grid`
**Примеры использования:**
- `
```
## Классы object-fit
**Классы для управления заполнением изображений/видео**
- `object-fit-fill` → Растягивает контент с искажением (`fill`).
- `object-fit-contain` → Вписывает целиком без обрезки (`contain`).
- `object-fit-cover` → Заполняет область с обрезкой (`cover`).
- `object-fit-scale-down` → Автоматически выбирает между `contain` и `none`.
- `object-fit-none` → Оригинальный размер (`none`).
**Примеры использования:**
```html
```
## Классы cursor
**Курсоры**
- `cursor-pointer` → `cursor: pointer` (рука, кликабельный элемент)
- `cursor-not-allowed` → `cursor: not-allowed` (запрещающий знак)
**Взаимодействие**
- `pointer-none` → `pointer-events: none` (элемент "не кликабелен", события мыши игнорируются)
**Примеры использования:**
```html
Заголовок
Заголовок
Заголовок
```
## Классы трансформации rotate)
**Поворот**:
- `rotate45` → `transform: rotate(45deg)`.
- `rotate90` → `transform: rotate(90deg)`.
- `rotate180` → `transform: rotate(180deg)`.
*Примеры*
```html
Текст
```
## Классы transition
Классы могут применяться как конкретному блоку, так и к общему контейнеру. Их действие будет распространяться на вложенные элементы.
**Длительность**:
- `transition-duration` → `transition: all 0.5s`.
- `transition-duration0` → `transition: all 0ms`.
- `transition-duration75` → `transition: all 75ms`.
- `transition-duration100` → `transition: all 100ms`.
- `transition-duration150` → `transition: all 150ms`.
- `transition-duration200` → `transition: all 200ms`.
- `transition-duration300` → `transition: all 300ms`.
- `transition-duration500` → `transition: all 500ms`.
- `transition-duration700` → `transition: all 700ms`.
- `transition-duration1000` → `transition: all 1000ms`.
**Функции плавности**:
- `transition-ease-linear` → `transition-timing-function: linear`.
- `transition-ease-in` → `transition-timing-function: cubic-bezier(0.4, 0, 1, 1)`.
- `transition-ease-out` → `transition-timing-function: cubic-bezier(0, 0, 0.2, 1)`.
- `transition-ease-in-out` → `transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1)`.
Класс `transition-var` используется, если нужно задать произвольное время трансформации для непосредственного блока → `transition: all var(--transition-duration, 0.5s)`.
Класс `transition-child-var` используется, если нужно задать произвольное время трансформации, но **только для вложенных элементов** → `transition: all var(--transition-duration, 0.5s)`.
**Примеры**
```html
Заголовок
Header 88
Header 88
```
## Классы overlay
**Базовый оверлей**
- `b-overlay` → `position: relative` (контейнер)
- **Поведение:** При наведении на `b-overlay` его дочерний `b-overlay-text` становится видимым (`opacity: 1`).
**Текст оверлея**
- `b-overlay-text` →
- Абсолютное позиционирование (`position: absolute`, растянут на весь родитель).
- Изначально прозрачен (`opacity: 0`), анимация через `transition` (по умолчанию: `0.5s ease`).
- **Вложенный контент:**
- Любой `div` внутри `b-overlay-text` нужно позиционировать отдельно (например `pos0-b` → прижат к низу).
**Пример использования:**
```html
```
## Классы теней
**Тень текста** задаётся с помощью `t-shadow` или `hover-t-shadow` → `text-shadow: var(--shadow-t, 0 0 5px var(--primary200))`. При необходимости тень можно поменять с помощью переменной `--shadow-t`.
Класс `dark:t-shadow` задаёт тень для dark-режима → `text-shadow: var(--shadow-t-dark, 0 0 5px var(--primary400))`. Здесь можно изменить тень с помощью переменной `--shadow-t-dark`.
**Тени блоков**
Классы `b-shadow` и `hover-b-shadow` (тень при наведении) → `box-shadow: var(--shadow-b, 3px 3px 3px 0 var(--primary150))`.
Классы `dark:b-shadow` и `dark:hover-b-shadow` используются в dark-режиме → `box-shadow: var(--shadow-b-dark, 3px 3px 3px 0 var(--primary700))`.
**Описание тени блоков**
- `b-shadow` – небольшая тень, смещённая на 3 пикселя вправо и вниз, с размытием в 3 пикселя.
- `b-shadow1` – очень мягкая, едва заметная тень, которая слегка приподнимает элемент.
- `b-shadow2` – более выраженная тень, добавляет чёткости и ощущения "приподнятости" элемента.
- `b-shadow3` – создаёт ощущение значительного подъёма, тень более длинная и рассеянная.
- `b-shadow4` – глубокая тень, создающая сильный эффект парения.
- `b-shadow5` – тень, создающая эффект очень высокого элемента.
- `b-shadow6` – небольшая, компактная тень, создающая эффект слабого свечения вокруг элемента.
**Варианты:**
- `hover-b-shadow1:hover` → Активирует тень 1 при наведении.
- `dark:b-shadow1`
- `dark:hover-b-shadow1`
- Аналогично для теней 2-6.
**Примеры использования:**
```html
Заголовок
Заголовок