Profile card

A person, their role and a few numbers, with follow and message actions.

Profile card
Default density Compact density Restart from the initial state Show the copyable source
Grace Hopper Compiler engineer · Arlington
Admin
Message Follow
<tp-card style="inline-size:min(100%, 20rem)"> <div style="display:grid;justify-items:center;gap:var(--tp-space-3);text-align:center"> <tp-avatar size="lg" fallback="GH" alt="Grace Hopper"></tp-avatar> <div> <strong style="display:block;font-size:var(--tp-text-lg)">Grace Hopper</strong> <span style="color:var(--tp-muted-foreground);font-size:var(--tp-text-sm)">Compiler engineer · Arlington</span> </div> <div style="display:flex;align-items:center;gap:var(--tp-space-3)"> <tp-badge variant="secondary">Admin</tp-badge> <tp-status-dot variant="success" label="Available" show-label></tp-status-dot> </div> </div> <tp-button slot="footer" variant="outline" style="flex:1">Message</tp-button> <tp-button slot="footer" style="flex:1">Follow</tp-button> </tp-card>

How it’s composed

  • Avatar shows initials until a photo loads, and names the person for assistive technology.
  • Badge shows the role, and a Status dot with a visible label shows availability; neither is an action.
  • Button gives follow the primary weight and message the secondary.

Make it yours

Open this in a Preview card when people hover a name, or add a row of counts under the badges.

More patterns