Skip to content

Options communes

Appliquées à la plupart des contrôles (label, description, lecture seule, erreurs).

API

NameTypeDefaultDescription
placeholderStringPlaceholder du champ (là où le composant Nuxt UI le supporte).
focusBooleanAutofocus au montage.
readonlyBooleanChamp en lecture seule. Aussi activé si le schema a readOnly: true ou si config.readonly est vrai.
hideRequiredAsteriskBooleanMasque l’astérisque des champs requis.
showUnfocusedDescriptionBooleanAffiche la description du schema même hors focus.
hideDescriptionBooleanSupprime totalement la description.
clearOnHideBooleantrueSi une rule HIDE s’applique, remet la valeur à default / undefined. Mettre false pour conserver la valeur.
enableFilterErrorsBeforeTouchBooleanMasque les erreurs de validation tant que le champ n’a pas été touché.
clearableBooleanComportement « clear » (notamment rating : re-clic pour vider).
leadingIconStringIcône Nuxt Icon avant le contrôle (ex. i-lucide-mail).
trailingIconStringIcône Nuxt Icon après le contrôle (ex. i-lucide-check).
iconPlacement'outside' | 'inside''outside'outside : à côté du widget. inside : dans le chrome Nuxt UI (UInput, USelect, …).
stylesPartial<Theme>Surcharge locale des classes Tailwind du thème (voir Personnalisation).
formFieldObjectProps pass-through vers UFormField (voir Pass-through).

En mode inside, le pass-through reste prioritaire (options.input.leadingIcon, …). Les contrôles sans chrome d’icônes (checkbox, slider, number, …) ignorent inside — utilisez outside pour ceux-là.

Exemples

Description toujours visible + sans astérisque

json
{
  "type": "Control",
  "scope": "#/properties/bio",
  "options": {
    "showUnfocusedDescription": true,
    "hideRequiredAsterisk": true,
    "placeholder": "Quelques mots…"
  }
}

Lecture seule

json
{
  "type": "Control",
  "scope": "#/properties/id",
  "options": { "readonly": true }
}

Conserver la valeur quand le contrôle est masqué

json
{
  "type": "Control",
  "scope": "#/properties/secret",
  "rule": {
    "effect": "HIDE",
    "condition": {
      "scope": "#/properties/reveal",
      "schema": { "const": false }
    }
  },
  "options": { "clearOnHide": false }
}

Autofocus

json
{
  "type": "Control",
  "scope": "#/properties/email",
  "options": { "focus": true, "placeholder": "vous@exemple.fr" }
}

Icônes avant / après le contrôle

À côté du widget (outside, défaut) :

json
{
  "type": "Control",
  "scope": "#/properties/email",
  "options": {
    "leadingIcon": "i-lucide-mail",
    "trailingIcon": "i-lucide-check",
    "placeholder": "vous@exemple.fr"
  }
}

Dans le champ Nuxt UI (inside) :

json
{
  "type": "Control",
  "scope": "#/properties/email",
  "options": {
    "leadingIcon": "i-lucide-mail",
    "trailingIcon": "i-lucide-check",
    "iconPlacement": "inside",
    "placeholder": "vous@exemple.fr"
  }
}

Voir aussi l’exemple Leading / Trailing Icons (prepend-append-slots) dans le playground.

Publié sous licence BSD-3-Clause.