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

Slider

Selecciona un número o un intervalo ordenado con el puntero y el teclado.

Categoría
Formularios y selección
Import
@neural-ui/core/slider
Selector
neu-slider
import { NeuSliderComponent } from '@neural-ui/core/slider';

Uso

Un modelo numérico crea un cursor; un modelo readonly [number, number] crea un intervalo. No hay un input range. minValue/maxValue definen la escala y step los incrementos. minStepsBetweenThumbs mantiene una separación mínima. Utiliza NumberInput cuando sea importante escribir un valor exacto.

Ejemplos

Interactúa con el ejemplo y abre Código para ver su implementación completa.

Ejemplos
20€ – 60€

Prueba y configura

Cambia las opciones y prueba la vista previa. Despliega el valor de la aplicación o el evento para consultar los datos reales; el template generado permanece junto al configurador.

Prueba y configura

Vista previa

25%

Template generado: refleja las opciones anteriores. La pestaña Código incluye los imports y el estado.

template.html
<neu-slider
  [(value)]="volume"
  [minValue]="0"
  [maxValue]="100"
  [step]="1"
  orientation="horizontal"
  [showTicks]="false"
  [showValue]="true"
  [label]="'Volumen'"
  [unit]="'%'"
/>

Signal Forms

Enlaza FormField una sola vez al componente; el campo controla el valor y la validación. El validador required considera 0 un valor. El ejemplo añade min(10), por lo que un valor inferior a diez es inválido. Sal del control para marcarlo como visitado y restablece el campo para limpiar el valor y el estado de interacción.

Guía de Signal Forms

Signal Forms
0%

Válido: false

Valor y eventos

Utiliza [(value)] o [value] junto con (valueChange), no ambas formas. El modelo sincroniza el estado de la aplicación; los demás Outputs comunican los eventos documentados. touch comunica que se ha visitado o abandonado el control, no un valor nuevo.

Accesibilidad y teclado

Nombra el deslizador mediante label o ariaLabel y utiliza unit para describir el valor. Un intervalo presenta dos cursores enfocables con nombres de mínimo y máximo. Las flechas cambian un paso, PageUp/PageDown diez pasos y Home/End utiliza los límites permitidos del cursor enfocado.

Tecla
Acción
Tab Enfoca el cursor; un intervalo tiene dos puntos de foco.
Arrow keys Cambia el cursor enfocado un paso.
PageUp / PageDown Lo cambia diez pasos.
Home / End Va al mínimo o máximo permitido para ese cursor.

API

Los Inputs, modelos y Outputs proceden del contrato de Core fijado. Pulsa un tipo con nombre para abrir su definición. Este componente no tiene templates públicos.

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
ariaDescribedBystring''[ariaDescribedBy]IDs de los elementos que describen el control, separados por espacios.
ariaLabelstring''[ariaLabel]Nombre accesible cuando no hay una etiqueta visible.
dirtybooleanfalse[dirty]Estado del formulario que indica que el usuario ha cambiado el valor.
disabledbooleanfalse[disabled]Impide la interacción del usuario.
errorsreadonly ValidationError.WithOptionalFieldTree[][][errors]Errores de validación proporcionados por el formulario o la aplicación.
hiddenbooleanfalse[hidden]Oculta el control según el estado del formulario.
inputIdstringinject(NeuIdGenerator).getId('neu-slider-')Valor derivado[inputId]Identificador estable del control nativo; se genera si se omite.
invalidbooleanfalse[invalid]Muestra el estado inválido; no añade una regla de validación.
labelstring''[label]Etiqueta visible y nombre accesible del control.
maxValuenumber100[maxValue]Extremo superior de la escala.
minStepsBetweenThumbsnumber0[minStepsBetweenThumbs]Separación mínima entre cursores de intervalo, medida en múltiplos de step.
minValuenumber0[minValue]Extremo inferior de la escala.
namestring''[name]Nombre asociado al control nativo del formulario.
orientation"horizontal" | "vertical"'horizontal'[orientation]Orientación horizontal o vertical de la pista.
pendingbooleanfalse[pending]Estado del formulario que indica que hay una validación asíncrona pendiente.
readonlybooleanfalse[readonly]Mantiene el control enfocable y legible sin aceptar cambios.
requiredbooleanfalse[required]Marca el campo como obligatorio; utiliza un validador del formulario para exigirlo.
showTicksbooleanfalse[showTicks]Muestra marcas de la escala.
showValuebooleantrue[showValue]Muestra el valor actual con formato.
stepnumber1[step]Incremento admitido entre valores.
touchedbooleanfalse[touched]Estado del formulario que indica que el control ha sido visitado.
unitstring''[unit]Sufijo visual; el modelo sigue siendo numérico.

Models

Un modelo admite [(propiedad)]="signal" o la pareja [propiedad] y (propiedadChange). Elige una de las dos formas, no ambas.

Nombre
Tipo
Por defecto
Uso en el template
Descripción
valueV0 as VValor derivado[(value)]Valor numérico o intervalo readonly [number, number]. El tipo del modelo determina la interacció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
touchvoid(touch)="onTouch($event)"Notifica al formulario que el control ha sido visitado; no es un cambio de valor.

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.

Este componente no expone proyección de contenido ni templates públicos de personalización.

Public Types

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

Estilos y tokens

Carga los estilos de Core una sola vez. Utiliza los tokens públicos para personalizaciones locales o un preset para cambios de toda la aplicación. Conserva la legibilidad de etiquetas, foco, opciones seleccionadas y estados deshabilitados en modo claro y oscuro.

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-primary Color de marca en controles activos y énfasis Compartido con otros consumidores de Core; limita el cambio a un ámbito. #007aff
--neu-primary-dark Tono oscuro de marca; texto de Button outline y ghost en el tema claro Compartido con otros consumidores de Core; limita el cambio a un ámbito. #005fcc
--neu-surface Superficie principal del campo, cabecera o control Compartido con otros consumidores de Core; limita el cambio a un ámbito. #ffffff
--neu-surface-3 Superficies de controles destacados y al pasar el puntero Compartido con otros consumidores de Core; limita el cambio a un ámbito. #e2e8f0
--neu-text-disabled Texto de los controles deshabilitados Compartido con otros consumidores de Core; limita el cambio a un ámbito. #64748b
--neu-text-muted Etiquetas secundarias y contenido de ayuda Compartido con otros consumidores de Core; limita el cambio a un ámbito. #475569
--neu-font-sans Tipografía del texto Compartido con otros consumidores de Core; limita el cambio a un ámbito. 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif
--neu-primary-100 Valor del tema heredado que utiliza este componente Compartido con otros consumidores de Core; limita el cambio a un ámbito. #dbeafe