HoverCard Tarjeta Flotante
Introducción
Un contenedor emergente flotante y no modal que aparece cuando un usuario pasa el cursor por encima o enfoca un elemento desencadenante adjunto. Proporciona información contextual ligera, vistas previas enriquecidas o acciones rápidas sin navegar fuera de la página actual.
El componente HoverCard está totalmente integrado como un bloque hovercard en el Page Builder, permitiendo a los autores de contenido y desarrolladores vincular fácilmente elementos desencadenantes (como botones o fragmentos de texto) a bloques de vista previa detallados directamente dentro del CMS.
Uso a través del CMS Page Builder (JSON)
Estos ejemplos ilustran cómo los editores de contenido enlazan y estructuran bloques de vista previa de hovercard dentro de los esquemas de página JSON (content/pages/*.json).
1. Vista Previa de Perfil Estándar
Envuelve un botón desencadenante con una tarjeta flotante que muestra una vista rápida del usuario, incluyendo avatar, nombre y rol.
{
"type": "hovercard",
"openDelay": 200,
"closeDelay": 150,
"positioning": "bottom",
"trigger": [
{
"type": "button",
"text": "About the Author",
"variant": "outline"
}
],
"content": [
{
"type": "avatar",
"name": "J. Chen"
},
{
"type": "heading",
"level": 4,
"text": "Jules Chen"
},
{
"type": "text",
"text": "Lead Architect"
}
]
}
Lead Architect
Lead Architect
2. Contexto de Enlace Enriquecido
Utiliza JSX secundario personalizado para adjuntar una HoverCard a texto en línea. Muestra cómo se pueden inyectar texto de encabezado y descripciones personalizados.
{
"type": "hovercard",
"openDelay": 300,
"closeDelay": 100,
"positioning": "top",
"trigger": [
{
"type": "text",
"text": "Hono framework"
}
],
"content": [
{
"type": "heading",
"level": 4,
"text": "Hono"
},
{
"type": "text",
"text": "Ultrafast web framework for the Edge."
}
]
}
Ultrafast web framework for the Edge.
Ultrafast web framework for the Edge.
Referencia de Configuración CMS
Estos campos se asignan directamente a las propiedades de bloque de Sveltia CMS bajo public/admin/config.yml o las configuraciones del Page Builder:
| Propiedad | Tipo de Campo CMS | Predeterminado | Descripción / Opciones Compatibles |
|---|---|---|---|
Elemento Desencadenante (trigger) | list | - | Elementos de bloque (como Botones o Texto) renderizados en la página para activar la tarjeta flotante al pasar el cursor o enfocar. |
Contenido Flotante (content) | list | - | Elementos de bloque (como Avatar, Texto o Encabezado) renderizados dentro del cuerpo de la tarjeta de vista previa flotante. |
Retraso de Apertura (openDelay) | number | 200 | Duración en milisegundos que el sistema espera después del hover antes de renderizar el popup. |
Retraso de Cierre (closeDelay) | number | 150 | Duración en milisegundos que el sistema espera después de salir con el mouse antes de descartar el popup. |
Estrategia de Posicionamiento (positioning) | select | "bottom" | Borde preferido del desencadenante al que se adhiere la tarjeta. • Opciones: "top", "bottom", "left", "right". |
Contenido Interactivo (interactive) | boolean | false | Cuando es true, hidrata la tarjeta como una isla del lado del cliente, permitiendo que los enlaces y botones internos sean clicables. |
Notas para Desarrolladores y Accesibilidad
- Hidratación Retrasada Inteligente: Por defecto, el desencadenante y la tarjeta se renderizan como HTML estático. La HoverCard solo se hidrata como una isla del lado del cliente cuando se proporciona
"interactive": true, permitiendo enlaces internos clicables. - Cumplimiento WAI-ARIA: En su interior, el componente utiliza conexiones estándar
aria-describedbyy gestiona los anillos de foco correctamente. La tarjeta flotante se descarta correctamente cuando se presiona la tecla escape o el foco abandona los límites del desencadenante. - Respaldo de Foco Elegante: Como los eventos de hover no son accesibles para usuarios de teclado y lectores de pantalla, la tarjeta también se activa con el foco del teclado (tab), asegurando paridad para interacciones sin mouse.