Matrix
A grid of radio buttons or dropdowns for rating multiple items on the same scale.
Overview
The Matrix field renders a fixed-row grid. Row labels come from `matrixRows`; each column is defined in `matrixColumnDefs` with the same types and settings as table columns (text, rating, date, select, media, etc.).
Submission maps each row key to an object of column values, e.g. row_0: col_id → value.
Properties
| Property | Type | Default | Description |
|---|---|---|---|
| label | string | — | Human-readable label shown above the field or step heading. |
| required | boolean | false | When true, the form cannot submit without a value. |
| isHidden | boolean | false | Hides the field from respondents (may still store defaults). |
| isDisabled | boolean | false | Renders the field read-only. |
| instruction | string | undefined | Help text shown below the label (not the same as placeholder). |
| matrixRows | string[] | [] | Row labels for the matrix grid. |
| columns | MatrixCol[] | [] | Array of { label, value } objects for the scale options. |
| requireAll | boolean | false | Require all rows to be answered before submission. |
JSON Schema
{
"id": "service_eval",
"type": "matrix",
"label": "Service Evaluation",
"required": true,
"matrixRows": [
"Speed of service",
"Staff friendliness",
"Value for money",
"Overall satisfaction"
],
"matrixColumnDefs": [
{ "id": "score", "label": "Score", "type": "rating", "ratingMax": 5, "required": true },
{ "id": "notes", "label": "Notes", "type": "text" }
]
}Common Use Cases
- Course or workshop evaluations across several quality dimensions
- 360° feedback forms rating leadership competencies on one scale
- Product comparisons where each feature row maps to satisfaction columns
- Compliance checklists requiring a Likert response per policy area
- Event debriefs measuring venue, catering, programming, and logistics together