Вот этот кусок в дисциплинах помогает получать вёрстку поровнее, а не… — Compacting conversation... — TG.ME

Вот этот кусок в дисциплинах помогает получать вёрстку поровнее, а не «опять ты нифига не отсмотрел перед показом / нет-нет, я отсмотрел! / значит, плохо отсмотрел!» в диалогах с ИИ-агентом:

## Вертикаль меряется по глифам, а не по боксам

**Закон.** Бокс строки — это не буквы: он несёт полупросвет `(line-height − font-size) / 2`
сверху и снизу плюс запас под выносные элементы внутри кегля. Поэтому выравнивание и просветы,
проверенные только по `getBoundingClientRect` / `getComputedStyle`, дают зелёный замер на
визуально кривой вёрстке.

**Делай так:**

- Пара «крупный элемент + мелкая подпись» (цифра и регалия, иконка и заголовок, логотип и
слоган) выравнивается при обрезанных боксах: `text-box: trim-both cap alphabetic` на обоих
элементах. Где свойство не поддерживается — компенсация считается из метрик шрифта
(`ctx.measureText().actualBoundingBoxAscent/Descent`), а не подбирается на глаз.
- Просветы между блоками считаются оптически: к зазору между боксами прибавляются полупросветы
строк с обеих сторон. Равные `margin` ≠ равные просветы.
- Контрольный замер печатает **обе** величины — по боксам и по глифам. Расхождение больше 2 px —
правка, а не округление.
- Перед показом человеку: кадр 1:1 и прямой вопрос кадру «что стоит неровно по вертикали».

**Проверкой не считается:** «середины боксов совпали» без глифов; «отступы одинаковые» без
полупросветов; линза по координатам вместо растра.

**Арбитр — глаз человека.** Видит перекос при зелёном замере — неверен замер: найди величину,
которую он не мерил, и добавь её в проверку. Проверка, печатающая «чисто» на кривом кадре, —
имитация проверки.


Вдруг надо 🤷‍♂️
❤3
September 17, 2026 76 5