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

A derived position is never styled as a fix. The mode badge comes from the receiver’s own mode flag, never from the name on the wire, and a dead-reckoned position says so with the time of its last valid fix. The point sits inside two rings, because where it probably is and how far out it could be unnoticed are different questions: a containment radius with no stated probability is drawn broken and reads UNBOUNDED. On the Royal Majesty the console "switched from GPS to DR-derived positions without changing its display in any perceivable way".

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

<ov-position
  class="liveel"
  label="OWN SHIP"
  requirement="200"
  requirement-for="1 NM TRACK TOLERANCE"
></ov-position>
LIVEstarting
variation: src="models/position-fix.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-position
  src="models/position-fix.json"
  label="OWN SHIP"
  requirement="200"
  requirement-for="1 NM TRACK TOLERANCE"
></ov-position>
an augmented fix, inside its requirement
three hours of dead reckoning
a radius with nothing behind it

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/position-dead-reckoned.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-position
  src="models/position-dead-reckoned.json"
  label="OWN SHIP"
  requirement="200"
  requirement-for="1 NM TRACK TOLERANCE"
></ov-position>
default — a radius with nothing behind it
data-ov-chrome="full", on the box around it
variation: src="models/position-unbounded.json" label="TRACK 4412" requirement="185" requirement-for="3 NM SEPARATION"
import 'overscan'
import 'overscan/overscan.css'

<ov-position
  src="models/position-unbounded.json"
  label="OWN SHIP"
  requirement="200"
  requirement-for="1 NM TRACK TOLERANCE"
  label="TRACK 4412"
  requirement="185"
  requirement-for="3 NM SEPARATION"
></ov-position>
terminal
industrial
cyber
antiseptic
esper
neo
machina
holo
aegis
vector