Forms

FormLabel

Etichetta accessibile per campi form. Supporta stato di errore, indicatore di campo obbligatorio con testo nascosto per screen reader e personalizzazione tramite slot.

Import

import { FormLabel } from '@pzeta/vue-components'

Esempio Base

Props

PropTipoDefaultDescrizione
labelstringobbligatorioTesto della label
htmlForstringID dell'input associato (corrisponde all'attributo for)
idstringID della label (per aria-labelledby)
requiredbooleanfalseMostra asterisco e testo "obbligatorio" per screen reader
errorbooleanfalseStato di errore (cambia classe CSS)
componentPrefixstring'form'Prefisso per le classi CSS BEM (hs-{prefix}-label)
labelClassstring''Classe CSS aggiuntiva per la label

Slot

SlotScopeDescrizione
defaultTesto personalizzato della label (sovrascrive la prop label)

Esempi

Label standard

Campo obbligatorio

Con stato di errore

Con slot personalizzato

Integrazione con input custom

Classi CSS Generate

Le classi CSS seguono la convenzione BEM con prefisso hs-{componentPrefix}:

CondizioneClassi applicate
Stato normalehs-{prefix}-label hs-{prefix}-label-default
Stato errorehs-{prefix}-label hs-{prefix}-label-error

Accessibilità

  • L'elemento <label> è associato all'input tramite l'attributo for (prop htmlFor)
  • Per i campi required viene renderizzato:
    • <span aria-hidden="true">*</span> — asterisco visivo, ignorato dagli screen reader
    • <span class="sr-only">(obbligatorio)</span> — testo leggibile solo dagli screen reader
  • Gli attributi HTML aggiuntivi passati al componente vengono propagati all'elemento <label> tramite v-bind="attrs"

TypeScript

import type { FormLabelProps } from '@pzeta/vue-components'

// FormLabelProps è definita internamente al componente
// Non è esportata come tipo dedicato dal package
// Usare le prop direttamente nel template

Nota: FormLabel è usato internamente da tutti i componenti form della libreria (InputText, InputNumber, Password, Textarea, InputMask). Va usato direttamente solo quando si costruisce un campo form personalizzato.