Этот файл предназначен для обучения 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 Ссылка Ссылка
Ссылка red500
Ссылка red500 при наведении
Ссылка ``` ## Границы (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
...
...
``` **Управление границами** - `bordered` → `border: var(--bordered, var(--primary200) 1px solid)`, - `bor-var` → Кастомные границы через CSS-переменные: - `--bor-style` (по умолчанию: `solid`), - `--bor-width` (по умолчанию: `1px`), - `--bor-color` (по умолчанию: `var(--primary200)`). - `bor-currentColor` → `border-color: currentColor` (наследует цвет текста). **Удаление границ** - `bor-none` → Полное удаление (`border-style: none !important`). - **Частичное удаление:** - `bor-none-t` → убрать верхнюю границу, - `bor-none-r` → убрать правую, - `bor-none-b` → убрать нижнюю, - `bor-none-l` → убрать левую, - `bor-none-tb` → убрать верхнюю и нижнюю, - `bor-none-rl` → убрать правую и левую. - `bor-none-tablet` → `border-style: none` на экранах ≤ 768px. **Стили границ**. Формат: `bor-{стиль}[-модификатор]`, где **стиль** = `solid`, `dotted`, `dashed`, `double`. - **Примеры:** - `bor-solid` → все границы `solid`, - `bor-dashed-t` → верхняя граница `dashed`, - `bor-dotted-rl` → правая и левая `dotted`. **Толщина границ** - `bor1` → `1px`, `bor2` → `2px`, ..., `bor5` → `5px`. Для задания других границ следует использовать css-переменные класса `bor-var`. **Примеры использования:** ```html
...
...
...
...
``` ## Классы высоты **Фиксированная высота (px)** Формат: `h{N}px[-модификатор]`, где: - **N**: 10, 15, 20, 30, 40, 50, 60, 70, 100, 200, 300, 400, 500. - **Модификаторы:** - `-min` → `min-height` (например, `.h20px-min`). - `-max` → `max-height` (например, `.h50px-max`). **Пример:** ```html
...
``` **Дополнительные классы** - `h-auto` → `height: auto` - `h-auto-tablet` (для max-width: 768px). - `h100` → `height: 100%` **Высота в vh** Формат: `.h{N}vh[-модификатор]`, где **N** = 50 или 100. - **Примеры:** - `.h50vh` → `height: 50vh`. - `.h100vh-min` → `min-height: 100vh`. **Примеры использования:** ```html
...
...
``` ## Классы ширины **Процентные значения**. Формат: `w{N}[-модификатор]` - **N** = `0`–`100` Значения: 0, 1, 2, 3, 4, 5, 10, 15, 20, 21, 22, 23, 24, 25, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 60, 65, 66, 67, 68, 69, 70, 75, 80, 85, 90, 95, 100. - **Модификаторы:** - `-min` → `min-width`. - `-max` → `max-width`. **Примеры:** - `w25` → `width: 25%`. - `w50-max` → `max-width: 50%`. **Пиксельные значения**. Формат: `w{N}px[-модификатор]` - **N** = 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 100, 150, 200, 250, 300, 400, 500, 600, 700, 800. - **Примеры:** - `w100px` → `width: 100px`. - `w200px-min` → `min-width: 200px`. **Адаптивность (только `-tablet` для max-width: 768px)** - **Примеры:** - `w100-tablet` → `width: 100%` (только на tablet). - `w10px-max-tablet` → `max-width: 10px` (на tablet). **Дополнительные классы** - `w-auto` → `width: auto`. **Примеры использования:** ```html
...
...
...
...
...
...
...
...
``` **Фиксированная ширина**: - `w-layout-max` → `width: 100%; max-width: 1200px`. - `w-tablet` → `width: 768px`. - `w-tablet-max` → `max-width: 768px`. - `w-tablet-min` → `min-width: 768px`. **Важно!** Классы `w-tablet`, `w-tablet-max`, `w-tablet-min` хоть и используют суффикс `-tablet` на самом деле просто задают ширину tablet в 768px. **Гибкая ширина**: - `w100-max` → `max-width: 100%`. - `w-auto` → `width: auto`. **Максимальная ширина**: - `w-max-none` → `max-width: none`. - `w-max-min-content` → `max-width: min-content`. - `w-max-max-content` → `max-width: max-content`. - `w-max-fit-content` → `max-width: fit-content`. **Минимальная ширина**: - `w-min-none` → `min-width: 0`. - `w-min-min-content` → `min-width: min-content`. - `w-min-max-content` → `min-width: max-content`. - `w-min-fit-content` → `min-width: fit-content`. **Ширина в колонках** (12-колоночная сетка): - Формат: `w{N}col`, где `N` — число колонок от 1 до 12. **Примеры** ```html
Контент
Раздел
Текст
Контент
Текст
Адаптивный контент
Треть
Половина
Полная ширина
``` ## Классы контейнера (модульная сетка) **Базовый контейнер** - `layout-center` — центрирование блока контейнера. - `layout-center-wrap > layout-wrap` → использование вложенного wrap-блока Классы `layout-center` и `layout-center-wrap` центрируют блок контейнера следующим образом: ```css width: 100%; max-width: var(--layout-max-width, 1200px); margin-right: auto; margin-left: auto; padding-right: var(--layout-wrap-padding, 15px); padding-left: var(--layout-wrap-padding, 15px); ``` **Ограничение ширины 768px (равна tablet)** - `layout-center-tablet` или `layout-center-wrap-tablet > layout-wrap` → Макс. ширина: `768px` (фиксировано). **Важно!** Классы `layout-center-tablet` и `layout-center-wrap-tablet используют суффикс `tablet`, но не работают как адаптивность max-width: 768px. В этих классах устанавливается только максимальная ширина wrap-блока в 768px. **Кастомизация:** ```css :root { --layout-max-width: 1400px; --layout-wrap-padding: 20px; } ``` **Примеры:** ```html
``` ## Классы Grid **Контейнеры** - `grid-var` → Кастомная сетка через CSS-переменные: - `--grid-gap` (отступы), `--grid-columns`, `--grid-rows`. - `grid-{N}col` → Сетка с N колонками (от 1 до 12). - **Шаблон:** `repeat(N, minmax(0, 2fr))`. - **Пример:** `grid-3col` → 3 колонки. - **Адаптивность:** - `grid-{N}col-tablet` → Активируется на ≤ 768px. **Элементы сетки** - `grid-item-var` → Позиция через переменные: - `--grid-item-column`, `--grid-item-row`. **Отступы (gap)**. Формат: `{тип}-gap{размер}` (размеры: 0, 5, 7, 10, 15, 20, 25, 30, 40, 50, 100px). - **Типы:** - `gap` → общий отступ (row + column). - `column-gap` → только между колонками. - `row-gap` → только между рядами. - **Примеры:** - `gap20` → `gap: 20px`. - `row-gap10` → `row-gap: 10px`. **Примеры использования:** ```html
...
...
Элемент 1
Элемент 2
Элемент 1
Элемент 2
Элемент 3
Элемент 1
Элемент 2
``` ## Классы Flexbox ### **Базовые Flex-классы** - `flex` → `display: flex` + `justify-content: space-between` + `align-items: stretch` - **Адаптивность:** - `flex-tablet` → активирует flex-контейнер только на экранах ≤ 768px, не отменяя другие классы. ### **Направление и перенос** #### **Направление (flex-direction)** - `flex-row` (ряд), `flex-row-reverse` (ряд в обратном порядке) - `flex-column` (колонка), `flex-column-reverse` (колонка в обратном порядке) - **Адаптивность:** - `flex-reverse-tablet` → `flex-direction: row-reverse` (на tablet) #### **Перенос (flex-wrap)** - `flex-wrap` (перенос), `flex-nowrap` (без переноса), `flex-wrap-reverse` (обратный перенос) - **Адаптивность:** - `flex-wrap-tablet` → `flex-wrap: wrap` (перенос только на tablet ≤ 768px) ### **Выравнивание** #### **По главной оси (justify-content)** - `flex-jc-start` (начало), `flex-jc-end` (конец), `flex-jc-center` (центр) - `flex-jc-between` (пространство между), `flex-jc-around` (пространство вокруг) - **Синонимы:** - `flex-hcenter` = `flex-jc-center` - **Адаптивность:** - `flex-hcenter-tablet` → `justify-content: center` (на tablet) #### **По поперечной оси (align-items)** - `flex-ai-start` (начало), `flex-ai-end` (конец), `flex-ai-center` (центр) - `flex-ai-baseline` (базовая линия), `flex-ai-stretch` (растяжение) - **Синонимы:** - `flex-vcenter` = `flex-ai-center` - **Адаптивность:** - `flex-vcenter-tablet` → `align-items: center` (на tablet) #### **Многострочное выравнивание (align-content)** - `flex-ac-start`, `flex-ac-end`, `flex-ac-center` - `flex-ac-between`, `flex-ac-around`, `flex-ac-stretch` #### **Индивидуальное выравнивание (align-self)** - `flex-as-auto`, `flex-as-start`, `flex-as-end`, `flex-as-center` - `flex-as-baseline`, `flex-as-stretch` ### **Размеры и порядок** #### **Базовый размер (flex-basis)** - `flex-basis-var` → `var(--flex-basis, 150px)` - Фиксированные значения: `flex-basis50px`, `flex-basis100px`, `flex-basis150px`. Для других значений следует использовать `flex-basis-var` с `--flex-basis. #### **Порядок (order)** - `flex-order1` → `order: 1` (до `flex-order5`) - **Адаптивность:** - `flex-order1-tablet` → `order: 1` (на tablet, до `flex-order5-tablet`) #### **Растяжение (flex-grow)** - `flex-grow1` → `flex-grow: 1` (до `flex-grow5`) #### **Сжатие (flex-shrink)** - `flex-shrink1` → `flex-shrink: 1` (до `flex-shrink5`) ### **Примеры использования:** ```html
...
...
...
``` **Правила именования:** - Префикс `flex-` + тип свойства (`jc`/`ai`/`ac`/`as`) + значение (`start`/`center`/`between`). - Числовые значения (order/grow/shrink) пишутся без дефиса перед цифрой. ### Примеры построения flex-сетки Хотя flex-модель предлагает множество свойств, в Berry CSS построение flex-сетки возможно в достаточно простом виде. ```(html)
ячейка
ячейка
ячейка
ячейка
ячейка
ячейка
ячейка
ячейка
ячейка
ячейка 30%, на tablet уже 100%
ячейка 50% на любых экранах
ячейка с жадностью 3
ячейка с жадностью 1
ячейка
ячейка
ячейка
ячейка
ячейка
ячейка
ячейка
ячейка
ячейка
ячейка
``` **Примечание.** Во многих случаях будет проще использовать не flex, а grid-сетку, особенно классы `grid-Xcol`. ## Классы для отступов padding и margin **Формат классов** - **Padding:** `pad{число}[-модификатор]` - **Margin:** `mar{число}[-модификатор]` - **Адаптивность:** Добавь `-tablet` (например, `pad10-t-tablet`). **Доступные значения (px)** - **Все устройства:** `0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 35, 40, 50, 60, 70, 80, 100`. - **Только tablet (≤768px)** `0, 5, 10, 20, 30, 50`. **Модификаторы** | Суффикс | Область применения | Пример | |---------|----------------------------|-----------------------------------------| | `-t` | Top | `pad10-t` → `padding-top: 10px` | | `-r` | Right | `mar5-r` → `margin-right: 5px` | | `-b` | Bottom | `pad20-b` → `padding-bottom: 20px` | | `-l` | Left | `mar15-l` → `margin-left: 15px` | | `-tb` | Top + Bottom | `pad30-tb` → `padding-top/bottom: 30px` | | `-rl` | Right + Left | `mar0-rl` → `margin-right/left: 0` | **Важно!**. Все классы имеют `!important`, чтобы иметь приоритет перед другими классами. **Примеры использования:** ```html
...
...
...
...
``` **Классы отступов для `::before`**. - **Шаблон:** `.mar-before{число}` → задает `margin-right` для псевдоэлемента `::before`. - **Доступные значения (px** `0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 20, 25, 30`. **Примеры** ```html
Текст
``` ## Классы размеров текста **Размеры текста в rem** - **Формат**: `tX`, где `X` — размер в `rem`, умноженный на 100 (напр., `t100` → `font-size: 1rem`, `t150` → `font-size: 1.5rem`). - **Доступные значения** (`rem`): - 0.8, 0.85, 0.9, 0.95, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9, 3, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 4, 4.5, 5. - Примеры: `t80` → `0.8rem`, `t200` → `2rem`, `t500` → `5rem`. - **Адаптивность** (медиа-запрос `max-width: 768px`): - Формат: `tX-tablet`. - Доступные значения (`rem`): 0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2, 3, 4, 5. - Примеры: `t80-tablet` → `0.8rem`, `t200-tablet` → `2rem`, `t500-tablet` → `5rem`. **Размеры текста в em** - **Формат**: `tXem`, где `X` — размер в `em`, умноженный на 100 (напр., `t100em` → `font-size: 1em`). - **Доступные значения** (`em`): 0.5, 0.6, 0.7, 0.8, 0.9, 1, 2. - **Примеры**: - `t50em` → `0.5em`. - `t80em` → `0.8em`. - `t200em` → `2em`. **Размеры текста в px** - **Формат**: `tXpx`, где `X` — размер в пикселях. - **Доступные значения** (`px`): 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 25, 30, 40, 50. - **Примеры**: - `t8px` → `8px`. - `t16px` → `16px`. - `t50px` → `50px`. Примеры ```html

