System settings
Checked against c1b2fa4 on 2026-11-10. The files it covers are unchanged since.
When the user changes a system setting, the host tells the core, and the page restyles and lays out again without a reload. The page doesn’t need to listen for anything.
| Setting | What the page sees | Set by |
|---|---|---|
| Dark mode | prefers-color-scheme, and system colors in that scheme |
niso_dom_set_color_scheme |
| Text size (Dynamic Type, font scale) | every computed font size scales; CSS lengths don’t | niso_dom_set_text_scale |
| Bold text | fonts drawn heavier | niso_dom_set_font_weight_adjustment (Android), niso_dom_set_system_font_weights (Apple) |
| Increase contrast, accent color | the platform’s colors as CSS variables | niso_dom_set_platform_style |
| Reduce transparency (Apple) | glass and materials the host draws turn solid | the host |
Because the text scale changes computed sizes rather than the CSS, a page
written with plain px sizes still follows the user’s text size, and
getComputedStyle keeps reporting the CSS sizes.
Not yet
Section titled “Not yet”Pages can’t query prefers-contrast, prefers-reduced-motion or
prefers-reduced-transparency: the core has no setter for them yet. Reduce
Motion doesn’t reach the page.
The platform’s colors and text styles themselves are in Platform style.