## When to use

Public profile: any place outside the workspace can link to a user — author bylines on shared docs, reviewer attribution, public team pages, contributor lists. Distinct from 16a (workspace-internal profile card) and 16b (member detail in settings). Identity verification: regulated flows where the system needs legal-name + government ID — payouts, paid plans in some jurisdictions, agent-driven actions over a financial threshold.

## Public profile

Shareable user/team page. Header: large avatar, display name, optional verified badge, role/title, location, joined date. Body: bio, social links, stats grid (`stat-ui` × N), recent public work. The verified badge means identity-verified (16e), not "important user".

Kim Granlund Verified Founder · AdiaUI · Reykjavík, IS Building the AdiaUI web-components library and the A2UI generative-UI runtime. Previously at Construct, before that at Modular. Recent public work AdiaUI v0.0.26 — Safari @scope sweep Released 2 days ago · 47 components updated A2UI generator — chunk corpus expansion 748 chunks across 36 domains · open-source OKLCH ramps for design systems Talk · 2026-03 · 18 min

## Identity verification — flow stepper

The progress indicator across the verification flow. Steps: Personal info → Document upload → Selfie → Review. Uses `stepper-ui` with completed states. Each step is a separate page (or drawer step), not a single long form.

Verify your identity Required for payouts and agent-driven transactions over $1,000

## Document upload step

The document-capture step. `upload-ui` with `accept="image/*,.pdf"`, hint about supported formats, and security copy explaining what happens to the file. Front + back uploads for ID cards.

Upload your government-issued ID Passport, driver's license, or national ID card
Passport Driver's license National ID card Your ID is encrypted in transit and at rest. We use it once to verify your identity, then hold it for 30 days for compliance before deletion.

## Verification status states

The post-submission states the user sees while the system reviews. Three flavors: pending review (clock), verified (seal-check primary), rejected (warning). Each is a card-ui with status alert + next-action.

Verification submitted
Under review — usually within 1 business day. We'll email you when your identity is verified or if we need more info.
You're verified Verified
Identity confirmed. Payouts and high-value actions are now unlocked.
We couldn't verify your ID
The document image was unreadable. Try again with a clearer photo — make sure all corners are visible and there's no glare.

## Composition rules

- Verified badge means identity-verified, not "important user" — twitter-style "blue check" semantic creep is a smell. Reserve `seal-check` + primary tag for the KYC outcome of 16e; use other tags for role / staff / pro / etc.
- Public profile shows public work only — drafts, internal docs, private repos must not surface even if the viewer happens to have access. The page is the user's public face; access-aware filtering happens upstream.
- Verification is multi-step, not multi-section — one page per step. A long single form bounces users on validation; per-step pages let you reset focus and progress.
- Document upload front + back — ID cards have two sides; passports have one. Make this an explicit pair (or single) field, not a "Add another file" affordance.
- Encryption + retention copy is mandatory — users handing over a passport need to read what happens to it. The compliance rationale ("30 days for audit, then deleted") makes the system look serious, not threatening.
- Status pages are mandatory after submission — verification can take hours or days. The user must see "we got it, we're processing" or they'll re-submit. Pending → verified | rejected is a 3-state machine; cover all three.
- Rejection copy must be actionable — "We couldn't verify your ID" is half-useful; "the document image was unreadable, try again with a clearer photo" tells the user what to do.

## See also

- avatar-ui · stat-ui — public profile primitives.
- upload-ui — document capture.
- stepper-ui — verification flow indicator.
- tag-ui — verified badge.
- permissions-sharing — adjacent (the "share publicly" surface).
- wizard-drawer — alternative host for the verification flow.