Files
ayurishchevandClaude Opus 5.5 9301069c29 Задача 041: favicon из логотипа бренда
web/favicon.svg повторяет .brand-logo шапки: синий скруглённый квадрат с белым глобусом
(геометрия I.globe без изменений, пропорции логотипа), подключён в index.html.
Итог 039 дополнен результатом pytest (17 passed) после включения учётной записи admin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 18:26:52 +03:00

2.6 KiB
Raw Permalink Blame History

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":
    • rect 32×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 или Python xml.etree).
  • Визуально — пользователь: иконка во вкладке совпадает с логотипом в шапке.