🇬🇧 EN
🇮🇹 IT

5.2 Theme Editor

The Theme Editor lets you customise the visual appearance of your questionnaire's web embed. You can adjust global design tokens (colours, typography, border radius), style individual elements (cards, buttons, inputs, progress bar, completion screens), and write custom CSS — all with a live preview that updates as you make changes.

Questionnaire Theme Editor
Theme Editor — element tabs on the left, property controls in the center, and live preview on the right.

Opening the Theme Editor

  1. Open a questionnaire in the editor Navigate to Questionnaires in the sidebar and click the questionnaire you want to style.
  2. Click the "Theme" button In the editor top bar, click Theme. The Theme Editor opens in a dedicated page with a three-panel layout.

Interface Overview

The Theme Editor is organised into three panels side by side:

PanelPositionPurpose
Element Selector Left sidebar Lists every styleable element as a tab. Click a tab to load its properties in the centre panel.
Property Controls Centre Shows the CSS properties for the selected element. Colour fields use a colour picker; other values use text inputs.
Live Preview Right Renders a realistic questionnaire preview that updates instantly as you change properties. Includes a desktop/mobile toggle.

Global Design Tokens

The Global Tokens tab (the first element in the sidebar) defines design tokens that cascade to all other elements. Changing a token here updates every element that inherits it.

TokenDefaultDescription
primary_color #6366f1 (indigo) Accent colour used for buttons, selected options, progress fill, and interactive highlights throughout the questionnaire.
surface_color White Background colour for cards and the main container.
text_color Dark grey Primary text colour for questions, descriptions, labels, and body copy.
border_radius 8px Global corner rounding applied to cards, buttons, inputs, and option chips.
font_family System default Typeface used across the entire questionnaire.
font_size 16px Base font size. Other elements scale relative to this value.
Tip: Set your global tokens first — they propagate to all elements. Then override individual elements only where you need a specific deviation.

Element Styling

Below the Global Tokens tab, the sidebar lists every styleable element. Click any tab to load its CSS properties in the centre panel.

Element TabWhat It Styles
ContainerThe outermost wrapper of the questionnaire embed.
CardThe question card that holds each step's content.
QuestionThe question text heading.
DescriptionThe descriptive text displayed below the question.
OptionsAnswer option buttons in their default (unselected) state.
Option (selected)Answer option buttons when the respondent has selected them.
ButtonThe submit / next button in its default state.
Button (hover)The submit / next button when hovered.
InputsText inputs and textareas for free-text and validated-text answers.
Input (focus)Text inputs and textareas when focused.
LabelsField labels above inputs.
Error textValidation error messages shown below inputs.
FAQ questionThe clickable question text in the FAQ accordion.
FAQ answerThe expanded answer text in the FAQ accordion.
ImagesImage attachments displayed in the question gallery.
FilesNon-image file attachment cards (PDF, DOC, etc.).
Success screenThe completion screen shown when a session ends with a success status.
Failure screenThe completion screen shown when a session ends with a failure status.
Progress barThe background track of the progress indicator.
Progress fillThe filled portion of the progress indicator that advances as the respondent progresses.

Per-Element CSS Properties

When you select an element tab, the centre panel displays the CSS properties available for that element. The controls adapt to the property type:

Changes take effect immediately in the live preview on the right. Properties left empty inherit from the global tokens or browser defaults.

Advanced: Custom CSS

At the bottom of the property controls panel, a collapsible Advanced — Raw CSS section provides a code editor where you can write custom CSS rules scoped to the questionnaire. Use this for styling that goes beyond what the property controls offer — animations, media queries, pseudo-elements, or complex selectors.

ConstraintDetails
Maximum length10,000 characters.
ScopingAll rules are automatically scoped to the questionnaire container — they will not leak into the host page.
SanitisationUnsafe patterns (expression(), javascript:, @import) are stripped on save.
Sanitised patterns: The following are removed automatically when you save: expression(), javascript: URLs, and @import rules. This prevents potential security issues in the embedded questionnaire.

Preview

The right panel shows a live preview of the questionnaire as respondents will see it. The preview updates in real time as you modify properties or tokens.

Toggle between desktop and mobile using the device icons at the top of the preview panel.

Saving & Resetting

ActionDescription
Save Persists all theme changes (tokens, element properties, and custom CSS). The saved theme is applied immediately to the live web embed.
Reset Element Resets the currently selected element's properties back to their defaults. Other elements are not affected.
Reset All Resets the entire theme — all tokens, all element properties, and custom CSS — back to factory defaults. A confirmation modal appears before the reset is applied.
Back Returns to the questionnaire graph editor. Unsaved changes are discarded.
Unsaved changes: If you navigate away using Back without saving, your changes are lost. Always click Save before leaving the Theme Editor.
Tip: Use Reset Element to undo changes to a single element without affecting the rest of your theme. Use Reset All only when you want to start the theme from scratch.