Files
jellybit/docs/backlog/mobilnaya-verstka-kv-infohash.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

57 lines
3.4 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.
# Карточка информации о торренте вылезает за границу экрана на мобильном
**Приоритет:** средний
На узком экране блок «Информация о торренте» на `/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]] (крупная переделка, этот фикс — точечный).