Commit Graph
843 Commits
Author SHA1 Message Date
Linus Rath 5931cd1678 feat: send an oauth resource indicator when one is configured #1461 2026-10-31 16:14:35 +01:00
Linus Rath 3bdbdb1364 docs: move the mobile hand-off contract to the website 2026-10-31 14:32:39 +01:00
Linus Rath f74ff49f58 feat: give the mobile app its organisation policy for its access token 2026-10-31 14:10:53 +01:00
Linus Rath fb3ba0275a feat: hand the mobile app a one-time code instead of the sign-in in its link 2026-10-31 14:06:44 +01:00
Linus Rath 2de0ee8e30 fix: keep tag text readable on unread, selected and hovered rows 2026-10-31 02:20:40 +01:00
Linus Rath 1706f951bb fix: open menus in place with reduced motion instead of flashing in the corner first 2026-10-31 02:00:15 +01:00
Linus Rath cabb174108 feat: register a client for bulwark mobile in the oauth auto-setup #1459 2026-10-31 00:56:49 +01:00
Linus Rath dee2c07ce9 Merge branch 'main' of https://github.com/bulwarkmail/webmail 2026-10-30 11:05:11 +01:00
Linus Rath 8098039d69 feat: show booking cards only for mail from verified senders 2026-10-30 04:41:29 +01:00
Linus Rath 66351e0d31 feat: show admins the changelog of every plugin version an update brings or a rollback undoes 2026-10-30 02:02:40 +01:00
Linus Rath 80476d1ad2 feat: show a multi-line text box for plugin admin settings that ask for one 2026-10-30 00:17:32 +01:00
Linus Rath cf0eb03c4a feat: show the sender's BIMI logo as the sender icon when the message passes DMARC
Stalwart does no BIMI, so sender icons were only ever favicons, which
anyone controls for any domain. The webmail server now does the
receiver side itself at /api/bimi, and avatars ask it only for
messages whose own Authentication-Results say dmarc=pass for the exact
From domain.

