Документация LMS версия 2026.09.180

Документация/Оформление/Переменные оформления

Переменные оформления

Версия набора токенов — 0.6.0. Всего переменных 189. Настроек школы всего 2; публичных имён, на которые можно опираться, — 83; производных от --brand — 9.

Справочник собирается из самого tokens.css при каждой сборке: если переменная есть здесь, она есть в продукте, и наоборот — разойтись им не из чего.

Как этим пользоваться #

Переопределение переменной меняет вид везде, где она используется, и переживает любую нашу перевёрстку. В этом и смысл: мы обязуемся не переименовывать публичные переменные, а внутреннее устройство разметки меняем свободно.

Минимальная настройка школы — одна строка:

:root { --brand: #C2185B; }

Из --brand выводятся акцент, наведение, нажатие, бледная подложка, рамка, цвет ссылки и кольцо фокуса — отдельно для светлой и тёмной темы. Поэтому малиновая школа остаётся малиновой и в тёмной теме, а не превращается в бурую.

Куда это писать — в разделе Темы школы.

Три вещи, которые с переменными делают #

Классы отвечают не на вопрос «можно ли технически» — CSS не запретишь, — а на вопрос что мы обещаем.

Что это значит
Задавать 2 настройки школы: --brand и --font-sans-brand. Обе рядом, и обеих достаточно для фирменного стиля
Переопределять на свой риск 9 производных от --brand. Переопределить можно, но связь с брендом рвётся: обе темы дальше на вас
Читать 83 публичных имён. color: var(--text-body) в своей вставке — чтобы она жила по теме школы, а не мимо неё. Имя не меняется никогда

Плюс два состояния, где имя мы обещаем, а менять поведение не рекомендуем:

Что это значит
не рекомендуется Цвета состояний. Отдать можем, но зелёное «оплачено» и красное «отказ» узнаются с первого взгляда во всех школах — это ценность для ученика и куратора. Перекрасившая школа испортит только себе
не рекомендуется, тема проверяется Пороги попадания пальцем. Здесь одних слов мало: тема, уменьшающая область нажатия ниже порога, даёт предупреждение на экране темы — тем же механизмом, что проверка контраста. Доступность мы проверяем, вкус — нет
внутренняя Может измениться в любом обновлении. Используется на свой риск и без нашей поддержки

Настройки школы #

Их 2, и в большинстве случаев дальше читать не нужно: фирменный цвет и шрифт закрывают то, ради чего вообще лезут в CSS.

Переменная Что делает По умолчанию В тёмной теме
--brand Фирменный цвет школы. Единственная переменная, которую школа обязана задать: из неё выводятся акцент, наведение, нажатие, подложка, рамка, цвет ссылки, кольцо фокуса — и всё это отдельно для светлой и тёмной темы. var(--p-blue-500) —
--font-sans-brand Шрифт школы. Вторая и последняя настройка: --font-sans подставляет её первой, а запасные варианты на случай «шрифт не загрузился» остаются нашими — менять весь список не нужно. "Golos Text" —

Было / стало:

:root { --brand: #C2185B; }   /* было синее, стало малиновое — везде */
:root { --font-sans-brand: "PT Sans"; }

Где это видно:

  • --brand — Кнопки главного действия, ссылки, выделенный пункт меню, прогресс, кольцо фокуса.
  • --font-sans-brand — Весь интерфейс.

Публичные переменные #

Их 83. Имя каждой — обязательство: мы не переименовываем их никогда, поэтому переопределение переживает любую нашу перевёрстку.

Цвета: фоны, границы, текст #

Переменная Что делает По умолчанию В тёмной теме
--bg-canvas Фон страницы — то, на чём лежат карточки. var(--p-gray-50) var(--p-gray-950)
--bg-surface Фон карточки, панели, диалога — всего, что лежит поверх страницы. var(--p-gray-0) var(--p-gray-d-surface)
--bg-surface-muted Приглушённый фон внутри карточки — шапка таблицы, невыбранная вкладка, поле только для чтения. var(--p-gray-100) var(--p-gray-d-surface-muted)
--bg-inverse Тёмная подложка на светлой теме — подсказка, плеер, нижняя панель. var(--p-gray-900) var(--p-gray-0)
--bg-inverse-elevated То же, что тёмная подложка, но на один уровень выше — вложенный элемент внутри неё. var(--p-gray-800) var(--p-gray-100)
--bg-media Фон под видео и изображением. Чёрный не случайно — на нём не видно полей кадра. var(--p-black) —
--border Обычная разделительная линия — рамка карточки, линия между строками. var(--p-gray-200) var(--p-gray-d-border)
--border-strong Заметная линия — рамка поля ввода и переключателя. Светлее делать нельзя: 3:1 это порог, ниже которого поле перестаёт быть видимым как поле.
3.10:1 на bg-surface-muted — границы полей
var(--p-gray-450) var(--p-gray-d-border-strong)
--border-on-inverse Линия на тёмной подложке.
3.53:1 на bg-inverse
var(--p-gray-500) var(--p-gray-450)
--text-primary Заголовки и главное на экране.
17.79:1
var(--p-gray-900) var(--p-gray-d-text)
--text-body Основной текст абзацев — тело урока, описания, письма.
9.37:1 — основной текст абзацев
var(--p-gray-700) var(--p-gray-d-text)
--text-secondary Второстепенный текст — подписи, даты, счётчики.
5.40:1 на bg-surface-muted
var(--p-gray-600) var(--p-gray-d-text-2)
--text-muted Самый бледный текст, который ещё разрешён. Светлее нельзя: 4.5:1 — это порог читаемости, а не вкус. Ниже него текст исчезает на солнце и на плохом экране.
4.58:1 на bg-surface-muted — светлее нельзя
var(--p-gray-500) var(--p-gray-d-text-3)
--text-disabled Текст отключённого элемента. К нему порог контраста не применяется — он и должен читаться плохо.
отключённое состояние, порог не применяется
var(--p-gray-400) #5C6673
--text-on-inverse Текст на тёмной подложке. var(--p-gray-0) var(--p-gray-900)
--text-on-inverse-muted Второстепенный текст на тёмной подложке.
8.31:1 на bg-inverse
var(--p-gray-400) var(--p-gray-600)
--skeleton Цвет «заглушки» на месте ещё не загруженного содержимого. var(--p-gray-200) #232B35
--overlay Затемнение под модальным окном и нижним листом. rgba(20, 24, 31, .35) rgba(0, 0, 0, .55)

Было / стало:

:root { --bg-canvas: #FFFFFF; }   /* было серым, стало белым: интерфейс «плоский» */
:root { --bg-surface: #FFFDF7; }  /* карточки чуть тёплого оттенка */
:root { --border: transparent; }  /* было в рамках, стало без рамок */
:root { --text-primary: #000000; }

Где это видно:

  • --bg-canvas — Подложка всех экранов кабинета и админки.
  • --bg-surface — Карточка курса, таблица, боковая панель, модальное окно.
  • --bg-surface-muted — Заголовочная строка таблиц, полоса вкладок, блок кода.
  • --bg-inverse — Всплывающая подсказка, панель управления видео.
  • --bg-media — Плеер урока, обложка курса до загрузки.
  • --border — Карточки, таблицы, поля, вкладки.
  • --border-strong — Поля ввода, флажки, переключатели, выпадающие списки.
  • --text-primary — Названия курсов и уроков, заголовки разделов, суммы.
  • --text-body — Содержимое урока, описание курса, текст в диалогах.
  • --text-secondary — Дата заказа, счётчик уроков, подпись под полем.
  • --text-muted — Подсказки в полях, «ничего не найдено», сноски.
  • --skeleton — Список курсов и таблицы в первые доли секунды после открытия.
  • --overlay — Любое диалоговое окно, нижний лист на телефоне.

Шрифты и размеры текста #

Переменная Что делает По умолчанию В тёмной теме
--font-sans Основной шрифт. Менять целиком не обязательно: в начале списка стоит --font-sans-brand, и достаточно задать её одну — запасные варианты для случая «шрифт не загрузился» останутся нашими. var(--font-sans-brand), "Golos Text", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", "Liberation Sans", Arial, sans-serif —
--font-mono Моноширинный шрифт для кода, ключей и идентификаторов. "JetBrains Mono", ui-monospace, SFMono-Regular, "Cascadia Mono", Consolas, "Liberation Mono", monospace —
--fw-regular Обычное начертание. 400 —
--fw-medium Средняя жирность — подписи и активные пункты. 500 —
--fw-semibold Полужирное — заголовки. 600 —
--fw-bold Жирное — крупные заголовки и суммы. 700 —
--fs-caption Самый мелкий текст — служебные подписи, значки. 12px —
--fs-meta Мелкий текст — даты, счётчики, сноски. 13px —
--fs-table Размер текста в таблицах. 14px —
--fs-body Основной размер текста. 15px —
--fs-body-mobile Основной размер на телефоне. Он больше настольного намеренно: 16px — порог, ниже которого Safari сам увеличивает страницу при попадании в поле ввода. 16px —
--fs-h3 Заголовок третьего уровня — название карточки, подзаголовок в уроке. 16px —
--fs-h2 Заголовок второго уровня — название раздела. 20px —
--fs-h1 Заголовок страницы. 24px —
--fs-display Крупная цифра или заголовок витрины. 30px —
--fs-display-lg Самый крупный размер — обложки и главные экраны. 38px —
--lh-tight Плотная межстрочная — крупные заголовки. 1.15 —
--lh-snug Умеренная межстрочная — подзаголовки и подписи. 1.35 —
--lh-normal Обычная межстрочная — интерфейсный текст. 1.5 —
--lh-relaxed Свободная межстрочная — тело урока, длинные абзацы. 1.6 —
--ls-tightest Сильно поджатые буквы — крупные заголовки. -0.02em —
--ls-tight Слегка поджатые буквы — заголовки. -0.01em —
--ls-wide Разреженные буквы — мелкие подписи капителью. 0.04em —
--ls-widest Сильно разреженные буквы — служебные надписи над разделом. 0.14em —

Было / стало:

:root { --font-sans-brand: "PT Sans"; }
:root { --fs-body: 17px; }   /* было 15 — стало крупнее во всей школе */

Где это видно:

  • --font-sans — Весь интерфейс.
  • --font-mono — Блоки кода в уроке, ключи API в настройках.
  • --fs-body — Тело урока, описания, диалоги.
  • --lh-relaxed — Содержимое урока.

Отступы, скругления, размеры, тени, переходы #

Переменная Что делает По умолчанию В тёмной теме
--space-1 Отступ, шаг 1. Вся сетка — кратные четырём, эта — самый мелкий шаг. 4px —
--space-2 Отступ, шаг 2 — между значком и текстом. 8px —
--space-3 Отступ, шаг 3 — внутри поля и кнопки. 12px —
--space-4 Отступ, шаг 4 — основной внутренний отступ карточки. 16px —
--space-5 Отступ, шаг 5. 20px —
--space-6 Отступ, шаг 6 — между карточками. 24px —
--space-8 Отступ, шаг 8 — между блоками страницы. 32px —
--space-10 Отступ, шаг 10. 40px —
--space-12 Отступ, шаг 12 — между разделами. 48px —
--space-16 Отступ, шаг 16 — крупные поля страницы. 64px —
--radius-control Скругление кнопок, полей и переключателей. 6px —
--radius-card Скругление карточек и таблиц. 10px —
--radius-sheet Скругление диалогов и нижних листов. 14px —
--radius-phone Скругление крупных поверхностей на телефоне. 20px —
--radius-pill Полное скругление — значки-таблетки 999px —
--size-control-sm Маленькая кнопка или поле. 32px —
--size-control-md Обычная кнопка или поле. 36px —
--size-row Высота строки списка. 44px —
--size-row-compact Высота строки в плотном режиме таблицы. 34px —
--size-row-mobile Высота строки списка на телефоне.
строка списка на телефоне
56px —
--size-row-sheet Высота строки выбора в нижнем листе и выпадающем списке.
строка выбора в нижнем листе и в выпадающем списке
48px —
--size-otp-cell Ячейка ввода кода из письма.
ячейка кода: 44 по ширине × 48 по высоте
48px —
--size-row-lesson Высота строки урока в оглавлении — две строки текста и значок.
строка урока: две строки текста + иконка
64px —
--size-tabbar Высота нижней навигации на телефоне, без безопасного отступа.
нижняя навигация без safe-bottom
76px —
--size-icon-button Кнопка-значок. 32px —
--size-panel Ширина боковой панели приложения. 480px —
--size-nav-rail Ширина свёрнутого бокового меню. 56px —
--size-queue-column Ширина колонки очереди проверки. 340px —
--size-readable Ширина колонки текста, за которой читать становится тяжело. Задана в ch — в ширинах символа, поэтому переживает смену шрифта и размера. 68ch —
--shadow-card Тень карточки. 0 1px 2px rgba(20, 24, 31, .06) —
--shadow-panel Тень боковой панели. -8px 0 24px rgba(20, 24, 31, .10) —
--shadow-sticky-up Тень прилипшей снизу полосы действий. 0 -6px 20px rgba(20, 24, 31, .06) —
--shadow-modal Тень модального окна. 0 12px 32px rgba(20, 24, 31, .18) —
--shadow-float Тень всплывающего меню и подсказки. 0 8px 28px rgba(20, 24, 31, .10) —
--duration-fast Быстрый переход. Все три длительности обнуляются сами, если человек включил в системе «уменьшить движение», — отдельно об этом заботиться не надо. 120ms —
--duration-base Обычный переход — раскрытие, смена состояния. 160ms —
--duration-slow Медленный переход — выезд панели. 200ms —
--easing-standard Кривая обычного перехода. cubic-bezier(.2, 0, .38, 1) —
--easing-out Кривая появления. cubic-bezier(0, 0, .38, 1) —

Было / стало:

:root { --space-4: 12px; }   /* было просторно — стало плотнее по всей школе */
:root { --radius-control: 0; }   /* острые углы вместо скруглённых */
:root { --radius-card: 0; }
[data-lms="rail"] { width: 200px; }   /* якорь; см. раздел «Якоря» */
:root { --shadow-card: none; }   /* было с тенью — стало плоско */

Где это видно:

  • --space-4 — Поля внутри карточек и диалогов.
  • --radius-control — Все кнопки и поля ввода.
  • --radius-card — Карточка курса, карточка заказа, панель.
  • --size-panel — Панель фильтров, панель сведений о заказе.
  • --size-nav-rail — Левое меню админки.
  • --size-readable — Тело урока, длинные страницы документации.
  • --shadow-card — Карточки курсов, панели.

Кольцо фокуса #

Переменная Что делает По умолчанию В тёмной теме
--focus-width Толщина кольца фокуса. Увеличивать можно; убирать — значит закрыть школу для работы с клавиатуры. 2px —
--focus-offset Зазор между элементом и кольцом фокуса. 2px —

Где это видно:

  • --focus-width — Любой элемент, на который встал фокус.

Производные от бренда: переопределять на свой риск #

Считаются из --brand сами, отдельно для светлой и тёмной темы. Переопределить каждую можно — это явный выбор, и мы его не запрещаем. Но связь с --brand при этом рвётся: тёмная тема перестаёт пересчитываться от него, и обе темы дальше на вас.

У двух из них переопределение ломает не внешний вид, а возможность работать с клавиатуры. Они помечены отдельно, с цифрой.

Переменная Что делает По умолчанию В тёмной теме
--accent Акцент как заливка. В тёмной теме автоматически светлеет, чтобы не слипаться с фоном. var(--brand) oklch(from var(--brand) max(l, 0.72) calc(c * 0.9) h)
--accent-hover Акцент под курсором. oklch(from var(--accent) calc(l - 0.07) c h) oklch(from var(--accent) calc(l + 0.06) c h)
--accent-active Акцент в момент нажатия. oklch(from var(--accent) calc(l - 0.13) c h) oklch(from var(--accent) calc(l - 0.06) c h)
--accent-subtle Очень бледный акцент для подложек — выделенная строка, подсветка выбранного. oklch(from var(--accent) 0.965 calc(c * 0.35) h) color-mix(in oklab, var(--accent) 14%, var(--bg-surface))
--accent-border Рамка в цвет акцента: контурная кнопка, выделенная карточка. oklch(from var(--accent) 0.905 calc(c * 0.55) h) color-mix(in oklab, var(--accent) 34%, var(--bg-surface))
--text-on-accent Цвет текста поверх акцентной заливки. Считается сам: на тёмном акценте светлый, на светлом — тёмный. Поэтому песочная школа не получает белых букв на жёлтой кнопке. lch(from var(--accent) calc((49 - l) * infinity) 0 0) —
--text-accent Акцент, когда он текст или ссылка. Всегда темнее заливки: акцент как текст обязан давать контраст 4.5:1, а фирменный цвет школы этого не гарантирует.
⚠️ Это не вкус. У светлой школы сам акцент даёт 1,5:1 — текст на таком контрасте не читается. Переопределяя, проверьте контраст к фону.
oklch(from var(--accent) min(l, 0.52) c h) var(--accent)
--accent-on-inverse Акцент на тёмной подложке — плеер, нижняя панель, тёмная тема. oklch(from var(--accent) max(l, 0.72) calc(c * 0.9) h) var(--brand)
--focus-ring Цвет кольца фокуса. Намеренно НЕ равен акценту.
⚠️ Это не вкус. У светлой школы акцент даёт 1,5:1, и кольцо просто исчезает — ломается не внешний вид, а возможность понять, где ты находишься с клавиатуры.
var(--text-accent) var(--accent)

Где это видно:

  • --accent — Заливка главной кнопки, активный пункт меню, заполненная часть прогресса.

Цвета состояний: отдаём, но не рекомендуем #

Зелёное «оплачено» и красное «отказ» узнаются с первого взгляда — и это ценность для ученика и куратора, а не наше удобство. Школа, которая всё же перекрасит их, испортит только себе, поэтому здесь рекомендация, а не запрет: невыполнимый запрет разрушает доверие ко всему справочнику.

Переменная Что делает По умолчанию В тёмной теме
--success Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-green-600) var(--p-green-400)
--success-subtle Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-green-50) #12281F
--success-border Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-green-100) #1E4835
--success-text Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-green-700) #6FD3A6
--success-on-inverse Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-green-400) var(--p-green-600)
--warning Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-amber-600) var(--p-amber-400)
--warning-subtle Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-amber-50) #2A2114
--warning-border Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-amber-100) #4A3A1C
--warning-text Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-amber-700) #EFC077
--warning-on-inverse Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-amber-400) var(--p-amber-600)
--danger Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-red-600) var(--p-red-400)
--danger-hover Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-red-650) #FF8078
--danger-subtle Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-red-50) #2A1614
--danger-border Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-red-100) #55231F
--danger-text Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-red-700) #FFB3AD
--danger-on-inverse Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-red-400) var(--p-red-600)
--info-alt Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-violet-600) #B69AE0
--info-alt-subtle Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-violet-50) #241B33
--info-alt-text Цвет состояния: успех, предупреждение, ошибка, справка. Школе не отдаётся — зелёное «оплачено» и красное «отказ» должны выглядеть одинаково во всех школах, иначе ученик и куратор перестают понимать экран с первого взгляда. var(--p-violet-700) #D3C0F0

