Something new is coming.Join the waitlist

Email Dock

PreviousNext

Contact card that highlights the username, domain, or full email when hovering dock icons. Lucide icons in the dock. Mobile-friendly and easy to customize.

Installation

npx shadcn@latest add https://tentui.com/r/email-dock.json

Usage

Pass an email and an optional highlights array. Hover dock icons to emphasize the matching segment with a gradient and underline. Icons are picked automatically from the segment.

import { EmailDock } from "@/components/email-dock";
 
export function ContactCard() {
  return (
    <EmailDock
      email="sourabh@srb.gg"
      highlights={[
        { segment: "local" },
        { segment: "domain", href: "https://srb.gg", external: true },
        { segment: "full", href: "mailto:sourabh@srb.gg" }
      ]}
    />
  );
}

Omit highlights to use the default User / Link / Mail dock.

Dock iconsegmentHighlights
UserlocalText before @
LinkdomainText after @
MailfullFull address

Patterns

Trim the dock

Pass only the highlights you need.

<EmailDock email="hello@acme.com" highlights={[{ segment: "full" }]} />

Props

EmailDock

PropTypeDefaultDescription
emailstring—Full email shown in the card
highlightsEmailHighlight[]default dockDock icons and highlight rules
classNamestring—Card container classes

EmailHighlight

PropTypeDefaultDescription
segment"local" | "domain" | "full"—Email part to emphasize on hover
hrefstring—Optional link (e.g. mailto: or website)
externalboolean—Open href in a new tab
labelstringfrom segmentAccessible name for the dock control