palette: enlarge the region title into WCAG large class; repoint the grabbed envelope handle off hue
Corrects theme.h's large-text thresholds, names accent/secondary's real binding limiter, and adds compositeOver so the loop-span fill's 2.25:1 under-floor pair is asserted rather than assumed.
This commit is contained in:
@@ -416,25 +416,29 @@ against the WCAG tests — §2.1):
|
||||
| Role | Pastel | Starting RGB (hex) | Job |
|
||||
|---|---|---|---|
|
||||
| `accent/primary` | pastel lime green | `~176,224,152` (`#B0E098`) | the live/active/selected signal — the eye-magnet |
|
||||
| `accent/secondary` | pastel teal | `~132,214,208` (`#84D6D0`) | categorical role A (non-active zones, a second cluster) |
|
||||
| `accent/secondary` | pastel teal | `~132,214,208` (`#84D6D0`) *(superseded, see below)* | categorical role A (non-active zones, a second cluster) |
|
||||
| `accent/tertiary` | pastel purple | `~194,170,232` (`#C2AAE8`) | categorical role B (tertiary zones, a distinct affordance class) |
|
||||
| `accent/hot` | brighter primary tint | `~200,236,178` (`#C8ECB2`) | hover / live / drag feedback (a lighter pastel-lime) |
|
||||
|
||||
**Locked values, where they diverge from the starting table (2026-07-31).** `accent/secondary`
|
||||
darkened to `#38A8A0` (same hue ~176°, same saturation, lightness 0.68 → 0.44), which put its
|
||||
binding limiter on the AA 4.5:1 text-on-fill pair (4.91:1 on `bg/base`) rather than the 3:1
|
||||
indicator floor (3.94:1 on `bg/cell`). Two roles were added past the original three, since
|
||||
"exactly three accents" is no longer a constraint: `overlay/trace` `#816AA6` (a muted violet for
|
||||
marks drawn *over* an accent fill — see §the two-neighbour problem below), and the spectral
|
||||
ramp's mid stop, which keeps the original pastel teal `#84D6D0` as its own constant rather than
|
||||
aliasing `accent/secondary`.
|
||||
darkened to `#38A8A0` (same hue ~176°, same saturation, lightness 0.68 → 0.44). Its **binding
|
||||
limiter** — the pair that stops it going darker — is the velocity-curve trace on a
|
||||
*hover-lightened* `bg/cell` at **3.03:1** against a 3:1 floor, tighter than either the AA 4.5:1
|
||||
text-on-fill pair (4.91:1 on `bg/base`) or the indicator floor on rest `bg/cell` (3.94:1). ONE
|
||||
new Role was added past the original three, since "exactly three accents" is no longer a
|
||||
constraint: `overlay/trace` `#816AA6`, a muted violet for marks drawn *over* an accent fill (see
|
||||
§the two-neighbour problem below). The spectral ramp's mid stop also became its own value —
|
||||
the original pastel teal `#84D6D0` — but as a private constant, not a `Role`.
|
||||
|
||||
**The two-neighbour problem.** A mark drawn *over* an accent fill has to read against the fill
|
||||
*and* the surface behind it. For the envelope trace those are the lime waveform (relative
|
||||
luminance 0.648) and `bg/base` (0.024) — 9.41:1 apart, so `sqrt(9.41)` ≈ **3.07:1 is the most
|
||||
any single value can clear against both**. `overlay/trace` sits at that optimum; it has no
|
||||
headroom in either direction, and no value at all can clear 3:1 against the lime *and* on
|
||||
`bg/cell`. Such a role is confined to the band it was picked for.
|
||||
**The two-neighbour problem** (rule + numbers owned by `src/core/ui/CLAUDE.md`; the design
|
||||
consequence is recorded here). A mark drawn *over* an accent fill has to read against the fill
|
||||
*and* the surface behind it, which caps *any* single value at ≈3.07:1 against both. Two
|
||||
consequences shape the design rather than the palette: such a role is confined to the band it
|
||||
was picked for, and a **state** of that mark cannot be expressed as a hotter color — every
|
||||
value that clears the ceiling sits within 1.05:1 of every other, so the grabbed envelope handle
|
||||
signals by **size and a punched-out core** instead. That deliberately inverts the kit's
|
||||
"brighter = hotter" convention in this one band, because over a light fill a brighter tint is a
|
||||
*lower*-contrast tint (`accent/hot` measures 1.15:1 against the lime).
|
||||
|
||||
These are light-ish, low-saturation tints. On the **REAPER-grey surfaces** (`bg/cell` ≈
|
||||
`#3a3a3a`) they still clear **AA-large (3:1)** and the **state-indicator** floor — but the
|
||||
|
||||
Reference in New Issue
Block a user