Componente

Scroll area

Um container de rolagem com barra de rolagem sobreposta customizada. Role vertical, horizontal ou ambos; escolha quando a barra aparece; dimensione e colora o thumb; esmaeça as bordas; e role ou leia a posição via a instância exposta.

Vertical e fade nas bordas

Autumn photo #1
Autumn photo #2
Autumn photo #3
Autumn photo #4
Autumn photo #5
Autumn photo #6
Autumn photo #7
Autumn photo #8
Autumn photo #9
Autumn photo #10
Autumn photo #11
Autumn photo #12
Autumn photo #13
Autumn photo #14
Autumn photo #15
Autumn photo #16
Autumn photo #17
Autumn photo #18
Autumn photo #19
Autumn photo #20
import { ChangeDetectionStrategy, Component } from '@angular/core';

import { HbScrollAreaImports } from '@herbst/ui';

@Component({
  selector: 'hb-demo-scroll-area-basic',
  imports: [HbScrollAreaImports],
  template: `
    <hb-scroll-area hbFade class="h-64 w-full max-w-xs rounded-md border border-border">
      <div class="flex flex-col gap-2 p-4">
        @for (n of items; track n) {
          <div class="rounded-md border border-border px-3 py-2 text-sm">Autumn photo #{{ n }}</div>
        }
      </div>
    </hb-scroll-area>
  `,
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class HbDemoScrollAreaBasicComponent {
  protected readonly items = Array.from({ length: 20 }, (_, i) => i + 1);
}

Horizontal, sempre visível e estilizada

Plate 1
Plate 2
Plate 3
Plate 4
Plate 5
Plate 6
Plate 7
Plate 8
Plate 9
Plate 10

Rolagem programática e eventos

Entry 1
Entry 2
Entry 3
Entry 4
Entry 5
Entry 6
Entry 7
Entry 8
Entry 9
Entry 10
Entry 11
Entry 12
Entry 13
Entry 14
Entry 15
Entry 16
Entry 17
Entry 18
Entry 19
Entry 20
Entry 21
Entry 22
Entry 23
Entry 24

idle · atBottom: true

Referência de API

hb-scroll-area

PropriedadeDescriçãoTipoPadrão
[hbOrientation] Quais eixos rolam. A área precisa de altura e/ou largura restrita. 'vertical' | 'horizontal' | 'both' 'vertical'
[hbType] Quando a barra aparece: no hover, durante a rolagem, sempre, ou auto (sempre que o conteúdo transborda). 'hover' | 'scroll' | 'always' | 'auto' 'hover'
[hbHideDelay] Para o tipo "scroll", o atraso em milissegundos antes da barra sumir após parar de rolar. number 600
[hbFade] Esmaece o conteúdo nas bordas em direção às quais é possível rolar. boolean false
[hbSize] / [hbVariant] Espessura da barra, e o tratamento de cor do thumb. 'sm' | 'md' | 'lg' / 'default' | 'subtle' | 'solid' 'md' / 'default'
(hbReachEnd) Emite "bottom" ou "right" quando o conteúdo é rolado até aquela borda — útil para carregamento infinito. 'bottom' | 'right'
exportAs "hbScrollArea" Referencie-a para chamar scrollToTop(), scrollToBottom(), scrollTo({ top, left }), e ler os signals atTop(), atBottom(), atStart(), atEnd(). methods / signals