Saltar al contenido principal
Neural UIv2.0.0Documentación
Ver v1 GitHub

Gallery

Muestra una colección de imágenes con miniaturas y vista previa accesible a pantalla completa.

Categoría
Diseño y contenido
Import
@neural-ui/core/gallery
Selector
neu-gallery
import { NeuGalleryComponent } from '@neural-ui/core/gallery';

Uso

Cada elemento contiene src y una alternativa alt accesible; title es opcional. Usa activeIndex para controlar la imagen o initialIndex para el estado interno. Las miniaturas pueden aparecer debajo o al lado de la imagen. objectFit elige contain o cover. previewEnabled abre el visor desde la imagen principal; sus controles permiten ampliar, girar, voltear, restablecer y descargar. Todas las etiquetas de la barra se pueden traducir.

Ejemplos

Prueba la interacción y abre Código para ver la implementación completa.

Ejemplos

Imagen aplicada: 1 · Vista previa: cerrada · Ampliación: 1 · Rotación: 0° · Volteo: — · Errores: 0

Prueba y configura

Cambia las opciones, prueba el resultado y consulta el template actualizado. Código contiene el ejemplo ejecutable completo.

Prueba y configura

Imagen aplicada: 1 · Vista previa: cerrada · Ampliación: 1 · Rotación: 0° · Volteo: — · Errores: 0

Template generado con tus opciones actuales. Abre Código para consultar el ejemplo completo.

template.html
<neu-gallery
  [items]="images"
  [previewEnabled]="true"
  [showThumbnails]="true"
  [showCounter]="true"
  [showItemNavigators]="true"
  [circular]="false"
  [maxZoom]="3"
  thumbnailPosition="bottom"
  objectFit="contain"
  (activeIndexChange)="changeImage($event)"
  [activeIndex]="0"
  [ariaLabel]="'Galería de ilustraciones'"
  [closeLabel]="'Cerrar vista previa'"
  [downloadLabel]="'Descargar imagen'"
  [flipHorizontalLabel]="'Voltear horizontalmente'"
  [flipVerticalLabel]="'Voltear verticalmente'"
  [nextLabel]="'Imagen siguiente'"
  [previewLabel]="'Vista previa de imagen'"
  [previousLabel]="'Imagen anterior'"
  [resetLabel]="'Restablecer imagen'"
  [rotateLeftLabel]="'Girar a la izquierda'"
  [rotateRightLabel]="'Girar a la derecha'"
  [thumbnailLabel]="'Miniaturas de la galería'"
  [toolbarLabel]="'Controles de imagen'"
  [zoomInLabel]="'Ampliar'"
  [zoomOutLabel]="'Reducir'"
/>

Datos y contenido

Acepta activeIndexChange actualizando activeIndex. previewChange, zoomChange, rotationChange y flipChange comunican el estado observado del visor. imageError identifica el elemento y el índice de una carga fallida. El Template item sustituye la imagen principal; caption sustituye su descripción. Conserva un alt significativo en las imágenes personalizadas.

Accesibilidad y teclado

Usa las flechas, Inicio y Fin para navegar. Las miniaturas exponen el estado activo. La vista previa contiene el foco, se cierra con Escape y devuelve el foco al control que la abrió. Proporciona etiquetas traducidas, alternativas descriptivas y contenido accesible por teclado en los Templates.

Tecla
Acción
Tab Recorre los controles de la galería; el foco permanece dentro de una vista previa modal abierta.
ArrowLeft / ArrowRight Muestra el elemento anterior o siguiente de la galería.
Home Muestra el primer elemento.
End Muestra el último elemento.
Enter Activa la miniatura o el botón de galería enfocado.
Space Activa la miniatura o el botón de galería enfocado.
Escape Cierra la vista previa y devuelve el foco a su activador.

API

Inputs y Outputs corresponden al paquete instalado. Los tipos con nombre enlazan a sus definiciones. Cada Template disponible tiene un ejemplo con Demo y Código.

Inputs

Configura el componente con [propiedad]="valor". Tu aplicación proporciona estos valores; el componente no debe reemplazar el estado que le pasas.

