Card
Uso
El componente SCard proporciona un contenedor flexible para contenido. Soporta títulos, descripciones, iconos, botones de acción y estado de cierre.
Tamaños
Usa la prop size para cambiar el padding y el borde redondeado de la tarjeta.
Con Título y Descripción
Usa la prop title o el slot title, y el slot description para texto adicional.
Con Icono
Usa la prop icon con un string preset ('primary', 'success', 'danger', 'warning', 'info') para mostrar un icono predefinido con colores correspondientes.
Tipo de Icono
Usa la prop iconType para alternar entre los estilos 'solid' (por defecto) y 'ping'.
Color de Icono Personalizado
Usa la prop iconColor para sobreescribir el color del fondo y texto del icono de forma independiente al tipo de icono.
Icono Personalizado
Pasa un componente Vue a la prop icon para usar un icono personalizado.
<template>
<SCard :icon="ShieldTickIcon" title="Asegurado">
<template #description>Tu cuenta está protegida.</template>
</SCard>
</template>
<script setup lang="ts">
import { ShieldTickIcon } from '@placetopay/iconsax-vue/outline';
</script>
Cerrable
Establece closable en true para mostrar un botón de cierre. El componente emite un evento close al hacer clic.
Slot de Acciones
Usa el slot actions para agregar botones de acción personalizados en la parte inferior de la tarjeta.
<template>
<SCard icon="success" title="Invitación Enviada">
<template #description>La invitación ha sido enviada al usuario.</template>
<template #actions>
<SButton variant="primary">Aceptar</SButton>
<SButton variant="secondary">Rechazar</SButton>
</template>
</SCard>
</template>
Prop de Acciones
Usa la prop actions para renderizar botones de acción con iconos en una sección de pie dividida.
<template>
<SCard
title="Acciones Rápidas"
:actions="[
{ icon: PencilIcon, text: 'Editar', onClick: () => console.log('Editar') },
{ icon: TrashIcon, text: 'Eliminar', onClick: () => console.log('Eliminar') },
]"
>
<template #description>Elige una acción abajo.</template>
</SCard>
</template>
<script setup lang="ts">
import { PencilIcon, TrashIcon } from '@heroicons/vue/24/outline';
</script>
Props
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
title | string | - | Texto del título de la tarjeta |
size | 'sm' | 'md' | 'md' | Tamaño de la tarjeta (afecta padding y borde redondeado) |
icon | FunctionalComponent | 'primary' | 'success' | 'danger' | 'warning' | 'info' | - | Icono a mostrar. Usa un string para presets o un componente para iconos personalizados |
iconColor | 'primary' | 'success' | 'danger' | 'warning' | 'info' | - | Sobreescribe el color del icono independientemente de la variante |
iconType | 'solid' | 'ping' | 'solid' | Estilo de visualización del icono |
closable | boolean | - | Muestra un botón de cierre en el encabezado |
actions | TAction[] | - | Array de botones de acción renderizados en un pie dividido |
class | string | - | Clases CSS adicionales |
Eventos
| Evento | Payload | Descripción |
|---|---|---|
close | - | Se emite cuando se hace clic en el botón de cierre |
Slots
| Nombre | Descripción |
|---|---|
default | Contenido principal de la tarjeta |
title | Contenido personalizado del título (sobreescribe la prop title) |
description | Texto de descripción debajo del título |
actions | Sección de botones de acción en la parte inferior |