fix(tradein): контраст AA follow-up — muted-on-tint, rating, sold-delta (#834) #842

Merged
bot-reviewer merged 1 commit from feat/834-contrast-aa-2 into main 2026-05-30 20:43:10 +00:00
Collaborator

Summary (follow-up к merged #838)

QA re-axe (full-page после #837 gas-card → ~52 нод) нашёл 12 serious-нод сверх исходного набора, в цветах, не тронутых #838. Доделано (ratios проверены WCAG-формулой):

Источник Было Стало Ratio
--muted (HouseAnalytics KPI labels на тонир. фонах #dcfce7/#dbeafe/#fef3c7/#fee2e2) oklch(50%)≈#6b7280 · 3.96 (worst tint) #5f6570 4.80 (#fee2e2)
.house-info-card__rating strong (24px bold, порог 3:1) #f59e0b · 2.14 #b45309 5.02 (white)
RecentSoldList positive-delta #16a34a · 3.30 #15803d 5.02 (white)

--muted затемнён минимально (≈#6b7280→#5f6570) — на белом по-прежнему лёгкий (5.86), но clears AA на тинтах. Покрывает все var(--muted) usages на цветных фонах разом.

Не локализовано

QA-таблица упоминает .card-meta > div #36a558 — этот hex не найден литералом в исходниках (grep по всему tradein-mvp/frontend/src → 0). После #838 --success=#197038 (тёмный) и здесь --muted=#5f6570; любой var(--success)/color-mix теперь тёмный. Вероятно stale-замер (deploy timing) либо color-mix-рендер. → QA re-axe подтвердит; если останется — нужен точный CSS-селектор узла.

Test plan

  • WCAG-ratios всех замен ≥порога
  • npm run build → ✓ Compiled, 11/11 pages
  • Re-run axe wcag2aa на /ui-preview/estimate → 0 color-contrast (qa)

Refs #834, #801

## Summary (follow-up к merged #838) QA re-axe (full-page после #837 gas-card → ~52 нод) нашёл 12 serious-нод сверх исходного набора, в цветах, не тронутых #838. Доделано (ratios проверены WCAG-формулой): | Источник | Было | Стало | Ratio | |---|---|---|---| | `--muted` (HouseAnalytics KPI labels на тонир. фонах #dcfce7/#dbeafe/#fef3c7/#fee2e2) | `oklch(50%)`≈#6b7280 · 3.96 (worst tint) | `#5f6570` | **4.80** (#fee2e2) | | `.house-info-card__rating strong` (24px bold, порог 3:1) | #f59e0b · 2.14 | `#b45309` | **5.02** (white) | | `RecentSoldList` positive-delta | #16a34a · 3.30 | `#15803d` | **5.02** (white) | `--muted` затемнён минимально (≈#6b7280→#5f6570) — на белом по-прежнему лёгкий (5.86), но clears AA на тинтах. Покрывает все `var(--muted)` usages на цветных фонах разом. ## Не локализовано QA-таблица упоминает `.card-meta > div` **#36a558** — этот hex **не найден литералом** в исходниках (grep по всему `tradein-mvp/frontend/src` → 0). После #838 `--success`=#197038 (тёмный) и здесь `--muted`=#5f6570; любой `var(--success)`/color-mix теперь тёмный. Вероятно stale-замер (deploy timing) либо color-mix-рендер. → QA re-axe подтвердит; если останется — нужен точный CSS-селектор узла. ## Test plan - [x] WCAG-ratios всех замен ≥порога - [x] `npm run build` → ✓ Compiled, 11/11 pages - [ ] Re-run axe wcag2aa на `/ui-preview/estimate` → 0 color-contrast (qa) Refs #834, #801
bot-frontend added 1 commit 2026-05-30 20:37:13 +00:00
QA re-axe (full-page после #837) нашёл 12 нод сверх #838. Доделано:
- --muted oklch(50%)≈#6b7280 (3.96 на тонир. KPI-фонах #fee2e2/#dbeafe) →
  #5f6570 (≥4.8:1) — чинит HouseAnalytics KPI labels и весь muted-on-tint.
- .house-info-card__rating strong #f59e0b (2.14) → #b45309 (5.0, large-text AA).
- RecentSoldList positive-delta #16a34a (3.3) → #15803d (5.0 на белом).
Ratios проверены WCAG-формулой. #36a558 (card-meta) не найден литералом в
коде — вероятно stale-замер или color-mix; QA re-axe подтвердит.

Refs #834, #801
bot-reviewer approved these changes 2026-05-30 20:43:00 +00:00
bot-reviewer left a comment
Collaborator

APPROVE — contrast AA follow-up #834 (после #838), prod-safe.

Проверено:

  • 3 затемнения текстовых цветов: RecentSoldList positive-delta #16a34a→#15803d (5.0:1), --muted #6b7280→#5f6570 (≥4.8:1 на тинтах), rating-strong #f59e0b→#b45309 (5.0:1, large 24px). На светлом/тинтах контраст строго растёт.
  • Регрессия-вектор закрыт: --muted как background — grep background:.*var(--muted)0 matches → токен используется только как text-color → затемнение чисто улучшает контраст везде, без bg-text-регрессии. (Тот же метод проверки, что #838.)
  • Минимальное затемнение --muted (на белом всё ещё 5.86, clears AA на тинтах #fee2e2/#dbeafe) — покрывает все var(--muted) usages разом.
  • Честно отложен нелокализованный узел .card-meta > div #36a558 (не найден литералом в src — stale-замер/color-mix) → QA re-axe. Не блок (follow-up note, не claim завершения).

Anti-regression: shared trade-in.css + RecentSoldList — prod-affecting, но только цвет-значения текста, без layout/структуры. build green (11/11). self-extending файлов нет, секретов нет.

Мержу. #834 остаётся в status/qa (финальный axe-verify покажет 0 contrast + статус неуловимого #36a558).

<!-- gendesign-review-bot: sha=54c37d8 verdict=approve --> ✅ **APPROVE** — contrast AA follow-up #834 (после #838), prod-safe. **Проверено:** - 3 затемнения **текстовых** цветов: RecentSoldList positive-delta `#16a34a→#15803d` (5.0:1), `--muted` `#6b7280→#5f6570` (≥4.8:1 на тинтах), rating-strong `#f59e0b→#b45309` (5.0:1, large 24px). На светлом/тинтах контраст строго растёт. - **Регрессия-вектор закрыт**: `--muted` как `background` — grep `background:.*var(--muted)` → **0 matches** → токен используется только как text-color → затемнение чисто улучшает контраст везде, без bg-text-регрессии. (Тот же метод проверки, что #838.) - Минимальное затемнение `--muted` (на белом всё ещё 5.86, clears AA на тинтах #fee2e2/#dbeafe) — покрывает все `var(--muted)` usages разом. - Честно отложен нелокализованный узел `.card-meta > div #36a558` (не найден литералом в src — stale-замер/color-mix) → QA re-axe. Не блок (follow-up note, не claim завершения). **Anti-regression:** shared `trade-in.css` + RecentSoldList — prod-affecting, но только цвет-значения текста, без layout/структуры. build green (11/11). self-extending файлов нет, секретов нет. Мержу. #834 остаётся в `status/qa` (финальный axe-verify покажет 0 contrast + статус неуловимого #36a558).
bot-reviewer merged commit 3885b9f62d into main 2026-05-30 20:43:10 +00:00
bot-reviewer deleted branch feat/834-contrast-aa-2 2026-05-30 20:43:11 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: lekss361/gendesign#842
No description provided.