From fece870d491f0ea984ff2f7708deffae221064e7 Mon Sep 17 00:00:00 2001 From: Lucas Rayan Date: Fri, 23 Oct 2026 05:57:52 -0300 Subject: [PATCH] feat(webmail): a better reader and a drawn logo The mark is rebuilt as a lambda of two square-cut strokes of one weight, joined without a seam, on a flat ultramarine tile with continuous corners: the rounded strokes and the gradient are gone. A message written plainly is now drawn in the app's own colours instead of a white slab, with text too dark for the ground lifted and white backdrops cleared; a designed one (newsletter, receipt) keeps its white sheet. A reply's quoted history folds behind a button. A narrower reading column, a larger title, and a way to see a plain message as sent. Co-Authored-By: Claude Sonnet 5.5 --- services/webmail/messages/en.json | 4 + services/webmail/messages/es.json | 4 + services/webmail/messages/pt-BR.json | 4 + services/webmail/public/icons/icon-192.png | Bin 8417 -> 5217 bytes services/webmail/public/icons/icon-512.png | Bin 26817 -> 14811 bytes .../webmail/public/icons/maskable-512.png | Bin 19364 -> 7363 bytes .../app/(user)/user/mail/[folder]/page.tsx | 17 ++- services/webmail/src/app/apple-icon.png | Bin 6210 -> 2681 bytes services/webmail/src/app/favicon.ico | Bin 4177 -> 2804 bytes services/webmail/src/app/icon.svg | 15 +- services/webmail/src/components/Logo.tsx | 40 ++---- .../webmail/src/components/MessageFrame.tsx | 6 +- .../webmail/src/components/MessageReader.tsx | 36 +++-- .../webmail/src/components/ThreadReader.tsx | 39 +++++- services/webmail/src/emailBody.test.ts | 93 +++++++++++++ services/webmail/src/lib/emailBody.ts | 128 ++++++++++++++++-- services/webmail/src/lib/renderMessage.ts | 27 +++- 17 files changed, 336 insertions(+), 77 deletions(-) diff --git a/services/webmail/messages/en.json b/services/webmail/messages/en.json index aabb645..a69b4b7 100644 --- a/services/webmail/messages/en.json +++ b/services/webmail/messages/en.json @@ -586,5 +586,9 @@ "hintClose": "close", "open": "Command menu", "signOut": "Sign out" + }, + "viewer": { + "asSent": "View as sent", + "adapt": "Match the theme" } } diff --git a/services/webmail/messages/es.json b/services/webmail/messages/es.json index db81fb9..b35da2a 100644 --- a/services/webmail/messages/es.json +++ b/services/webmail/messages/es.json @@ -586,5 +586,9 @@ "hintClose": "cerrar", "open": "Menú de comandos", "signOut": "Cerrar sesión" + }, + "viewer": { + "asSent": "Ver como se envió", + "adapt": "Adaptar al tema" } } diff --git a/services/webmail/messages/pt-BR.json b/services/webmail/messages/pt-BR.json index 6c9ecd6..1a8d2a8 100644 --- a/services/webmail/messages/pt-BR.json +++ b/services/webmail/messages/pt-BR.json @@ -586,5 +586,9 @@ "hintClose": "fechar", "open": "Menu de comandos", "signOut": "Sair" + }, + "viewer": { + "asSent": "Ver como enviado", + "adapt": "Adaptar ao tema" } } diff --git a/services/webmail/public/icons/icon-192.png b/services/webmail/public/icons/icon-192.png index cfb73b0adc2e23f336c700c9451561cfe233a9d4..6b3bcef38b6dcfdd72a7c800ceda59e5083ccf38 100644 GIT binary patch literal 5217 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 XcDQ5atlj)>${#>WOpXWcH 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 Dl6u8& diff --git a/services/webmail/public/icons/icon-512.png b/services/webmail/public/icons/icon-512.png index dbfbea36cf92b4a08bd2354caf3c7306bc4f2650..9e3d3e5f82a8c5f73a41a2c46ecfa74d872ef09b 100644 GIT binary patch literal 14811 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

Y~s_SXtsP9Jf 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 ah1_k;i?jQ!`vLq7L`zNgLD~H$A^#5yH!zw2 diff --git a/services/webmail/public/icons/maskable-512.png b/services/webmail/public/icons/maskable-512.png index afe85536736b246e3c819e35432d88907cab1da9..49a98116e5d9356113abf182b8f7a2d256f7600f 100644 GIT binary patch literal 7363 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 literal 19364 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%0A0NS#H`YXI_k)x9mMe^JtLSY>FXS z?}DYl_V9x^cnD&CugXlIST8;;6Xz}>eH(Vx&h{&9H`yCt=8l=98q??Vo{+QB)^2Fu zdL6CUVJbh^=7qWzu7R`5oZFxLfO|?Z%H_UbAm&6-*R=*O>%i^OK(z2pyU-(-3EqZW ztYpA0f3darHN1TZyL-WH#>2--_VIBZG$59;8LMoJ{m|R z&*c6Q6H7Y|_T1kHW&$UN8jy-uy_(@529-QhGp4QmqsK)UdEL<9s5cGa_uxu_%|##~ z+5{6X&9-gOAaJmYrrcNu(vmIG=o4g{M*TSd222;8Ov6vcs5gJ(kx}QEbm&04y`c4Z zGb-jn4g219pi!`KlhSA6X-pnJHib@2Mlrf{k$mZt^dNXW|t1Z#Qr9NL6mp$v9HH2Y0^>X`0v&clg0r4HSlV5Fgg?N?TJ-jDbQPIbY zvexXw*=w~z<1@)+Z0zD?6z%EhzP+N|j@5}o7tuiEFh4ge>tWTDbgrZn{q3}bBrd!8 zIc_Dyr|4ph8u=3^pgwIkbq5?TAGQkaGakRUOtNa@1SGCF3+|v3;;YhJCHZQfj~9_~ zvPe_QmHObzlZTMj9M`*u@j)2mhcO%iw?O~TwoCuBIn`!5Sb?{;Tu+(7&$N)0<)aw^ X1zD@FD@%nbpal9NFqGDMBChB^b(4T- diff --git a/services/webmail/src/app/(user)/user/mail/[folder]/page.tsx b/services/webmail/src/app/(user)/user/mail/[folder]/page.tsx index 9fef3d5..75c9e79 100644 --- a/services/webmail/src/app/(user)/user/mail/[folder]/page.tsx +++ b/services/webmail/src/app/(user)/user/mail/[folder]/page.tsx @@ -30,6 +30,7 @@ import { } from "../../../../../lib/mailCounts"; import { plainSnippet } from "../../../../../lib/snippet"; import { useTrustedSenders } from "../../../../../lib/trustedSenders"; +import { useTheme } from "../../../../../lib/theme"; import type { InlineImages } from "../../../../../lib/emailBody"; import { messageDocument, hasBlockedRemoteContent } from "../../../../../lib/renderMessage"; import { @@ -158,6 +159,9 @@ export default function MailFolderPage({ params }: { params: Promise<{ folder: s const [messages, setMessages] = useState([]); const [selected, setSelected] = useState(null); + // A plainly written message takes the app's colours; this shows it as sent. + const [showOriginal, setShowOriginal] = useState(false); + const { theme } = useTheme(); // The open conversation, when the list is showing conversations. const [selectedThread, setSelectedThread] = useState(null); const conversations = useConversationView(); @@ -444,6 +448,7 @@ export default function MailFolderPage({ params }: { params: Promise<{ folder: s } } setLoadRemoteImages(false); + setShowOriginal(false); setReaderHeight(420); try { const res = await fetch(`/api/v1/mail/message/${uid}?folder=${encodeURIComponent(folder)}`, { @@ -478,13 +483,13 @@ export default function MailFolderPage({ params }: { params: Promise<{ folder: s * markup, then resolve the message's own inline parts, then block or restore * remote sources - which is the only part the reader chooses. */ - const readerDocument = useMemo(() => { + const readerBody = useMemo(() => { if (!selected) return null; // A trusted sender's images load without asking; anyone else's wait for // the reader's choice, one message at a time. const showImages = loadRemoteImages || trustedSenders.isTrusted(selected.from ?? ""); - return messageDocument(selected, showImages); - }, [selected, loadRemoteImages, trustedSenders]); + return messageDocument(selected, showImages, { theme, original: showOriginal }); + }, [selected, loadRemoteImages, trustedSenders, theme, showOriginal]); // Whether anything was actually held back, so the privacy banner is not shown // over a message that has no remote content at all. @@ -794,7 +799,11 @@ export default function MailFolderPage({ params }: { params: Promise<{ folder: s name: target.name, label: FOLDER_LABELS[(target.special_use || target.name).toLowerCase()] ?? target.name, }))} - document={readerDocument} + document={readerBody?.document ?? null} + paper={readerBody?.paper ?? true} + canAdapt={readerBody?.canAdapt ?? false} + showingOriginal={showOriginal} + onToggleOriginal={() => setShowOriginal((v) => !v)} frameHeight={readerHeight} hasBlockedContent={hasBlockedContent} imagesLoaded={loadRemoteImages || senderTrusted} diff --git a/services/webmail/src/app/apple-icon.png b/services/webmail/src/app/apple-icon.png index 0a694a06301a6035b4de4715e504ebdbe0f0e9cc..90a2674a94a225b6ea2fb854683d5b83067b590d 100644 GIT binary patch literal 2681 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 Lc%7d~S^Zy_Np(L2!= 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 TC6;{v0000 - - - - - - - - - - - - + + + diff --git a/services/webmail/src/components/Logo.tsx b/services/webmail/src/components/Logo.tsx index a883f0f..35705d3 100644 --- a/services/webmail/src/components/Logo.tsx +++ b/services/webmail/src/components/Logo.tsx @@ -1,36 +1,20 @@ -import React, { useId } from "react"; +import React from "react"; /** - * The LambdaMail mark: a lambda on an ultramarine tile, with the flap of an - * envelope lit across the top. The same drawing as app/icon.svg, inline so it - * costs no request and takes any size. + * The LambdaMail mark: a lambda built as two square-cut strokes of one weight, + * white on an ultramarine tile with continuous corners. The same drawing as + * app/icon.svg and the generated icons, inline so it costs no request and takes + * any size. Flat on purpose: it has to hold at 16 pixels and on either theme. */ +const TILE = "M64.00 32.00 L64.00 38.34 L63.99 40.36 L63.98 41.83 L63.97 43.03 L63.95 44.06 L63.93 44.97 L63.90 45.79 L63.88 46.54 L63.84 47.24 L63.80 47.89 L63.76 48.50 L63.72 49.07 L63.67 49.62 L63.62 50.14 L63.56 50.64 L63.50 51.11 L63.43 51.57 L63.36 52.01 L63.29 52.43 L63.21 52.83 L63.13 53.23 L63.05 53.61 L62.96 53.97 L62.86 54.33 L62.77 54.67 L62.66 55.01 L62.56 55.33 L62.45 55.65 L62.33 55.95 L62.21 56.25 L62.09 56.54 L61.96 56.82 L61.83 57.10 L61.69 57.36 L61.55 57.62 L61.40 57.87 L61.25 58.12 L61.09 58.36 L60.93 58.59 L60.76 58.81 L60.59 59.04 L60.42 59.25 L60.24 59.46 L60.05 59.66 L59.86 59.86 L59.66 60.05 L59.46 60.24 L59.25 60.42 L59.04 60.59 L58.81 60.76 L58.59 60.93 L58.36 61.09 L58.12 61.25 L57.87 61.40 L57.62 61.55 L57.36 61.69 L57.10 61.83 L56.82 61.96 L56.54 62.09 L56.25 62.21 L55.95 62.33 L55.65 62.45 L55.33 62.56 L55.01 62.66 L54.67 62.77 L54.33 62.86 L53.97 62.96 L53.61 63.05 L53.23 63.13 L52.83 63.21 L52.43 63.29 L52.01 63.36 L51.57 63.43 L51.11 63.50 L50.64 63.56 L50.14 63.62 L49.62 63.67 L49.07 63.72 L48.50 63.76 L47.89 63.80 L47.24 63.84 L46.54 63.88 L45.79 63.90 L44.97 63.93 L44.06 63.95 L43.03 63.97 L41.83 63.98 L40.36 63.99 L38.34 64.00 L32.00 64.00 L25.66 64.00 L23.64 63.99 L22.17 63.98 L20.97 63.97 L19.94 63.95 L19.03 63.93 L18.21 63.90 L17.46 63.88 L16.76 63.84 L16.11 63.80 L15.50 63.76 L14.93 63.72 L14.38 63.67 L13.86 63.62 L13.36 63.56 L12.89 63.50 L12.43 63.43 L11.99 63.36 L11.57 63.29 L11.17 63.21 L10.77 63.13 L10.39 63.05 L10.03 62.96 L9.67 62.86 L9.33 62.77 L8.99 62.66 L8.67 62.56 L8.35 62.45 L8.05 62.33 L7.75 62.21 L7.46 62.09 L7.18 61.96 L6.90 61.83 L6.64 61.69 L6.38 61.55 L6.13 61.40 L5.88 61.25 L5.64 61.09 L5.41 60.93 L5.19 60.76 L4.96 60.59 L4.75 60.42 L4.54 60.24 L4.34 60.05 L4.14 59.86 L3.95 59.66 L3.76 59.46 L3.58 59.25 L3.41 59.04 L3.24 58.81 L3.07 58.59 L2.91 58.36 L2.75 58.12 L2.60 57.87 L2.45 57.62 L2.31 57.36 L2.17 57.10 L2.04 56.82 L1.91 56.54 L1.79 56.25 L1.67 55.95 L1.55 55.65 L1.44 55.33 L1.34 55.01 L1.23 54.67 L1.14 54.33 L1.04 53.97 L0.95 53.61 L0.87 53.23 L0.79 52.83 L0.71 52.43 L0.64 52.01 L0.57 51.57 L0.50 51.11 L0.44 50.64 L0.38 50.14 L0.33 49.62 L0.28 49.07 L0.24 48.50 L0.20 47.89 L0.16 47.24 L0.12 46.54 L0.10 45.79 L0.07 44.97 L0.05 44.06 L0.03 43.03 L0.02 41.83 L0.01 40.36 L0.00 38.34 L0.00 32.00 L0.00 25.66 L0.01 23.64 L0.02 22.17 L0.03 20.97 L0.05 19.94 L0.07 19.03 L0.10 18.21 L0.12 17.46 L0.16 16.76 L0.20 16.11 L0.24 15.50 L0.28 14.93 L0.33 14.38 L0.38 13.86 L0.44 13.36 L0.50 12.89 L0.57 12.43 L0.64 11.99 L0.71 11.57 L0.79 11.17 L0.87 10.77 L0.95 10.39 L1.04 10.03 L1.14 9.67 L1.23 9.33 L1.34 8.99 L1.44 8.67 L1.55 8.35 L1.67 8.05 L1.79 7.75 L1.91 7.46 L2.04 7.18 L2.17 6.90 L2.31 6.64 L2.45 6.38 L2.60 6.13 L2.75 5.88 L2.91 5.64 L3.07 5.41 L3.24 5.19 L3.41 4.96 L3.58 4.75 L3.76 4.54 L3.95 4.34 L4.14 4.14 L4.34 3.95 L4.54 3.76 L4.75 3.58 L4.96 3.41 L5.19 3.24 L5.41 3.07 L5.64 2.91 L5.88 2.75 L6.13 2.60 L6.38 2.45 L6.64 2.31 L6.90 2.17 L7.18 2.04 L7.46 1.91 L7.75 1.79 L8.05 1.67 L8.35 1.55 L8.67 1.44 L8.99 1.34 L9.33 1.23 L9.67 1.14 L10.03 1.04 L10.39 0.95 L10.77 0.87 L11.17 0.79 L11.57 0.71 L11.99 0.64 L12.43 0.57 L12.89 0.50 L13.36 0.44 L13.86 0.38 L14.38 0.33 L14.93 0.28 L15.50 0.24 L16.11 0.20 L16.76 0.16 L17.46 0.12 L18.21 0.10 L19.03 0.07 L19.94 0.05 L20.97 0.03 L22.17 0.02 L23.64 0.01 L25.66 0.00 L32.00 0.00 L38.34 0.00 L40.36 0.01 L41.83 0.02 L43.03 0.03 L44.06 0.05 L44.97 0.07 L45.79 0.10 L46.54 0.12 L47.24 0.16 L47.89 0.20 L48.50 0.24 L49.07 0.28 L49.62 0.33 L50.14 0.38 L50.64 0.44 L51.11 0.50 L51.57 0.57 L52.01 0.64 L52.43 0.71 L52.83 0.79 L53.23 0.87 L53.61 0.95 L53.97 1.04 L54.33 1.14 L54.67 1.23 L55.01 1.34 L55.33 1.44 L55.65 1.55 L55.95 1.67 L56.25 1.79 L56.54 1.91 L56.82 2.04 L57.10 2.17 L57.36 2.31 L57.62 2.45 L57.87 2.60 L58.12 2.75 L58.36 2.91 L58.59 3.07 L58.81 3.24 L59.04 3.41 L59.25 3.58 L59.46 3.76 L59.66 3.95 L59.86 4.14 L60.05 4.34 L60.24 4.54 L60.42 4.75 L60.59 4.96 L60.76 5.19 L60.93 5.41 L61.09 5.64 L61.25 5.88 L61.40 6.13 L61.55 6.38 L61.69 6.64 L61.83 6.90 L61.96 7.18 L62.09 7.46 L62.21 7.75 L62.33 8.05 L62.45 8.35 L62.56 8.67 L62.66 8.99 L62.77 9.33 L62.86 9.67 L62.96 10.03 L63.05 10.39 L63.13 10.77 L63.21 11.17 L63.29 11.57 L63.36 11.99 L63.43 12.43 L63.50 12.89 L63.56 13.36 L63.62 13.86 L63.67 14.38 L63.72 14.93 L63.76 15.50 L63.80 16.11 L63.84 16.76 L63.88 17.46 L63.90 18.21 L63.93 19.03 L63.95 19.94 L63.97 20.97 L63.98 22.17 L63.99 23.64 L64.00 25.66Z"; +const LAMBDA = "M15.27 10.00 L23.13 10.00 L48.73 54.00 L40.87 54.00Z M29.96 28.49 L34.04 35.51 L24.80 54.00 L17.20 54.00Z"; + export function Logo({ size = 32, className = "" }: { size?: number; className?: string }) { - // Several of these can be on one page, and a gradient id must be unique. - const id = useId().replace(/:/g, ""); return ( - - - - - - - - - - - + + + {/* Shifted left a little so the glyph, not its bounding box, is centred. */} + ); } diff --git a/services/webmail/src/components/MessageFrame.tsx b/services/webmail/src/components/MessageFrame.tsx index a8f73a8..5834c84 100644 --- a/services/webmail/src/components/MessageFrame.tsx +++ b/services/webmail/src/components/MessageFrame.tsx @@ -11,7 +11,7 @@ import { useTranslations } from "../i18n/provider"; * that sent it. The sandbox has no allow-same-origin: the frame stays on an * opaque origin and can read nothing of this page. */ -export function MessageFrame({ document: html }: { document: string }) { +export function MessageFrame({ document: html, paper = true }: { document: string; paper?: boolean }) { const t = useTranslations(); const frame = useRef(null); const [height, setHeight] = useState(160); @@ -30,7 +30,7 @@ export function MessageFrame({ document: html }: { document: string }) { }, []); return ( -

+