Skip to content

feat(email): restyle inbox/composer to design system + load speedup, shortcuts#645

Merged
arkml merged 2 commits into
rowboatlabs:devfrom
hrsvrn:feat/email-ui-rowboat-restyle
Jun 26, 2026
Merged

feat(email): restyle inbox/composer to design system + load speedup, shortcuts#645
arkml merged 2 commits into
rowboatlabs:devfrom
hrsvrn:feat/email-ui-rowboat-restyle

Conversation

@hrsvrn

@hrsvrn hrsvrn commented Jun 26, 2026

Copy link
Copy Markdown
Collaborator

Brings the email UI in line with the rest of Rowboat and adds a few quality-of-life bits.

UI restyle

  • Composer rebuilt on shadcn Button/Input/Dialog + app design tokens (replaces the bespoke .gmail-compose-* / .gmail-recipient-* CSS). The AI "describe & write" bar + tone presets now work in
    reply mode too.
  • Inbox (App.css): mapped the bespoke --gm-* palette onto app tokens, dropped the never-loaded "Inter" font so it inherits the app font, and removed the redundant .light .gmail-shell block (theming
    now follows :root/.dark).
  • Auto-generated reply block (editor.css): retokenized the Gmail-blue pill buttons/compose surface; inherits the editor font.
  • Tone preset buttons are now square (rounded-md) with vertical gap when wrapped.

Performance

  • listInboxPage now uses an mtime-keyed in-memory cache instead of re-reading + JSON.parse-ing every cached thread on every call. Speeds up the Important→Everything-else handoff, live reloads during sync,
    and re-opening the inbox tab.

Shortcuts

  • n opens the composer from the inbox (ignored while typing / when a dialog is open).
  • Ctrl+Tab / Ctrl+Shift+Tab cycle to next/previous tab.

Note: the sync_gmail.ts change is in the main process — needs npm run deps + app restart to take effect.

hrsvrn added 2 commits June 26, 2026 03:19
…stem

- Inbox (gmail-shell): map the bespoke --gm-* palette onto the app design
  tokens (background/foreground/border/accent/primary), drop the unloaded
  "Inter" font override so it inherits the app font, and remove the redundant
  ".light .gmail-shell" block so theming follows :root/.dark.
- Composer: rebuilt on the shadcn Button/Input/Dialog primitives with app
  tokens; bring the AI describe-and-write bar and tone presets into reply mode.
- Auto-generated reply block (editor.css): retokenize the Gmail-blue pill
  buttons and compose surface onto app tokens; inherit the editor font.
- Add a Gmail-style "n" shortcut to open the composer from the inbox.
…uttons

- Inbox load: add an mtime-keyed in-memory cache to listInboxPage so it no
  longer re-reads and JSON.parses every cached thread (bodies included) on
  every call — only files whose mtime changed are re-parsed. Speeds up the
  Important→Everything-else handoff, live reloads during sync, and re-opening
  the inbox tab.
- Add Ctrl+Tab / Ctrl+Shift+Tab to cycle to the next/previous tab (wraps
  around), alongside the existing Cmd+Shift+] / [ shortcuts.
- Improve bar: make the tone preset buttons square (rounded-md), left-aligned,
  with a bit of vertical gap so wrapped rows aren't cramped.
@arkml arkml merged commit 4a26bc9 into rowboatlabs:dev Jun 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants