Every question in a Birdhouse questionnaire has a screen component that controls its visual presentation. The screen defines the layout, text content, buttons, and supplementary UI elements.
Strapi vs. code-only properties
Not all screen properties are configurable from Strapi. The Strapi screen component only has these fields: question , description , continueButtonText (maps to buttonText at runtime), skipDetails , additionalInfo , and noMaxWidth . Other properties listed below (like layout, header, icon, error, loading) are set by the qnr-framework at runtime or in code — they are NOT available in the Strapi admin.
Property
Type
Default
Description
layout
enum
Centered
Controls the page layout mode
Layout options:
Value
Behavior
Centered
Standard centered layout. All other screen properties (header, description, buttonText, etc.) are rendered in their default positions. This is the default for most question types.
Standalone
Full-control layout. The question component takes over the entire screen. All other screen properties (header, description, buttonText, skipDetails, additionalInfo) are ignored . The question component is responsible for rendering everything. Used by BLOCKER, GENERIC_CHECKOUT_V2, REVIEW, and other full-page types.
Property
Type
Description
header
string
Text displayed above the question title. Typically used for step labels or section headers.
question
string
The main question text. This is the primary heading the user sees.
questionClassName
string
Custom CSS class applied to the question text element. Use for per-question styling overrides.
description
string
Explanatory text displayed below the question title. Use for additional context or instructions.
error
string
Error message text. Displayed with an animation when a validation fails.
Property
Type
Description
icon
object
Icon displayed above the header text.
Icon object:
Field
Type
Description
src
string
URL or path to the icon image
alt
string
Alt text for accessibility
Property
Type
Description
buttonText
string
Override the default submit button text. Default is typically “Continue” or “Next”.
loading
boolean
When true, displays a spinner inside the submit button. Used during async operations.
Property
Type
Description
skipDetails
object
Configures an optional secondary “skip” button below the main submit button.
skipDetails object:
Field
Type
Description
path
string
URL path to navigate to when skipping
title
string
Text displayed on the skip button
onClick
function
Custom click handler (code only)
skipQuestion
object
Contains a value field — the answer value to store when the user skips
Example use case: “I don’t know my IBAN” skip button that stores a placeholder value and moves to the next step.
Property
Type
Description
secondaryAction
JSX.Element
A custom React element rendered as an additional button or action. Only configurable in code, not from Strapi.
Property
Type
Description
additionalInfo
object
Configures an expandable information box displayed alongside the question.
additionalInfo object:
Field
Type
Required
Description
title
string
Yes
The clickable title/heading of the info box
description
string
No
Short description text
children
JSX.Element
No
Custom React content (code only)
moreInfo
JSX.Element
No
Expandable detail content (code only)
moreInfoLink
string
No
URL link for “Learn more”
Usage: Provide context without cluttering the main question. The user can expand the box to see details.
Property
Type
Description
noMaxWidth
boolean
When true, removes the default content max-width constraint. The question content can expand to fill the available horizontal space.
Property
Type
Description
configuration
object
Per-question config overrides. Accepts any key-value pairs to pass custom configuration to the question component.
The configuration object is passed directly to the question component at render time. Each question type may use different configuration keys. The only exception is progressBar — progress bar configuration is handled at the questionnaire metadata level, not per-question.
Property
Type
Strapi field
Description
question
string
question
Main question text
description
string
description
Text below question
buttonText
string
continueButtonText
Submit button text override (Strapi field name differs)
skipDetails
object
skipDetails
Skip button config
additionalInfo
object
additionalInfo
Info box config
noMaxWidth
boolean
noMaxWidth
Remove max-width
layout
enum
— (runtime)
Set automatically based on question type (e.g., BLOCKER → Standalone)
icon
{ src, alt }
— (runtime)
Set by the framework, not configurable in Strapi
header
string
— (runtime)
Set in code or by the framework
questionClassName
string
— (code only)
CSS class override
error
string
— (runtime)
Set by validation logic at runtime
loading
boolean
— (runtime)
Set during async operations
secondaryAction
JSX.Element
— (code only)
Additional action button
configuration
object
— (partial)
Per-question config, partially set by transforms