From e99ed2d394a8808aaafa904597cc29e38ce387eb Mon Sep 17 00:00:00 2001 From: justinzeus Date: Thu, 5 Nov 2026 19:53:51 +0100 Subject: [PATCH] Use the locked Home See all spacing --- docker/README.md | 2 ++ .../main/java/org/justinvisser/wolfskin/design/HomeShelf.kt | 2 +- .../org/justinvisser/wolfskin/design/LibrarySeeAllCard.kt | 4 ++-- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/docker/README.md b/docker/README.md index 0eaed1a6..f32c52a1 100644 --- a/docker/README.md +++ b/docker/README.md @@ -180,6 +180,8 @@ own geometry; the Discover section uses a warning pill. Caption separators multi the existing muted colour alpha by the shared 40% token. Home-only untrimmed styles and `exactLineBox` honor the declared CSS line boxes despite Android's intrinsic paragraph minimums; shell and library typography retain their existing defaults. +Home See all supplies its locked 8px column gap; the shared Library tail retains +its existing 10px default rather than leaking that measurement into Home. Vertical moves clamp to short target rows, including a final See all card. `make test` includes `HomeCaptureTest` (23 native acceptance states) and the diff --git a/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/HomeShelf.kt b/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/HomeShelf.kt index 20417308..cd87b6d3 100644 --- a/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/HomeShelf.kt +++ b/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/HomeShelf.kt @@ -65,7 +65,7 @@ fun HomeShelf(row: HomeRow, memory: HomeViewMemory, focused: Boolean, column: In val cardModifier = Modifier.zIndex(if (selected) 2f else 0f).testTag("home-card:${row.id}:$index") .then(if (!row.skeleton) Modifier.focusOnPointerEnter { onHover(index) } else Modifier) if (title == null && !row.skeleton) { - LibrarySeeAllCard(row.total, selected, { onCard(index) }, cardModifier, width, height, T.listTitle, T.label, lift = true) + LibrarySeeAllCard(row.total, selected, { onCard(index) }, cardModifier, width, height, T.listTitle, T.label, lift = true, gap = H.seeAllGap) } else TitleCard(selected, cardModifier.then(if (!row.skeleton) Modifier.clickable { onCard(index) } else Modifier), width, height, lift = true) { if (title == null) Box(Modifier.fillMaxSize().background(C.surface)) else { TitleArtwork(title.title, title.type, title.poster, width, height, Modifier.fillMaxSize(), backdrop = title.backdrop, posterOnly = title.posterOnly, landscape = row.cardKind != HomeCardKind.Poster) diff --git a/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/LibrarySeeAllCard.kt b/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/LibrarySeeAllCard.kt index e9668cee..75bbc0f6 100644 --- a/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/LibrarySeeAllCard.kt +++ b/wolfskin-design/src/main/java/org/justinvisser/wolfskin/design/LibrarySeeAllCard.kt @@ -17,12 +17,12 @@ import androidx.tv.material3.Text fun LibrarySeeAllCard(count: Int, focused: Boolean, onClick: () -> Unit, modifier: Modifier = Modifier, width: Dp = WolfskinTokens.Card.posterW, height: Dp = WolfskinTokens.Card.posterH, titleStyle: TextStyle = WolfskinTokens.Type.listTitle, countStyle: TextStyle = WolfskinTokens.Type.label, - lift: Boolean = false) { + lift: Boolean = false, gap: Dp = WolfskinTokens.Library.tailGap) { val shape = RoundedCornerShape(WolfskinTokens.Radius.card) TitleCard(focused, modifier.clickable(onClick = onClick), width, height, lift) { Column(Modifier.fillMaxSize().background(WolfskinTokens.Color.surface, shape) .border(WolfskinTokens.Library.borderWidth, WolfskinTokens.Color.border, shape), - verticalArrangement = Arrangement.spacedBy(WolfskinTokens.Library.tailGap, Alignment.CenterVertically), horizontalAlignment = Alignment.CenterHorizontally) { + verticalArrangement = Arrangement.spacedBy(gap, Alignment.CenterVertically), horizontalAlignment = Alignment.CenterHorizontally) { Glyph("interface", WolfskinTokens.Color.accent, Modifier.size(WolfskinTokens.Layout.badge)) Text("See all", modifier = Modifier.exactLineBox(titleStyle), color = WolfskinTokens.Color.fg, style = titleStyle) Text(count.toString(), modifier = Modifier.exactLineBox(countStyle), color = WolfskinTokens.Color.muted, style = countStyle)