{
"images": [
{
"src": "https://picsum.photos/seed/masonry1/400/600",
"alt": "Vertical 1"
},
{
"src": "https://picsum.photos/seed/masonry2/400/300",
"alt": "Horizontal 1",
"title": "Paisaje",
"description": "Una foto de ejemplo"
},
{
"src": "https://picsum.photos/seed/masonry3/400/400",
"alt": "Cuadrada 1"
},
{
"src": "https://picsum.photos/seed/masonry4/400/500",
"alt": "Vertical 2",
"link": "https://example.com"
},
{
"src": "https://picsum.photos/seed/masonry5/400/350",
"alt": "Horizontal 2"
},
{
"src": "https://picsum.photos/seed/masonry6/400/550",
"alt": "Vertical 3",
"title": "Montaña"
},
{
"src": "https://picsum.photos/seed/masonry7/400/280",
"alt": "Panorámica 1"
},
{
"src": "https://picsum.photos/seed/masonry8/400/450",
"alt": "Vertical 4"
}
]
}GaleriaMasonry01.vueGalería de imágenes con layout masonry basado en CSS column-count. Soporta múltiples efectos hover (zoom, overlay, zoom-overlay), animación de entrada escalonada con IntersectionObserver, imágenes con título, descripción y enlace opcional, y diseño completamente responsive con reducción automática de columnas.
| Prop | Tipo | Default | Descripción |
|---|---|---|---|
images | MasonryImage[] | [] | Array de imágenes con src, alt, title, description y link opcionales. |
columns | number | 5 | Número de columnas en desktop. |
columnsTablet | number | 3 | Número de columnas en tablet. |
columnsMobile | number | 1 | Número de columnas en móvil. |
breakpointTablet | string | '1024px' | Breakpoint para cambiar a columnas tablet. |
breakpointMobile | string | '768px' | Breakpoint para cambiar a columnas móvil. |
gap | string | '1rem' | Espacio entre imágenes (valor CSS). |
hoverEffect | 'none' | 'zoom' | 'overlay' | 'zoom-overlay' | 'zoom' | Efecto visual al hacer hover sobre una imagen. |
animateEntry | boolean | true | Activa animación fade-in al entrar las imágenes en el viewport. |
borderRadius | string | '0.5rem' | Border radius de cada imagen. |
interface MasonryImage {
src: string // URL de la imagen
alt?: string // Texto alternativo (accesibilidad)
title?: string // Título mostrado en el overlay
description?: string // Descripción mostrada en el overlay
link?: string // URL de enlace al hacer clic en la imagen
}<GaleriaMasonry01
:images="[
{ src: '/fotos/paisaje.jpg', alt: 'Paisaje', title: 'Montañas' },
{ src: '/fotos/ciudad.jpg', alt: 'Ciudad', description: 'Vista aérea' },
{ src: '/fotos/retrato.jpg', alt: 'Retrato', link: 'https://example.com' },
]"
:columns="5"
:columns-tablet="3"
:columns-mobile="1"
breakpoint-tablet="1024px"
breakpoint-mobile="768px"
gap="1rem"
hover-effect="zoom-overlay"
:animate-entry="true"
border-radius="0.5rem"
/>