Skip to content

Redesign the demo page - #5

Merged
cobanov merged 1 commit into
mainfrom
design/demo-house-style
Aug 30, 2026
Merged

Redesign the demo page#5
cobanov merged 1 commit into
mainfrom
design/demo-house-style

Conversation

@cobanov

@cobanov cobanov commented Aug 30, 2026

Copy link
Copy Markdown
Owner

The demo worked and looked like a default: system font, a card on a grey background, controls with no hierarchy. It now speaks the same language as the other cobanov.dev pages.

  • Film-base black, one accent. The accent is the subject rather than a brand colour: a surface facing the camera encodes as rgb(128, 128, 255), so the page runs on the colour every normal map is mostly made of, and the mark is a normal-mapped sphere.
  • Geist for reading, JetBrains Mono for anything measured. Pixel counts, milliseconds, option names.
  • Sticky masthead, film grain, base-8 spacing, a named type scale, focus-visible rings, a skip link.
  • Each panel carries its own reading: the source its pixel size, the output its conversion time. The status line is left for messages.
  • A full head: description, canonical, OpenGraph and Twitter cards, structured data, an SVG favicon, and an OG card built from the Mars pair.
  • _headers: Pages caches assets for four hours by default, which is wrong for the two files carrying the page's behaviour, plus a CSP naming the three hosts the page may reach (jsdelivr for ONNX Runtime, Google Fonts, Hugging Face for the depth model). Verified live: no violations, and the model fetch still returns 206.
  • The sample is an 8-bit depth map, so the page opens at sigma 2 rather than showing its quantisation rings as a first impression. The note beside it explains why they appear.

Deployed and checked on depth2normal.cobanov.dev: Geist loads, the conversion runs in about 300 ms, the readouts fill in.

The page worked and looked like a default: system font, a card on a grey
background, controls with no hierarchy. It now uses the same vocabulary as the
other cobanov.dev pages. Film-base black, one accent spent only on things you
can act on, Geist for reading and JetBrains Mono for anything measured, a
sticky masthead, film grain, a base-8 spacing scale and a named type scale.

The accent is the subject rather than a brand colour: a surface facing the
camera encodes as rgb(128, 128, 255), so the page runs on the colour every
normal map is mostly made of, and the mark is a normal-mapped sphere.

Also here:

- Each panel carries its own reading, the source its pixel size and the output
  its conversion time, in mono. The status line is left for messages.
- A full head: description, canonical, OpenGraph and Twitter cards, structured
  data, and an OG image built from the Mars pair in the README.
- `_headers`: Pages caches assets for four hours by default, which is wrong for
  the two files carrying the page's behaviour, and a CSP that names the three
  hosts the page is allowed to reach.
- The sample is an 8-bit depth map, so the page opens at sigma 2 rather than
  showing its quantisation rings as a first impression. The note beside it
  explains why they appear at all.
@cobanov
cobanov merged commit 24b7a82 into main Aug 30, 2026
11 checks passed
@cobanov
cobanov deleted the design/demo-house-style branch August 30, 2026 22:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant