Skip to content

v0.25.0

Choose a tag to compare

@adamXbot adamXbot released this 27 Oct 11:10
· 15 commits to main since this release
b10d544

fxcss 0.25.0 captures the parts of Firefox that themes style outside the main window: panels, Settings and hover states. The PR preview comment now shows each distinct change once instead of one picture per view per platform. It also says which older Firefox releases a change stops styling.

  • 14 new views, light and dark, each cropped to its own surface so a tab-strip change leaves them alone:

    • hovered toolbar buttons;
    • the search engine button and its menu;
    • the app menu, the extensions panel and the account panel;
    • Settings (about:preferences, styled through userContent.css).

    Panels are separate OS windows, so they are taken with a screen capture checked against Firefox's own capture of the nav bar. That needs fxcss[images], and on macOS screen-recording permission. When a machine can't see Firefox, the panel views are reported as not captured, with the reason, rather than captured wrong.

  • Categories. Every view and every change belongs to one of 11 areas: Window, Tabs, Toolbars, Address bar, Find bar, Sidebar, Content, Dialogs, Panels, Settings and Optional stylesheets. A change in a full-window view is filed under the area it is actually in.

  • Distinct changes. fxcss compare groups changed pixels into distinct changes:

    • a page that moved by 1px in 42 views is one change, "moved up 1px";
    • the PR preview comment is grouped by category, with one cropped picture per change and the same change on other platforms folded under it;
    • every view is still linked to its full before and after.

    On WhiteSur's #240, the 55 changed views on macOS come down to 15 changes. The old comment had 147 pictures across three platforms.

  • fxcss support --base OLD --head NEW says which older Firefox releases a change drops styling for. A rename that only works from Firefox 158 is one example. The result now leads the PR preview comment and the Firefox watch's fix PRs. Set how far back to look with FXCSS_OLDEST_FIREFOX or fxcss init --oldest-firefox (default: the current ESR).

  • PR previews can be narrowed with FXCSS_VARIANTS, FXCSS_VIEWS and FXCSS_MIN_CHANGED_PERCENT, or fxcss init --variants/--views/--min-changed-percent.

  • audit --strict-vars no longer counts a custom property as read by Firefox when only DevTools reads it.

  • fxcss try --info keeps a flag's argument, such as -t <name>, when listing a theme README's options.

Upgrade an existing installation with pipx upgrade fxcss, or use pip install "fxcss[images]==0.25.0" in a virtual environment or CI.

Generated workflows keep their version pins until you regenerate them. Run fxcss init with your existing options and --force, then review the diff to keep local edits. A check baseline saved by 0.24 lacks the new views; they are listed as not compared and don't fail the check. Run fxcss check --update-baseline with 0.25 to start comparing them.

Full changes since v0.24.0.

The release workflow passed all 26 jobs, including cross-platform browser tests, installed-package checks and the PyPI installability gate. Before tagging, a Firefox compatibility run on the release commit's parent passed on Stable, ESR, Beta and Nightly. The pull request's CI captured every new view on Linux, Linux ESR, Windows and macOS, with each view reacting to its own CSS.

A fresh installation from PyPI showed version 0.25.0 with all 34 standard views. The published wheel and source archive have the same SHA256 hashes as the files the release workflow built and tested.