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 field nobody measured is never drawn as measured. A surveillance track as its trail of recent fixes, each mark shaped by how that fix was known: a solid circle measured by several sensors, a solid diamond by one, a hollow square reported by the aircraft, a cross extrapolated. The tag beside the head uses the same shapes. When the track stops being measured it coasts: the callsign gives way to CST and its age, because identity is not carried through a coast, and the element draws no position it was not given. A level from a default or a look-up table never sits in the measured slot, a level after a coast is UNVALIDATED until confirmed, a sensor the system does not have reads n/a, and a selected level never stands in for a read-back. The track on this page is flown by the page's own timer: a demonstration.

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

<ov-datablock
  id="flown"
  label="SECTOR 12"
  coast-after="6"
></ov-datablock>

A track, flown: lose radar, restart from coast, clear a level

Every two seconds the page reports a fix from both radars as the aircraft banks through its turns. LOSE RADAR stops the fixes, and after six seconds the element coasts on its own. RESTART brings radar back, and the level stays UNVALIDATED until VALIDATE. CLEAR 370 waits for READ BACK however the crew sets the selector.

FLYING

variation: src="models/datablock-coast.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-datablock
  label="SECTOR 12"
  src="models/datablock-coast.json"
></ov-datablock>

A coasting track, turning final

Loaded from a scene file. After the last radar return the tracker kept extrapolating the turn, drawn as crosses; the tag withholds the callsign and flags a selected level that differs from the cleared one.

variation: label="APPROACH" src="models/datablock-default.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-datablock
  label="APPROACH"
  src="models/datablock-default.json"
></ov-datablock>

Primary radar only, weaving, with a default height

One sensor, tentative, and no transponder: every fix is a diamond, the level is the system's default height, so the measured slot is refused and the value is printed apart, named by its source.

variation: src="models/datablock-hold-coast.json"
import 'overscan'
import 'overscan/overscan.css'

<ov-datablock
  label="SECTOR 12"
  src="models/datablock-hold-coast.json"
></ov-datablock>

Every theme, each with its own flight and its own state

terminal · coasting in a hold

industrial · restart from coast, turning final

cyber · climb-out, selected is not cleared

antiseptic · primary only on a circuit, default height

esper · cleared lower, not read back

neo · reported by ADS-B, no radar here

machina · height from coverage, unidentified

holo · sensors dropping out in a spiral

aegis · suspect track on a dogleg

vector · a new track, still tentative