Skip to content

fix(pwa): rebuild app icons on one background so macOS shows no inner tile - #38

Merged
sixvolts merged 1 commit into
mainfrom
ci/fullbleed-icons
Oct 3, 2026
Merged

sixvolts merged 1 commit into
mainfrom
ci/fullbleed-icons

Conversation

@github-actions

@github-actions github-actions Bot commented Oct 3, 2026

Copy link
Copy Markdown

Chrome desktop installs on two newer machines showed the Familiar icon as a
tile inside a tile with white corners; an older install looked right. No icon
had changed since the July public snapshot, so this was a latent defect that
newer Chrome exposed, not a regression.

Diagnosed by rendering each icon under a macOS-style squircle and looking at
it, not by counting pixels (a pixel count alone pointed at the wrong fix):

  • icon-192 / icon-512 / apple-touch-icon were a dark rounded tile on an OPAQUE
    WHITE square. The squircle clips that white off at the canvas edge, so these
    looked fine: the older install.
  • icon-maskable-512 was that same white-cornered icon shrunk onto a dark
    canvas. Its white corners sit inside the safe zone, where the squircle does
    not reach. Newer Chrome prefers maskable icons on macOS, so new installs
    showed exactly the reported tile-in-a-tile.

A first attempt copied the maskable art into the plain slots. It cleared the
corners but would have spread the inset white to every icon; caught by
locating the remaining white, and reverted before commit.

Fix: take the F and gold dot from the plain icon and flatten everything else
(the white, its soft edge, the inner tile) onto one uniform tile colour
#1a1a22. The white is unsaturated while the purple F and gold dot are strongly
saturated, so it separates cleanly by colour. Every size is derived from that:
512/192 full size, 180 apple-touch (RGB; iOS rounds it itself), and the
maskable 512 with the logo scaled to 80% so it sits well inside the safe zone.

Verified: 0 near-white pixels in all four (was 5388 in icon-512); the 512's
purple and gold pixel counts are identical to the original (28284 / 1926), so
the logo is untouched; the smaller sizes scale in proportion; every corner is
#1a1a22. Rendered under the squircle, all four show a single clean tile.

Existing installs keep the icon they were installed with. Reinstall the app on
the affected machines after deploy to pick this up.


Opened automatically after the tiers check passed on 7dea31a7.

The check is attached to this branch head, so this is mergeable now.

… tile

Chrome desktop installs on two newer machines showed the Familiar icon as a
tile inside a tile with white corners; an older install looked right. No icon
had changed since the July public snapshot, so this was a latent defect that
newer Chrome exposed, not a regression.

Diagnosed by rendering each icon under a macOS-style squircle and looking at
it, not by counting pixels (a pixel count alone pointed at the wrong fix):

- icon-192 / icon-512 / apple-touch-icon were a dark rounded tile on an OPAQUE
  WHITE square. The squircle clips that white off at the canvas edge, so these
  looked fine: the older install.
- icon-maskable-512 was that same white-cornered icon shrunk onto a dark
  canvas. Its white corners sit inside the safe zone, where the squircle does
  not reach. Newer Chrome prefers maskable icons on macOS, so new installs
  showed exactly the reported tile-in-a-tile.

A first attempt copied the maskable art into the plain slots. It cleared the
corners but would have spread the inset white to every icon; caught by
locating the remaining white, and reverted before commit.

Fix: take the F and gold dot from the plain icon and flatten everything else
(the white, its soft edge, the inner tile) onto one uniform tile colour
#1a1a22. The white is unsaturated while the purple F and gold dot are strongly
saturated, so it separates cleanly by colour. Every size is derived from that:
512/192 full size, 180 apple-touch (RGB; iOS rounds it itself), and the
maskable 512 with the logo scaled to 80% so it sits well inside the safe zone.

Verified: 0 near-white pixels in all four (was 5388 in icon-512); the 512's
purple and gold pixel counts are identical to the original (28284 / 1926), so
the logo is untouched; the smaller sizes scale in proportion; every corner is
#1a1a22. Rendered under the squircle, all four show a single clean tile.

Existing installs keep the icon they were installed with. Reinstall the app on
the affected machines after deploy to pick this up.
@sixvolts
sixvolts merged commit 1e8028a into main Oct 3, 2026
1 check passed
@sixvolts
sixvolts deleted the ci/fullbleed-icons branch October 3, 2026 15:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant