Eidetic

User Profile

Social
Block

Display user information with avatar, bio, stats, and actions in various layouts.

Preview

Full user profile card with all features

SC

Sarah Chen

Pro
Verified

Senior Product Designer

Passionate about creating intuitive user experiences. Currently designing the future of collaboration tools at Acme Inc.

San Francisco, CAsarah.chen@example.comsarahchen.designJoined March 2021
2.4kfollowers
180following
32projects

Simple Profile

Basic profile without extra features

JD

John Doe

Software Engineer

Building great software one commit at a time.

New York, NY

With Custom Actions

Profile with custom action buttons

EW

Emily Watson

Marketing Manager

Helping brands tell their stories.

45campaigns
1.2Mreach

Compact Profile

Smaller profile for lists and sidebars

TB
Taylor Brown

Backend Developer · Offline

Avatar Group

Display multiple users in a stacked layout

Small:
AJ
BS
CD
DW
EA
+2
Medium:
AJ
BS
CD
DW
EA
+2
Large:
AJ
BS
CD
DW
EA
+2

UserProfile Props

UserProfile API reference

PropTypeDefaultDescription
name*stringUser display name
avatarstringAvatar image URL
titlestringJob title or role
biostringShort biography
locationstringLocation text
emailstringEmail address
websitestringWebsite URL
joinDatestringJoin date text
statsArray<{label, value}>Profile statistics
badgesArray<{label, variant}>User badges
actionsReactNodeCustom action buttons
onEdit() => voidEdit button callback
onMore() => voidMore button callback

CompactUserProfile Props

CompactUserProfile API reference

PropTypeDefaultDescription
name*stringUser display name
avatarstringAvatar image URL
titlestringPrimary subtitle
subtitlestringSecondary subtitle
badge{label, variant}User badge
actionsReactNodeAction buttons
onClick() => voidClick handler

UserAvatarGroup Props

UserAvatarGroup API reference

PropTypeDefaultDescription
users*Array<{name, avatar}>Array of users
maxnumber5Maximum avatars to show
size'sm' | 'md' | 'lg''md'Avatar size

Usage

Import and implementation examples

import { UserProfile, CompactUserProfile, UserAvatarGroup } from '@/blocks/data-display/user-profile'
// Full profile
<UserProfile
name="Jane Doe"
title="Product Manager"
bio="Building products that matter."
location="Seattle, WA"
stats={[
{ label: 'projects', value: 24 },
{ label: 'reviews', value: '4.9' },
]}
badges={[{ label: 'Verified', variant: 'success' }]}
onEdit={() => openEditModal()}
/>
// Compact profile for lists
<CompactUserProfile
name="John Smith"
title="Designer"
subtitle="Online"
badge={{ label: 'Pro', variant: 'primary' }}
onClick={() => navigateToProfile()}
/>
// Avatar group
<UserAvatarGroup
users={[
{ name: 'User 1', avatar: '/avatars/1.jpg' },
{ name: 'User 2', avatar: '/avatars/2.jpg' },
]}
max={5}
size="md"
/>

Built With

3 components

This block uses the following UI components from the design system:

Features

Built-in functionality

  • Avatar with fallback: Shows initials when no image provided
  • Profile badges: Display verification, role, or status badges
  • User statistics: Show follower counts, projects, etc.
  • Contact links: Email, website, and location display
  • Compact variant: Smaller layout for lists
  • Avatar groups: Stack multiple user avatars
  • Dark mode: Full dark mode support

Accessibility

Accessibility considerations

ARIA Attributes

Avatar images have alt text with user nameEmail links use mailto: protocolExternal links have rel="noopener noreferrer"

Keyboard Navigation

KeyAction
TabNavigate between interactive elements
Enter/SpaceActivate buttons and links

Notes

  • Initials provide visual fallback for avatars
  • Actions are clearly labeled
  • Contact info is actionable where appropriate

Related Components