Forms & surveys
Styling & custom CSS
Style forms with visual controls, and—for power users—write custom CSS with a documented list of selectors.
Styling & custom CSS
Every form, page, section and field has a Style section with visual controls — background and text colour, alignment, text size and weight, padding, corners, border and a background image. The whole form’s look lives on the Design tab; pages, sections and fields can override it.
Custom CSS (advanced)
For full control, the Design tab (form-wide) and each field’s inspector have a Custom CSS box. It’s aimed at power users and AI.
Two things keep it safe:
- Auto-scoping. Everything you write is automatically limited to this form (or this field), so it can never affect the rest of the page.
- Sanitising.
@import, external image URLs, and script-like values are removed. Only images from your own media or relative paths are allowed. The editor tells you if anything was changed for safety.
Available selectors
Target these classes (they’re automatically prefixed with your form/field scope):
| Selector | What it styles |
|---|---|
.af-form | The whole form |
.af-page | The current page wrapper |
.af-field | Any field block |
.af-field-<key> | A specific field (its key is shown in the inspector) |
.af-label | A field’s label |
.af-help | Help text under a label |
.af-error | A validation error message |
.af-input, .af-textarea, .af-select | Text, paragraph and dropdown controls |
.af-choice, .af-opt | Multiple-choice groups and each option |
.af-seg-btn | Segmented choice buttons |
.af-rating | Star rating control |
.af-image-select, .af-image-opt, .af-image-opt-selected | Image-choice grid, each card, the selected card |
.af-heading, .af-info | Heading and info-block display fields |
.af-separator, .af-styled-text | Separator and rich-text display fields |
.af-progress, .af-progress-bar, .af-progress-label | Multi-page progress bar and label |
.af-actions, .af-btn, .af-btn-primary | The button row, buttons, the primary (Submit/Next) button |
Example
.af-label { letter-spacing: 0.02em; }
.af-btn-primary { border-radius: 9999px; }
.af-field-comments .af-textarea { min-height: 8rem; }
@media queries are supported for responsive tweaks.