Решили: лестница поверхностей разведена на четыре ступени по назначению, и вся уехала на шаг
вниз: фон панели ink-800 (18%), новая surface-quiet ink-700 (21%) под выключенное, кнопки и
чипы на raised ink-600 (26%), утопленное на ink-900 (15%). Заведён второй инструмент —
лестница глубины (Alebardium → UI → Lightness Ladder).
Почему: жалоба звучала как «фон слишком яркий, всё сливается», и половина причины была
действительно в глубине. Вторая половина нашлась замером: .gm-button красилась тем же токеном,
что и панель под ней. Контраст кнопки к своему фону был ровно 1.00 — не «низкий», а никакой;
различала их только кайма, и так на каждом экране игры.
Отсюда и форма решения. Затемнить один фон было бы бесполезно: кнопка уехала бы следом и слилась снова, только глубже. Ступени должны отвечать за РАЗНОЕ, иначе их количество ничего не значит.
Числа после правки: кнопка к фону 1.00 → 1.38; текст на панели 9.10 → 10.16; приглушённый 4.29 → 4.79; подпись кнопки 7.30 → 5.90 (она переехала на светлое поле, но с запасом держит AA).
Сказано: «Фон (именно фон!) должен быть темнее. А то все сливается. Согласна?» (07.08.2026, сессия e32de921).
Грабли: surface-raised всё это время назывался «кнопки/поднятые блоки» и НЕ БЫЛ ЗАНЯТ ни одной
кнопкой. Имя токена описывало замысел, а разводка жила своей жизнью — и расхождение не ловилось
ничем, потому что оба токена валидны и оба применяются. Проверять надо не «объявлен ли токен», а
«тем ли он занят, чем назван».
Второе: выключенной кнопке пришлось заводить СВОЮ ступень. Накануне я поставила ей raised — и это
было верно ровно до тех пор, пока raised не занял обычную кнопка; тогда выключенная сравнялась с
живой. Ступень, взятая «потому что свободна», перестаёт работать при первой же перестановке.
Владелец правды: tokens.semantic.uss (лестница и назначение ступеней), UiColourLadder
(инструмент выбора глубины), кадр docs/lab/assets/ui-states/lightness-ladder.png.