web/favicon.svg повторяет .brand-logo шапки: синий скруглённый квадрат с белым глобусом (геометрия I.globe без изменений, пропорции логотипа), подключён в index.html. Итог 039 дополнен результатом pytest (17 passed) после включения учётной записи admin. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.6 KiB
2.6 KiB
Favicon из логотипа бренда (изменение 041)
Context
У приложения нет favicon: во вкладке браузера стандартная иконка. Нужен favicon в едином стиле с логотипом бренда в шапке —
.brand-logo: скруглённый квадрат 28×28, радиус 8, фон --primary (#2450c8), в центре белая иконка «глобус» 16×16 (I.globe в web/app.js).
Изменения
web/favicon.svg(новый): тот же рисунок вviewBox="0 0 32 32":rect32×32,rx≈9(пропорция 8/28), заливка#2450c8;- по центру контуры глобуса из
I.globe:circle r=9и триpath, масштаб ≈1.1 от 24-пиксельногоviewBoxиконки черезtransform; stroke="#fff",stroke-widthкак у иконки (1.8), скруглённые концы. Цвета заданы литералами: favicon живёт вне CSS страницы, токены к нему не применяются. Фон одинаковый в обеих темах, как у логотипа в шапке: у него--primaryсветлее в тёмной теме, но для вкладки браузера достаточно фирменного синего.
web/index.html:<link rel="icon" href="favicon.svg" type="image/svg+xml">. Старые браузеры, которые не понимают SVG и запрашивают/favicon.ico, сейчас получают 404 — это приемлемо, ICO не делаем.- Проверить, что статическая раздача (
RevalidatedStaticвapp/main.py) отдаёт.svgсContent-Type: image/svg+xml. Файлыweb/уже раздаются из корня, отдельный маршрут не нужен. README.md: строка 041 в истории.
Исполнение
Код — агент на Sonnet, он же пересобирает стенд с --force-recreate. Моя часть — ревью и проверка, после неё — прогон pytest для 039
(учётная запись admin снова включена пользователем).
Проверка
curl -sI /favicon.svg→ 200,image/svg+xml; SVG валиден (xmllint --nooutили Pythonxml.etree).- Визуально — пользователь: иконка во вкладке совпадает с логотипом в шапке.