bootstrap
Adom Core
Public Made by Adomby adom
Bootstrap a standard Adom workstation in one command.
← Commit history
identity-card/README.mddeleted−81@@ -1,81 +0,0 @@-# The Adom Identity Card--A single, consistent way to show **who you are signed in as**, used identically across every-Adom surface: the wiki, Hydrogen Desktop (HD), Hydrogen Web (HW), the auth-intent page, and any-future app. It is a design contract, not one app's component: the same fields, the same three-sizes, the same actions, everywhere.--## Why it must be consistent everywhere--Users move between the wiki, HD, and HW constantly, and they may belong to more than one org or-have more than one account signed in. If each surface renders identity differently, the user-can't build a reliable mental model of "this is me, this is which account I'm acting as." A-recognizable, identical card makes identity a **single learnable object** they carry through the-whole ecosystem, the way the avatar-in-the-top-corner is learnable on GitHub or Google. Today-the surfaces diverge (HD's menu shows only a bare avatar with no name or email; the wiki shows-name but not email; casing differs: "My issues" vs "My Issues"). This spec ends that drift.--## The fields (from the identity API — `adom-wiki whoami` / the session)--| Field | Source | Shown where |-|---|---|---|-| **avatar** | `avatarUrl` | every size |-| **username** | `username` (e.g. `john`) | every size |-| **real name** | `displayName` (e.g. `John Lauer`) | medium + large |-| **email** | `email` (e.g. `[email protected]`) | medium + large |-| **org** | first of `orgs[]` (teal pill) | medium + large |-| **admin** | `isAdmin` (amber pill) | large |--**Email is shown, never hidden behind a hover.** It is the true identity disambiguator, usernames-repeat across orgs but the email is unique, and the account you are "acting as" is consequential-enough that it must be readable at a glance. Hover tooltips also do not exist on touch, so hiding-identity there fails on a phone (see the adom-ui-design skill, tooltips section).--## The three renderings----- **Compressed** (header chip): avatar + `username`. The "who, at a glance" chip for a title bar- or site header. No email, no name, it's a handle.-- **Medium** (every profile pulldown): avatar + username + real name + **email** + org pill. This- is the standard header of the profile dropdown on all three surfaces.-- **Large** (profile / settings hero): the medium fields, bigger, plus the admin pill.--## Actions: the avatar is the affordance, not a kebab--**Changing your avatar = clicking your avatar.** On hover it shows a small camera badge; clicking-opens the avatar picker. This is discoverable (you click your face to change your face) and needs-no extra control. Everything else, edit name/bio, sign out, is a **normal menu row** below the-card, because the profile pulldown already lists those actions. There is deliberately **no `⋯`-kebab**: it would duplicate the menu's own "Your profile"/"Settings" rows. The card is identity-**display**; the menu is the action list.--## Per-surface: same card, only the item list differs----Every surface's profile dropdown is: **the medium card as the header**, then a divider, then that-surface's own menu rows, then Log out. Same header, same monochrome icon style, same **sentence-case** ("My issues", not "My Issues"). Only the middle rows change per surface (the wiki adds-Notifications + Settings; HD adds "Your wiki repos"; etc.).--## Rendering rules (conform to these on any surface)--- **Surface**: `#0d1117` background, `#30363d` hairline border, one teal accent (`#00b8b0`) for- the org pill; amber (`#d29922`) for the admin pill. No other accent colors.-- **Icons are monochrome (mdi / iconify), never emoji.** Emoji read as mismatched "skittles" and- violate the brand's monochrome-icon rule (adom-ui-design, brand skill).-- **Typography**: the surface's brand body face; username 600 weight; real name + email muted- (`#8b949e`); email in a monospace face.-- **Never invent fields.** Render only what the identity API returns; hide a pill whose field is- absent (no org → no pill), never show a placeholder.-- Compressed chip clamps to available bar width; medium/large are fixed-width dropdown headers.--## For implementers (Colby, Kyle, and future apps)--The wiki, HW (Colby), and HD each render this from the same identity payload; the auth-intent page-(Kyle already ships an identity card there) should converge on these exact fields, sizes, and the-no-emoji / email-shown / avatar-is-the-action rules. If your surface needs a field this spec-doesn't list, propose it here first so all surfaces gain it together, rather than forking. The-mock these images come from is a single self-contained HTML file, keep it the one source so the-renderings never drift from the spec.