Buttons

SpeedDial

Floating Action Button espandibile che mostra un insieme di azioni secondarie in direzione configurabile (up, down, left, right) con supporto a tooltip, link e colori per azione.

Import

import { SpeedDial } from '@pzeta/vue-components'
// oppure con plugin selettivo:
import { ButtonsPlugin } from '@pzeta/vue-components'
app.use(ButtonsPlugin)

Esempio Base

Props

PropTipoDefaultDescrizione
actionsSpeedDialAction[][]Array delle azioni da mostrare
direction'up' | 'down' | 'left' | 'right''up'Direzione di espansione delle azioni
iconstringundefinedClasse CSS dell'icona del pulsante principale (default dal tema)
activeIconstringundefinedClasse CSS dell'icona quando il menu è aperto
severitySeverity'primary'Colore (severity) del pulsante principale. 8 valori: primary, secondary, success, info, warn, danger, contrast, help
colorSeverityundefinedDeprecato — alias di severity, mantenuto per retrocompatibilità
ariaLabelstringundefinedNome accessibile del FAB. Se assente usa il default i18n button.speedDialAriaLabel
disabledbooleanfalseDisabilita il componente
tooltipPosition'top' | 'bottom' | 'left' | 'right''left'Posizione del tooltip sulle azioni
showLabelsbooleanfalseMostra sempre le label delle azioni (non solo come tooltip)

SpeedDialAction

Ogni azione nel array actions ha la seguente struttura:

CampoTipoObbligatorioDescrizione
idstring | numberSiIdentificatore univoco dell'azione
iconstringSiClasse CSS dell'icona (es. 'pi pi-pencil')
labelstringNoLabel tooltip dell'azione (usata anche come nome accessibile del button)
severitySeverityNoColore (severity) dell'azione (8 valori)
colorSeverityNoDeprecato — alias di severity, mantenuto per retrocompatibilità
loadingbooleanNoMostra uno spinner al posto dell'icona
disabledbooleanNoDisabilita la singola azione
hrefstringNoURL di navigazione (apre in nuova scheda se valido)
target'_blank' | '_self'NoTarget del link (default '_blank')

Emits

EventoPayloadDescrizione
actionClickSpeedDialActionEmesso al click su un'azione (non emesso se l'azione è disabilitata)
openEmesso all'apertura del menu
closeEmesso alla chiusura del menu (anche dopo click su un'azione)

Esempi

Direzioni di espansione

Severity personalizzate per azione

Azione con stato di caricamento

Con icona attiva e label visibili

Con azione disabilitata

La prop color (sia sul componente che sulle singole azioni) è deprecata in favore di severity. Resta funzionante come alias per retrocompatibilità, ma usa severity nel codice nuovo.

Accessibilità

  • Il pulsante principale ha disabled nativo quando la prop disabled è true.
  • Il FAB principale espone un nome accessibile tramite ariaLabel (o il default localizzato button.speedDialAriaLabel).
  • Ogni azione utilizza il campo label come nome accessibile del button e come tooltip nativo.
  • I link nelle azioni vengono aperti con noopener,noreferrer per sicurezza.
  • Le azioni disabilitate non emettono eventi e hanno l'attributo disabled nativo.
  • Posizionare lo SpeedDial in un contesto con sufficiente spazio per il menu espanso, usando layout relativi o assoluti.

TypeScript

import type { SpeedDialProps, SpeedDialEmits, SpeedDialAction } from '@pzeta/vue-components'
import type { SpeedDialDirection } from '@pzeta/vue-components'