OVERSCANUI KIT
no button at all a worn bezel with weight channels do not converge zero depth instrumented, full of smoke a field of real characters a camera looking out additive, so no shadow hairlines, no new shader no raster, so no scanlines

The position you set is not the state the system confirmed. The handle shows what the operator did; the talkback flag above it shows only what the position sensors report, and until one reports a position it is BARBERPOLE, which is neither. On the Shuttle’s panel A8L "the talkback indicator above the release, off, latch switch ... indicates barberpole when the MRLs are in transit". A command is IN TRANSIT for its declared time, then UNKNOWN if no position arrived, or FAIL if the old one is still reported: NASA-STD-3001 asks for "completed, running, failed, or unknown", never an assumption. A guarded switch needs two actions: click the cover to lift it, then throw the switch. The open cover is the armed state, and clicking it shut makes the switch safe. A flick switch springs back, so its flag is the only thing that can show where it is, and a rocker’s lamp lights from the talkback, never from the rocker.

demo/switch.html, from this page
import 'overscan'
import 'overscan/overscan.css'

<ov-switch
  class="liveel"
  label="MRL"
  positions="REL,OFF,LAT"
  transit="8"
></ov-switch>
LIVEstarting
variation: src="models/switch-unknown.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-switch
  src="models/switch-unknown.json"
  label="MRL"
  positions="REL,OFF,LAT"
  transit="8"
></ov-switch>
commanded REL, no position within 8 s
set to LAT, and nothing reporting
commanded REL, still reads LAT
was confirmed LAT, now reads REL
LAT, confirmed by the sensor
flick: sprung back, LAT confirmed
triangle blade, end-on at OFF
guarded, and safe
armed, and commanded ON
I/O rocker, lit by the talkback
pressed to I, in transit: dark
lever commanded CL, stuck OPEN

The same element, the same scene, twice. An instrument shows its visual content and nothing else, by default - the face, the reading, its unit, and anything it is refusing or qualifying. The name and the declared rules are gone, because a wall writes those once above twenty tiles. On the right, data-ov-chrome="full" opts back in; it is set on the BOX, not on the element, so one attribute covers everything inside it. What is never hidden either way is the reading, the unit that reading is in, the refusal or the qualifier - and a screen reader is given the identical sentence, because a hidden name is still a spoken name.

variation: src="models/switch-no-talkback.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-switch
  src="models/switch-no-talkback.json"
  label="MRL"
  positions="REL,OFF,LAT"
  transit="8"
></ov-switch>
default — no position within the transit
data-ov-chrome="full", on the box around it
variation: src="models/switch-fail.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-switch
  src="models/switch-fail.json"
  label="MRL"
  positions="REL,OFF,LAT"
  transit="8"
></ov-switch>
terminal
industrial
cyber
antiseptic
esper
neo
machina
holo
aegis
vector