channel: redesign the header, reachable Subscribe button (#27)

Without a mouse the channel banner was invisible: opening a channel focused the
first video card, which scrolled the header (a grid item) off-screen. The header
is now pinned above the grid and never scrolls away. The banner is its backdrop,
darkened to black at the bottom; the avatar sits beside the title with a
"by <owner> on <platform>" byline, the subscriber/video/created stats, and the
description flowing into the black beneath (a long one grows the header down
instead of being clipped). A Subscribe button sits on the banner, reachable with
UP from the first card, wired to the same follow/unfollow as the player.

AGENTS.md: subscribing is in scope (already on the player, now the channel page
too), so drop it from the excluded list.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Jeena 2026-10-15 12:23:36 +00:00
parent 84a0527e20
commit 39d3b12182
2 changed files with 220 additions and 88 deletions

View file

@ -113,10 +113,11 @@ the workflow is strict:
## Scope discipline
v0.1 features live in `README.md`; everything else in `BACKLOG.md`. Do not sneak in
uploading, editing, subscriptions management, deletion or content creation — the user
explicitly excluded them. If the user asks for a scope change, update `BACKLOG.md`
first, then implement.
Shipped features live in `README.md`; anything else is tracked as Forgejo issues at
git.jeena.net/jeena/jtube-tv. Do not sneak in uploading, editing, deletion or content
creation — the user explicitly excluded them. (Subscribing/unsubscribing to channels is
in scope and already implemented — on the player and the channel page.) If the user asks
for a scope change, confirm it with them before implementing.
When unsure how a PeerTube endpoint behaves, verify against the live instance instead of
guessing (401 ⇒ exists & needs auth, 404 ⇒ route missing, 405 ⇒ wrong method on real route).