Nombre
Tipo
Por defecto
Uso en el template
Descripción
activeIndexnumber | nullnull[activeIndex]Índice de imagen aplicado desde 0; null usa estado interno.
ariaLabelstring'Image gallery'[ariaLabel]Etiqueta de región del componente. Tradúcela para tu aplicación.
circularbooleanfalse[circular]Enlaza la primera y la última imagen.
closeLabelstring'Close preview'[closeLabel]Etiqueta de cerrar vista previa. Tradúcela para tu aplicación.
downloadLabelstring'Download image'[downloadLabel]Etiqueta de descargar imagen. Tradúcela para tu aplicación.
flipHorizontalLabelstring'Flip horizontally'[flipHorizontalLabel]Etiqueta de volteo horizontal. Tradúcela para tu aplicación.
flipVerticalLabelstring'Flip vertically'[flipVerticalLabel]Etiqueta de volteo vertical. Tradúcela para tu aplicación.
imageLoading"eager" | "lazy"'lazy'[imageLoading]Política nativa eager o lazy de carga de imágenes.
initialIndexnumber0[initialIndex]Índice inicial para navegación no controlada.
itemsreadonly NeuImageViewerItem[][][items]Imágenes con src, alt y title opcional.
maxZoomnumber3[maxZoom]Escala máxima en la vista previa.
nextLabelstring'Next image'[nextLabel]Etiqueta de navegación siguiente. Tradúcela para tu aplicación.
objectFit"cover" | "contain"'contain'[objectFit]Ajusta la imagen principal con contain o cover.
previewEnabledbooleantrue[previewEnabled]Habilita la vista previa desde la imagen principal.
previewLabelstring'Image preview'[previewLabel]Etiqueta de vista previa de imagen. Tradúcela para tu aplicación.
previousLabelstring'Previous image'[previousLabel]Etiqueta de navegación anterior. Tradúcela para tu aplicación.
resetLabelstring'Reset image'[resetLabel]Etiqueta de restablecer imagen. Tradúcela para tu aplicación.
rotateLeftLabelstring'Rotate left'[rotateLeftLabel]Etiqueta de giro a la izquierda. Tradúcela para tu aplicación.
rotateRightLabelstring'Rotate right'[rotateRightLabel]Etiqueta de giro a la derecha. Tradúcela para tu aplicación.
showCounterbooleanfalse[showCounter]Muestra el contador de imagen activa.
showItemNavigatorsbooleantrue[showItemNavigators]Muestra los botones de imagen anterior y siguiente.
showThumbnailsbooleantrue[showThumbnails]Muestra la tira de miniaturas.
thumbnailLabelstring'Gallery thumbnails'[thumbnailLabel]Etiqueta de navegación de miniaturas. Tradúcela para tu aplicación.
thumbnailPosition"bottom" | "start"'bottom'[thumbnailPosition]Coloca las miniaturas debajo o al lado de la imagen.
toolbarLabelstring'Image controls'[toolbarLabel]Etiqueta de controles de vista previa. Tradúcela para tu aplicación.
zoomInLabelstring'Zoom in'[zoomInLabel]Etiqueta de ampliar imagen. Tradúcela para tu aplicación.
zoomOutLabelstring'Zoom out'[zoomOutLabel]Etiqueta de reducir imagen. Tradúcela para tu aplicación.

Outputs

Escucha un evento con (evento)="handler($event)". La tabla indica qué datos recibe tu función y cómo utilizarlos.

Nombre
Valor emitido
Uso en el template
Descripción
activeIndexChangenumber(activeIndexChange)="onActiveIndexChange($event)"Propone un índice activo desde 0.
flipChange{ x: number; y: number; }(flipChange)="onFlipChange($event)"Comunica los signos de escala horizontal x y vertical y: 1 sin volteo y -1 volteado.
imageError{ item: NeuGalleryItem; index: number; }(imageError)="onImageError($event)"Identifica la imagen fallida y su índice.
previewChangeboolean(previewChange)="onPreviewChange($event)"Comunica si está abierta la vista previa.
rotationChangenumber(rotationChange)="onRotationChange($event)"Comunica la rotación observada en grados.
zoomChangenumber(zoomChange)="onZoomChange($event)"Comunica la escala observada de imagen.

Templates

ng-content proyecta contenido dentro del componente. Los inputs TemplateRef reciben un template; las directivas ng-template identifican templates con un contexto tipado. Una directiva compartida en el entrypoint no es necesariamente un slot de este componente.

Nombre
Mecanismo
Contrato
NeuGalleryCaptionDirectiveVer ejemplo Directiva pública de templateng-template[neuGalleryCaption]
NeuGalleryItemDirectiveVer ejemplo Directiva pública de templateng-template[neuGalleryItem]

Cada ejemplo muestra un template diferente. Alterna entre Demo y Código para consultar su implementación, imports y estado.

Public Types

Abre un tipo para consultar su definición y los campos de sus interfaces.

Estilos y tokens

Personaliza los tokens públicos disponibles y comprueba ambos temas. Las ilustraciones y el estado de los ejemplos no son Inputs de Core.

Tokens específicos

Este componente utiliza tokens compartidos del tema en lugar de tokens específicos.

Tokens compartidos utilizados

Sobrescríbelos en un contenedor local para afectar a este ejemplo. Una modificación en :root afecta a los demás componentes que utilizan el mismo token.

Token
Efecto aquí
Otros efectos
Valor / alternativa
--neu-border Bordes normales de controles y celdas Compartido con otros consumidores de Core; limita el cambio a un ámbito. rgba(15, 23, 42, 0.08)
--neu-focus-ring Anillo normal del foco de teclado Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0 0 0 var(--neu-focus-ring-width) rgba(0, 122, 255, 0.15)
--neu-primary Color de marca en controles activos y énfasis Compartido con otros consumidores de Core; limita el cambio a un ámbito. #007aff
--neu-radius Radio de las esquinas del control Compartido con otros consumidores de Core; limita el cambio a un ámbito. 8px
--neu-surface Superficie principal del campo, cabecera o control Compartido con otros consumidores de Core; limita el cambio a un ámbito. #ffffff
--neu-surface-2 Superficies secundarias y filas alternas Compartido con otros consumidores de Core; limita el cambio a un ámbito. #f1f5f9
--neu-text Color del texto principal y de los iconos que lo heredan Compartido con otros consumidores de Core; limita el cambio a un ámbito. #0f172a
--neu-radius-lg Radio de esquina Compartido con otros consumidores de Core; limita el cambio a un ámbito. 12px