LiquidBird is an independent macOS 27 Liquid Glass theme for Mozilla Thunderbird. It preserves Thunderbird's mail, calendar, tasks, contacts, chat, compose, settings, account-settings, and add-ons functionality while making the application feel at home on a current Mac.
| Dark appearance | Light appearance |
|---|---|
![]() |
![]() |
These are captures of the real theme running in Thunderbird Beta. The profile, mail, contacts, and calendar entries are generated synthetic fixtures and contain no personal mailbox data.
LiquidBird uses Thunderbird's native Gecko/AppKit appearance hooks for the window titlebar and sidebar. It follows the Mac's appearance, accent color, increased-contrast setting, reduced-transparency setting, and reduced-motion preference instead of baking one Mac configuration into the CSS.
- Native macOS sidebar and titlebar vibrancy where Gecko exposes it
- macOS 27-style concentric corners, segmented toolbar groups, and restrained glass
- Physical press feedback on interactive glass controls
- Native focused/inactive selection states and semantic toggle treatment
- System accent color, light/dark appearance, density choices, and accessibility adaptations
- Complete replacement glyph set from the freely redistributable Lucide set
- Styling for mail folders, message lists and readers, search, quick filter, compose, contacts, calendar, tasks, chat, dialogs, settings, account settings, and add-ons
custom.cssfor update-safe personal overrides
LiquidBird 0.1.0 has been manually exercised with Thunderbird Beta 154.0 (build 15426.7.21) on macOS 27. macOS is the supported platform. Other Thunderbird versions, Linux, and Windows are currently unverified and are best-effort only; non-macOS platforms cannot use native AppKit materials.
Thunderbird can rename its internal selectors in any update. Consult the tested configuration matrix and coverage notes before reporting a problem.
Important
Thunderbird does not officially support userChrome.css or
userContent.css. These customizations can stop working after an update and
may complicate troubleshooting. Always keep a profile backup and know how to
disable the theme.
Use a tagged release rather than downloading a moving development snapshot.
The release ZIP contains a ready-to-copy chrome directory.
- In Thunderbird, open Settings → General → Config Editor and set
toolkit.legacyUserProfileCustomizations.stylesheetstotrue. - Open Help → Troubleshooting Information and click Show in Finder next to Profile Folder.
- Fully quit Thunderbird.
- If the profile already contains a
chromedirectory, duplicate it and name the copy something such aschrome.backup-2026-07-25. Keep that backup outside the activechromedirectory. - Copy
liquidbird.css,liquidbird-content.css, and the completeIconsdirectory from the release into the profile'schromedirectory. - Configure the two loader files without overwriting existing customizations:
If the file does not exist, copy the release's userChrome.css. If it already
exists, keep it and add these imports at the very beginning, before every other
CSS rule:
@import url("liquidbird.css");
@import url("custom.css");If the file does not exist, copy the release's userContent.css. If it already
exists, keep it and add this import at the very beginning, before every other
CSS rule:
@import url("liquidbird-content.css");Never replace an existing custom.css. If the file does not exist, duplicate
custom.css.example from the release and rename the duplicate custom.css.
Keep personal rules only in that file.
- Fully reopen Thunderbird.
The closest match uses Thunderbird's default density, card view, and vertical view, but LiquidBird also contains rules for the other documented combinations.
- Back up the active
chromedirectory and fully quit Thunderbird. - Replace only
liquidbird.css,liquidbird-content.css, andIconswith the files from the new release. - Compare release loader files with your existing
userChrome.cssanduserContent.css; merge import changes rather than overwriting either file. - Keep the existing
custom.cssunchanged. - Reopen Thunderbird and review the release notes for compatibility changes.
For example, a personal override belongs in custom.css:
:root {
--lb-radius-surface: 10px;
}To disable LiquidBird temporarily, fully quit Thunderbird and comment out the
three LiquidBird imports in userChrome.css and userContent.css, then reopen
Thunderbird. Alternatively, set
toolkit.legacyUserProfileCustomizations.stylesheets to false to disable all
profile CSS customizations.
To roll back, fully quit Thunderbird, rename the active chrome directory,
restore the backup made during installation or update, and reopen Thunderbird.
To uninstall LiquidBird while retaining other custom CSS:
- Fully quit Thunderbird.
- Remove the LiquidBird import lines from
userChrome.cssanduserContent.css. - Remove
liquidbird.css,liquidbird-content.css, and the LiquidBirdIconsdirectory after confirming that no personal rules use them. - Keep or remove
custom.cssaccording to whether it contains personal work. - Reopen Thunderbird.
- Confirm the legacy-stylesheet preference is
trueand fully restart Thunderbird; closing only a tab or window is insufficient. - Confirm capitalization and placement: all CSS files and
Iconsmust be directly inside the active profile'schromedirectory. - Disable personal
custom.cssrules and other profile CSS temporarily. - Check whether the problem occurs with LiquidBird disabled. If it does, it is probably a Thunderbird or add-on issue rather than a LiquidBird issue.
- Compare the exact Thunderbird version and configuration with
docs/COMPATIBILITY.md. - Restore the backup if Thunderbird becomes difficult to use.
- If the problem is LiquidBird-specific, read SUPPORT.md and use the bug-report form with a sanitized screenshot.
Mozilla's own unsupported customization guidance contains additional reset and recovery information.
Run the repository checks before contributing:
python3 scripts/check.py
python3 -m unittest discover -s testsBuild the deterministic release archive using the version in VERSION:
python3 scripts/package_release.py --output distGenerate an isolated, offline Thunderbird profile containing only synthetic mail, contacts, and calendar data, then capture the themed application without exposing a personal profile:
python3 scripts/demo.py captureRegenerate and publish the two README screenshots:
python3 scripts/demo.py capture \
--surface mail \
--appearance both \
--publish-readmeSee the synthetic screenshot workflow for selecting UI surfaces, capturing light and dark appearances, and inspecting the demo safely.
See CONTRIBUTING.md, SUPPORT.md, CHANGELOG.md, and the release guide for the contribution, support, and release processes.
Apple's macOS 27 design kit and Human Interface Guidelines are visual
references, but LiquidBird bundles no Apple Design Resource or SF Symbol. Apple's
design-resource license does not permit repackaging those assets as a theme.
The research and implementation rationale are in
docs/DESIGN.md.
Interface icons are unmodified Lucide SVG source files distributed under the
ISC license, with a subset also covered by Feather's MIT license. FluentBird
was used as an MIT-licensed selector-coverage reference. Full notices and
pinned upstream revisions are in
THIRD_PARTY_NOTICES.md.
LiquidBird itself is distributed under the MIT License.
LiquidBird is an independent community project and is not affiliated with or endorsed by Apple, Mozilla, MZLA, or the Thunderbird project. Apple, macOS, Mozilla, and Thunderbird names and marks belong to their respective owners and are used only to identify compatibility and design references.

