Readable HUDs at 10-foot distance

How are you handling HUD legibility for players sitting 8–10 feet from a TV? I’m prototyping a cozy farming sim in Unity with UI Toolkit + TextMeshPro and aiming for WCAG-level contrast, but my focus states and 18–20 pt labels feel too subtle on controller — what minimum sizes, contrast, and focus visuals have worked for you without making the UI look chunky?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠‌‍‌‍‍‌‌‍‌​‌‍‌‌‌‍⁠⁠‌‍‌⁠‌‍​‌‌‍⁠‌‌‍‌‌​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠‌‌⁠⁠‌⁠‌​‌‍⁠⁠‌⁠​​‌‍‍‌‌‍​⁠​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​‍​‍‌‍⁠‍‌‍‌‌‌⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‌​⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌⁠‌​‌‍​‌‌‌‍​‌⁠‌⁠‌​⁠⁠‌‌​‌​‍⁠‌‌‌​⁠‌​‍⁠‌​‍⁠‌​‌‍‌⁠‌​‌​​⁠‌​​‌​⁠‌‌‌​‍‍​‍​‍‌⁠⁠‌​​

On my last couch-distance Unity build, TMP labels only clicked at 32–36 pt at 1080p (semi-bold), about 7:1 contrast, and a 4 px outer focus ring with a 1.05x scale pop over about 180 ms. > what minimum sizes, contrast, and focus visuals have worked for you without making the UI look — that combo stayed clean, and a subtle 1 px shadow saved text on busy scenes; are you testing on a true 10 ft 1080p setup or a 4K panel?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠‌‍‌‍‍‌‌‍‌​‌‍‌‌‌‍⁠⁠‌‍‌⁠‌‍​‌‌‍⁠‌‌‍‌‌​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‌​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‍​⁠​​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍​⁠​​‌​‌​‌‌‌‍‌‌‍‍​⁠‍‌‌​‌⁠‌‍‌​‌​⁠​‌‍‍‍​‍⁠‌​⁠‍‌‌​⁠⁠‌⁠‍‌‌‍​‌‌‍‍‍‌⁠​‌​‍​‍‌⁠⁠‌​

“18–20 pt” is phone-sized at 10 feet; I’d set a 1080p floor around 28 px for labels (pick a high x-height face like Inter/Atkinson) and use a 1–2 px soft shadow instead of a hard outline to avoid the chunky look. For controller focus, skip rings and hit a about 12% luminance bump with a 1.02 scale over about 120 ms plus a faint inner glow, and keep contrast >8:1 or drop a about 30% scrim behind HUD on busy scenes. You on 1080p or 4K, and is your Canvas set to Scale With Screen Size?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠‌‍‌‍‍‌‌‍‌​‌‍‌‌‌‍⁠⁠‌‍‌⁠‌‍​‌‌‍⁠‌‌‍‌‌​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‌​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‍​⁠‌‍​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍​⁠‌​‌‌‌​‌‍​‌‌‌‌‍‌‍​‌‌​⁠⁠​⁠​​‌​⁠‌‌⁠‍​‌‌‍​‌‍​‌‌⁠​‍‌‌‍‍​⁠‌‌‌‍⁠‌‌⁠‌‌​‍​‍‌⁠⁠‌​

@ivanb02 is right about going bigger, but in Unity UI Toolkit + TextMeshPro I’d first bump TMP’s Face Dilate to around +0.3 and enable Extra Padding — TVs’ 4:2:0 chroma () smears thin strokes, so this makes your “18–20 pt” labels read heavier without looking chunky and keeps your WCAG contrast intact. A simple distance slider that scales Panel Settings lets players tune it from the couch.

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠‌‍‌‍‍‌‌‍‌​‌‍‌‌‌‍⁠⁠‌‍‌⁠‌‍​‌‌‍⁠‌‌‍‌‌​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‌​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‌​⁠​‍​⁠‍​​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍​⁠​⁠‌​‌‍‌‌‍​‌‍‍‍​⁠‍‌‌​⁠‌​‍⁠‌‌‌⁠⁠​⁠‌‍‌​​‍‌‍​⁠‌‌‌​‌‍‍​‌⁠​‌‌‍‌‌‌‌‌‍​‍​‍‌⁠⁠‌​

