The layout is the program, which makes it the
interface shape this whole aesthetic is built on. The hard part is not drawing
it. This is the one surface in the kit where you author the data, so the
thesis runs backwards: everywhere else a readout refuses to draw a value it
cannot represent, and here the graph refuses to make a connection that would
not mean anything. The failure to avoid is the same one: a socket that
accepts anything is a seven-segment display rendering 1.5 as 15 — the
wiring succeeds, the graph looks right, and the answer is plausible and wrong.
So there is no any type, and every widening is declared one
pair at a time with a name for what it does.
A bezier whose control points are a fixed horizontal offset crosses itself the moment the target is to the left of its source, and that is most of the interesting cases: a link back to an earlier stage, or any node dragged past the thing feeding it. A crossing curve is ambiguous exactly where two links run near each other, which is the one thing a wire has to be clear about. So the offset scales with the horizontal distance, and going backwards it also scales inversely with the vertical distance: two sockets at the same height have no room to pass between the nodes, so they need the widest bulge of all.
Corner, bezel, shear, case, tracking and every colour arrive from the same tokens the panels read. Nothing here is drawn on a canvas, which is the whole reason a theme reaches it at all.
import 'overscan'
import 'overscan/overscan.css'
<ov-graph>…</ov-graph>import { OvGraph } from 'overscan/react'
<OvGraph />import { OvGraph } from 'overscan/vue'
<OvGraph />import OvGraph from 'overscan/svelte/OvGraph.svelte'
<OvGraph />import 'overscan'
import 'overscan/overscan.css'
<ov-graph class="sm">…</ov-graph>import { OvGraph } from 'overscan/react'
<OvGraph class="sm" />import { OvGraph } from 'overscan/vue'
<OvGraph class="sm" />import OvGraph from 'overscan/svelte/OvGraph.svelte'
<OvGraph class="sm" />import 'overscan'
import 'overscan/overscan.css'
<ov-graph class="sm">…</ov-graph>import { OvGraph } from 'overscan/react'
<OvGraph class="sm" />import { OvGraph } from 'overscan/vue'
<OvGraph class="sm" />import OvGraph from 'overscan/svelte/OvGraph.svelte'
<OvGraph class="sm" />import 'overscan'
import 'overscan/overscan.css'
<ov-graph class="sm">…</ov-graph>import { OvGraph } from 'overscan/react'
<OvGraph class="sm" />import { OvGraph } from 'overscan/vue'
<OvGraph class="sm" />import OvGraph from 'overscan/svelte/OvGraph.svelte'
<OvGraph class="sm" />