Buttons, selected states, progress bar, interactive accents
Surface
#f9fafb
Card and input background colour
Surface opacity
100%
Transparency of the surface colour — lower values let the page background show through cards
Text
#111827
All body text inside the form card
Surface opacity is especially effective with gradient or image backgrounds. Set it to 80–90% to let the background bleed through the card while keeping text readable.
The background colour is configured separately in the Background section below.
When a form renders, the theme is translated into CSS custom properties on the root element using the --fr-* prefix.
Variable
Source
--fr-primary
colors.primary
--fr-bg
Background colour (computed from type)
--fr-surface
colors.surface with opacity applied
--fr-text
colors.text
--fr-font
typography.font
--fr-radius
shape.borderRadius (as px)
--fr-title-size
typography.titleSize (as rem)
--fr-body-size
typography.bodySize (as rem)
--fr-title-weight
typography.titleWeight (numeric)
These variables are injected by ThemeProvider and available to all question components and custom layouts. If you are building a content-type plugin these let you match the host form’s visual style without hard-coding values.