Skip to main content
Themes control the visual appearance of your form — colours, fonts, shape, and background. Switch to the Design tab in the studio top bar to access the theme editor. Theme editor in the Design panel

How theming works

A theme is a reusable configuration. You can:
  • Use a system theme (pre-built, read-only)
  • Create a custom theme for full control
  • Assign one theme per form
When you publish a form, a snapshot of the theme is embedded in the version. Changing the theme later affects future publishes only — existing published versions always render with the theme as it was when they were published.

Colours

SettingDefaultDescription
Primary#111827Button colour, selected-state accents, interactive highlights
Background#ffffffPage background (overridden by gradient/image — see Backgrounds)
Surface#f9fafbCard and input background colour
Text#111827Body text colour
For best contrast, keep primary and background clearly different in luminosity. Light primary on dark background, or dark primary on light background, both work well.

Typography

Font

One font is applied globally to the entire form. The font is loaded from Google Fonts at runtime. Popular options include:
  • Inter (default) — clean, modern, neutral
  • Geist — sharp tech aesthetic
  • DM Sans — friendly, geometric
  • Playfair Display — editorial, serif
  • Space Grotesk — contemporary, slightly quirky
You can type any Google Fonts family name. If the font is unavailable it falls back to the system sans-serif.

Title size

Controls the font size of question/screen titles.
ValueSize
sm1.25 rem
md (default)1.5 rem
lg1.875 rem
xl2.25 rem

Body size

Controls the font size of descriptions and answer input labels.
ValueSize
sm (default)0.875 rem
md1 rem
lg1.125 rem

Title weight

Controls the font weight of question/screen titles.
ValueWeight
normal400
medium500
semibold (default)600
bold700

Shape

Border radius controls how rounded cards, inputs, and buttons appear.
ValueResult
0Sharp square corners
8 (default)Subtly rounded
16Visibly rounded
24Pill-like
The value is in pixels and applies uniformly to all interactive elements.

CSS variables

When a form renders, the theme is translated into CSS custom properties on the root element. These are the same variables used by @workspace/form-renderer.
VariableMaps from
--fr-primarycolors.primary
--fr-bgbackground (computed from type)
--fr-surfacecolors.surface
--fr-textcolors.text
--fr-fonttypography.font
--fr-radiusshape.borderRadius (px)
--fr-title-sizetypography.titleSize (rem)
--fr-body-sizetypography.bodySize (rem)
--fr-title-weighttypography.titleWeight
These variables are useful if you are building a content-type plugin that needs to match the host form’s visual style.

Next steps

Backgrounds

Add solid colours, gradients, or image backgrounds.

Branding

Add a logo and configure the powered-by footer.