Interface size setting: Default, +10%, +20%

Mailbox display and Settings → Appearance get an interface-size picker,
stored per device in localStorage and applied as CSS zoom on <html>.
Viewport-height layouts divide by --ui-zoom, and code that turns mouse
coordinates or bounding rects into CSS lengths (resizers, compose dock,
emoji picker, editor popups and image handles, swipe-to-delete) divides
by the zoom factor.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-25 15:20:39 +01:00
co-authored by Claude Opus 5.5
parent d8e6cca66b
commit a4581ab199
14 changed files with 172 additions and 28 deletions
+4
View File
@@ -4,6 +4,10 @@ export default {
content: ["./index.html", "./admin.html", "./src/**/*.{ts,tsx}"],
theme: {
extend: {
// The interface-size setting zooms <html>, and zoom scales viewport units
// too: divide them back so a full-height layout still fits (lib/uiScale.ts).
height: { screen: "calc(100vh / var(--ui-zoom, 1))" },
minHeight: { screen: "calc(100vh / var(--ui-zoom, 1))" },
fontFamily: {
sans: ['"Lato"', "system-ui", "-apple-system", '"Segoe UI"', "Roboto", "sans-serif"],
},