Merge main for the updater UI review
All checks were successful
review/code-claude Code APPROVE: single state store, no implicit install
review/design-claude Design PASS: 18 frame pairs match approved

This commit is contained in:
justinzeus 2026-11-07 21:37:07 +01:00
commit 9061384ad1
29 changed files with 751 additions and 233 deletions

View file

@ -1,5 +1,5 @@
{
"$description": "Wolfskin TV design tokens, spec revision 5: approved focus and Level 2 spacing, taller episode cards, roomier Discover headings and panel-resolution hero artwork. CSS px on a 1920x1080 stage at density 2.0; dp/sp = px / 2.",
"$description": "Wolfskin TV design tokens, spec revision 6: approved loading/motion and option-B card metadata/state lines. CSS px on a 1920x1080 stage at density 2.0; dp/sp = px / 2.",
"meta": {
"density": 2.0,
"stagePx": [
@ -15,6 +15,20 @@
"generator": "data/tv-spec-lane/scratch/extract.py + build_tokens.py",
"feedbackDelta": "data/tv-v2/feedback-2026-11-06/delta.json"
},
"cardMetadata": {
"titleRest": {"$type":"typography","px":28,"sp":14,"lineHeight":1.1428571428571428,"weight":500,"$value":{"fontWeight":500}},
"titleFocus": {"$type":"typography","px":28,"sp":14,"lineHeight":1.1428571428571428,"weight":700,"$value":{"fontWeight":700}},
"subtitle": {"$type":"typography","px":24,"sp":12,"lineHeight":1.0833333333333333,"weight":400,"$value":{"fontWeight":400}},
"check": {"$type":"dimension","px":24,"dp":12},
"gap": {"$type":"dimension","px":12,"dp":6},
"compactGap": {"$type":"dimension","px":8,"dp":4},
"minimumGap": {"$type":"dimension","px":4,"dp":2},
"bottom": {"$type":"dimension","px":2,"dp":1},
"separator": {"$type":"dimension","px":2,"dp":1},
"watchedLine": {"$type":"dimension","px":3,"dp":1.5},
"resumeLine": {"$type":"dimension","px":6,"dp":3},
"landscapeBand": {"$type":"dimension","px":64,"dp":32}
},
"color": {
"bg": {
"$type": "color",
@ -1045,7 +1059,7 @@
"px": 38,
"dp": 19,
"source": "index.html:1242",
"usedBy": "caption under a focused poster starts 38 px below the card bottom (capHtml top = headH + h + CAP_OFF; was 18, amended 2026-11-06); width 640"
"usedBy": "card-width captions start 38 px below unscaled art; library titles and subtitles remain visible, Home poster captions are focus-only"
},
"plateInset": {
"$type": "dimension",
@ -1202,7 +1216,7 @@
"ratio": "2:3",
"fullSlotsPerRow": 6,
"source": "index.html:656",
"usedBy": "every title shelf, library grid, See all grid, More like this, person filmography; art only at rest"
"usedBy": "every poster shelf and six-column library, See all and filmography grid; library captions always visible, shelf captions focus-only"
},
"tile": {
"$type": "card",
@ -1210,15 +1224,13 @@
"w": 400,
"h": 225,
"gap": 40,
"pitch": 440,
"captionBand": 0
"pitch": 440
},
"dp": {
"w": 200.0,
"h": 112.5,
"gap": 20.0,
"pitch": 220.0,
"captionBand": 0.0
"pitch": 220.0
},
"ratio": "16:9",
"fullSlotsPerRow": 4,
@ -1231,15 +1243,13 @@
"w": 544,
"h": 306,
"gap": 40,
"pitch": 584,
"captionBand": 0
"pitch": 584
},
"dp": {
"w": 272.0,
"h": 153.0,
"gap": 20.0,
"pitch": 292.0,
"captionBand": 0.0
"pitch": 292.0
},
"ratio": "16:9",
"fullSlotsPerRow": 3,