Componente

Hover card

Um cartão flutuante revelado ao passar o mouse ou focar. Projete um gatilho, posicione o painel em qualquer lado e alinhamento, ajuste os atrasos de abrir/fechar, defina sua largura e controle-o como um overlay controlado.

Cartão de perfil

import { ChangeDetectionStrategy, Component } from '@angular/core';

import { HbAvatarImports, HbButtonComponent, HbHoverCardImports } from '@herbst/ui';

const portrait =
  'data:image/svg+xml,' +
  encodeURIComponent(
    "<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80'>" +
      "<defs><linearGradient id='g' x1='0' y1='0' x2='1' y2='1'>" +
      "<stop offset='0' stop-color='#A64B2A'/><stop offset='1' stop-color='#6B7A55'/>" +
      '</linearGradient></defs>' +
      "<rect width='80' height='80' fill='url(#g)'/></svg>",
  );

@Component({
  selector: 'hb-demo-hover-card-basic',
  imports: [HbHoverCardImports, HbButtonComponent, HbAvatarImports],
  template: `
    <hb-hover-card>
      <button hbHoverCardTrigger hb-button hbType="link">&#64;a.herbst</button>

      <hb-hover-card-content>
        <div class="flex gap-3">
          <hb-avatar [hbSrc]="portrait" hbAlt="A. Herbst" hbFallback="AH" hbSize="lg" />
          <div class="space-y-1">
            <p class="text-sm font-medium">A. Herbst</p>
            <p class="text-sm text-muted-foreground">
              Wanders German forests in autumn. Shares falling-leaf photos from the Black Forest.
            </p>
            <p class="pt-1 text-xs text-muted-foreground">Joined November 2026</p>
          </div>
        </div>
      </hb-hover-card-content>
    </hb-hover-card>
  `,
  changeDetection: ChangeDetectionStrategy.OnPush,
})
export class HbDemoHoverCardBasicComponent {
  protected readonly portrait = portrait;
}

Lado, alinhamento, offset e largura

Controlado, atrasos e desabilitado

Referência de API

hb-hover-card

PropriedadeDescriçãoTipoPadrão
[hbSide] Lado preferido do gatilho para abrir; inverte para o lado oposto se faltar espaço. 'top' | 'right' | 'bottom' | 'left' 'bottom'
[hbAlign] Alinhamento do painel ao longo do lado escolhido. 'start' | 'center' | 'end' 'center'
[hbSideOffset] Espaço em pixels entre o gatilho e o painel. number 4
[hbOpenDelay] / [hbCloseDelay] Atraso em milissegundos antes de abrir ao passar o mouse e antes de fechar ao sair. number 700 / 300
[hbOpen] Estado aberto controlado. Deixe indefinido para o comportamento embutido de hover/foco. boolean | undefined undefined
(hbOpenChange) Emite true/false conforme o cartão abre e fecha. boolean
[hbDisabled] Impede o cartão de abrir. boolean false

Trigger & content

PropriedadeDescriçãoTipoPadrão
[hbHoverCardTrigger] Marca o elemento projetado que abre o cartão ao passar o mouse/focar. directive
hb-hover-card-content [hbWidth] Largura do painel — um número (px) ou qualquer string de comprimento CSS; null para automático. number | string | null null
hb-hover-card-content [class] Classes extras mescladas sobre o estilo do painel. ClassValue ''