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
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
Rolagem programática e eventos
idle · atBottom: true
Referência de API
hb-scroll-area
| Propriedade | Descrição | Tipo | Padrã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 | — |