Profile Header

Pro

Profile header with avatar, optional cover, verified name, bio, stats and action buttons. Once followed, a coloured ring draws around the avatar and stays, and stat counts roll to new numbers.

Preview

Installation

npx @lumioui/cli add pro/profile-header

Usage

import { ProfileHeader } from "@/components/ui/profile-header/profile-header";
<ProfileHeader />

Examples

Social creator

A travel filmmaker's profile.

Minimal ink

An account page in plain ink: centred avatar, name and email, one quiet "Edit profile", and the account rows it heads.

Professional

A hiring network profile: company mark on the avatar, role and location instead of a handle, inline counts, and Connect / Message, with the experience it summarises below.

Seller

A marketplace shop: rating, review count and response time in the meta line, sold / listings / followers as rolling stats, and Follow / Message above the shop's latest listings.

API reference

Prop Type Default
name* string —
avatar ImageSourcePropType —
fallback string

Initials shown while the avatar is missing.

—
handle string

"@handle", a role line, or "Member since 2019".

—
verified boolean —
bio string —
cover ImageSourcePropType

Cover photo — the avatar overlaps its bottom edge.

—
coverAlt string —
mark React.ReactNode

Small mark pinned to the avatar's corner (company logo, shop badge).

—
meta ProfileHeaderMetaItem[]

One line of facts under the handle, dot-separated.

—
stats ProfileHeaderStat[] —
statsLayout "columns" | "inline"

columns — figures over labels in equal columns; inline — "1,240 sold · 58 listings". Default "columns".

"columns"
actions React.ReactNode

Action row — compose Buttons here.

—
align "start" | "center"

Default "start".

"start"
avatarSize keyof typeof AVATAR_PX

Default "lg" (88pt).

"lg"
className string —
coverClassName string —
followed boolean

The viewer follows this profile — the avatar wears a drawn accent ring (drawn with a light pool when it turns on).

false
switchOn boolean

Mount dim and switch on band by band. Default true.

true