- Standard settings supply the screen’s default colors and font families through attributes on
<fluid-account-screen>. - CSS overrides, in the upcoming release, let your layout choose different values for individual screen styles while keeping those attribute defaults.
Standard theme settings
Define these setting IDs in your theme’s settings schema and give them valid defaults. When Fluid renders a system screen, it reads the effective theme settings, including the selected preset, and passes the values below to the screen.
Color attributes accept CSS colors. Font attributes accept CSS font-family lists, not font URLs or font objects. Missing, empty, or invalid attribute values leave the runtime’s defaults available; they do not create the missing theme settings for you.
Your layout must load the fonts it selects, using its existing font-loading mechanism. Passing a family name does not download the font. Supply readable foreground/background pairs, especially for primary actions and surfaces.
Fluid creates the system screen element for a system page. You do not need to add a second
<fluid-account-screen> to your layout. Keep the layout’s {{ content_for_header }} and normal page-content output in place. See Member page layouts.
Override selected defaults with CSS
This section requires the upcoming override-capable runtime. Earlier runtimes can write attribute colors into the same public inline properties, so an ordinary layout rule does not reliably override them.
<style> block in that layout:
--color-button, --color-background, or --font-body for you. If your theme already emits those variables, reuse them.
Keep the standard setting IDs and their defaults. Add only the public overrides you need; no additional mapping file or new setting schema is required for the override mechanism itself. This rule does not require !important.
For example, override only primary action colors while letting all other styles follow the standard attributes:
screen attribute:
How precedence works
In the override-capable runtime, each supported style resolves in this order:- The public
--fluid-account-*property supplied by your theme. - The corresponding valid screen attribute, supplied from standard theme settings.
- The runtime’s existing default.
--fluid-account-default-* for attribute defaults. Do not set those properties in your theme; use the public properties in the table above.
Removing your override reveals the latest attribute value. If an inherited override still applies, remove or adjust that declaration too. Changes to supported attributes update presentation without remounting the screen or clearing its drafts. Changes to referenced CSS variables flow through CSS as their values change.
Missing variables and invalid values
Keep these cases distinct:
Use valid color and font values and check the result in the browser. A fallback inside
var() handles an unavailable variable; it is not a general validator for a defined value of the wrong type.
Builder preview and presets
System screen attributes use the effective settings of the theme being previewed, including unsaved builder settings. Changing a preset or one of the mapped settings can therefore update the screen along with custom theme content when the preview is rendered again. Put override CSS and its source variables in the rendered theme layout or its stylesheet inside the preview iframe. CSS added only to the surrounding admin builder document cannot style the iframe’s screen. A public override remains in control when the attribute changes. For example, if primary color is overridden withvar(--color-button), changing only color_primary will not change the visible primary color. Change the setting that defines --color-button, or remove the override to follow color_primary again.
When your theme outputs CSS variables from Liquid settings, those variable declarations must also be refreshed in the preview. An override cannot update a source variable whose rendered value has not changed.
Scope and limitations
- These settings control semantic colors and font families. They do not add attributes for spacing, font sizes, corner radii, or screen layout.
- The screen uses Shadow DOM. Use the public properties instead of targeting internal component classes from your theme stylesheet.
- The override implementation covers screen surfaces, derived Messaging colors, and dialogs. It does not recolor My Site’s embedded website preview or replace user-selected group and avatar colors.
- Your theme layout owns the surrounding page width, height, navigation, and font loading.
- Styling does not change member access rules or authentication.
Runtime availability
The standard unversioned loader is:{{ content_for_header }}.
The unversioned URL follows the latest successfully published release; it does not serve changes just because a PR exists. A version-pinned embed keeps its pinned behavior until updated. CSS-over-attribute precedence is planned for v0.4.0; verify that the override release is published and loaded before relying on it.
Legacy <fluid-account-messaging> embeds use a separate versioned classic script. They also need an override-capable release and a selector matching that legacy element. Do not load the classic script and the module loader together on the same page.
Verify your theme
- Open a system screen without overrides. Check its fonts and colors against the standard theme settings.
- Change a mapped color in the builder and confirm the preview uses the new value. Save it and check the member page too.
- With the override-capable runtime, add a primary/foreground override pair. Confirm those values take precedence while unmodified styles still follow the standard settings.
- Change the theme variable referenced by the override and check the rendered result.
- Remove the override and confirm the most recent attribute value becomes visible.
- Check a dialog and, for Messaging, its tinted surfaces and focus states. Confirm that selected fonts actually load.
- Check the builder preview and the signed-in member page separately.