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

21 lines
No EOL
3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.