Hover Card

HoverCard - Phlex implementation

Examples

Default

For sighted users to preview content available behind a link.

<%= render "ui/hover_card" do %>
  <%= render "ui/hover_card/trigger", as_child: true do |attrs| %>
    <%= render "ui/button", variant: :link, classes: "px-0", attributes: attrs do %>@nextjs<% end %>
  <% end %>
  <%= render "ui/hover_card/content", classes: "w-80" do %>
    <div class="space-y-2">
      <h4 class="text-sm font-semibold">@nextjs</h4>
      <p class="text-sm">The React Framework – created and maintained by @vercel.</p>
    </div>
  <% end %>
<% end %>

With Avatar

Hover card with user profile information.

<%= render "ui/hover_card" do %>
  <%= render "ui/hover_card/trigger", as_child: true do |attrs| %>
    <%= render "ui/button", variant: :link, classes: "px-0", attributes: attrs do %>@shadcn<% end %>
  <% end %>
  <%= render "ui/hover_card/content", classes: "w-80" do %>
    <div class="flex gap-4">
      <%= render "ui/avatar" do %>
        <%= render "ui/avatar/image", src: "https://github.com/shadcn.png", alt: "@shadcn" %>
        <%= render "ui/avatar/fallback" do %>SC<% end %>
      <% end %>
      <div class="space-y-1">
        <h4 class="text-sm font-semibold">shadcn</h4>
        <p class="text-sm text-muted-foreground">Creator of shadcn/ui.</p>
      </div>
    </div>
  <% end %>
<% end %>

Features

  • Custom styling with Tailwind classes

API Reference

Hover Card

Container for hover card trigger and content.

Content

The content that appears on hover.

Parameters

NameTypeDefaultDescription
alignStringcenterAlignment within container
side_offsetInteger4The side offset

Trigger

Element that triggers the hover card on hover.

Parameters

NameTypeDefaultDescription
as_childBooleanfalseWhen true, yields attributes to block instead of rendering wrapper
tagSymbol:spanThe tag

Accessibility

Implements the WAI-ARIA Tooltip pattern with proper roles, states, and keyboard navigation.

JavaScript

Stimulus Controller

ui--hover-card

Values

NameTypeDescription
openBooleanControls open state

Actions

showhidekeepOpenscheduleHideclearTimeoutspositionContent