Description:
Unify
sliders and dials
into a single
Continuous Control
that
auto-morphs
its presentation based on widget shape/orientation: tall = vertical slider, wide = horizontal slider,
square ≈ dial
. The control keeps the
same ID, mappings, actions, and ranges
regardless of presentation, with an optional lock to force a chosen style.
Problem:
Currently, sliders and dials are treated as different widgets, so changing layout (e.g., making a slider more square) often means
rebuilding or re-mapping
to switch to a dial—and vice versa. This duplicates work, breaks consistency, and slows iteration for dense, responsive layouts.
Proposed Solution:
  • One Control, Three Presentations:
    A single
    Continuous Control
    renders as
-
Vertical slider
when height ≫ width,
-
Horizontal slider
when width ≫ height,
-
Dial
when aspect is
near-square
(threshold user-settable, e.g., 0.85–1.15).
  • Preserve Everything:
    Same
    midi/osc mappings, actions, ranges/min-max, step/curve
    , ramp/quantize guards, and visual style regardless of presentation. No re-assignment needed.
  • Lock & Overrides:
    Optional
    Style Lock
    (Slider-V / Slider-H / Dial) to prevent auto-morph for users who prefer fixed visuals; project/page defaults.
  • Smart Gestures:
- Linear/fine-adjust drag for all presentations;
circular + linear
drag for dials.
- Optional accel for long throws; scrubbing with modifier keys; double-tap to reset.
  • Inspector Controls:
    Aspect threshold, pointer angle range for dial, tick/indicator options, value readout mode, snap points.
  • Copy/Duplicate Safety:
    Duplicates retain the same control type and presentation logic; resizing triggers morph without breaking bindings.
  • Themes & Accessibility:
    Contrast guard, large-type readouts, color-blind-safe indicators; pictogram/Genmoji labels supported.
Benefits:
  • No re-mapping
    when switching between slider and dial looks.
  • Faster, cleaner page design: layout drives look,
    function stays identical
    .
  • Consistent behavior across devices/orientations while preserving muscle memory.
  • Less widget proliferation; simpler templates and maintenance.
Examples:
  • A volume control grid is resized to fit a tight matrix; square cells automatically render as
    dials
    without losing MIDI learns.
  • Sound-design page: widen Cutoff to become a
    horizontal slider
    for precision, then shrink to square for a
    dial
    —all mappings intact.
  • Duplicate a control to a second page; it appears as a
    vertical slider
    on a tall strip and a
    dial
    in a compact header, yet both share the same actions and ranges.
This summary was automatically generated by GPT-5.1 Thinking on 2025-11-21.