Инбокс Tududi разгружен: четыре открытые задачи проекта оформлены файлами в docs/backlog и помечены выполненными в Tududi. - режиссёр в блоке «Распознано как» на странице загрузки (средний); - карточка информации о торренте вылезает за экран на мобильном (средний); - сигнал Jellyfin после отката и удаления файлов (средний); - кнопки выглядят как кнопки: btn-ghost и рассогласование весов (низкий). Каждая задача проверена по коду: все четыре актуальны, ни одну не закрыли прошлые коммиты. В телах — точки правки, развилки и нужные дельты спек. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
57 lines
3.4 KiB
Markdown
57 lines
3.4 KiB
Markdown
# Карточка информации о торренте вылезает за границу экрана на мобильном
|
||
|
||
**Приоритет:** средний
|
||
|
||
На узком экране блок «Информация о торренте» на `/download/{id}` выталкивает
|
||
страницу за вьюпорт — появляется горизонтальный скролл всей страницы.
|
||
|
||
## Причина
|
||
|
||
Grid-blowout на `.kv` из-за неразрывного infohash:
|
||
|
||
- `web/templates/partials/download_main.html:83-86` — `<dl class="kv">` с
|
||
`<dd class="mono">{{.}}</dd>` для каждого инфохэша.
|
||
- `web/static/css/jellybit.css:448-451` — `.kv{grid-template-columns:auto 1fr}`,
|
||
у `.kv dd` **нет** `overflow-wrap`/`word-break`/`min-width:0`. Трек `1fr` =
|
||
`minmax(auto,1fr)`, его автоминимум = min-content = весь 40-символьный хэш.
|
||
|
||
Арифметика на 360px: доступно ≈302px, требуется ≈380px (`dt` «infohash» nowrap
|
||
≈52px + gap 16px + хэш ≈312px) → переполнение ~78px. `overflow-x:hidden` на
|
||
`body`/`html` нигде нет, поэтому блок физически ломает страницу.
|
||
|
||
Недавние коммиты про ellipsis (`44c5952` — только `.btn-file`) и `.type-ico`
|
||
(`3f80d36`) этот блок не трогали.
|
||
|
||
## Что уже защищено (не виновники)
|
||
|
||
- `jellybit.css:283-285` — `.src-full{word-break:break-all}` → magnet уже чинится.
|
||
- `jellybit.css:365-366` — `.table-wrap{overflow-x:auto}` + `table.tbl{min-width:560px}`
|
||
→ таблица раскладки скроллится внутри себя. Страницу не ломает, но 560px
|
||
принудительного горизонтального скролла на мобильном — отдельная заноза.
|
||
- `.fname`/`.link-to` (`:374`, `:378-379`), `.card-title` (`:205`),
|
||
`.review-title` (`:298`) — `word-break` есть.
|
||
|
||
## Развилки
|
||
|
||
- **(а) точечно:** `.kv dd{overflow-wrap:anywhere;min-width:0}` +
|
||
`.kv dd.mono{word-break:break-all}`.
|
||
- **(б) в медиа-запросе** перевести `.kv` в одну колонку
|
||
(`grid-template-columns:1fr`, `dd{text-align:left}`) — заодно снимает
|
||
проблему `dt{white-space:nowrap}`.
|
||
|
||
Учесть: `.kv` используется **и** в блоке «Распознано как»
|
||
(`download_main.html:34-43`) — правка затронет оба, то есть чинится и потенциально
|
||
длинный `RecTitle`. Страховку `body{overflow-x:hidden}` как единственную меру не
|
||
брать — маскирует, а не лечит.
|
||
|
||
Мобильных стилей почти нет: единственный `@media (max-width:640px)` —
|
||
`jellybit.css:477-492` (14 правил), ни `.kv`, ни `.table-wrap` в нём не упомянуты.
|
||
|
||
## Спеки
|
||
|
||
`openspec/specs/web-ui/spec.md:237-247` («Блок информации о торренте») требований
|
||
к адаптивности не содержит → либо чистый bugfix, либо дельта с требованием
|
||
переноса длинных значений.
|
||
|
||
Связано: [[web-ui-pwa]] (крупная переделка, этот фикс — точечный).
|