Files
jellybit/docs/backlog/unifikaciya-knopok-btn-ghost.md
T
avandClaude Opus 4.8 3e470e3ae6 Беклог: перенос четырёх задач из инбокса Tududi
Инбокс Tududi разгружен: четыре открытые задачи проекта оформлены файлами
в docs/backlog и помечены выполненными в Tududi.

- режиссёр в блоке «Распознано как» на странице загрузки (средний);
- карточка информации о торренте вылезает за экран на мобильном (средний);
- сигнал Jellyfin после отката и удаления файлов (средний);
- кнопки выглядят как кнопки: btn-ghost и рассогласование весов (низкий).

Каждая задача проверена по коду: все четыре актуальны, ни одну не закрыли
прошлые коммиты. В телах — точки правки, развилки и нужные дельты спек.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 21:02:22 +03:00

65 lines
4.5 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.
# Кнопки выглядят как кнопки: `btn-ghost` и рассогласование весов
**Приоритет:** низкий
Кнопка «Откатить» в списке загрузок неотличима от текста/ссылки. Это **не**
разметка — там уже `<button type="submit">` внутри `<form>`; проблема чисто
визуальная, в классе `btn-ghost`:
- `web/static/css/jellybit.css:165-166` — `.btn-ghost{background:transparent;
border-color:transparent;color:var(--text-dim)}`. Прозрачный фон + прозрачный
бордер + приглушённый текст = в покое нет аффорданса. Он появляется только на
`:hover`, а на тач-устройствах hover'а нет вообще.
## Инвентаризация
| Действие | Список (`card.html`) | Страница (`download_main.html`) |
|---|---|---|
| Ревью | `:28` `btn btn-primary btn-sm` | `:21` `btn btn-primary` |
| **Откатить** | `:29` **`btn btn-sm btn-ghost`** | `:23` **`btn btn-danger`** «↩ Откатить» |
| Привязать заново | `:30` `btn btn-sm` | `:24` `btn` |
| Повторить | `:31` `btn btn-sm` | `:25` `btn` |
| **Отменить/Отклонить** | `:32` **`btn btn-sm btn-danger`** | `:26` **`btn btn-ghost`** |
| Обновить имя | — | `:22` `btn btn-ghost` |
Расхождения:
1. `btn-ghost` — корень проблемы, 3 места: `card.html:29`,
`download_main.html:22`, `download_main.html:26`.
2. «Откатить» несогласован сам с собой: невидимая `btn-ghost` в списке против
красной `btn-danger` на странице.
3. «Отменить» инвертирован ровно наоборот: `btn-danger` в списке против
`btn-ghost` на странице. В списке Откатить тише Отменить, на странице — наоборот.
4. Эмодзи-префиксы несогласованы: `↩ Откатить` (страница) vs `Откатить` (список);
`review_main.html:76-78` — эмодзи на всех (`🕗/❌/✅`), `card.html` — ни одного.
5. Вероятно ок: `review_main.html:54,58`, `review_source_block.html:49`,
`index.html:32,65-67` (пагинация — ссылка-как-кнопка законно),
`download_main.html:112,124` (danger-zone).
6. `.copy-btn` (`card.html:9`, `download_main.html:15,90`) — отдельная система
классов (`jellybit.css:210-214`), не `.btn`. Формально вне скоупа, но при
унификации всплывёт.
База CSS — `jellybit.css:153-171`.
## Развилки
- **(а)** дать `.btn-ghost` видимый бордер/фон — одна строка, чинит все 3 места.
- **(б)** выкинуть `.btn-ghost` и назначить семантику явно: Откатить = `btn-danger`
везде, Отменить = `btn-danger` везде, Обновить имя = нейтральный `.btn`.
- **(в)** решить судьбу `` — оставляем или убираем.
Рекомендация — б+в: (а) чинит видимость, но оставляет пункты 2-4 (одно действие
имеет два разных визуальных веса на разных экранах).
**Подводный камень:** `.btn-ghost` портирован из макета (`tmp/design/index.html:109`
— тоже `btn btn-sm btn-ghost` для «Откатить», а `tmp/design/download.html:43` —
`btn btn-danger`). Макет сам непоследователен → либо чинить и `tmp/design/*`, либо
явно зафиксировать, что макет больше не источник истины (см. `tmp/design/handoff.md:96-97`).
## Спеки
`openspec/specs/web-ui/spec.md:249-264` («Действия соответствуют состоянию»)
описывает, какие действия показывать и имена полей форм; требований к визуальной
стилизации нет. «Откатить» упоминается только в htmx-сценариях (`:435`, `:444`).
→ чистый nit-фикс либо новая дельта, если хотим зафиксировать семантику весов.