opencode-config/docs/decisions/086-pr-195-update-cover-without-subtitle.md
Sergey cdd8ba20e3
chore(assets): update cover without subtitle (#195)
* chore(assets): update cover without subtitle

* fix(assets): restore optional slots in cover template for engine tests

* docs(handoff): add handoff + ADR for PR #195 cover update

---------

Co-authored-by: opencode-agent <agent@opencode.local>
2026-08-01 01:03:14 +03:00

3 KiB
Raw Permalink Blame History

ADR-086: Cover without subtitle — larger icon + lowercase title (PR#195)

Статус

Accepted (2026-07-31)

Контекст

Обложка репозитория (issue #194) нуждалась в визуальном обновлении: логотип OpenCode казался мелким (400×400 на 1024-канвасе), заголовок opencode config в Title Case выглядел тяжеловесно для showcase-карточки на slaid098.dev. Требовался более чистый, минималистичный вариант без subtitle.

Рассматривались варианты:

  • Увеличить icon + убрать subtitle из шаблона (удалить <text>) — ломает тесты render.optional.test.ts / e2e.optional.test.ts (PR#144), проверяющие conditional-удаление пустого subtitle.
  • Увеличить icon + оставить subtitle-слот в шаблоне, рендерить PNG без subtitle-аргумента — conditional-логика render.ts (PR#144) удаляет <text> строку при falsy args.subtitle, шаблон остаётся универсальным.

Решение

  1. icon-слот 400×400 → 520×520, позиция x=312 → x=252 (центрирование: (1024520)/2=252), y=180 без изменений. Нижний край иконки на y=700.
  2. title: lowercase opencode config, font-size 72 → 80, позиция y=870 → y=830 (компенсация роста icon-слота, зазор ~130px до baseline).
  3. Опциональные слоты движка сохранены в cover.svg (sub-icon, badge, {{subtitle}}) — шаблон остаётся переиспользуемым для других репо. Финальный assets/cover.png рендерится без subtitle-аргумента → conditional-regex render.ts (PR#144) удаляет <text> строку с {{subtitle}} из финального SVG до рендера. Тесты PR#144 не затронуты.

Альтернативы

  • Удалить <text> с {{subtitle}} из шаблона: отвергнуто — ломает render.optional.test.ts / e2e.optional.test.ts (PR#144), которые проверяют, что пустой subtitle → нет <text> элемента через conditional-regex. Удаление слота из шаблона делает эти тесты бессмысленными (regex нечего удалять).
  • Уменьшить icon вместо увеличения: отвергнуто — мелкий логотип (400×400) терялся на 1024-канвасе, визуально слабый для showcase-карточки.
  • Title Case заголовок (Opencode Config): отвергнуто — lowercase выглядит чище и современнее для dev-tooling репозитория, соответствует brand-стилю slaid098.