- `lib/bimi/`: DMARC policy check (quarantine or reject, pct=100, the
  parent domain's sp and p for subdomains), the assertion record with
  fallback to the parent domain, mark certificate validation (chain to
  pinned DigiCert, GlobalSign and SSL.com VMC roots, BIMI key purpose,
  validity, SAN, SCTs present, CRL revocation, logo from the logotype
  extension), SVG Tiny PS checks and rendering to PNG, caching
- logos backed only by the DNS record show by default; the admin
  setting "Require a mark certificate" (`BIMI_REQUIRE_CERTIFICATE`)
  limits them to VMC and CMC backed ones
- a check mark beside the sender's name for certificate-backed logos
- avatars try contact photo, BIMI logo, plugin avatar, favicon; the
  sender warning shield still wins, and logos follow the sender icons
  setting and the no-third-party-traffic mode
- the two-label public suffix list moved to `lib/root-domain.ts`

SCT signatures are not verified and only the default selector is used.
2026-10-30 00:12:24 +01:00
Linus Rath 50b3ddccec feat: let admins keep the refresh token valid on sign-out so Stalwart keeps the consent #1388 2026-10-29 20:47:18 +01:00
Linus Rath 0b4e501142 feat: make the login email placeholder configurable #1423 2026-10-29 20:24:26 +01:00
Linus Rath d875714f35 feat: offer remember me on the sso-only login and apply it to every sso path #1437 2026-10-29 20:06:44 +01:00
Linus Rath a86023787f fix: give Aurora Glass solid surfaces, menus and dialogs when transparency is reduced 2026-10-29 19:38:46 +01:00
Linus Rath 35be105a73 fix: size small text in rem so it follows the browser and app text size 2026-10-29 19:38:45 +01:00
Linus Rath 7f74fcf9bf fix: move toasts away from the focused control and keep focus clear of sticky headers inside panes 2026-10-29 19:38:45 +01:00
Linus Rath b22968a7df fix: show the message list, not only the reader, with a large browser text size and wrap cut-off labels 2026-10-29 19:38:45 +01:00
Linus Rath e57e922950 feat: make buttons, menu items, rows and switches 44px when large targets is on 2026-10-29 19:38:45 +01:00
Linus Rath 9f6c7b99c9 fix: raise text contrast to 4.5:1 in every built-in theme, light and dark 2026-10-29 19:38:45 +01:00
Linus Rath 7525fe18e4 fix: keep switches, selections and pressed buttons visible in Windows contrast themes 2026-10-29 19:38:44 +01:00
Linus Rath c4dfa6f3e4 fix: draw the focus outline on plugin kit buttons, fields and switches 2026-10-29 19:38:44 +01:00
Linus Rath 1111dd6709 fix: show the focus outline on menu items, grid cells and other roving-focus controls 2026-10-29 19:38:44 +01:00
Linus Rath be423637fc feat: show one column and an optional paged message list in simple mode 2026-10-29 19:14:41 +01:00
Linus Rath 315e292706 feat: show the accessibility and help links on the login page, in the settings sidebar and in the account menu 2026-10-29 18:28:06 +01:00
Linus Rath 623c9e1792 feat: let operators set accessibility statement, barrier report, help, Easy Read and sign language links 2026-10-29 18:27:35 +01:00
Linus Rath 48a2b596d5 feat: name the locks and defaults a policy file import changes 2026-10-29 18:27:35 +01:00
Linus Rath 58f01fe7a3 feat: let admins lock a setting to a chosen value and preset any setting, accessibility options included 2026-10-29 18:27:35 +01:00
Linus Rath 5e188998a7 feat: explain technical terms next to their labels in Settings and the admin area 2026-10-29 18:10:29 +01:00
Linus Rath 842c369fae fix: save open drafts before an expired session signs out and say when one could not be saved 2026-10-29 18:03:01 +01:00
Linus Rath 4e2affe406 fix: name the remaining search boxes, filter fields and settings inputs that only had a placeholder 2026-10-29 18:03:00 +01:00
Linus Rath f73643bbbd fix: name the template, advanced search and admin server fields 2026-10-29 18:03:00 +01:00
Linus Rath 2038054b0b fix: tie the setup wizard's labels and hints to their fields 2026-10-29 18:02:59 +01:00
Linus Rath b96d875776 fix: make the account picker and the admin OAuth and plugin code dialogs proper modals 2026-10-29 18:02:58 +01:00
Linus Rath c92bb1dc06 fix: let password managers and screen readers use the sign-in form 2026-10-29 18:02:57 +01:00
Linus Rath ef826972dd fix: put the focus back somewhere sensible after an action removes it 2026-10-29 17:53:36 +01:00
Linus Rath dcc504fcfa feat: add landmarks, an h1 per app, skip links and F6 between panes 2026-10-29 17:53:35 +01:00
Linus Rath 4586c69e72 feat: open text size, contrast and motion from anywhere with Alt+Shift+A 2026-10-29 17:53:33 +01:00
Linus Rath 8008393e59 feat: add an Accessibility page to Settings
Settings get a page of their own for accessibility, with presets on top
(screen reader, low vision, dyslexia, focus, keyboard and motor, motion
and seizure safe, deaf and hard of hearing) that change several options
at once and can be undone, then the options by topic, and a reset.

Text size used to be a fixed 14/16/18px on the root, which threw away
the size people set in their browser. It is now a percentage of the
browser's size, from 87.5% to 200%. Motion, contrast and transparency
follow the system by default and can be overridden either way; the
old Animations switch becomes Reduce motion. The visual options are
applied before the first paint, so the page no longer flashes at the
wrong size.

- `lib/accessibility-settings.ts`: the new settings, their allowed
  values, and the code that writes them onto `<html>`
- `app/accessibility.css`: bundled fonts (Atkinson Hyperlegible Next,
  Lexend, OpenDyslexic), text spacing, a focus outline that survives
  Windows contrast themes, more-contrast colours on any theme, reduced
  transparency, a large pointer
- admins can preset every new option but lock only shortcuts, send
  confirmation and the notification duration; a lock on text size or
  another reading aid works as a default
- always-light mail and toolbar labels now sync, and imports drop
  values the page doesn't know
- font size and animations move off Appearance, the plain text font
  off Reading; everyday settings such as conversation view and undo
  send show on both their own page and Accessibility
2026-10-29 17:53:32 +01:00
Linus Rath 1411907082 fix: show the two-factor code prompt as the next sign-in step, not an error #1422 2026-10-29 14:31:41 +01:00
pcatapan 9e00896043 feat(composer): collapse quoted reply history behind an ellipsis 2026-10-29 11:00:58 +01:00
Linus Rath 6c681020b2 fix: show a clearer no-results icon and replace hand-drawn icons with Tabler ones 2026-10-29 00:22:12 +01:00
Linus Rath f12a13e1fd feat: create documents in the formats the document editor can edit from New file #1393 2026-10-29 00:01:13 +01:00
Linus Rath 8b35962efb fix: show section labels in sentence case instead of all caps 2026-10-28 22:26:39 +01:00
Linus Rath 39eb38a0fa fix: give the mail, calendar, contacts, files and settings headers one search field and one button style 2026-10-28 22:16:48 +01:00
Linus Rath 67b44fd5de fix: keep the inner edge of color bars straight on rounded events, tasks and notes 2026-10-28 21:50:29 +01:00
Linus Rath ba13866311 feat: print a clean copy of the page instead of the app shell 2026-10-28 21:08:20 +01:00
Linus Rath 1c8579fdbc fix: keep a setting row's shape and divider when the settings search highlights it 2026-10-28 20:00:41 +01:00
Linus Rath 8c38d44448 Merge branch 'main' of https://github.com/bulwarkmail/webmail 2026-10-28 18:06:09 +01:00