Two adjacent profile surfaces: the externally-shareable public page (16d) and the KYC/identity-verification flow (16e). Both compose card-ui shells around primitives — no new components needed.
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 GranlundVerifiedFounder · AdiaUI · Reykjavík, ISBuilding the AdiaUI web-components library and the A2UI generative-UI runtime. Previously at Construct, before that at Modular.Recent public workAdiaUI v0.0.26 — Safari @scope sweepReleased 2 days ago · 47 components updatedA2UI generator — chunk corpus expansion748 chunks across 36 domains · open-sourceOKLCH ramps for design systemsTalk · 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 identityRequired 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 IDPassport, driver's license, or national ID cardYour 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 submittedUnder review — usually within 1 business day.We'll email you when your identity is verified or if we need more info.
You're verified
VerifiedIdentity confirmed.Payouts and high-value actions are now unlocked.
We couldn't verify your IDThe 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.