Componente
Carousel
Um slider arrastável baseado no Embla. Mostre um ou vários itens por vez, corra na horizontal ou vertical, faça loop, autoplay, e controle com botões anterior, próximo e pontos.
Básico
1
2
3
4
5
Slide 1 / 5
import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
import { HbCarouselImports } from '@herbst/ui';
@Component({
selector: 'hb-demo-carousel-basic',
imports: [HbCarouselImports],
template: `
<div class="flex flex-col gap-2">
<hb-carousel class="block w-96 max-w-full" hbSize="lg" (hbSelect)="current.set($event)">
<hb-carousel-content>
@for (n of slides; track n) {
<hb-carousel-item>
<div
class="flex h-40 items-center justify-center rounded-md bg-muted font-display text-4xl"
>
{{ n }}
</div>
</hb-carousel-item>
}
</hb-carousel-content>
<hb-carousel-previous />
<hb-carousel-next />
<hb-carousel-dots />
</hb-carousel>
<p class="font-mono text-[12px] text-muted-foreground">
Slide {{ current() + 1 }} / {{ slides.length }}
</p>
</div>
`,
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class HbDemoCarouselBasicComponent {
protected readonly slides = [1, 2, 3, 4, 5];
protected readonly current = signal(0);
}
Vários por vez e loop
1
2
3
4
5
6
7
8
Autoplay
1
2
3
4
Vertical e arraste livre
1
2
3
4
5
6
7
8
Referência de API
hb-carousel
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| [hbOrientation] | Eixo de rolagem do carrossel. | 'horizontal' | 'vertical' | 'horizontal' |
| [hbAlign] | Onde o slide ativo se encaixa na viewport. | 'start' | 'center' | 'end' | 'start' |
| [hbLoop] | Volta do último slide para o primeiro. | boolean | false |
| [hbDragFree] | Arraste de rolagem livre sem encaixar nos slides. | boolean | false |
| [hbSpacing] | Espaço entre os slides em pixels. | number | 16 |
| [hbSize] | Tamanho dos botões anterior/próximo e dos pontos. | 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'md' |
| [hbAutoplay] | Avança os slides automaticamente. | boolean | false |
| [hbDelay] | Intervalo do autoplay em milissegundos. | number | 4000 |
| (hbSelect) | Emite o índice do slide que ficou ativo. | number | — |
Parts
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| hb-carousel-content / hb-carousel-item | Trilho e seus slides; a basis do item (ex. basis-1/3) define quantos aparecem. | slot | — |
| hb-carousel-previous / hb-carousel-next | Botões que avançam ou voltam um slide. | element | — |
| hb-carousel-dots | Pontos de paginação refletindo o slide ativo. | element | — |