Tier 4Tier 4 · TV (Generic): tv.put.io, Tizen, webOS. The restrained, list-first web binding is the reference presentation. Android TV shares the product behaviour but applies Google's native TV components and focus model.--text · --text-secondary · --red-solid · --yellow-solid · --component-bg-active
One centred column for every non-content screen
Empty, error and loading share one skeleton: a centred YStack of glyph, 64px heading and 36px --text-secondary body, spaced 32. They differ only in glyph colour and in what follows the body. Sources: components/empty-state.tsx, error-state.tsx, loading-screen.tsx.

Your Files

No files whatsoever!
It looks like this folder is empty.
EmptyStateGlyph stays --text-secondary. Each screen supplies its own glyph and strings: files folder-open, history history, trash delete.
Unsupported file type
We currently only support video files in this app (for now).
2.3.1 (482)
ErrorStateThe glyph is the only red. Recovery is either an instruction sentence or a single standard Button; the button never turns red. The release string sits at the bottom for support calls.
Loading
LoadingScreenHeading above the spinner. The spinner is the platform ActivityIndicator: brand yellow on Android TV, --text elsewhere.
skeletoncentred YStack, spacing 32, horizontal inset 256 (paddingX="xxl"). A trailing 64 spacer nudges the block optically above centre
glyph64 (heading step). --text-secondary on empty, --red-solid x-circle on error, none on loading
heading / body64 medium --text / 36 --text-secondary
recoveryinstruction errors add a sentence; action errors add one md Button with preferred focus (Go back, Retry)
app inforelease string, 24px --text-secondary, absolute bottom centre. Error screens only
stringsfiles No files whatsoever! · history This is your history. It's currently empty. · trash Your trash is empty · search No results found. (bare body text, no skeleton)
Contract: platforms/tv-generic/DESIGN.md · source: components/empty-state.tsx, error-state.tsx, loading-screen.tsx, app-info.tsx
Do not decorate these screens. No illustration, no red fill behind the error, no second button. Error copy is a sentence, not a code: ERR_NO_PEERS never reaches a TV.