v0.178.0Release

Twenty faint tints that were never actually there

The pale outline that made the Refine button look permanently focused had a cause worth chasing, and it turned out to affect a lot more than one button. Pekan's colours are defined once as theme variables, so a single set of screens can render in light, ember, midnight, sepia, and sakura. Tailwind, the styling layer, could read those variables perfectly well for a solid colour, but not for a translucent one: to make a colour 40 percent transparent it needs to take the colour apart into its red, green, and blue components first, and a variable is opaque to it. Faced with that, it did not fall back to the solid colour. It threw the whole instruction away and emitted nothing.

The result was a class of styling that had never once appeared on screen. Around twenty places asked for a faint brand tint or a soft translucent panel and got nothing at all, and in the handful of cases where the discarded instruction was the only thing setting a border colour, the browser's own default light grey filled the gap. That grey belongs to no Pekan theme, which is why it looked so wrong against the dark ones.

The fix applies the transparency in the browser instead of ahead of time, so the colour stays a variable and keeps switching with your theme, including themes you have edited yourself. Every one of those tints now renders as intended. The selected tag chips and the pressed Wrap toggle in the diff viewer pick up the faint warm wash that marks them as on. The AI disclosure panel, the refined-task review panel, the unread rows in notifications, and the AI-generated badge get a muted brand outline in place of the stray grey one. The roadmap's month header now has a background, so task bars no longer scroll straight through the month labels, and the roadmap toolbar matches every other toolbar in the app.

Two places were quietly wrong rather than merely invisible, and were changed rather than switched on. Hovering a row in the roadmap now paints an opaque highlight, because that column stays fixed while the timeline scrolls underneath it and a see-through highlight would have let the bars slide through the row it was pointing at. The Compare and Reload buttons on the file-changed-on-disk banner take the banner's own warning colour instead of the browser grey they had been falling back to.

Everything else on screen is untouched: solid colours generate exactly the same styling as before, and the website shares the same colour foundation and renders identically. A new check compiles every translucent colour in the app and on the website and fails the build if any of them produces nothing, so this particular kind of silence cannot come back.


← Browse all Pekan releases