Nocturne 1.1.0
The icon can shimmer
A highlight sweeps down the menu bar icon over 700ms. Settings has a cadence picker: Off, Often (10s), Occasionally (30s, the default) or Rarely (2 minutes). Picking one previews it straight away.
The default is deliberately unhurried and Off is a first-class option, because this is an app for not being interrupted by your menu bar.
Two things that made it work properly:
The frames are template images, with the sweep in the alpha channel rather than the colour. AppKit keeps tinting a template for whatever the menu bar currently needs, so one set of frames reads correctly on a light bar, a dark bar, and over a wallpaper that moves underneath. Baking a colour in would have meant regenerating everything on every appearance change.
The band dims rather than brightens. A template's alpha caps at 1, so brightening a band means dimming everything else, and the whole icon visibly dropped the instant a sweep started and snapped back when it ended. Dipping instead makes the first and last frames identical to the resting glyph, so the sweep begins and ends on nothing.
Frames are cached per symbol, and the schedule timer carries 25% tolerance so decoration cannot wake a sleeping Mac.
The panel got a pass
- Sections and mode changes animate at 160ms instead of popping.
- Mode cards share a minimum height, so one description wrapping to two lines no longer leaves the stack ragged.
- The window sizes itself to its content and clamps to the screen, instead of a fixed height that left dead space on a large display and overflowed a small one.
- Light-mode contrast fix. Section labels measured 4.21:1 against macOS
windowBackgroundColor, under the 4.5:1 WCAG AA needs for small text. The brand bronze is specified against a lighter paper background, so small tracked labels now use a slightly deeper variant measuring 4.93:1. Dark mode already passed at 7.05:1 and is unchanged.