Nocturne 1.1.1
The shimmer moved the icon
The sweep frames were rebuilt from the symbol name at pointSize: 15, while the resting glyph is created with no configuration at all. Every glyph came out larger in the frames:
| glyph | resting | sweep frame |
|---|---|---|
clock |
15x15 | 18x17 |
clock.badge.xmark |
18x16 | 21x19 |
moon.stars |
15x16 | 17x18 |
moon.fill |
15x15 | 18x17 |
A status item with variableLength sizes itself to whatever image it is showing, so every sweep resized the item and nudged its neighbours. That is the movement and the phantom padding.
Frames are now drawn from the resting image itself, so they cannot differ from it in size. Verified live: sampling every menu bar item for 18 seconds at the fastest cadence, every item held one width throughout.
(Pinning the item length was tried first and rejected. Measuring the button width during refreshIcon runs before layout has settled, and the icon vanished from the menu bar entirely. Matching the source image is the smaller and safer fix.)
The sweep is icy dark blue
The band is now #3F87B3 rather than a dip in brightness.
That has a consequence worth knowing: the frames can no longer be template images, because a template is repainted in a single colour and the blue would simply vanish. So the frames carry the glyph colour as well, cached per appearance and rebuilt when light and dark flip. The resting glyph stays a template, so it keeps adapting for free whenever nothing is sweeping.
Checked against both bar appearances. #3F87B3 sits at mid luminance, so it reads against a white glyph and a black one.