
# Champs texte

Six types de champs stockent du contenu textuel, des libellés courts au texte enrichi formaté en passant par les chaînes validées. Tous partagent les [propriétés de base des champs](/fr/docs/tables-overview#proprietes-de-base-des-champs).

| Type               | Stocke                                                                             |
| ------------------ | ---------------------------------------------------------------------------------- |
| `single-line-text` | Texte court sur une seule ligne (noms, titres, libellés).                          |
| `long-text`        | Texte brut multiligne (descriptions, notes, commentaires).                         |
| `rich-text`        | HTML formaté rendu avec un éditeur WYSIWYG.                                        |
| `email`            | Adresse e-mail validée selon la RFC 5322.                                          |
| `url`              | Adresse web validée comme URL absolue.                                             |
| `phone-number`     | Numéro de téléphone stocké comme texte ; préserve la mise en forme internationale. |

## `single-line-text`

Texte court limité à une seule ligne. Stocké tel quel sans mise en forme.

| Propriété | Description                                               |
| --------- | --------------------------------------------------------- |
| `default` | Chaîne par défaut attribuée aux nouveaux enregistrements. |

```yaml
- { id: 1, name: title, type: single-line-text, required: true, indexed: true, default: Untitled }
```

## `long-text`

Texte brut multiligne. Prend en charge les sauts de ligne ; aucune mise en forme enrichie (pas de gras/italique).

| Propriété | Description                                               |
| --------- | --------------------------------------------------------- |
| `default` | Chaîne par défaut attribuée aux nouveaux enregistrements. |

```yaml
- { id: 2, name: description, type: long-text, default: 'Enter description here...' }
```

## `rich-text`

Texte formaté avec gras, italique, liens, listes, titres et plus encore. Rendu avec un éditeur WYSIWYG Tiptap et stocké en HTML.

| Propriété        | Description                                                                                                                                                                               |
| ---------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `maxLength`      | Longueur maximale en caractères (entier ≥ 1). Valide à la saisie.                                                                                                                         |
| `fullTextSearch` | Booléen. Active l'indexation pour la recherche plein texte sur ce champ.                                                                                                                  |
| `toolbar`        | Tableau des actions de barre d'outils autorisées (par ex. `bold`, `italic`, `link`, `heading`, `list`, `image`, `code-block`, `table`). Lorsqu'omis, toutes les actions sont disponibles. |
| `placeholder`    | Texte indicatif affiché lorsque l'éditeur est vide.                                                                                                                                       |
| `collaborative`  | Booléen. Active l'édition collaborative en temps réel (Yjs).                                                                                                                              |

```yaml
- id: 3
  name: article_content
  type: rich-text
  required: true
  maxLength: 10000
  toolbar: [bold, italic, link, heading, list]
  placeholder: 'Write your article...'
```

## `email`

Champ texte qui valide les adresses e-mail (RFC 5322). Souvent défini avec `unique: true` et `indexed: true` pour l'authentification et les recherches.

| Propriété | Description                                                       |
| --------- | ----------------------------------------------------------------- |
| `default` | Adresse e-mail par défaut attribuée aux nouveaux enregistrements. |

```yaml
- { id: 4, name: email, type: email, required: true, unique: true, indexed: true }
```

## `url`

Champ texte qui valide les adresses web. Prend en charge plusieurs protocoles (`http://`, `https://`, `ftp://`, …).

| Propriété | Description                                            |
| --------- | ------------------------------------------------------ |
| `default` | URL par défaut attribuée aux nouveaux enregistrements. |

```yaml
- { id: 5, name: website, type: url, indexed: true, default: 'https://example.com' }
```

## `phone-number`

Champ texte pour les numéros de téléphone. Les numéros sont stockés exactement tels que saisis (espaces, tirets, parenthèses conservés) ; aucune mise en forme automatique n'est appliquée, ce qui autorise tout format international.

| Propriété | Description                                                           |
| --------- | --------------------------------------------------------------------- |
| `default` | Numéro de téléphone par défaut attribué aux nouveaux enregistrements. |

```yaml
- { id: 6, name: mobile_phone, type: phone-number, unique: true, default: '+1 (555) 000-0000' }
```

:::callout
**Recherche plein texte et pertinence.** Définissez `indexed: true` ainsi que `searchWeight` (`A`–`D`) sur les champs texte dont la source de données utilise la recherche plein texte, afin de contrôler le classement par pertinence. `rich-text` expose également `fullTextSearch` pour intégrer cette colonne dans l'index de recherche.
:::