Текст

Адаптивный текст

Мелкий текст

Заголовок

Крупный заголовок

``` ## Классы для оформления текста **Начертание и стиль** - **Жирность:** - `t-bold` → `bold`, `t-bold400` → `400`, ... `t-bold900` → `900`. - `t-bold-light` → `lighter`, `t-bold-normal` → `normal`. - **Курсив:** `t-italic`. - **Сброс:** `t-normal` (убирает жирность, курсив, подчеркивание). **Декорации текста** - **Подчеркивание:** - `t-underline` + модификаторы стиля: - `t-decoration-dashed` (пунктир), `t-decoration-wavy` (волна). - Отступ: `t-underline-offset1px`...`t-underline-offset8px`. - **Перечеркивание:** `t-strike`. - **Надчеркивание:** `t-overline`. **Трансформация** - `t-upper` → `uppercase`, `t-lower` → `lowercase`. - `t-capitalize` → `capitalize`. - `t-small-caps` → капитель. **Выравнивание и перенос** - **Выравнивание:** - `t-center`, `t-left`, `t-right`, `t-justify`. - **Адаптивность:** `-tablet` (например, `t-center-tablet`). - **Перенос:** - `t-nowrap` (без переноса), `t-wrap` (нормальный). - `t-ellipsis` → обрезка с `...`. - `t-line-clamp` → многострочная обрезка (если поддерживает браузер) `-webkit-line-clamp: var(--line-clamp, 3)`. **Шрифты** - **Семейства:** - `t-mono` → `SFMono-Regular, Menlo, Monaco, Consolas, "PT Mono", "Liberation Mono", "Courier New", monospace`. - «Безопасные» шрифты: `t-georgia`, `t-palatino`, `t-times`, `t-arial`, `t-arial-black`, `t-comic`, `t-impact`, `t-tahoma`, `t-trebuchet`, `t-verdana`. **Дополнительно** - **Переносы слов** `t-hyphens`. - **Направление:** `t-rtl` (справа налево), `t-ltr` (слева направо). - **Режим письма:** `t-writing-vrl` (вертикальный RL), `t-writing-vlr` (вертикальный LR), `t-writing-htb` (горизонтальный TB). - **Кернинг:** - `t-tracking-50 {letter-spacing:-0.05em}` - `t-tracking-25 {letter-spacing:-0.025em}` - `t-tracking0 {letter-spacing:0em}` - `t-tracking25 {letter-spacing:0.02em}` - `t-tracking50 {letter-spacing:0.05em}` - `t-tracking100 {letter-spacing:0.1em}` - `t-tracking150 {letter-spacing:0.15em}` - `t-tracking200 {letter-spacing:0.2em}` **Примеры:** ```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 ``` **Заголовки** - **Теги:** `

`–`

`. - **Классы:** `h1`–`h6` (дублируют стили тегов). - **CSS-переменные:** - `--headings-font-weight: normal`, `--headings-line-height: 1.2`. // для всех заголовков - `--h1-font-size: 2.5rem`, `--h1-margin: 0.7em 0 0.5em 0` - `--h2-font-size: 2rem`, `--h2-margin: 0.7em 0 0.5em 0` - `--h3-font-size: 1.75rem`, `--h3-margin: 0.7em 0 0.5em 0` - `--h4-font-size: 1.5rem`, `--h4-margin: 0.7em 0 0.5em 0` - `--h5-font-size: 1.25rem`, `--h5-margin: 0.7em 0 0.5em 0` - `--h6-font-size: 1rem`, `--h6-margin: 0.7em 0 0.5em 0` **Параграф `

`** - `--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 //

--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
  • Пункт 1
  • Пункт 2
  • Элемент
  • Текст
``` **Важно!** Эти классы применяются только к тэгу `