Пороги попадания: не рекомендуем, и тема проверяется #

44 пикселя — размер пальца, а не вкус: уменьшение ломает не вид, а возможность нажать. Здесь одних слов мало, поэтому тема, уменьшающая область нажатия ниже порога, даёт предупреждение на экране темы — тем же механизмом, что проверка контраста.

Доступность мы проверяем, вкус — нет.

Переменная Что делает По умолчанию В тёмной теме
--size-control-mobile Минимальный размер любой цели на телефоне. Не отдаётся: 44 пикселя — порог, ниже которого палец не попадает, и это не вопрос вкуса.
минимум для любой цели на телефоне
44px —
--size-control-mobile-lg Главное действие экрана на телефоне. Тот же порог, только с запасом.
главное действие экрана на телефоне
52px —
--size-icon-button-mobile Кнопка-значок на телефоне: тот же порог попадания пальцем. 44px —
--hit-area-mobile Минимальная область попадания на телефоне. Порог, а не украшение. 44px —
--hit-area-desktop Минимальная область попадания мышью. 32px —
--hit-area-gap Минимальный зазор между двумя соседними целями, чтобы не промахнуться в соседнюю. 8px —

Внутренние #

Их 69: примитивы палитры --p-*, номера слоёв, безопасные отступы телефона, метрики оболочки редактора. Мы меняем их свободно и без предупреждения. Опираться на них нельзя — правило, написанное по внутренней переменной, однажды перестанет применяться, молча и при обновлении.

