Типографика
Источник:
ds-docs/component-contracts/foundations/typography.md
Источник: tokens/typography.tokens.json · выгрузка
оригинала eGpqY0OqVR8l8zhmlHdfb9 (плагин, 03.09.2026). Только факты. Находки — в конце.
Компоненты к этим переменным не привязаны. Они ссылаются на текстовый стиль, а уже стиль — на переменную: текстовые стили. Здесь описано, что стоит за стилем.
Три коллекции
typography | 115 | Mode 1 | смысловой слой: к нему привязаны стили, из него берёт имена код | открыта целиком | 114 из 115 |
typography-tokens | 113 | value | примитивы: числа лежат здесь | скрыто 100 из 113, открыты 13 трекингов | 17 из 113 |
old-typography | 294 | value | наследие: по шесть переменных на каждый из 49 стилей | скрыто 108 из 294 | нет |
Смысловой слой держит своими только начертания и семейство — десять переменных. Остальные 105 берут значение из подключённой библиотеки, а не из примитивов рядом. То есть три слоя — это не «слой ссылается на слой»: примитивы и смысловой слой параллельны, и совпадение их значений сегодня ничем не закреплено.
Экспорт typography.tokens.json снят с примитивов: 113 записей — это typography-tokens
без font-size-6xll плюс component-type из смыслового слоя.
Группы
font-family | 1 | 1 | FONT_FAMILY |
font-weight | 9 | 9 | FONT_WEIGHT |
font-size | 30 | 31 | FONT_SIZE |
line-height | 30 | 30 | LINE_HEIGHT |
paragraph-spacing | 30 | 30 | PARAGRAPH_SPACING |
letter-spacing | 13 | 13 | LETTER_SPACING |
component-type | — | 1 | ALL_SCOPES |
font-family
Onest — единственное семейство. В примитивах скрыто от публикации, в смысловом слое открыто
и отдаёт коду var(--font-family).
font-weight
font-weight-thin | 100 |
font-weight-extralight | 200 |
font-weight-light | 300 |
font-weight-regular | 400 |
font-weight-medium | 500 |
font-weight-semibold | 600 |
font-weight-bold | 700 |
font-weight-extrabold | 800 |
font-weight-black | 900 |
Стили пользуются четырьмя: Regular 400, Medium 500, SemiBold 600, Bold 700. Пять остальных в стилях не встречаются.
font-size, line-height, paragraph-spacing
Один и тот же ряд: 8–64 с шагом 2, имена xxs, xs, s, m, l, xl,
дальше 2xl…24xl. У абзацного отступа ряд начинается с paragraph-spacing-none (0),
у интерлиньяжа в ряд вклинено line-height-4xls (25) — единственное нечётное значение.
letter-spacing
letter-spacing-none | 0 |
letter-spacing-xxs | 0.1 |
letter-spacing-xs | 0.125 |
letter-spacing-s | 0.2 |
letter-spacing-m | 0.25 |
letter-spacing-l | 0.3 |
letter-spacing-xl | 0.4 |
letter-spacing-2xl | 0.5 |
letter-spacing-3xl | 0.6 |
letter-spacing-4xl | 0.7 |
letter-spacing-5xl | 0.8 |
letter-spacing-6xl | 0.9 |
letter-spacing-7xl | 1 |
Стили используют два: letter-spacing-none (50 стилей) и letter-spacing-s (один).
Числа хранятся с точностью float32, поэтому в выгрузке 0.3 выглядит как 0.30000001192092896.
component-type
Строковая переменная в смысловом слое, значение Base, алиас в подключённую библиотеку.
Единственная переменная типографики со scope: ALL_SCOPES — то есть предлагается везде.
Наследная коллекция
old-typography — 294 переменные: шесть полей (text-font, text-weight, font-size,
text-lineHeight, text-letterSpacing, text-paragraphSpacing) на каждый из 49 стилей.
Двух стилей Special/section-heading/* в ней нет — они появились позже.
Значения не устарели: у всех 49 групп семейство, вес, размер, интерлиньяж и трекинг совпадают
с нынешними стилями. Расходится только абзацный отступ у Title/H1–H4: в стилях 26, 24, 22, 20,
в наследной коллекции ноль. То есть это не заброшенная копия, а работающий дубликат стилей
в переменных — 294 записи, повторяющие то, что уже сказано стилем.
Ни один контракт базы на эти переменные не ссылается.
Находки
- Экспорт снят не с того слоя. Стили и код читают
typography, аtypography.tokens.json— этоtypography-tokens. Значения сегодня совпадают, но это разные переменные в разных коллекциях, и ничто не держит их вместе. - Примитивы скрыты от публикации неполно: 100 переменных скрыты, а 13
letter-spacing— нет. Публикуемым оказывается кусок слоя, который публиковать не собирались. - Имена-двойники. 113 имён совпадают у
typographyиtypography-tokens— это 113 из 133 неоднозначных имён всего файла. Какая переменная стоит за именем, решено один раз вtokens/variables.json. font-size-2xllиfont-size-6xll— имена с лишней буквой. Первое есть только в смысловом слое, второе в обеих коллекциях (в примитивах 29), но в экспорт не попало. Ни одно не используется стилями.line-height-4xls(25) ломает ряд и значением, и именем. Его используетArticles/Paragraph/P1.- Режим смыслового слоя называется
Mode 1— имя по умолчанию, оставленное как есть. old-typographyдублирует 49 стилей и содержит собственные несогласованности имён: в группеarticles/paragraph/p1пять переменных из шести названы…-articles-title-p1, а вspecial/tag-smallабзацный отступ названtext-paragraphSpacing-small-bold— из-за чего это имя в файле встречается дважды.- Утверждение прошлой версии документа о коллекции
Typo Scaleне подтвердилось: такой коллекции в файле нет, аcomponent-type— алиас в библиотеку, а не ссылка на неё.
См. также: текстовые стили, README.