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

Compare

Revela contenido anterior y posterior con un slider de comparación controlado.

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

Uso

Compare es un único control antes/después, compuesto por tres piezas auxiliares, no cuatro comparadores diferentes. Importa NeuCompareComponent, NeuCompareItemComponent, NeuCompareIndicatorComponent y NeuCompareHandleComponent desde @neural-ui/core/compare. Los ejemplos completos de esta página muestran cómo encajan. La misma ilustración de costa aparece en gris antes y en color después; esos estilos de imagen pertenecen a la aplicación.

Utiliza dos CompareItem, un CompareIndicator y un CompareHandle. position="before" o "after" identifica cada superficie. Acepta valueChange asignando $event.value al valor aplicado; defaultValue es un respaldo, no un estado local persistente. El indicador y el control heredan la orientación y posición del padre y deben estar dentro de Compare.

Ejemplos

Prueba esta interacción gestionada por la aplicación. Código incluye los eventos y los datos iniciales.

Ejemplos
Luz de costa antes del ajuste de colorAntes
Luz de costa después del ajuste de colorDespués

Eventos: 0

Prueba y configura

Cambia las opciones públicas, prueba el resultado y consulta el template actualizado. Código contiene la implementación ejecutable completa.

Prueba y configura
Luz de costa antes del ajuste de colorAntes
Luz de costa después del ajuste de colorDespués

Eventos: 0

template.html
<neu-compare
  class="remaining-compare"
  [value]="position()"
  (valueChange)="position.set($event.value)"
  (valueChangeEnd)="record('valueChangeEnd', $event.value)"
  [orientation]="'horizontal'"
  [disabled]="false"
  [slideOnHover]="false"
  [step]="5"
  ><neu-compare-item position="before"
    ><div class="remaining-compare-surface remaining-before remaining-compare-surface--image">
      <img class="remaining-compare-image" src="assets/media/coast.svg" [alt]="t('Coastal light before color adjustment', 'Luz de costa antes del ajuste de color')" width="800" height="450" draggable="false" />
      <span class="remaining-compare-caption">{{ t("Before", "Antes") }}</span>
    </div></neu-compare-item
  ><neu-compare-item position="after"
    ><div class="remaining-compare-surface remaining-after remaining-compare-surface--image">
      <img class="remaining-compare-image" src="assets/media/coast.svg" [alt]="t('Coastal light after color adjustment', 'Luz de costa después del ajuste de color')" width="800" height="450" draggable="false" />
      <span class="remaining-compare-caption">{{ t("After", "Después") }}</span>
    </div></neu-compare-item
  ><neu-compare-indicator
    ><span class="remaining-compare-line"></span></neu-compare-indicator
  ><neu-compare-handle
    [ariaLabel]="t('Compare position', 'Posición de comparación')"
    ></neu-compare-handle
  ></neu-compare
>

Estado y eventos

Compón Compare con dos CompareItem, un CompareIndicator y un CompareHandle. position="before" o "after" identifica cada superficie. Acepta valueChange asignando $event.value al valor aplicado; defaultValue es un valor de respaldo, no un estado local persistente. El indicador y el control heredan la orientación y posición del padre y deben estar dentro de Compare. El contenido proyectado pertenece a la aplicación.

Accesibilidad y teclado

Enfoca CompareHandle con Tab. Las flechas ajustan la posición e Inicio/Fin alcanzan los límites. El arrastre propone cambios mediante los mismos Outputs.

Tecla
Acción
Tab Enfoca el control de rango CompareHandle habilitado.
Arrow keys Ajusta la posición de la comparación mediante el control de rango.
Home Lleva la posición al mínimo.
End Lleva la posición al máximo.

API

Inputs, modelos y Outputs se extraen del paquete Core instalado. Los tipos públicos enlazan a sus definiciones. Los Templates incluyen ejemplos ejecutables.

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
defaultValuenumber50[defaultValue]Posición de respaldo si value es undefined; no gestiona un valor local persistente.
disabledbooleanfalse[disabled]Impide interactuar con este control.
maxnumber100[max]Límite numérico superior.
minnumber0[min]Límite numérico inferior.
orientationNeuCompareOrientation'horizontal'[orientation]Diseño principal y orientación de teclado: horizontal o vertical.
slideOnHoverbooleanfalse[slideOnHover]Propone cambios de posición al mover el puntero sin exigir un arrastre.
stepnumber1[step]Incremento de posición de la comparación en puntos porcentuales.
valuenumber | undefinedundefined[value]Posición aplicada de la comparación en porcentaje. Acepta valueChange para mover la separació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
valueChangeNeuCompareValueChangeEvent(valueChange)="onValueChange($event)"Propone la posición siguiente en $event.value. Aplícala a value para aceptar el cambio.
valueChangeEndNeuCompareValueChangeEvent(valueChangeEnd)="onValueChangeEnd($event)"Informa de la posición al terminar una interacción de puntero o teclado.

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
*

Contenido proyectado

Ver ejemplo
Proyección de contenido

Contenido proporcionado por la aplicación.

<ng-content />

Contexto utilizado: —

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

Contenido proyectado

*

Contenido proyectado
Luz de costa antes del ajuste de colorAntes
Luz de costa después del ajuste de colorDespués

Eventos: 0

Public Types

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

Estilos y tokens

Usa los tokens públicos de la referencia. El diseño del contenedor pertenece a tu aplicación; comprueba el resultado en modo claro y oscuro y en espacios estrechos.

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-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-primary-fg Contenido dibujado sobre el fondo primario Compartido con otros consumidores de Core; limita el cambio a un ámbito. #ffffff
--neu-shadow Elevación de la superficie o capa Compartido con otros consumidores de Core; limita el cambio a un ámbito. 0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.04)