Tier 3Roku. 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 · text · textMuted
ListItemcomponents/shared/ListItemput.io owns this
The Home and Settings row: a Group holding a hidden FocusBackground, one horizontal LayoutGroup for icon, title and description, and a separately placed value Label.
Video playback type
HLS
Resting, Settings1716 x 120 at 1:1. valueAlign="right" moves the description into the value slot
Your Files
Focused, HomeThe list's focus bitmap, blended focus. 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, tinted primary unless iconColor says otherwise
titleh2 36 medium, text
descriptionsmall 33, textMuted. No shipped row uses it inline: Home rows have none, Settings moves it to the value slot
valuesmall 33 textMuted, 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; that is FileListItem. The value Label is placed independently, so an unbounded title runs straight under it.
Contract: platforms/roku/DESIGN.md