From de49a56c078de5d62b45e17d3cd54937e7303c7f Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 18 Jul 2026 04:32:39 -0500 Subject: feat(gallery): make the N20 split-flap an honest Solari mechanism MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The card's flip was a 0.3s drop-fade that teleported each cell straight to its target character — a suggestion of a split-flap, not one. Since the gallery card is the spec the ports get measured against, the fake would have propagated. Three behaviors replace it, studied from the HotFX split-flap component and re-derived (its repo carries no license, so no code was copied). The charset is the drum: opts.chars declares the flap order and a changed cell steps one flap at a time through intermediates, never jumping, so cells arrive staggered by travel distance. A set() mid-cascade re-aims the running cells at the new target. The fold is real: two half-panel animations per flip — the current top falls, the next bottom lands — over four clipped layers with backfaces hidden, replacing the drop-fade keyframe. animate:false (the reduced-motion gate) collapses every move to an instant jump. The handle grows setText, chars, and reading() so probes can sample the displayed state mid-cascade; the default width goes 3 to 4 cells, which stops truncating every demo word. Probe checks were written red first: cascade arrival, intermediate readings, one-flap-at-a-time stepping in charset order, mid-cascade retarget, and the instant animate:false path. --- docs/prototypes/panel-widget-gallery.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'docs/prototypes/panel-widget-gallery.html') diff --git a/docs/prototypes/panel-widget-gallery.html b/docs/prototypes/panel-widget-gallery.html index a31f578..201fa0e 100644 --- a/docs/prototypes/panel-widget-gallery.html +++ b/docs/prototypes/panel-widget-gallery.html @@ -948,7 +948,7 @@ const INFO={ origin:'Nixie tubes.',difficulty:'Intuitive.', prefer:'Warmth and era matter more than crispness.', period:'1955-75 hard period: sits with keypads and telegraphs, clashes with VFD and LED seven-seg.'}, -'N20':{input:'Display only; flaps animate on change.', +'N20':{input:'Click steps to the next word. Each cell flips one flap at a time through its charset, so cells arrive staggered; a mid-spin change re-aims the cascade.', solves:'A changed value that announces itself mechanically.', use:'Specialty. Shines for arrivals-board style updates.', limits:'Character set and flap speed are the charm and the constraint.', -- cgit v1.2.3