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

ScrollArea

Mantén contenido largo en un área de desplazamiento acotada y accesible por teclado.

Categoría
Diseño y contenido
Import
@neural-ui/core/panel
Selector
neu-scroll-area
import { NeuScrollAreaComponent } from '@neural-ui/core/panel';

Uso

El desplazamiento nativo es el predeterminado. Define maxHeight y maxWidth opcional con dimensiones CSS. enhanced añade barras temáticas sin sustituir rueda, táctil o desplazamiento nativo. variant controla la visibilidad de las barras; mask añade degradados en los bordes. ariaLabel nombra el área, tabindex controla su foco y step el movimiento de las barras mejoradas. scrollTo() permite volver al inicio; scrollPositionChange comunica dimensiones y posiciones observadas.

Ejemplos

Prueba el comportamiento y abre Código para consultar la implementación.

Ejemplos
  1. Pedido 1 — Listo para enviar
  2. Pedido 2 — Listo para enviar
  3. Pedido 3 — Listo para enviar
  4. Pedido 4 — Listo para enviar
  5. Pedido 5 — Listo para enviar
  6. Pedido 6 — Listo para enviar
  7. Pedido 7 — Listo para enviar
  8. Pedido 8 — Listo para enviar
  9. Pedido 9 — Listo para enviar
  10. Pedido 10 — Listo para enviar
  11. Pedido 11 — Listo para enviar
  12. Pedido 12 — Listo para enviar

Posición vertical: 0

Prueba y configura

Cambia las opciones y prueba el resultado. El template generado sigue tu configuración; Código contiene la implementación ejecutable completa.

Prueba y configura
  1. Pedido 1 — Listo para enviar
  2. Pedido 2 — Listo para enviar
  3. Pedido 3 — Listo para enviar
  4. Pedido 4 — Listo para enviar
  5. Pedido 5 — Listo para enviar
  6. Pedido 6 — Listo para enviar
  7. Pedido 7 — Listo para enviar
  8. Pedido 8 — Listo para enviar
  9. Pedido 9 — Listo para enviar
  10. Pedido 10 — Listo para enviar
  11. Pedido 11 — Listo para enviar
  12. Pedido 12 — Listo para enviar

Posición vertical: 0

template.html
<neu-scroll-area
  maxHeight="200px"
  [enhanced]="false"
  [mask]="true"
  variant="auto"
  [step]="40"
  [tabindex]="0"
  ariaLabel="Pedidos recientes"
  (scrollPositionChange)="position.set($event)"
>
  <ol>
    @for (n of entries; track n) {
      <li>Pedido {{ n }}</li>
    }
  </ol>
</neu-scroll-area>

Datos y contenido

El contenido se aporta por proyección por defecto. scrollPositionChange comunica observaciones, no una propuesta de valor controlado. left es una posición lógica normalizada para RTL. Utiliza scrollTo() para desplazar el contenido desde tu aplicación.

Accesibilidad y teclado

Asigna ariaLabel al contenido desplazable para que el área con foco sea una región con nombre. Flechas y teclas de página conservan el desplazamiento nativo. Las barras mejoradas exponen su rol, ID del área controlada y valores actual, mínimo y máximo. Mantén tabindex en 0 cuando se necesite acceso por teclado.

Tecla
Acción
Tab Enfoca la región de desplazamiento nombrada y su contenido interactivo.
Arrow keys Desplaza la región enfocada mediante el comportamiento nativo del navegador.
PageUp / PageDown Desplaza una página cada vez en la región enfocada.

API

Inputs y Outputs corresponden al paquete fijado. Los tipos con nombre enlazan a sus definiciones; cada Template disponible tiene un ejemplo ejecutable.

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
ariaLabelstring''[ariaLabel]Nombre accesible del área desplazable.
enhancedbooleanfalse[enhanced]Habilita barras temáticas conservando el desplazamiento nativo.
maskbooleantrue[mask]Aplica degradados en los bordes con más contenido.
maxHeightstring'240px'[maxHeight]Altura máxima del área como dimensión CSS.
maxWidthstring | nullnull[maxWidth]Ancho máximo opcional como dimensión CSS.
stepnumber40[step]Movimiento en píxeles de los controles mejorados.
tabindexnumber0[tabindex]Tabindex del área, normalmente 0 o -1.
variantNeuScrollAreaVariant'auto'[variant]Política de visibilidad de las barras mejoradas.

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
scrollPositionChangeNeuScrollPosition(scrollPositionChange)="onScrollPositionChange($event)"Comunica top/left observados y dimensiones de contenido y área.

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 del área desplazable

Ver ejemplo
Proyección de contenido

Proyecta texto, listas o controles dentro del área nativa acotada.

<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 desplazable

*

Contenido desplazable

Entrega 1

Deja el paquete en recepción durante el horario de oficina.

Entrega 2

Deja el paquete en recepción durante el horario de oficina.

Entrega 3

Deja el paquete en recepción durante el horario de oficina.

Entrega 4

Deja el paquete en recepción durante el horario de oficina.

Entrega 5

Deja el paquete en recepción durante el horario de oficina.

Entrega 6

Deja el paquete en recepción durante el horario de oficina.

Entrega 7

Deja el paquete en recepción durante el horario de oficina.

Entrega 8

Deja el paquete en recepción durante el horario de oficina.

Entrega 9

Deja el paquete en recepción durante el horario de oficina.

Entrega 10

Deja el paquete en recepción durante el horario de oficina.

Entrega 11

Deja el paquete en recepción durante el horario de oficina.

Entrega 12

Deja el paquete en recepción durante el horario de oficina.

Métodos públicos

Nombre
Contrato
scrollToscrollTo(options: ScrollToOptions): void;

Public Types

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

Estilos y tokens

Utiliza tokens públicos de espaciado, superficie, texto y foco. Comprueba el contenido proyectado y los controles en ambos temas y con anchos reducidos.

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
Sin datos