• v4.48.1 a8e0505041

    v4.48.1
    All checks were successful
    test / test (push) Successful in 2m21s
    build-and-release / appimage (push) Successful in 2m27s
    Stable

    Ghost released this 2026-09-11 20:30:14 +00:00 | 5 commits to main since this release

    Fixed

    • Oversized icons. The sidebar, the site favicons and the auto-backup status dot referenced helper
      classes (sq-s20, h-s20, w-s20, p-s2, sq-s8, …) that global.css never defined, so those
      SVGs and frames fell back to the browser's default size and rendered huge. The classes are now
      generated, and the icon size comes from the SVG's own width/height instead of a stylesheet class.
    • The helper generator only scanned className= attributes, which is why classes written in object
      literals or default parameters were never emitted.

    Changed

    • Icons now come from icons.tsx only: the second icon file (NavIcons.tsx) is gone and every icon
      uses the standard's strokeWidth 1.8 with a fixed size (THEME.md §4.7).
    • Motion follows THEME.md §4.4 again: the looping pulse animation (and a duplicate @keyframes
      definition) is gone, the loading placeholders use the standard fadeIn, and every transition is
      120ms.
    • The version shown in the sidebar, footer, About dialog and update panel now comes from
      app.getVersion() via app:getState instead of a constant baked into the bundle (STANDARD.md §3.2).
    • The account filters use the standard's filter-select and the export actions its export-grid.
    • Test timeout raised above asyncUtilTimeout, so a slow assertion reports the element it could not
      find instead of an opaque "test timed out".
    • Added tests/design-standard.test.ts, which fails when a component references a class the
      stylesheet does not define, when an icon appears outside icons.tsx, when a non-standard animation
      is used, or when a colour is hardcoded in a component.
    Downloads