Posted September 06, 2025 by FBEpyon
#aseprite #aseprite-script #lua #color-picker #color-wheel #color-ramps #complementary #triadic #hsl-controls #hsv-wheel
Two big goals drove v1.5:
eliminate all dialog “jitter” and resize surprises, and
turn the Wheel into a serious, precise editor (with HSL) while restoring the visual shade cues users loved.
New Hue° / Sat% / Light% sliders live in the Wheel dialog.
Reset HSL restores the Wheel to the exact state it had when you opened it (no more partial resets).
Dragging on the wheel previews instantly; the actual commit happens on release. This keeps the main dialog stable and avoids thrash.
Inner ring shows your Base ramp’s shades radiating toward the center.
This was a key visual aid in earlier builds; it’s back and integrated with the new Wheel.
The main dialog now enforces a fixed width after every UI change (recompute, hover info toggle, canvas reflow, and Wheel picks).
Result: zero jitter, even when text labels or hover info change.
Nil-call crashes fixed:
recomputeRamps()
is defined before any use.
Hover state is cleared during recompute so c
is never nil in draw paths.
Prefs are safer: All reads/writes to app.preferences.super_color_picker
are guarded with pcall
.
Hover info is optional: Value overlay defaults OFF to reduce width churn and noise.
Anti-aliased, better-looking wheel rendering; shade markers are composited efficiently.
Known trade-off: on very old hardware, full-quality wheel redraws may feel heavier. The main dialog remains smooth.
Toggle Auto FG on/off with frequent FG changes → no layout shift, ramps recompute correctly.
Toggle Compact mode repeatedly → width stays locked, canvases reflow to the correct size.
Drag/release on wheel → preview during drag, commit on release, main dialog width unchanged.
Extreme slider cases: Min Δ
= 1 and 20, Step°
= 5 and 45, Slope
= 0–10% → no crashes, ramps remain legible.
Open/close Wheel repeatedly → HSL reset works, markers obey toggles, no cumulative drift.
Bridge ramp builder: Computes hue delta in [-0.5, 0.5] (shortest arc) and distributes steps evenly, with an optional mid-balanced value slope.
Lock helper: Centralized width-locking routine is now called after any path that might mutate the layout (including wheel-event commits).
Hover state: Defensive resets whenever ramp arrays are rebuilt.
The Wheel’s rendering is more detailed now; on some systems it can feel heavier during continuous drags (preview path mitigates this -work in progress).
Shade markers are always tied to the Base ramp by design.
Feature design & direction: William P. McCollom (FBEpyon)
Code assistance & documentation polish: AI pair-dev support
If you want this dev log dropped into your repo as DEVLOG.md
or converted into a GitHub release note body, say the word and I’ll format it accordingly.