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

surface.css

Map, waveform, vertical writing, variable axes, and the elbow.

src/surface.css · 7 blocks · blocks that belong to a custom element are on that element's page

.ov-elbow

sector 4
flux0.912

The LCARS elbow: the one FUI language that became a real design system, and the shape this kit could not make. It is a single element, not a corner assembled from three, so the sweep is continuous.

selectorkind
.ov-elbowblock
.ov-elbow--altmodifier
--ov-elbow-armcustom property
--ov-elbow-barcustom property
--ov-elbow-rcustom property

Used on surface.html.

.ov-elbow-bay

No still yet.

The bay the elbow frames.

🔴 The elbow column was a flat 200px, which is a track that CANNOT shrink. Dropped into a repeat(4, minmax(0, 1fr)) cell about 183px wide, the two tracks summed to 307px and the bay overflowed its own cell by ~123px, so the elbow and its head ran off the right edge of the surface and were cut by the page. It looked like a corner clip eating content, which is a bug this kit has now had five of, so it read as the sixth. It was not: nothing was clipped, the grid was simply wider than its box.

⚠️ The tell that separates the two: a clip removes a triangle and leaves the layout intact, an overflow moves content out of the box and leaves a straight vertical cut at the container edge. This was a straight cut.

The column is now bounded by the bay: it wants 38% but never takes more than 200px, and never less than the arm plus its radius (76px), which is the narrowest the elbow can be and still read as an elbow rather than as a bar. minmax(0, 1fr) on the second track lets the content column shrink to nothing rather than forcing the bay open from the inside.

selectorkind
.ov-elbow-bayblock

Used on surface.html.

.ov-elbow-body

No still yet.

selectorkind
.ov-elbow-bodyblock

Used on surface.html.

.ov-elbow-head

No still yet.

selectorkind
.ov-elbow-headblock

Used on surface.html.

.ov-tcy

区画 04

Tate-chu-yoko: a short run of Latin set across the column.

selectorkind
.ov-tcyblock

Used on surface.html.

.ov-var

No still yet.

The axes that matter on Recursive are not weight: MONO moves between a proportional sans and a monospace, and CASL between a neutral and a casual drawing. They are tokens because a theme should be able to say where on those axes it sits.

selectorkind
.ov-varblock
[data-ov-nofont]state

Used on surface.html.

.ov-vertical

区画四 04

🔴 VERTICAL WRITING IS A SCRIPT PROPERTY, NOT A ROTATION. text-orientation: mixed stands Han and Hangul upright and leaves Thai on its side, which is CORRECT: Thai is not written vertically. A wall that treats "Asian signage" as one texture is wrong about at least one script, and Thai is the one nobody tests.

⭐ And correct typesetting is also the most compact: the same string measures 147px with mixed, 221px forced upright, and 143px with text-combine-upright: all.

selectorkind
.ov-verticalblock
.ov-vertical--uprightmodifier

Used on surface.html.