Tier 3Tier 3 · Roku. The auth screen is a centred LayoutGroup of image-backed pieces: welcome art, code tiles, a link line and a bitmap-backed refresh button. Everything colours through DesignTokens.brs; the tiles are the channel's one inverse surface.DesignTokens.brs · primary · text · textMuted · textInverse
A code, a link, one button
Device-code auth against /oauth2/oob/code; the channel polls the code every 2 seconds until put.io/link redeems it. Source: Auth.xml, Auth.brs.
Before the code arrives the tile row is hidden and a plain Loading... h1 sits in its place; on a fetch error the message slot expands with restart instructions. OK re-requests a code at any time; Back opens the exit-app dialog.
put.io
use this activation code to sign in
H7K2F9
follow the steps at the website below
put.io/link
Get new code
OKNew codeExit
Auth · code shownThe welcome art (AuthWelcome.png, 640x120) stands in for a heading; the refresh button is always visually focused, it is the screen's only control.
layoutvert LayoutGroup centred at [960,168], spacing 64; inner groups 44 / 16
code tiles96x96 auth-code-tile.png (primary yellow), one h1 45 textInverse character each, 16 apart
copyuse this activation code to sign in small 33 text · steps line small 33 textMuted · put.io/link h1 45 primary
refresh400x72 bitmap button, spinner icon at x66, Get new code h2 36. Loading swaps the label to Getting code... and the background bitmap
pollingGET /oauth2/oob/code/:code every 2s; a token routes into the app
errorcode slot shows Error!; message slot expands: An error occurred while getting the authentication code, please restart the app and try again.
keysOK new code · Back opens the exit-app dialog · Options swallowed
Per-control detail, the token map and the full don't list live in platforms/roku/DESIGN.md.
Do not add a keyboard sign-in or shorten the code display. Six tiles, one link, one button: a lost remote-holder must be able to read the whole screen from the couch in one glance.