Vector / resolution law
LAW — locked, CI-gatedVector / resolution law
Section titled “Vector / resolution law”principle. interface elements must stay clean at every size they will ever render — tray icon to retina to fractional scaling. an asset that only works at one resolution is a future bug filed in advance.
rule (law; decision 0002).
- everything authored in glaze is vector first and resolution independent: icons, the tray mark, glyphs, shapes, the wordmark, any future illustration. sources are vector — never pixels.
- raster exists only at the end of the pipeline: a fresh render from the vector source at the exact target density (1x, 1.25x, 1.5x, 2x, fractional scaling), never an existing raster scaled up.
- photos and screenshots are the only inherently raster material, and they are never interface assets.
- one vector source per icon, recoloured per state by the current colour — hover, selected, disabled from colour and opacity, never separate assets. outline is the default variant; fill marks the active state. icon stroke tracks the adjacent text weight (1.5px at regular, 2px at medium and semibold, 2.5px at bold).
- icons are designed at render size and tested at the smallest render, often 16px; simplified glyphs for small contexts.
rule (proposed). per-size hand-tuning beats scaling at small sizes: the 16px tray mark is drawn at 16px, not shrunk from a large master. the construction grid: a 24-unit artboard, a 20-unit live area, keyline shapes for optical weight, one fixed stroke that is never thinned to fit a busy glyph — the glyph simplifies instead.
open. hairlines at fractional scale: 1px borders and the 1.5px selection outline need a stated rounding rule at 125% and 150% scaling so they never shimmer or vanish. the recorded proposal: snap to device pixels, minimum one device pixel, tested in the screenshot harness at 100/125/150/200%. no ruling yet.
Canonical text: §9, vector and resolution law, in the design language document. Governed by decision 0002.