---
title: Forms
template: docs
taxonomy:
    category: docs
routes:
  default: '/dev/forms'
---

# Forms

YunoHost uses a lot of forms. You can found here information on supported types question and properties.

## Questions

!!! Questions are called `Options` in the code.

### Generic properties

| Property | Scope        | Description | Example |
|----------|--------------|-------------|---------|
| `type`   | Everywhere   | Specify the type of the question (see bellow for the list) | `type = "string"` |
| `ask`    | Everywhere   | The title of the question            | `ask.en = "Cats or dogs ?"` |
| `help`    | Everywhere  | An help message            | `help.en = "Think carefully!"` |
| `optional`| Everywhere  | Set true if the question is not mandatory  | `optional = true` |
| `readonly`| Everywhere  | Avoid user to be able to change the value | `readonly = true` |
| `example` | Everywhere  | Give an example to help to understand the format of the answer| `example = "camille@example.com"` |
| `pattern.regexp` | Everywhere  | Regex to validate the new value| `pattern.regexp = "^.+@.+$"` |
| `pattern.error` | Everywhere  | Error to display if the pattern doesn't match | |
| `redact` | Everywhere  | Avoid a confidential value to be logged | `redact = true` |
| `default` | Install     | A default value for the question            | |
| `visible` | ConfigPanel | A simple js expression based on other short keys questions to hide or display dynamically the question| `visible = "login && ! private_key"` |
| `bind` | AppConfigPanel | See [App configuration panel doc](/packaging_config_panels) | `bind = "__INSTALL_DIR__/config.yml"` |

- `help`, `optional`, `readonly` and `visible` are also available on panels and sections entities.
- Long help messages could not to be correctly displayed for user using YunoHost CLI
- For the moment `default` properties are not supported in app config panel and you have to initialize the value by yourself in config file or settings.

### `display_text` (readonly)

Display a simple text.

### `markdown` (readonly)

Display a markdown (if you don't use markdown features, prefer display_text)

### `alert` (readonly)

Display an alert box with different style.

| Property | Description  | Default |
|----------|--------------|---------|
| `style`    | Style of the alert box (success, info, warning, danger) | info |

### `button`

Display a button with different style (useful for custom actions).

| Property | Description  | Default |
|----------|--------------|---------|
| `style`    | Style of the alert box (success, info, warning, danger) | success|
| `enabled`    | Enable or disable the button | True        |

### `string`

Input text monoline.

### `text`

Input text multilines

| Property | Description  | Default |
|----------|--------------|---------|
| `redact`    | Style of the alert box (success, info, warning, danger) | success|

### `password`

Password input. `{}` chars are forbidden and value is not added to logs.

### `color`

Hexadecimal color starting with # with a color picker.

### `number`

An integer.

| Property | Description  | Example |
|----------|--------------|---------|
| `min`    | Minimal value             |         |
| `max`    | Maximum value |         |
| `step`   | Steps between each next possible value |         |

### `range`

| Property | Description  | Example |
|----------|--------------|---------|
| `min`    | Minimal value             |         |
| `max`    | Maximum value |         |
| `step`   | Steps between each next possible value |         |

### `boolean`

| Property | Description  | Example |
|----------|--------------|---------|
| `yes`    |              |         |
| `no`     |              |         |

### `date`

A date picker with date in the format YYYY-MM-DD

### `time`

A time picker

### `email`

An email input

### `path`

### `url`

By default it ask for a web URL but you can change the `pattern` if you want to.

### `file`

File question

| Property | Description  | Example |
|----------|--------------|---------|
| `accept`    | Same format than HTML file input |         |

! This file type is not made for big files transfer, it's just for small logo, or config files.

### `select`

Dropdown

| Property | Description  | Example |
|----------|--------------|---------|
| `choices`  | list or dictionary of choices |         |

### `tags`

Multi choices selection.

| Property | Description  | Example |
|----------|--------------|---------|
| `choices` | List or dictionary of choices |        |

### `domain`

List all added domains

### `app`

List all installed apps

### `user`

List all users

### `group`

List all groups
