Feedback

OverlayBadge

Wrapper che posiziona un badge sovrapposto a qualsiasi elemento figlio. Utile per notifiche su icone, avatar e bottoni.

Import

import { OverlayBadge } from '@pzeta/vue-components'
// oppure tramite plugin:
import { FeedbackPlugin } from '@pzeta/vue-components'
app.use(FeedbackPlugin)

Esempio Base

Props

PropTipoDefaultDescrizione
valuestring | number | nullnullValore da mostrare nel badge sovrapposto
severity'primary' | 'secondary' | 'success' | 'info' | 'warn' | 'danger' | 'contrast' | 'help''danger'Severity che determina il colore del badge
size'small' | 'medium' | 'large''small'Dimensione del badge sovrapposto
variant'solid' | 'outlined' | 'subtle' | 'dot''solid'Variante visiva del badge
position'top-right' | 'top-left' | 'bottom-right' | 'bottom-left''top-right'Posizione del badge rispetto al contenuto
showZerobooleanfalseMostra il badge anche se value è 0 o stringa vuota
maxnumber | nullnullValore massimo: se value > max mostra "max+"
offsetXnumber0Offset orizzontale in pixel
offsetYnumber0Offset verticale in pixel
roundedbooleantrueBadge con bordi arrotondati
badgeClassstring''Classe CSS aggiuntiva per il badge
pingbooleanfalseAbilita animazione ping (pulsazione) per richiamare l'attenzione

Slot

SlotScopeDescrizione
defaultElemento su cui sovrapporre il badge

Esempi

Posizioni

Dot con ping (notifica live)

Limite massimo e showZero

Accessibilità

  • Il componente usa position: relative sul wrapper e position: absolute sul badge.
  • Il badge non è interattivo: aggiungere aria-label sull'elemento padre per comunicare il conteggio agli screen reader.

TypeScript

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

// OverlayBadgePosition = 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left'