Custom CSS
On the Pro plan, each quiz has a Custom CSS field in its Settings that lets you add raw CSS to its public page — full control over spacing, colors, and typography beyond the built-in logo and primary color options.
Last updated
How do I add custom CSS to a quiz?
Open the quiz in the builder, go to Settings → Advanced → Custom CSS (Pro only), and write CSS targeting the classes and data attributes listed below. It applies only to that quiz's public page, not your dashboard.
How it works#
Custom CSS is per-quiz, not account-wide, so you can style a client-facing quiz differently from an internal one. It's saved with the rest of your quiz settings and injected into a <style> tag on the public page, after FluoTest's own styles — so your rules win. Before it's saved or rendered, the CSS is sanitized: it can't contain HTML tags, @import rules, expression(), or url() references that don't point at a data: URI, and it's capped at 20,000 characters.
Adding custom CSS to a quiz#
- Open the quiz you want to style and go to its Settings tab.
- Expand the "Advanced" section and find "Custom CSS" (this is a Pro feature — free accounts see an upgrade prompt here).
- Write CSS in the editor, targeting the classes and data attributes listed in the reference below.
- Click "Preview" to open the last saved version of the quiz in an embedded frame, or "Save" and then use the quiz's normal Preview link to see your changes live.
- Save the quiz. Changes to Custom CSS take effect immediately on the public page.
Selector reference#
The public quiz page's root element carries the class fluotest-quiz, and key elements carry stable data-fluotest-el attributes so your CSS keeps working even if FluoTest changes its internal styling classes.
| Selector | What it targets |
|---|---|
| .fluotest-quiz | The root element of the public quiz page. Scope all your rules under this to avoid affecting anything else. |
| [data-fluotest-el="root"] | Same root element as .fluotest-quiz, addressable via attribute selector. |
| [data-fluotest-el="progress-track"] | The background track of the progress bar. |
| [data-fluotest-el="progress-fill"] | The filled portion of the progress bar. |
| [data-fluotest-el="question-card"] | The card containing the current section's questions. |
| [data-fluotest-el="question-item"] | An individual question's wrapper, repeated for each question on screen. |
| [data-fluotest-el="question-title"] | A question's title text. |
| [data-fluotest-el="button-back"] | The Back button. |
| [data-fluotest-el="button-next"] | The Next / Submit / View results button. |
Example snippets#
A few common customizations to start from — copy, tweak the values, and paste into the Custom CSS field.
Customize the button color and shape
.fluotest-quiz [data-fluotest-el="button-next"] {
border-radius: 6px;
text-transform: uppercase;
letter-spacing: 0.04em;
}Adjust question spacing and title size
.fluotest-quiz [data-fluotest-el="question-item"] {
padding: 2rem;
}
.fluotest-quiz [data-fluotest-el="question-title"] {
font-size: 1.25rem;
margin-bottom: 1.5rem;
}Restyle the progress bar
.fluotest-quiz [data-fluotest-el="progress-track"] {
height: 6px;
}
.fluotest-quiz [data-fluotest-el="progress-fill"] {
background: linear-gradient(90deg, #9E3BB9, #FFD94D);
}What's sanitized#
Custom CSS is public-facing input, so it's sanitized before it's saved and again before it's rendered:
- No HTML tags: Anything that looks like an HTML tag (including </style>) is stripped, so your CSS can never break out of its <style> context.
- No @import: @import rules are removed — they could otherwise pull in a third-party stylesheet.
- No external url(): url() references are only kept if they point at a data: URI. Links to external hosts are stripped to prevent tracking-pixel-style abuse and mixed-content loads.
- No expression(): Legacy CSS expression() syntax is removed.
- 20,000 character limit: Anything past the limit is cut off — plenty for spacing, color, and typography overrides.
Frequently asked questions#
Does Custom CSS apply to my dashboard or just the public quiz?
Only the public, respondent-facing quiz page. Your dashboard and the quiz builder are never affected.
Can I use custom fonts or background images with url()?
Only via data: URIs (base64-encoded fonts or images inlined directly in your CSS). Links to externally hosted files are stripped for security.
Will my CSS break if FluoTest updates its design?
Target the data-fluotest-el attributes and the fluotest-quiz root class listed in the reference above — these are kept stable across design updates. Relying on other, unlisted classes may break in future updates.
Do I need to be on Pro to use custom CSS?
Yes. Custom CSS is a Pro-only feature, alongside custom domains, badge removal, and advanced analytics.