Tier 2tvOS: tokens only. The shipped tvOS app is React Native (react-native-tvos): app-drawn rows and buttons, a native stack, no TabView. Focus is a --component-bg-active fill; the system lift is turned off.--component-bg · --component-bg-active · --border · --border-hover · --text-secondary · --red-solid
A field, recent keywords, the file list
Search is a Home row that pushes a full screen. The field is app-drawn; selecting it opens the tvOS keyboard on a hidden TextInput. Empty field reads “Tap to start typing”.
Up to five recent keywords sit under the field as buttons, newest first. Opening a result saves the keyword. Settings turns history off or clears it.
Results reuse the Files list. Nothing found reads “No results found.”; loading reads “Searching...”.
seinfeld
Settings
seinfeldthe wireubuntu
Seinfeld.S09E23.The.Finale.Part.2.720p.HDTV.x264-FLEET.mkv
1.17 GB
Search · result focusedField, Settings, keyword buttons, results. Results never take preferred focus.
seinfeld
Settings
seinfeldthe wireubuntu
Search settings
Disable search history
Clear search history
Search settings · select modalDimmed overlay, 25% wide panel. The destructive option focuses on --red-solid.
Field
--component-bg
focused --component-bg-active, 1px border
Field text
36px
keyword --text, placeholder --text-secondary
Keywords
sm buttons
24px, history glyph, not uppercased
History
5 max
put.io user config
Results
Files rows
size-only subline
Modal
25% wide
--app-bg, 1px --line, 12px radius
Contract: platforms/apple/DESIGN.md.
Do not draw an inline keyboard. The system keyboard comes from the hidden input.