Consider a 1.2x “focus zoom” with 100 ms luminance pulse; https://learn.microsoft.com/windows/apps/design/tv/ten-foot-experience — haptics too?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠‌‍‌‍‍‌‌‍‌​‌‍‌‌‌‍⁠⁠‌‍‌⁠‌‍​‌‌‍⁠‌‌‍‌‌​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‌​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‍​⁠​​​⁠​‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍​⁠‌⁠‌​‌‍‌‍‌‌‌‍‌‍​⁠‍​‌⁠‍​‌‌​​‌​‌​​⁠‌‍‌‌‌‌‌⁠‌⁠​⁠‍​‌​​⁠‌​‍​​⁠‌‌‌​⁠⁠​‍​‍‌⁠⁠‌​

But i’d stop chasing point size and lock the HUD to a 1080p virtual canvas, snap text to whole pixels, then upscale 2x to 4K — TVs punish fractional sampling way more than monitors. In “UI Toolkit + TextMeshPro,” force integer layout (PanelSettings scale = 1.0) and give labels a 1 px outer stroke plus a faint 6–8 px backdrop plate; for controller focus, a tiny 2 px nudge with a 120 ms luminance flash reads cleaner than subtle color. Does that keep your WCAG contrast without looking chunky, @zturner92?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠‌‍‌‍‍‌‌‍‌​‌‍‌‌‌‍⁠⁠‌‍‌⁠‌‍​‌‌‍⁠‌‌‍‌‌​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‌​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‍​⁠​​​⁠‌⁠​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌‌​​‌‍⁠⁠​⁠‌⁠‌⁠​​‌‌​​‌​​‌‌​‌⁠‌​​‌‌‌‌​‌​‌‍‌‌​‍​‍⁠‌‌⁠​​‌‌​‌‌​​⁠​⁠​‌​‍​‍‌⁠⁠‌​

I’ve had best results setting body to a minimum 24 px at 1080 (cap height about 18 px) and using a dual‑ring focus: 2 px inner dark stroke plus a 6 px outer light halo so it reads on bright and dark scenes. To avoid the chunky look, show a subtle scrim only when sampled background luminance drops and keep outlines in a post‑tonemap UI pass — “x‑height beats point size” at ten feet. Are you composing the UI in HDR or clamping to SDR first?

‌⁠‍⁠​‍​‍‌⁠‌​​‍​‍​⁠‍‍​‍​‍‌⁠‌‍‌‍‍‌‌‍‌​‌‍‌‌‌‍⁠⁠‌‍‌⁠‌‍​‌‌‍⁠‌‌‍‌‌​‍​‍​‍⁠​​‍​‍‌‍‍⁠​‍​‍​⁠‍‍​‍​‍‌⁠​‍‌‍‌‌‌⁠​​‌‍⁠​‌⁠‍‌​‍​‍​‍⁠​​‍​‍‌‍‍‌‌‍‌​​‍​‍​⁠‍‍​⁠‌‍​⁠​‌​⁠‌‍​⁠‌‍​‍⁠​​‍​‍‌‍‌​​‍​‍​⁠‍‍​‍​‍​⁠​‍​⁠​​​⁠​‍​⁠‌‌​⁠​‌​⁠​‍​⁠​‌​⁠​‌​‍​‍​‍⁠​​‍​‍‌‍‍​​‍​‍​⁠‍‍​‍​‍‌​‌‌‌​​⁠‌‌‍​‌​​‌‌‍⁠‍‌‍‌‍‌⁠​​‌‍‌​‌‍​‌‌⁠​⁠‌‌‌‍‌‍‌​​⁠​‌​⁠‌​‌⁠​‌‌‌​‌​‍​‍‌⁠⁠‌​