Layout

Card

Contenitore versatile con slot header, content e footer. Supporta varianti visive, icone, dimensioni e stati interattivi.

Import

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

Esempio Base

Props

PropTipoDefaultDescrizione
iconstring | nullnullIcona visualizzata nell'header (classe CSS, es. pi pi-user)
variant'default' | 'outlined' | 'elevated' | 'flat' | 'interactive''default'Variante visiva della card
size'small' | 'medium' | 'large''medium'Dimensione del padding interno
roundedbooleantrueBordi arrotondati
shadowbooleantrueOmbra esterna
borderbooleantrueBordo visibile
paddingbooleantruePadding nel contenuto
hoverablebooleanfalseEffetto hover interattivo
compactbooleanfalsePadding ridotto (modalità compatta)

Emits

Nessun evento emesso.

Slot

SlotScopeDescrizione
coverImmagine di copertina sopra l'header
headerHeader completo personalizzato (sostituisce title/subtitle/actions)
titleTitolo nella riga header
subtitleSottotitolo sotto il titolo
actionsAzioni/pulsanti nell'area destra dell'header
content / defaultContenuto principale della card
footerFooter della card

Esempi

Card con icona e azioni

Card con immagine di copertina

<template>
  <Card>
    <template #cover>
      <img src="/immagine.jpg" alt="Cover" class="w-full h-40 object-cover" />
    </template>
    <template #title>Card con Cover</template>
    <p>La cover viene mostrata sopra l'header.</p>
  </Card>
</template>

Varianti visive

Accessibilità

La Card è un elemento div strutturale. Utilizzare slot header/title con testo significativo per descrivere il contenuto. Per card interattive usare hoverable e assicurarsi che le azioni nel footer siano raggiungibili da tastiera.

TypeScript

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

const props: CardProps = {
  variant: 'outlined',
  size: 'medium',
  rounded: true,
  shadow: false,
  hoverable: true,
}