* 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>
21 lines
No EOL
3 KiB
Markdown
21 lines
No EOL
3 KiB
Markdown
# 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 (центрирование: (1024−520)/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. |