Componente
Toggle
Um botão de dois estados que permanece pressionado. Use-o sozinho com estado pressed bidirecional, um ícone, uma variante e tamanho; ou agrupe vários num toggle group para seleção única ou múltipla, conectado ou espaçado, com foco de teclado rotativo e suporte a form control.
Toggle avulso
bold: false · last change: —
import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
import { provideIcons } from '@ng-icons/core';
import { phosphorBell, phosphorStar, phosphorTextB } from '@ng-icons/phosphor-icons/regular';
import { HbToggleImports } from '@herbst/ui';
@Component({
selector: 'hb-demo-toggle-basic',
imports: [HbToggleImports],
viewProviders: [provideIcons({ phosphorTextB, phosphorStar, phosphorBell })],
template: `
<div class="flex flex-wrap items-center gap-3">
<hb-toggle [(hbPressed)]="bold" hbIcon="phosphorTextB" (hbChange)="last.set($event)">
Bold
</hb-toggle>
<hb-toggle hbVariant="outline" hbIcon="phosphorStar" hbSize="lg">Star</hb-toggle>
<hb-toggle hbVariant="outline" hbSize="sm" [hbPressed]="true">Subscribed</hb-toggle>
<hb-toggle hbIcon="phosphorBell" hbDisabled>Muted</hb-toggle>
</div>
<p class="mt-3 font-mono text-[12px] text-muted-foreground">
bold: {{ bold() }} · last change: {{ last() }}
</p>
`,
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class HbDemoToggleBasicComponent {
protected readonly bold = signal(false);
protected readonly last = signal<boolean | string>('—');
}
Grupo single
align: left · view: grid
Grupo multiple
marks: [bold, italic]
Referência de API
hb-toggle
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| [(hbPressed)] | O estado pressionado, bidirecional. Ignorado dentro de um toggle group (o grupo controla a seleção). | boolean | false |
| [hbValue] | Identifica o toggle dentro de um grupo — comparado com o valor do grupo. | unknown | null |
| [hbVariant] / [hbSize] | Sobrescreve a aparência por toggle; caso contrário herdado do grupo (ou dos padrões). | 'default' | 'outline' / 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'default' / 'md' |
| [hbIcon] | Ícone à esquerda renderizado antes do rótulo projetado. | string | '' |
| [hbDisabled] | Desabilita este toggle (o grupo também pode desabilitar todos). | boolean | false |
| (hbChange) | Emite o novo estado pressionado quando o toggle é ativado. | boolean | — |
hb-toggle-group
| Propriedade | Descrição | Tipo | Padrão |
|---|---|---|---|
| [hbType] | Seleção única (um valor, ou null) ou múltipla (um array). | 'single' | 'multiple' | 'single' |
| [(hbValue)] | O(s) valor(es) selecionado(s), bidirecional. Também funciona como form control (NG_VALUE_ACCESSOR). | unknown | unknown[] | null |
| [hbVariant] / [hbSize] | A aparência aplicada a cada toggle do grupo. | 'default' | 'outline' / 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'default' / 'md' |
| [hbConnected] | Une os toggles num controle segmentado contínuo; false os espaça com um gap. | boolean | true |
| [hbRollable] | Apenas modo single — permite clicar no toggle ativo de novo para limpar a seleção. | boolean | true |
| [hbDisabled] / [hbAriaLabel] | Desabilita o grupo inteiro, e o rotula para tecnologia assistiva. | boolean / string | false / "" |
| (hbChange) | Emite a nova seleção sempre que ela muda. | unknown | — |