# Design note — third visual pass

**Dated 2026-08-04. Written before the code, per the provenance practice in
[ROADMAP.md](../../ROADMAP.md#proving-independence).**

Pass one did surfaces. Pass two did the lists. This one does **the topic
view** — the screen people are actually on, and the one still least designed.

---

## The observation

Convoro's forum index and topic list now carry real information. Open a topic
and it drops back to a name, a date and a wall of text in a box.

That is the wrong way round. Somebody browses the index for a few seconds and
reads a topic for several minutes. The screen they spend their time on should
be the most considered one, not the least.

## Decision 1 — the post header carries the person

Right now the author is stranded in a narrow left column and the header holds
only a date. So the header becomes the identity line: **avatar, name, role,
when** — reading as one sentence about who said this and when.

That leaves the left column doing very little, so it goes. A hundred pixels of
mostly-empty gutter on every post is a hundred pixels not spent on the text,
and on a phone it was already stacking anyway.

**Post text gets the full width.** That is what people came for.

## Decision 2 — roles are shown, because they change how you read a post

"Is this person staff?" changes how somebody reads an answer, and every forum
shows it. Convoro has the data — groups already carry `is_admin` and
`is_moderator` — and has never rendered it.

A small badge next to the name on posts and profiles. Admin and Moderator
only: a badge for every group is noise, and these two are the ones that change
the meaning of what was said.

**Loaded once for the page**, not once per post. Three posts by the same
person should be one lookup, not three.

## Decision 3 — the post number becomes a real anchor

`#3` was plain text next to a date. It is the thing people copy to link to a
specific post, so it looks clickable, copies as a full URL, and confirms it
copied.

Small feature, disproportionately used.

## Decision 4 — actions get out of the way until wanted

Quote, Report, Edit and the moderator buttons sit under every post, competing
with the text.

They fade in on hover over the post, and are **always visible on touch and to
keyboard focus** — a hover-only control is a control that does not exist on a
phone, and that is the failure mode this pattern usually ships with. So the
rule is: hidden only when a pointer is present, never hidden from focus.

## Decision 5 — the profile stops being a card with numbers in it

It reuses the stat tiles the index already has, gets the large avatar, and
shows the role badge. Consistency is the point: a member's numbers should look
like the site's numbers.

## What this does not do

- **No sidebar on the topic view.** The post gutter is going *away*; adding a
  page-level sidebar in the same pass would be arguing with myself. It is also
  a real decision about what deserves permanent space, and Ernest should make
  it rather than find it.
- **No threaded replies.** A different product.
- **No infinite scroll.** Pagination is honest about where you are, and a
  forum is a place people link into the middle of.
