The theme was one enum -- system, light, dark, ihasmail -- where one value carried a whole palette and implied dark. That works for exactly one palette. The two questions now come apart: which palette, and which side. Classic is the plain light and dark this app has always had. ihasmail's own palette gains a day version, so the background of the dark one becomes the text of the light one and the two read as one palette from either end. Dracula, Gruvbox, Rosé Pine and Tokyo Night are the work of their own projects, used under the MIT licence, and taken from each project's own repository rather than from anyone's reimplementation. What was fetched is recorded in .palette-sources/ and credited in NOTICE. Giving ihasmail's palette a light half removed a whole special case. Nothing is one-sided any more, so a palette can no longer override the mode, the toggle no longer has to set a palette aside on the way to light and remember it, and the greyed-out control that explained all that is gone. The old lastDarkTheme, which existed only for that, is gone with it. The shades between the published colours are derived rather than guessed: these projects publish twelve to twenty values and ihasmail needs about thirty. scripts/build-palettes.py computes the tiers and then measures every text colour against the surface it sits on -- 4.5:1 for prose, 3:1 for borders and marks -- lifting anything short towards white on a dark ground and towards black on a light one, so a lifted tier keeps its hue. It refuses to write a palette that would not pass. Every one of the nine halves needed at least one lift. These palettes are built for code editors, not for prose at this size: Dracula's comment grey is 3.03:1 on its own background and Rosé Pine's gold is 2.7:1 on Dawn. Shipping them as published would have quietly ended the WCAG AA claim. Two things caught while checking rather than while writing. The generated blocks were appended to the end of the stylesheet, which put them after the accent variants at equal specificity -- so choosing an accent over one of the new palettes did nothing at all. They now sit before those rules, where the existing ihasmail block's own comment says they have to. And that block was unqualified, so it would have shadowed the new light half; it is now explicitly the dark one. Settings written before this carry `theme` and no palette, and are read through the old enum. `theme` is still written back, derived, because a device on an older build reads it and would otherwise be stranded on a theme nobody chose.
2.4 KiB
Upstream palette values, fetched from source (all MIT)
Fetched 2026-09-02 from the projects' own repositories, not from any reimplementation.
Dracula — dracula/dracula-theme, MIT
README section is titled "Color Palette (OSS)" and contains BOTH variants, so Alucard is open source and not PRO-only.
Dracula (dark)
Background #282a36 · Current Line #44475a · Selection #44475a Foreground #f8f8f2 · Comment #6272a4 Cyan #8be9fd · Green #50fa7b · Orange #ffb86c · Pink #ff79c6 Purple #bd93f9 · Red #ff5555 · Yellow #f1fa8c
Alucard (light)
Background #fffbeb · Current Line #6c664b · Selection #cfcfde Foreground #1f1f1f · Comment #6c664b Cyan #036a96 · Green #14710a · Orange #a34d14 · Pink #a3144d Purple #644ac9 · Red #cb3a2a · Yellow #846e15
Gruvbox — morhetz/gruvbox, MIT
dark0_hard #1d2021 · dark0 #282828 · dark0_soft #32302f · dark1 #3c3836 dark2 #504945 · dark3 #665c54 · dark4 #7c6f64 · gray #928374 light0_hard #f9f5d7 · light0 #fbf1c7 · light0_soft #f2e5bc · light1 #ebdbb2 light2 #d5c4a1 · light3 #bdae93 · light4 #a89984 bright: red #fb4934 green #b8bb26 yellow #fabd2f blue #83a598 purple #d3869b aqua #8ec07c orange #fe8019 neutral: red #cc241d green #98971a yellow #d79921 blue #458588 purple #b16286 aqua #689d6a orange #d65d0e faded: red #9d0006 green #79740e yellow #b57614 blue #076678 purple #8f3f71 aqua #427b58 orange #af3a03
Rosé Pine — rose-pine/palette, MIT (palette.json)
main (dark)
base #191724 surface #1f1d2e overlay #26233a muted #6e6a86 subtle #908caa text #e0def4 love #eb6f92 gold #f6c177 rose #ebbcba pine #31748f foam #9ccfd8 iris #c4a7e7
dawn (light)
base #faf4ed surface #fffaf3 overlay #f2e9e1 muted #9893a5 subtle #797593 text #464261 love #b4637a gold #ea9d34 rose #d7827e pine #286983 foam #56949f iris #907aa9
Tokyo Night — enkia/tokyo-night-vscode-theme, MIT
Night (dark)
bg #1a1b26 · bg_dark #16161e · fg #a9b1d6 · line numbers #363b54 · border #101014 selection #202330 · link #6183bb accents: purple #bb9af7 · text-bright #c0caf5 · red #f7768e · cyan #0db9d7 blue #7aa2f7 · light-cyan #7dcfff · yellow #e0af68 · teal #73daca · green #9ece6a
Day (light)
bg #e6e7ed · bg_dark #d6d8df · fg #343b59 · line numbers #9da0ab · border #c1c2c7 link #2959aa accents: purple #65359d · red #8c4351 · cyan #006c86 · blue #2959aa yellow #8f5e15 · teal #33635c · green #385f0d