summaryrefslogtreecommitdiffstats
path: root/docs/superpowers/specs
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-08-28 11:16:27 +0200
committerDanilo M. <danix@danix.xyz>2026-08-28 11:16:27 +0200
commitb365699099b0c296805d5bf883f3e5afbf4cfce7 (patch)
treec95c7d4ec04f451b3dbcd26e996d7afe4e5cbff1 /docs/superpowers/specs
parent921a4d9d72d1ddcbc0b997f42a4a5d17896be814 (diff)
downloadqtmaildir-b365699099b0c296805d5bf883f3e5afbf4cfce7.tar.gz
qtmaildir-b365699099b0c296805d5bf883f3e5afbf4cfce7.zip
docs: settle the dashboard's colours
Every colour on the pane already means something elsewhere: a sender's hashed identity, a tag's, or the palette's own emphasis. Avatar::colourFor() hashes the address, so a participant's colour is already stable across threads and nothing new had to be decided.
Diffstat (limited to 'docs/superpowers/specs')
-rw-r--r--docs/superpowers/specs/2026-08-28-thread-row-identity-design.md24
1 files changed, 21 insertions, 3 deletions
diff --git a/docs/superpowers/specs/2026-08-28-thread-row-identity-design.md b/docs/superpowers/specs/2026-08-28-thread-row-identity-design.md
index 97e9ba3..6bc0d9c 100644
--- a/docs/superpowers/specs/2026-08-28-thread-row-identity-design.md
+++ b/docs/superpowers/specs/2026-08-28-thread-row-identity-design.md
@@ -176,6 +176,27 @@ Blocks, top to bottom:
reason the user is on the dashboard, and hunting for them past a long
participant list is the case the scrolling exists for.
+**The dashboard invents no colours.** Every colour on it already means
+something elsewhere in the application, which is what keeps it from becoming
+decoration:
+
+- **Participants** reuse `Avatar::pixmapFor()` unchanged — the same squircle,
+ initials and colour the sender carries on every card in the list.
+ `Avatar::colourFor()` hashes the ADDRESS at a fixed saturation and lightness
+ (item 169), so a participant is already the same colour in every thread and
+ in both themes, with nothing to decide here.
+- **Tag chips** use `TagColors::colourFor()`, exactly as a card draws them. One
+ tier, so no muting.
+- **The read-progress bar** is the palette's highlight, one colour. It shows a
+ quantity, not a category.
+- **The sparkline** is one colour for the bars with the highlight on the
+ busiest bucket. Buckets are not categories either; colouring them per
+ participant would read as data and mean nothing.
+- **Unread emphasis** is the cue the list already uses, not a new colour.
+
+Deliberately NOT done: shading the participant list by how much each person
+has written. It looks meaningful and is not.
+
**The content scrolls.** Everything above the action strip sits in a
`QScrollArea`: a thread with many participants and several unread messages
overflows the pane, and a dashboard that cannot be scrolled hides the half the
@@ -274,9 +295,6 @@ thread-specific binding should simply be deleted.
## Open, deliberately
-- **Per-sender colours in the dashboard** reuse the account-avatar palette from
- item 169. Whether a participant's colour should be stable across threads is
- not decided; nothing depends on it.
- **Item 168** (Delete hidden when every selected row is already in the trash)
needs restating in thread terms: a conversation is in the trash when all of
its messages are. Not part of the core change, and it is a defect if left