* 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>
3 KiB
3 KiB
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>строку при falsyargs.subtitle, шаблон остаётся универсальным.
Решение
- icon-слот 400×400 → 520×520, позиция x=312 → x=252 (центрирование: (1024−520)/2=252), y=180 без изменений. Нижний край иконки на y=700.
- title: lowercase
opencode config, font-size 72 → 80, позиция y=870 → y=830 (компенсация роста icon-слота, зазор ~130px до baseline). - Опциональные слоты движка сохранены в
cover.svg(sub-icon,badge,{{subtitle}}) — шаблон остаётся переиспользуемым для других репо. Финальныйassets/cover.pngрендерится без subtitle-аргумента → conditional-regexrender.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.