Linus Rath
341b84fe19
Merge pull request #1448 from vietnamvps/add-vietnamese
...
feat(i18n): add Vietnamese language support
2026-10-31 16:24:47 +01:00
Linus Rath
c13b87c0e8
fix: keep the undo toast off the header on phones #1472
2026-10-31 16:15:58 +01:00
vietnamvps
2aa39d93de
feat(i18n): add Vietnamese flag icon
2026-10-30 11:09:33 +07:00
vietnamvps
50bcf01d75
feat(i18n): add Vietnamese to language picker
2026-10-30 11:07:04 +07: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
605a3983b1
feat: show a warning shield instead of the sender icon when the sender check fails
2026-10-29 21:13:36 +01:00
Linus Rath
2e13accade
fix: draw avatar initials in black or white so they read on every colour
2026-10-29 19:59:16 +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
7525fe18e4
fix: keep switches, selections and pressed buttons visible in Windows contrast themes
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
724c45d6e3
feat: add short explanations for technical terms that work with keyboard, touch and screen readers
2026-10-29 18:07:46 +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
ef13556a01
fix: give every contact form field a label screen readers read out
2026-10-29 18:02:59 +01:00
Linus Rath
4af4404962
feat: undo the last mail actions with Ctrl+Z or z, newest first
2026-10-29 17:53:46 +01:00
Linus Rath
be5e2dbc53
feat: hold toasts while focused and jump to the newest with Alt+Shift+N
2026-10-29 17:53:45 +01:00
Linus Rath
e2fc2c750a
feat: read toasts out to screen readers, errors assertively
2026-10-29 17:53:44 +01:00
Linus Rath
36d13b76bd
feat: add app-wide live regions for screen reader announcements
2026-10-29 17:53:44 +01:00
Linus Rath
f23784a488
feat: open submenus, previews and the rail peek only on click when hover opening is off
2026-10-29 17:53:37 +01:00
Linus Rath
14519269cf
feat: reorder tags, filter rules, apps, accounts and Pro tabs without dragging
2026-10-29 17:53:37 +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
d9afc9b643
fix: open the reader's more menu in place instead of sliding in from the right
2026-10-28 21:04:30 +01:00
Linus Rath
96797597c5
Merge branch 'main' into feat/org-features
2026-10-28 15:14:34 +01:00
Linus Rath
addf330bd0
fix: keep toasts out of the way of an open menu on phones and hold their countdown until it closes
2026-10-28 12:49:09 +01:00
Linus Rath
8566cf2b29
Merge branch 'ux/calendar3'
2026-10-28 11:06:37 +01:00
Linus Rath
2f790a2d75
fix: keep toasts above the Save and Cancel buttons of the contact and group forms
2026-10-28 10:43:55 +01:00
Linus Rath
89200e44af
fix: hide key hints in menus on touch screens
2026-10-28 09:49:38 +01:00
Linus Rath
3a888e11cc
fix: open the import calendar dialog with the focus on the drop zone so Tab stays inside it
2026-10-28 09:46:41 +01:00
Linus Rath
f60ddf3f95
fix: give a message the same actions in its row menu, the reader's ⋮ and the phone panel, Print, View source, Export and Pin included, and one menu look for Mail's ⋮, Move, Tag and composer menus
2026-10-28 07:42:24 +01:00
Linus Rath
e2908676ec
fix: give menu rows, the phone More panel's close and the subject star a 44px touch target
2026-10-28 07:00:24 +01:00
Linus Rath
43dd87b301
Merge branch 'main' into ux/mail
2026-10-28 05:16:28 +01:00
Linus Rath
5104a1d376
fix: insert and remove links in the app's own dialog instead of a browser prompt
2026-10-28 04:48:11 +01:00
Linus Rath
1a747ac9dd
feat: limit the page's CSP to the configured hosts with no third-party traffic #903
2026-10-28 04:30:41 +01:00
Linus Rath
d78f245b40
fix: make the shell's small buttons easy to tap on phones: notifications, account menu, welcome tips, tour, toasts and the search clear button
2026-10-28 04:19:21 +01:00
Linus Rath
86ff6f5bb2
fix: keep the welcome tips when Escape is pressed elsewhere in the app
2026-10-28 03:22:05 +01:00
Linus Rath
553f1e9149
feat: add a switch that stops all third-party traffic #903
2026-10-28 02:19:06 +01:00
Linus Rath
b08bb61a96
fix: open the keyboard shortcuts at the top instead of scrolled down to the tour link
2026-10-28 02:05:50 +01:00
Linus Rath
41ffc8af29
fix: keep a dialog's title in view while its content scrolls
2026-10-28 02:04:35 +01:00
Linus Rath
b1678edbf5
feat: add a shared empty state and loading spinner
2026-10-28 01:49:11 +01:00
Linus Rath
03304a3cdc
fix: show toasts above the phone's bottom bars, newest at the bottom, and let a swipe dismiss them
2026-10-28 01:48:36 +01:00
Linus Rath
635ee883b2
fix: make menus work from the keyboard and keep tapped submenus open
2026-10-28 01:42:06 +01:00
Linus Rath
838577876e
feat: add one dialog shell and build the confirm and name prompts on it
2026-10-28 01:17:46 +01:00
Linus Rath
c0fa11e5ec
feat: add an icon button that always has an accessible name
2026-10-28 01:11:21 +01:00
Linus Rath
f8b061f07c
feat: add dense button sizes and a 44px touch hit area to every button
2026-10-28 01:10:58 +01:00
Phumiphat Kanjanachotipong
f6325e741d
feat(i18n): Add Enterprise Thai (th) localization catalog & integration
2026-10-27 07:36:03 +00:00
Linus Rath
8940f45baa
fix: apply a custom calendar color picked in the system color dialog #1366
2026-10-26 20:01:09 +01:00
Linus Rath
cf2c27157d
Merge branch 'main' into feat/stalwart-1.0
...
# Conflicts:
# components/contacts/contacts-app.tsx
# components/email/__tests__/composer-discard.test.tsx
# components/email/calendar-invitation-banner.tsx
# components/email/email-composer.tsx
# components/mail/mail-app.tsx
# components/pro/pro-compose-tab-body.tsx
# components/pro/pro-email-tab-body.tsx
# components/ui/__tests__/avatar.test.tsx
# components/ui/avatar.tsx
# hooks/use-mailbox-drop.ts
# lib/__tests__/calendar-alerts.test.ts
# lib/__tests__/jmap-calendar-tasks.test.ts
# lib/__tests__/jmap-send-threading.test.ts
# lib/demo/demo-client.ts
# lib/demo/fixtures/calendars.ts
# lib/jmap/client-interface.ts
# lib/jmap/client.ts
# lib/web-push.ts
# stores/__tests__/contact-store.test.ts
# stores/__tests__/email-store-thread-key.test.ts
# stores/calendar-store.ts
# stores/contact-store.ts
# stores/email-store.ts
2026-10-26 10:14:12 +01:00
Linus Rath
782d4f8bf5
perf: stop loading the app's stores in every plugin frame
2026-10-25 02:09:37 +02:00