Commit Graph
812 Commits
Author SHA1 Message Date
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
Linus Rath d10d6b60ce fix: tell admins the OAuth setup needs a webmail sign-in and disable it until there is one 2026-10-28 17:40:26 +01:00
Linus Rath 90ec6748ac fix: keep the translations out of every page of the Lite export 2026-10-28 17:16:35 +01:00
Linus Rath 8108249a35 Merge pull request #1406 from HOLOEYE-JZ/feat/plugin-ui-navigate
# Conflicts:
#	app/(main)/[locale]/layout.tsx
2026-10-28 17:02:42 +01:00
Linus Rath 4421c3ce7e fix: spin refresh icons the way their arrows point 2026-10-28 17:00:50 +01:00
Linus Rath 96797597c5 Merge branch 'main' into feat/org-features 2026-10-28 15:14:34 +01:00
Jacob Zeitz ba45d0f8b9 feat(plugins): api.ui.openPage moves the tab to one of the plugin's own pages 2026-10-28 13:50:12 +01:00
Linus Rath a2877173a1 fix: drop the admin save bar when a field is put back to its saved value, empty included 2026-10-28 12:52:23 +01:00
Linus Rath 326aac46b8 fix: report an admin branding upload without "successfully" 2026-10-28 10:52:40 +01:00
Linus Rath 1934584eb6 fix: show short, accurate placeholders with a tooltip on the admin branding fields of a domain 2026-10-28 10:26:32 +01:00
Linus Rath e3fd576543 fix: hide the next heartbeat and consent date in admin usage stats while heartbeats are off 2026-10-28 10:24:34 +01:00
Linus Rath 62ab48aee4 fix: ask "discard changes?" with keep editing and discard in settings editors and the admin pages, as in calendar and contacts 2026-10-28 10:19:10 +01:00
Linus Rath b5e92ba176 Merge branch 'feat/org-features' into feat/org-templates
# Conflicts:
#	lib/admin/restriction-keys.ts
2026-10-28 07:10:25 +01:00
Linus Rath 87e41f0403 feat: share team templates in a group mailbox 2026-10-28 06:24:46 +01:00
Linus Rath aa8dfb783b fix: show the variable, URL and path in the setup wizard texts as code 2026-10-28 06:20:40 +01:00
Linus Rath 47c47b4f08 feat: keep personal templates in the account on Stalwart 1.0 2026-10-28 06:13:47 +01:00
Linus Rath 57065d7ef2 feat: show an organisation template library from the admin 2026-10-28 05:53:50 +01:00
Linus Rath 795faceee7 Merge branch 'feat/org-thirdparty' into feat/org-features 2026-10-28 05:51:22 +01:00
Linus Rath a06c1531a5 feat: show the setup wizard in the browser's language, translated into all 29 languages 2026-10-28 05:49:37 +01:00
Linus Rath 687cd89346 Merge branch 'feat/org-external' into feat/org-features
# Conflicts:
#	lib/outgoing/quick-reply.ts
#	lib/outgoing/send-pipeline.ts
2026-10-28 05:46:11 +01:00
Linus Rath 9e809a31db Merge branch 'feat/org-features' into feat/org-thirdparty 2026-10-28 05:27:58 +01:00
Linus Rath 823da8c810 Merge branch 'feat/org-features' into feat/org-external
# Conflicts:
#	components/email/email-viewer.tsx
#	components/mail/mail-app.tsx
2026-10-28 05:19:21 +01:00
Linus Rath 2ace501871 Merge branch 'feat/org-features' into feat/org-signatures 2026-10-28 04:51:22 +01:00
Linus Rath 6dbaa0fd30 Merge branch 'main' into ux/settings-admin 2026-10-28 04:50:27 +01:00
Linus Rath 5335c409a7 fix: translate the page a connector link lands on when it can't be opened 2026-10-28 04:37:46 +01:00
Linus Rath 89f0cd7e92 fix: say that {company} takes the branding of the web address Bulwark is opened on 2026-10-28 04:37:24 +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 031d94635c refactor: keep the outgoing host descriptions out of the browser bundle and scan every URL form #903 2026-10-28 04:30:23 +01:00
Linus Rath c9975eef3f fix: report admin results in the app's toasts instead of a banner under the page header 2026-10-28 04:05:51 +01:00
Linus Rath 51b678dc19 fix: let every admin switch on a page with a save bar wait for Save, plugins, themes and telemetry included 2026-10-28 03:59:44 +01:00
Linus Rath 5d013f7669 fix: give Calendar, Contacts, Files and Settings their own error boundary and show one error fallback with Try again everywhere 2026-10-28 03:56:04 +01:00
Linus Rath f4cade224c fix: ask in the app's own dialogs instead of browser confirm boxes in the admin panel 2026-10-28 03:54:36 +01:00