Tier 3Tier 3 · Roku. SceneGraph ships no node for this, so put.io builds it from generated tokens and the shared TV row anatomy. That permission is what makes Roku its own tier.UiMetrics.brs · DesignTokens.brs · primary · focus · borderHover
ListItemcomponents/shared/ListItemput.io owns this
A Group holding a FocusBackground, one horizontal LayoutGroup for icon, title and description, and a separately positioned value Label. No stock SceneGraph node does this.
2024
Folder
12 items
Resting1716 x 120 at 1:1, inside the real 102px page margin
The.Wire.S03E04.Back.Burners.1080p.BluRay.x264-DEMAND.mkv
resume at 21:04
3.42 GB
FocusedNine-patch tinted focus via blendColor. No edge, no scale
row1716 x 120. Width is uiListRowWidth() = 1920 minus 2x uiPageMargin()
inlineContentLayoutGroup horiz, translation="[35,60]", vertAlignment="center", itemSpacings="28"
ordericon, title, description. One line, side by side - not stacked
iconPoster 50x50, scaleToFit
titlebody 36 regular. On a value-bearing row, the horizontal text group ends at x1148 before the value slot
descriptioncaption 27 regular
valueown Label, width 520 at x = rowWidth − 568 (1148 here), horizAlign="right". The XML's [1260,0] w412 is a dead default
Do not. Stack the title over the description, or let the text group run past x1148. The value Label is placed independently there, so unbounded text runs straight under it.
Contract: platforms/roku/DESIGN.md