---
title: select
label: Select
---
The select widget allows you to pick a string value from a dropdown menu.

* **Name:** `select`
* **UI:** select input
* **Data type:** string or array
* **Options:**

  * `default`: `options` must contain any default values

    * string values: accepts a string; defaults to an empty string. Accepts an array of strings and defaults to an empty array  with `multiple: true` enabled.
    * object with `label` and `value` fields: accepts an object with `label` and `value` field or an array of such objects when `multiple: true` is enable. Defaults to no value
  * `options`: (**required**) there are two ways to list of options for the dropdown menu:

    * string values: the dropdown displays the value directly
    * object with `label` and `value` fields: the label displays in the dropdown; the value saves in the file
  * `multiple`: accepts a boolean; defaults to `false`
  * `min`: minimum number of items; ignored if **multiple** is  `false`
  * `max`: maximum number of items; ignored if **multiple** is  `false`
* **Example** (options as strings):

  ```yaml
  - label: "Align Content"
    name: "align"
    widget: "select"
    options: ["left", "center", "right"]
  ```

  Selecting the `center` option, will save the value as:

  ```yaml
  align: "center"
  ```
* **Example** (options as objects):

  ```yaml
  - label: "City"
    name: "airport-code"
    widget: "select"
    options:
      - { label: "Chicago", value: "ORD" }
      - { label: "Paris", value: "CDG" }
      - { label: "Tokyo", value: "HND" }
  ```

  Selecting the `Chicago` option, will save the value as:

  ```yaml
  airport-code: "ORD"
  ```
* **Example** (multiple):

  ```yaml
  - label: "Tags"
    name: "tags"
    widget: "select"
    multiple: true
    options: ["Design", "UX", "Dev"]
    default: ["Design"]
  ```
* **Example** (min/max):

  ```yaml
  - label: "Tags"
    name: "tags"
    widget: "select"
    multiple: true
    min: 1
    max: 3
    options: ["Design", "UX", "Dev"]
    default: ["Design"]
  ```