Перечислены здесь ровно затем, чтобы было видно: это не забытые переменные, а намеренно закрытые.

Переменная Почему внутренняя
--p-black Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-0 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-25 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-50 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-100 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-200 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-300 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-400 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-450 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-500 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-600 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-700 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-800 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-900 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-950 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-d-border Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-d-border-strong Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-d-surface Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-d-surface-muted Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-d-text Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-d-text-2 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-gray-d-text-3 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-blue-50 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-blue-100 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-blue-300 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-blue-500 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-blue-600 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-blue-700 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-green-50 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-green-100 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-green-400 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-green-600 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-green-700 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-amber-50 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-amber-100 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-amber-400 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-amber-600 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-amber-700 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-red-50 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-red-100 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-red-400 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-red-600 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-red-650 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-red-700 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-violet-50 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-violet-600 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--p-violet-700 Примитив палитры. Сырой цвет, из которого собраны семантические переменные. Школе он не нужен: перекрасить надо не «серый 500», а то, что им нарисовано.
--z-base Номер слоя: что поверх чего. Меняется вместе с вёрсткой; переопределение роняет диалоги под панель, и происходит это не сразу, а на каком-то одном экране.
--z-sticky Номер слоя: что поверх чего. Меняется вместе с вёрсткой; переопределение роняет диалоги под панель, и происходит это не сразу, а на каком-то одном экране.
--z-nav Номер слоя: что поверх чего. Меняется вместе с вёрсткой; переопределение роняет диалоги под панель, и происходит это не сразу, а на каком-то одном экране.
--z-panel Номер слоя: что поверх чего. Меняется вместе с вёрсткой; переопределение роняет диалоги под панель, и происходит это не сразу, а на каком-то одном экране.
--z-overlay Номер слоя: что поверх чего. Меняется вместе с вёрсткой; переопределение роняет диалоги под панель, и происходит это не сразу, а на каком-то одном экране.
--z-modal Номер слоя: что поверх чего. Меняется вместе с вёрсткой; переопределение роняет диалоги под панель, и происходит это не сразу, а на каком-то одном экране.
--z-toast Номер слоя: что поверх чего. Меняется вместе с вёрсткой; переопределение роняет диалоги под панель, и происходит это не сразу, а на каком-то одном экране.
--z-tooltip Номер слоя: что поверх чего. Меняется вместе с вёрсткой; переопределение роняет диалоги под панель, и происходит это не сразу, а на каком-то одном экране.
--safe-top Безопасный отступ телефона (вырез, домашняя полоса). Значение приходит от системы через env(), задавать его руками нечем и незачем.
--safe-bottom Безопасный отступ телефона (вырез, домашняя полоса). Значение приходит от системы через env(), задавать его руками нечем и незачем.
--safe-left Безопасный отступ телефона (вырез, домашняя полоса). Значение приходит от системы через env(), задавать его руками нечем и незачем.
--safe-right Безопасный отступ телефона (вырез, домашняя полоса). Значение приходит от системы через env(), задавать его руками нечем и незачем.
--size-settings-panel Метрика оболочки редактора блоков. Живёт вместе с редактором и меняется вместе с ним.
--size-settings-panel-wide Метрика оболочки редактора блоков. Живёт вместе с редактором и меняется вместе с ним.
--size-doc-header Метрика оболочки редактора блоков. Живёт вместе с редактором и меняется вместе с ним.
--size-doc-tabs Метрика оболочки редактора блоков. Живёт вместе с редактором и меняется вместе с ним.
--size-outline Метрика оболочки редактора блоков. Живёт вместе с редактором и меняется вместе с ним.
--bp-editor-collapse Ширина окна, ниже которой оглавление редактора прячется, а панель ложится поверх холста.
--size-field-textarea-min Метрика оболочки редактора блоков. Живёт вместе с редактором и меняется вместе с ним.
--size-field-textarea-max Метрика оболочки редактора блоков. Живёт вместе с редактором и меняется вместе с ним.
--size-field-media Метрика оболочки редактора блоков. Живёт вместе с редактором и меняется вместе с ним.
--size-field-preview Метрика оболочки редактора блоков. Живёт вместе с редактором и меняется вместе с ним.

Чего здесь ещё нет #

Деление утверждено, но ещё не закреплено в коде. Классы приняты 8 августа; по 02-architecture/customization.md §2 признак должен стоять в самом tokens.css — префиксом или разметкой блоков. Пока префикс --p- есть только у примитивов, признак живёт рядом с описаниями. Обязательство «не переименовывать публичную переменную», записанное в чужом файле, не переживёт рефакторинга: переименуют — переменная просто исчезнет из справочника, и никто не заметит.

Не у всех переменных есть «где видно» и пример «было / стало». customization.md §6 требует и то и другое у каждой записи: голый список имён бесполезен — за ним всё равно лезут в инспектор браузера. Чего не хватает по именам — в reports/tokens-gaps.md репозитория документации.

Эта страница в Markdown