Admin UX roadmap group 1: items 10 (People as cards) and 12 (Personality; the ? sheet already shipped in #91).
People as cards (features/people/)
each person: initials in a color of their own (pale tint with dark text, or the reverse in dark mode, so any hue stays readable), name and address, a storage ring against the quota (amber from 75%, red from 90%), role chip for admins and custom roles, groups, since when
the row's own quick actions ("…", incl. Lock/Unlock) and the Locked badge; Enter or a click opens the person
a Cards / Table switch beside the help button, remembered per browser; selection, paging, filters and Undo-delete are the same list underneath
initials only: account pictures were decided against
no "last sign-in": the server doesn't record one per account
Friendly empty states (components/lists/ListEmptyState.tsx)
filters that match nothing: "Nothing matches" with a Clear filters button
an empty list says what goes there, in plain words for domains, people, groups, mailing lists, the queue, reports, API keys and webhooks (a generic line otherwise), with a Create button when you may create one
First-domain hello (features/celebrate/)
after a domain is created, if it's the server's only one: the cat, "Your first domain is in", and two next steps: its page (where DNS is set up, with the usual Guided-or-manual choice) and adding the first person. The cat's pop-in honors reduced motion.
Translation: 35 new strings in en.json (people.*, empty.*, firstDomain.*), English only for now.
Checked locally: typecheck, lint, i18n:check, 631 tests (5 new), build, notice-check. Previewed against a fresh local server: People empty state with Create; first domain created through the form opened the hello, and "Set up its DNS" opened its page; four people as cards (admin chip, groups, quotas); Table and back, remembered; Enter on a card opened it; a filter matching nothing showed Clear filters, which brought the cards back. Not seen in the preview: a part-full ring (new accounts have used nothing); the fill is unit-tested.
Admin UX roadmap group 1: items 10 (People as cards) and 12 (Personality; the `?` sheet already shipped in #91).
**People as cards** (`features/people/`)
- each person: initials in a color of their own (pale tint with dark text, or the reverse in dark mode, so any hue stays readable), name and address, a storage ring against the quota (amber from 75%, red from 90%), role chip for admins and custom roles, groups, since when
- the row's own quick actions ("…", incl. Lock/Unlock) and the Locked badge; Enter or a click opens the person
- a Cards / Table switch beside the help button, remembered per browser; selection, paging, filters and Undo-delete are the same list underneath
- initials only: account pictures were decided against
- no "last sign-in": the server doesn't record one per account
**Friendly empty states** (`components/lists/ListEmptyState.tsx`)
- filters that match nothing: "Nothing matches" with a Clear filters button
- an empty list says what goes there, in plain words for domains, people, groups, mailing lists, the queue, reports, API keys and webhooks (a generic line otherwise), with a Create button when you may create one
**First-domain hello** (`features/celebrate/`)
- after a domain is created, if it's the server's only one: the cat, "Your first domain is in", and two next steps: its page (where DNS is set up, with the usual Guided-or-manual choice) and adding the first person. The cat's pop-in honors reduced motion.
Translation: 35 new strings in en.json (`people.*`, `empty.*`, `firstDomain.*`), English only for now.
Checked locally: typecheck, lint, i18n:check, 631 tests (5 new), build, notice-check. Previewed against a fresh local server: People empty state with Create; first domain created through the form opened the hello, and "Set up its DNS" opened its page; four people as cards (admin chip, groups, quotas); Table and back, remembered; Enter on a card opened it; a filter matching nothing showed Clear filters, which brought the cards back. Not seen in the preview: a part-full ring (new accounts have used nothing); the fill is unit-tested.
People opens as cards: initials in a color of their own, name and
address, a storage ring against the quota, role, groups and since when,
with the row's quick actions and lock badge. A switch beside the help
button goes back to the table, remembered per browser. Selection,
paging, filters and Undo work the same in both.
An empty list now says why: filters that match nothing offer to clear
them; an empty list says what goes there, in plain words for domains,
people, groups, mailing lists, the queue, reports, API keys and
webhooks, and offers to create the first one.
The server's first domain opens a short hello with the cat and the two
next steps: its page, where DNS is set up, and adding the first person.
Admin UX roadmap, items 10 and 12. No last sign-in on the cards: the
server doesn't record one per account.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Admin UX roadmap group 1: items 10 (People as cards) and 12 (Personality; the
?sheet already shipped in #91).People as cards (
features/people/)Friendly empty states (
components/lists/ListEmptyState.tsx)First-domain hello (
features/celebrate/)Translation: 35 new strings in en.json (
people.*,empty.*,firstDomain.*), English only for now.Checked locally: typecheck, lint, i18n:check, 631 tests (5 new), build, notice-check. Previewed against a fresh local server: People empty state with Create; first domain created through the form opened the hello, and "Set up its DNS" opened its page; four people as cards (admin chip, groups, quotas); Table and back, remembered; Enter on a card opened it; a filter matching nothing showed Clear filters, which brought the cards back. Not seen in the preview: a part-full ring (new accounts have used nothing); the fill is unit-tested.