Lane selection sheds its slab — a hairline edge with a soft halo, intensity inverse to area

The whole-lane wash-and-solid-ring scaled its emphasis with the lane's
area: what read as a ring on a card read as a slab on a column. Resettled
as the system focus ring's vocabulary at selection strength — a hairline
accent edge with a soft accent glow bleeding outward, riding the stroke
shape rather than the translucent plate (a shadow behind it would bleed
through as murk), and no wash at all: nothing tints the cards' backdrop,
and lane colour stays the accent band's alone. Under Increase Contrast the
halo yields to the solid full-alpha ring — "strengthens borders" means
crisper, and a blur is the one thing a border cannot become — so the
setting sees exactly the indicator it always has; cards and trash rows are
card-scale and keep the solid ring at every contrast. One selection
vocabulary, pinned by Accommodations.drawsSelectionHalo and its test.

Claude-Session: https://claude.ai/code/session_014PtZdPwqZuqEDLc6wZMtEy
This commit is contained in:
2026-08-07 11:22:36 -04:00
parent f126614b56
commit 51cf994cb9
3 changed files with 48 additions and 19 deletions
+14
View File
@@ -75,6 +75,20 @@ enum Accommodations {
contrast == .increased ? 1 : base
}
/// Whether a selected lane draws its **halo** the soft accent glow bleeding outward from the
/// plate's hairline edge (`LaneView.selectionStroke`), the system focus ring's vocabulary at
/// selection strength.
///
/// Under Increase Contrast the answer is no, and that is the setting's own logic rather than a
/// retreat: "strengthens borders and the selection indicator" means *crisper*, and a blur is
/// the one thing a border cannot become. The edge instead goes full-alpha and heavier
/// (`accentOpacity`, `borderWidth` at the solid ring's base), so the setting sees the same
/// unambiguous solid ring it always has the halo is the resting treatment's softness, not
/// the indicator itself.
static func drawsSelectionHalo(contrast: ColorSchemeContrast) -> Bool {
contrast != .increased
}
/// Increase Contrast, asked of AppKit rather than of the SwiftUI environment for callers built
/// outside a rendered hierarchy, where the environment's accessibility values are not reliably
/// populated (`Motion.prefersReducedMotion`'s constituency).