Colour
The accent carries the sparkle, the primary button, the citation numbers and the
tinted surfaces. A text colour set here applies to both schemes — it is one
value, not a light one and a dark one.
Dark mode
colorScheme is light, dark, or auto for the visitor’s OS preference.
colorSchemeSelector is for a portal with its own switch: give it the selector
that means “this page is dark” — html.dark, [data-theme="dark"] — and it
wins over colorScheme and is re-checked as the page changes, so the modal
follows the switch mid-session rather than only at load.
The default is
light, not auto. A modal that flipped to dark on a light
support portal because the visitor’s OS happened to be dark looks broken, so the
OS preference is followed only when it is asked for by name.Typography
Four steps, and every size in the modal is one of them. There is no fifth
knob because there is no fifth size to set — a control that styles nothing is
worse than a control that is missing.
The inline strip inside your form inherits your page’s font family by default
and only takes
fontFamily if you set one — inheriting the form’s own type is
what stops the strip reading as a third-party graft.
Sharing the widget’s theme
If the same script tag also arms the Ask AI widget, the deflector falls back to the widget’s own attributes rather than making you say everything twice:
The
data-deflect- prefixed form is how a support portal that differs from the
docs site says so.
What is not configurable
Padding, borders, radii and margins are not exposed. They are the difference between a modal that reads as a considered surface and one assembled from twelve numbers a support engineer guessed at eighteen months ago, and every knob is one more thing to document, migrate and answer questions about. If the modal genuinely cannot sit inside your portal as it is, tell us what it collides with — that is a fix, not a setting.Values are validated
A value is written to a CSS custom property withsetProperty, which cannot be
escaped out of the way a string concatenated into a stylesheet can — the browser
simply drops one it cannot parse. On top of that, url(, comments, semicolons
and braces are rejected when the deflector is saved, and values are capped at
200 characters. So a typo is a value that does nothing, never a broken portal.