aboutsummaryrefslogtreecommitdiff
path: root/docs/prototypes
Commit message (Collapse)AuthorAgeFilesLines
* feat(gallery): add R12 chrome slot fader and R13 edgewise strip meterCraig Jennings11 hours1-0/+71
| | | | | | | | | Two more reference-batch widgets as inline SVG, from channel-strip references (the fader's source screenshot is filed in the catalogue's working directory): - R12 chrome slot fader: a chrome T-handle with a conical nose rides a recessed slot, the signed dB scale (+12 to -24) engraved on a screwed-down plate. Drag; the readout shows signed dB. - R13 edgewise strip meter: a parchment vertical scale with the compressed log spacing of a gain-reduction meter (0/3/6/12/20/40), a dark bar riding its edge. Drag-driven. I verified both in headless Chrome: handle and bar track drags with correct dB interpolation, no console exceptions. The gallery is at 66 cards.
* feat(gallery): add R08-R11 from hi-fi and cockpit referencesCraig Jennings11 hours1-0/+128
| | | | | | | | | | | Four more reference-batch widgets as inline SVG, from pasted hardware references (a hi-fi chrome level window, aviation instrument clusters, and a vintage altimeter): - R08 chrome MIN/MAX indicator: polished ring, brushed metal dome, cog hub, dark pointer sweeping MIN to MAX. - R09 black-face aviation gauge: amber ticks and numerals on black, painted green/amber/red zone arcs per the airspeed-indicator scheme, glowing amber needle. - R10 data matrix readout: a lit amber data block with labeled fields; click cycles SYS/NET/TIME pages, and the TIME page runs off the real clock. - R11 warning flag window: a striped barber-pole slides into the window when tripped, the mechanical alarm idiom as distinct from a lamp. I verified all four in headless Chrome: both meters track drags, the pages cycle, the flag trips and clears, no console exceptions. The gallery is at 64 cards.
* feat(gallery): add R05-R07 filter bank, chicken-head selector, round meterCraig Jennings11 hours1-3/+100
| | | | | | | | | | | | Three more reference-batch widgets as inline SVG, from the Berna-style faceplate set: - R05 filter slider bank: eight band faders with teal double-arrow caps on black tracks, frequency labels up top, a dB rail at the side. Per-band drag; the readout names the band and its attenuation. - R06 chicken-head selector: the tapered lever aims at the engraved position (OFF/LO/MID/HI); the active legend lights. Click steps through. - R07 round panel meter: porthole black bezel, cream dial, printed dB arc with red zone, drag-driven needle. R07 shares the VU-law dB interpolation with R01 through a new vuDb helper, so the nonlinear scale lives in one place. I verified all three in headless Chrome: band drags update cap and readout, the selector steps and relights, the meter needle tracks drags, no console exceptions. The gallery is at 60 cards.
* feat(gallery): add reference batch R01-R04 modeled on period hardwareCraig Jennings11 hours1-2/+154
| | | | | | | | | | | I built four widgets as inline SVG (the substrate that ports to svg.el), modeled on 1950s-60s lab and console hardware from the reference photos now filed in the catalogue's working directory: - R01 moving-coil VU meter: cream face, authentic nonlinear dB arc (-20 to +3), red zone, ballistic needle on the live signal. - R02 calibrated vernier dial: rotating tick-ring disc with radial numerals under a fixed hairline, fluted bakelite knob, reads to a tenth. - R03 bat-handle toggle: chrome lever on a hex bushing, snaps ON/OFF with lit legends. - R04 bakelite fluted knob: scalloped skirt, glossy dome, amber index over a printed 0-10 scale. I verified all four in headless Chrome: the VU animates with ballistics, the dial and knob track drags, the toggle throws, no console exceptions. The gallery now carries 57 cards.
* refactor(gallery): rename generated tokens.el to gallery-tokens.elCraig Jennings12 hours4-7/+11
| | | | The generated file declares (provide 'gallery-tokens), but `require` resolves a feature by filename, so as tokens.el it could never load from a load-path. The name now matches the feature. gen_tokens.py, the renderer's load, and the README follow.
* feat(gallery): add svg.el renderer proving the Emacs target, fix gauge ticksCraig Jennings12 hours3-2/+186
| | | | | | | | | | gallery-widget.el is the proof-of-concept Emacs renderer: it reads the generated tokens.el and renders the needle gauge (card 10) as SVG via svg.el. Rasterized through librsvg (the renderer Emacs itself uses), it matches the web card side by side: same arc, ticks, glowing amber needle, half-dome hub, and readout from the same tokens. That closes the riskiest unknown in the three-target plan, so the component pattern can now scale widget by widget. The comparison surfaced a real gallery bug: the web gauge's ticks were invisible. Their transform-origin put the rotation center 40px below the dial, so the rotated ticks landed outside the clipped area. I moved the ticks to the arc's top edge with the origin at the pivot, and all three now show at -60/0/+60. The parseability test caught a second bug: the mono token's font stack carries double quotes, which broke the font-family XML attribute. The renderer swaps them to single quotes. Tests are ERT (tests/gallery-widgets/), covering token resolution, angle math (normal/boundary/error), and the rendered document's structure. make test-unit now runs the elisp suites alongside the python ones, and make test-elisp runs them alone.
* refactor(gallery): extract design tokens to one source for 3 targetsCraig Jennings12 hours5-40/+370
| | | | | | | | | | | | The colors, glows, gradient ramp, and pulse rate were hardcoded literals scattered across ~40 sites in the gallery. Retuning the amber meant a find-and-replace through the whole file. I pulled them into tokens.json as the single source. gen_tokens.py reads that source and emits three targets: web CSS custom properties (into the gallery :root, between markers), waybar GTK @define-color declarations, and an elisp alist for the future svg.el renderer. The three genuinely differ (CSS --vars with rgb-triple glows, GTK @define-color with underscore names, elisp hex alist), which is why one generator beats three hand-maintained copies. The amber hue is defined once, and its glow triples are derived from the hex, so retuning it means editing one line and rerunning the generator. The gallery render is unchanged. I verified it pixel-identical against the prior commit with reduced-motion forced and the live clock masked (diff of 0). Tests cover hex conversion, the three emitters, marker replacement, and idempotency: 27 tests, 100% line coverage, wired into make test-unit.
* fix(gallery): repair broken widgets, standardize pulses, retune to amberCraig Jennings12 hours2-54/+39
| | | | | | | | | | | | | | I wrapped the status-lamp and jewel-pilot indicators in an inline-flex row so they render. Their sub-elements were bare inline spans, so the fixed width/height were ignored and the widgets collapsed to empty stages. The other multi-element widgets already use this pattern. The transport cluster looked dead because the reel spokes were near-black on a near-black reel, so the rotation was invisible. Steel spokes plus one amber index spoke make the spin legible. The button logic was already correct. All pulses now run at 1s ease-in-out. The busy lamp was 0.7s, fast enough to read as a flash rather than a pulse. I marked 1s as the standard cadence so new widgets inherit it. I shifted the gold accent to a warm amber across the tokens, glow colors, and lit gradients together, so nothing stays yellow next to amber. I removed the magic-eye tube, dropped from the instrument-panel design that draws from this gallery. I renamed the file to panel-widget-gallery.html (the living catalogue now, not a dated prototype) and updated the two inbound links.
* feat(gallery): make every widget interactive and add instrument idiomsCraig Jennings22 hours1-115/+839
| | | | Turn the panel widget gallery into a driveable kit. Drag the faders, rotary and concentric knobs, encoder, crossfader, thumbwheel, jog wheel, and the gauge needles; click the switches, keys, DIP bank, keyed switch, transport, radio bank, patch-bay, and lamps. Every card shows a live readout that tracks the control. Adds a batch of new console idioms across controls, meters, and readouts (oscilloscope, EQ bars, strip-chart, split-flap, VFD marquee, annunciator, jewel lamps, tape counter, and more).
* feat(gallery): add rotary selector, slide-rule dial, and tube readoutsCraig Jennings22 hours1-0/+64
| | | | Bring the hi-fi selector and vacuum-tube idioms from the Takuzu design pass into the panel widget kit: a rotary selector, a slide-rule tuner dial, a nixie tube, and a magic-eye tube.
* docs: add maintenance console design + interactive prototypesCraig Jennings5 days9-0/+5139
| | | | | | | | The design doc replaces the install-health framing in system-monitor-design-ideas.org with a maintenance console: dense metric subpanels behind a persistent selector, a doctor that streams into a results wall, determinate remedies only (guard-armed updates, curation lifecycles for noise, listeners, containers, and orphans), rotary band selectors on the tall subpanels, and a CLI-first build with a four-layer test strategy. Every decision is dated in the doc. Prototypes A-E5 keep the exploration path: five divergent layouts converging into E5, a fully interactive simulation whose GOOD/BAD snapshots become the build's test fixtures. todo.org gains the spec-create task, the panel keybinding-family task, and scope notes on the net/bt doctor retrofit.
* docs: PTT waybar-indicator prototypeCraig Jennings6 days1-0/+133
| | | | | | | Design prototype for the push-to-talk bar indicator: an always-present outline tag (account-voice glyph) left of the mic — dim grey when off so the bar never reflows, gold + glow when armed, brighter while transmitting, click-to-toggle. The states and icon were settled against this before wiring it into waybar.
* docs(timer): record the shipped redesign and flip spec to IMPLEMENTEDCraig Jennings7 days3-0/+1802
| | | | | | The timer-panel UI/UX redesign built and shipped to dotfiles across five phased commits. This captures the archsetup-side records. The three design prototypes (the three-directions study, the hero-rack iteration, and the final) land under docs/prototypes, which the spec's Prototype iterations section links. The spec flips DOING to IMPLEMENTED with a history line summarizing the build. The manual-testing checklist is rebuilt around the redesigned panel (repeat timers, recurring alarms with snooze and a ringing state, the configurable pomodoro cycle, the stopwatch sweep dial, locked presets, and bar-tooltip parity), and the two obsolete fuzzel-dialog tests are marked superseded. A dated entry under the closed feature task records the redesign.
* docs: gather panel design prototypes into docs/prototypes/Craig Jennings8 days6-0/+2707
I gathered all five self-contained HTML/CSS design prototypes into one home: the instrument-console pair (moved from assets/), plus the net-panel rescan, sound panel, widget gallery, and waybar redesign (moved out of working/). Added a README index and updated every inbound link: build summary, the instrument-console and audio specs, and todo.org. Also fixed a broken link the earlier sort left in the build summary. It still pointed at the instrument-console spec's old docs/design/ path after the move to docs/specs/.