aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md51
1 files changed, 51 insertions, 0 deletions
diff --git a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md
index 8b3858b..cba4e81 100644
--- a/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md
+++ b/docs/superpowers/plans/2026-08-03-post-0.1.0-usability.md
@@ -1661,6 +1661,57 @@ raises.
- The placeholder must not appear between a selection and its render, or every
thread open flashes a logo first.
+### Specified with the user 2026-08-07; fonts committed, pane not built
+
+**The design source is the user's own HTML mockup**, not the PNGs recorded
+above. Those were rendered *from* it. Both mockups are in the user's Downloads
+as `qtMailDir Background {dark,light} Mockup.zip`, each holding
+`qtmaildir-mockup-bg.html` and a `COLOR-REFERENCE.md` giving the complete brand
+palette for both modes. Build from that HTML; do not trace the PNGs.
+
+**Two things in the mockup cannot survive the port, by design.** Its
+`@import` of Google Fonts is blocked by the interceptor, deliberately, and its
+`fit()` script cannot run because JavaScript is off in this profile. The fonts
+are dealt with (below); the scaling script is unnecessary, since CSS can centre
+the block without it.
+
+**Decided with the user:**
+
+- **The brand palette wins over the desktop palette**, a deliberate exception
+ to item 12's rule. A logo is brand rather than chrome. The dark or light set
+ is chosen by the desktop theme, so it still flips correctly.
+- **Layout is a header ROW, not the mockup's centred lockup**: icon on the
+ left, wordmark on the right, with the glow and grid still centred behind as
+ background. Helpers below the header.
+- **No fixed vertical split.** The user first suggested 40/60; this pane is a
+ splitter panel whose height varies enormously, so a ratio breaks at one
+ extreme or the other. The block takes its natural height and is centred in
+ whatever the pane gives.
+- **The helpers are counts and sync state**, NOT the selected-thread count the
+ section above proposes. The user rejected that: the status bar already says
+ it. Instead: unread, flagged and inbox counts, each clickable to run that
+ query, and a sync line that appears only when something needs attention
+ (last sync failed, or edits waiting to sync). Nothing when all is well, so it
+ cannot become wallpaper.
+- **Footer**: copyright, version, and the website as a WORKING link. Clicking
+ hands off to the desktop browser through the existing
+ `NavigationTypeLinkClicked` path in `messageview.cpp`.
+- **Tips and tricks stays dropped**, as the section above already argues.
+- **The AI-assisted development notice does not go here.** It belongs in the
+ README, per the user's global preference, and in the About dialog if wanted.
+
+**Already done (commit "build: bundle the fonts…"):** Oxanium ExtraBold and
+IBM Plex Sans Regular are in `assets/fonts/`, subset, with their OFL licences,
+and the README records them. Nothing references them yet.
+
+**Still to build:** `resources.qrc` entries;
+`HtmlBuilder::buildPlaceholder(...)` porting the mockup's CSS with the fonts as
+`@font-face` data URIs; `MessageView::showPlaceholder(...)`; and the four
+`MessageView::clear()` call sites choosing between the placeholder and a blank
+pane. The **helper counts are the largest piece**: three `notmuch count` calls
+crossing to the worker, plus a refresh policy, since a count goes stale the
+moment a tag is edited.
+
## 31. The quit prompt has no highlighted default button
**Observed (user, 2026-08-04):** "quit popup has no Predefined answer (there's