v0.29.1
tagged this
22 Aug 20:41
Отчёт потребителя `@efureev/ft-extra-granularity`: правило записано в комментарии одного компонента, а узнать о нарушении неоткуда, кроме как глазами. У них пятнадцать нарушений против трёх корректных мест. Считал контраст по нашим токенам в обеих темах — правило оказалось строже, чем в отчёте: провальны не только success/warning/danger. Каждому тону находится тема, где он ниже AA на обычной подложке: `--gr-primary` 3.70 в тёмной, `--gr-success` 2.32 в светлой, `--gr-danger` провален в обеих. Парные `-text` держат везде, минимум 5.46. Значит запрет безусловный. Гейт в тест-ките ловит `text-[var(--gr-<тон>)]` и не трогает `bg-`, `border-`, `fill-`, `stroke-` — это и есть роль тона. Подмешанный тон (`color-mix` в `text-*`) только предупреждает: долю статикой не оценить. Иконки ловятся наравне с текстом намеренно — рядом с подписью иконка обязана быть той же читаемости. Список тонов стережёт второй гейт, в ядре: он считает контраст по самим токенам и требует, чтобы каждый запрещённый был провален по факту, а его парная роль — нет. Без него список протух бы на первой перекраске темы. Заодно `forbidImportantUtilities`: `!`-важность поверх утилиты почти всегда значит, что штатной ручки не нашли, а перебивка зависит от порядка правил и молча отваливается. У нас таких нет, правило включено на будущее. Починены собственные употребления: тон иконки `GrIcon`, галочка выбора в `GrSelect`, `GrTreeSelect` и `GrAutocomplete`, спиннер `GrLoading`, ручка `GrDashboardFrame` и четыре места витрины. Эталоны `GrCheckbox` пересняты: ссылка в демо сменила цвет.