Form theme designer

Each form has its own look. Tokens are stored as JSON on the form, applied as CSS variables, and reused by templates, Create with AI, and your saved theme library.

Presets

The builder Style tab includes eight presets: GRT Default, Minimal, Bold / Gradient, Dark, Soft / Rounded, Corporate, Playful, and High Contrast. One click applies color, type, radius, and density tokens to the hosted form and embeds.

Fonts, density, and colors

  • Font family is an allowlist: Inter, Plus Jakarta Sans, System UI, Georgia, JetBrains Mono, and Palatino. Inter, Plus Jakarta Sans, and JetBrains Mono are self-hosted SIL Open Font License webfonts; the others are system stacks. Arbitrary font URLs are rejected.
  • Density is compact, comfortable, or spacious (defaults to comfortable, matching GrtLabs brand tokens). It maps to CSS variables for padding and field gap.
  • Color pickers cover page, surface, headings, body, muted text, button, button text, and accent, plus corner radius and font scale.

Logo and header image

Optional logo and header image upload on the Style tab. Logo and header images are stored with your account. Only PNG, JPEG, and WebP are accepted, up to 2 MB. The server sniffs magic bytes and does not trust Content-Type. SVG is rejected. Owners can remove either image. Alt text uses the form name. Hide-header settings also hide these images.

Live preview

The Style tab includes a live preview with a Desktop / Mobile toggle. The same public form renderer is used in builder Preview.

Custom CSS

Custom CSS remains an advanced override. It is sanitized and scoped to the form so it cannot style the rest of the page.

Saved themes

On the Style tab, Save as theme snapshots the current colors, font, scale, radius, density, and logo or header references onto your account (up to 25 named themes). My themes can apply, rename, or delete a snapshot. Apply copies tokens onto that form only — later edits to the saved theme do not change forms that already used it. Logo and header files stay tied to the form that uploaded them; if they cannot be reused on another form, they are omitted and you are asked to upload them again.

Back to docs · Hide header