Files
portal/app/resources/css/app.css
T
Дмитрий 5fde295bdd fix(портал): читаемые чипы статусов — синий и красный
Проверка живьём на восьми статусах рекламных кампаний: зелёный и жёлтый уже
были закрыты слоем правок от 14.05.2026 и дают 6.06 и 6.37 — прежнее
предположение, что они не проходят, оказалось неверным. Тот слой закрыл только
два цвета из четырёх: info давал 3.63 и error 4.31 при норме WCAG 2.1 AA 4.5.

Дописаны в тот же слой, той же глубины: info #2e5a6d даёт 5.87, error #952c2c
даёт 5.98. Подложка чипа берёт цвет из color-пропа и не меняется — темнеет
только текст, вид почти прежний. Задеты статусы «Готова к запуску»,
«Отклонено», «Остановлено (нет денег)» и все тональные чипы портала.

Заодно вторая копия карты статусов в CampaignReportDialog оставалась на обычном
grey (2.42) — приведена к grey-darken-2, как в списке кампаний.

Мерил на живой странице по .v-chip__content с учётом подложки, а не по токену
темы — прежняя ошибка была именно в этом.

Проверено: рекламные фронт-тесты 17/17; Pa11y по всем 24 адресам — 20 из 24 как
и до правки, регрессий нет, рекламные и все админские экраны дают 0 ошибок.

Боевого не касается, в main не влито.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 11:26:32 +03:00

97 lines
4.0 KiB
CSS

/*
* Глобальные стили Лидерра. Tailwind удалён в фазе 2 (CLAUDE.md §5 п.2 запрет).
* Палитра Forest и токены — через Vuetify theme в resources/js/plugins/vuetify.ts.
* Шрифты Inter (UI) и JetBrains Mono (numerics) подключаются здесь.
*/
@import url('https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,400;14..32,500;14..32,600;14..32,700&family=JetBrains+Mono:wght@400;500;600&display=swap');
:root {
--liderra-page-bg: #f6f3ec; /* warm ivory, BRANDBOOK_v2 §3 */
}
html,
body {
margin: 0;
padding: 0;
font-family: 'Inter', ui-sans-serif, system-ui, sans-serif;
background: var(--liderra-page-bg);
}
/* tnum для всех численных значений в .numeric (для финансов и счётчиков). */
.numeric {
font-family: 'JetBrains Mono', ui-monospace, monospace;
font-feature-settings: 'tnum' 1;
}
/*
* A11y override: Vuetify .v-messages helper-text + .v-field-label opacity
* (~0.52 default) рендерится ≈#7a7a7a/#767471 → contrast 4.20-4.29 fails
* WCAG 2.1 AA 4.5:1. Q.DEFER.002 fix (12.05.2026 audit): локально bump до 0.7
* → rendered ≈#595959 → 7.9:1+.
*/
.v-messages,
.v-field-label {
--v-medium-emphasis-opacity: 0.7;
}
/*
* A11y rescan 2026-05-14: Vuetify tonal-variant default text color produces
* 2.0-4.4:1 contrast on ivory page background (#f6f3ec) — below WCAG 2.1 AA
* 4.5:1 threshold. Pa11y rescan flagged across /billing /admin/billing
* /admin/incidents /admin/system. Fix: darken text color inside .v-alert and
* .v-chip tonal variants; also darken .text-warning utility used in count
* badges (text-h6 text-warning «5» on ivory was 2.03:1).
*/
.v-alert--variant-tonal .v-alert__content,
.v-alert--variant-tonal .v-alert__content strong,
.v-alert--variant-tonal .v-alert__content code {
color: #0a0700;
}
.v-chip--variant-tonal.bg-success .v-chip__content,
.v-chip--variant-tonal.text-success .v-chip__content {
/* deep forest green, ≥4.5:1 on tonal pale-success bg */
color: #1f5e3a;
}
.v-chip--variant-tonal.bg-warning .v-chip__content,
.v-chip--variant-tonal.text-warning .v-chip__content {
/* dark amber, ≥4.5:1 on tonal pale-warning bg + on ivory page bg */
color: #6a4504;
}
/*
* Дозор 2026-07-27: майский пересмотр закрыл success и warning, но info и error
* остались на брендовом цвете и не дотягивают. Замерено живьём на
* /advertising/yandex по .v-chip__content с учётом подложки чипа:
* info #3f7c95 → 3.63:1, error #b83a3a → 4.31:1 при норме WCAG 2.1 AA 4.5:1.
* Подложка чипа берёт цвет из color-пропа и НЕ меняется — темнеет только текст.
* Новые значения дают 5.89:1 и 5.98:1 — та же глубина, что у зелёного (6.08)
* и жёлтого (6.36), чтобы все чипы статусов выглядели одинаково.
* Задеты статусы: «Готова к запуску», «Отклонено», «Остановлено (нет денег)».
*/
.v-chip--variant-tonal.bg-info .v-chip__content,
.v-chip--variant-tonal.text-info .v-chip__content {
color: #2e5a6d;
}
.v-chip--variant-tonal.bg-error .v-chip__content,
.v-chip--variant-tonal.text-error .v-chip__content {
color: #952c2c;
}
/*
* .text-warning is used both inside chips (covered above) and standalone
* (text-h6 count badges on ivory background). Vuetify defines the utility as
* `.v-theme--liderraForest .text-warning { color: rgb(var(--v-theme-warning)) !important }`
* which has specificity 0,2,0 + !important — plain `.text-warning !important`
* (0,1,0) loses on specificity even with !important. Match Vuetify's selector
* exactly so our override wins on cascade-order (loaded after Vuetify CSS).
*/
.v-theme--liderraForest .text-warning,
.v-theme--liderraForest.text-warning,
.text-warning {
color: #6a4504 !important;
}