> ## Documentation Index
> Fetch the complete documentation index at: https://docs.feedal.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Choice questions

> Multiple choice, Checkbox, Dropdown, Yes/No, Picture choice, and Ranking — configuration options for every choice type.

Choice questions let respondents select from a predefined set of options. Most types share a common option editor; each type adds its own specific settings on top.

***

## Shared option editor

Multiple choice, Checkbox, Dropdown, Ranking, and Picture choice all use the same option list editor.

**Option list behaviour:**

* Click **Add option** to append a new option (labeled "Option N").
* Editing a label automatically rewrites the option's internal `value` to a lowercase underscore slug (e.g. "Very satisfied" → `very_satisfied`).
* Options can be reordered by drag.
* Removing an option clamps `min_selections` and `max_selections` down to the new option count if they would exceed it.

**Shared fields:**

| Field              | Type    | Default    | Notes                                                    |
| ------------------ | ------- | ---------- | -------------------------------------------------------- |
| `options`          | List    | 2 options  | Each option has a label, value, and optional image       |
| `randomize`        | Boolean | `false`    | Shuffles option order for each respondent                |
| `layout_alignment` | Enum    | `vertical` | `vertical` · `horizontal` · `grid` (hidden for Dropdown) |

***

## Multiple choice

Respondents select **one** option from a list.

<img src="https://mintlify.s3.us-west-1.amazonaws.com/feedal/images/building-forms-questions-multiple-choice.png" alt="Multiple choice question in the canvas" />

| Field               | Type    | Default | Notes                                   |
| ------------------- | ------- | ------- | --------------------------------------- |
| `allow_other`       | Boolean | `false` | Adds a free-text "Other" option         |
| `other_label`       | Text    | —       | Label shown next to the Other input     |
| `other_placeholder` | Text    | —       | Placeholder inside the Other text field |

***

## Checkbox

Respondents select **one or more** options from a list.

| Field               | Type    | Default | Notes                                                  |
| ------------------- | ------- | ------- | ------------------------------------------------------ |
| `min_selections`    | Number  | `1`     | Minimum options that must be selected (0–option count) |
| `max_selections`    | Number  | `2`     | Maximum options that can be selected (1–option count)  |
| `allow_other`       | Boolean | `false` | Adds a free-text "Other" option                        |
| `other_label`       | Text    | —       | Label for the Other option                             |
| `other_placeholder` | Text    | —       | Placeholder inside the Other text field                |

***

## Dropdown

Respondents select one option from a collapsed dropdown menu. Best for long option lists or when space is limited.

| Field         | Type    | Default             | Notes                                                  |
| ------------- | ------- | ------------------- | ------------------------------------------------------ |
| `placeholder` | Text    | `Choose an option…` | Hint text shown before a selection is made             |
| `allow_other` | Boolean | `false`             | Adds a free-text "Other" option at the end of the list |
| `randomize`   | Boolean | `false`             | Shuffles option order                                  |

<Note>
  `layout_alignment` is not applicable to Dropdown — options always appear in a
  vertical list inside the dropdown menu.
</Note>

***

## Yes / No

A binary choice with two clearly labelled buttons. Best for simple agree/disagree or yes/no questions.

| Field               | Type    | Default      | Notes                                    |
| ------------------- | ------- | ------------ | ---------------------------------------- |
| `labels_binary.yes` | Text    | `Yes`        | Label on the Yes button                  |
| `labels_binary.no`  | Text    | `No`         | Label on the No button                   |
| `show_icons`        | Boolean | `true`       | Shows emoji icons on the buttons         |
| `icons_binary.yes`  | Emoji   | `👍`         | Icon shown on the Yes button             |
| `icons_binary.no`   | Emoji   | `👎`         | Icon shown on the No button              |
| `layout_alignment`  | Enum    | `horizontal` | `horizontal` or `vertical` button layout |

***

## Picture choice

Respondents choose from options that each have an image. Best for visual product selection, mood boards, or any question where images communicate better than words.

| Field                 | Type    | Default  | Notes                                                         |
| --------------------- | ------- | -------- | ------------------------------------------------------------- |
| `multiple_selections` | Boolean | `false`  | Allows selecting more than one option                         |
| `min_selections`      | Number  | —        | Minimum selections (visible when `multiple_selections` is on) |
| `max_selections`      | Number  | —        | Maximum selections (visible when `multiple_selections` is on) |
| `show_labels`         | Boolean | `true`   | Shows the text label beneath each image                       |
| `image_aspect_ratio`  | Enum    | `square` | `square` · `landscape` · `portrait`                           |
| `image_fit`           | Enum    | `cover`  | `cover` (crop to fill) · `contain` (letterbox)                |
| `randomize`           | Boolean | `false`  | Shuffles option order                                         |
| `layout_alignment`    | Enum    | —        | `vertical` · `horizontal` · `grid`                            |

Each option has an individual image upload in the option editor.

***

## Ranking

Respondents drag options into their preferred order. Best for priority surveys or preference ranking.

| Field              | Type    | Default   | Notes                             |
| ------------------ | ------- | --------- | --------------------------------- |
| `options`          | List    | 3 options | Each option has a label and value |
| `randomize`        | Boolean | `false`   | Shuffles initial option order     |
| `layout_alignment` | Enum    | —         | Layout for ranking items          |

<Note>
  The answer to a Ranking question is stored as an ordered array of option
  values — e.g. `["option_b", "option_a", "option_c"]`.
</Note>

***

## Next steps

<CardGroup cols={2}>
  <Card title="Rating questions" icon="star" href="/building-forms/questions/rating">
    Star, number scale, emoji, and opinion scale.
  </Card>

  <Card title="Conditional branching" icon="code-branch" href="/building-forms/workflow/branching">
    Route respondents based on which option they selected.
  </Card>
</CardGroup>
