mirror of
https://github.com/luxfi/design.git
synced 2026-10-30 16:58:57 +00:00
The CTO reversed the accent: "no gold in lux, only monochrome white and black, more severe and minimal than hanzo.ai". 0.1.0's archaeology was real but historical — every live Lux surface had already flattened that slot to white, and lux.network's repo carries an e2e asserting the page paints zero pixels in hue band 20-60. 0.1.0 climbed that fence. --lux-gold is deleted rather than parked. An unused brand-colour token is exactly what gets re-wired by accident. The light-theme bronze (#7E5A16) dissolves with it: monochrome has no hue to darken. Severity is not an adjective here, it is four measured values, each from @luxfi/[email protected] or from a headless render of the live surfaces: ground #000000 (Hanzo #0a0a0a) brand surface1, both product configs accent #ffffff (Hanzo #e4e4e7) brand accent1 — above the ink, not below lift one (Hanzo two) 73 cards measured at #0a0a0a hairline .08 (Hanzo .10) 286 of 331 painted edges Nothing is invented; every value is a rung of the inherited ladder. Only the decorative boundary was quieted — control, focus, selected and ring are untouched, because they tell a keyboard user where they are. Lux also withdraws the fourth permitted hue. --chrome-dot-yellow is hue 45.6, inside the fenced band, so a Lux window mock would have failed lux.network's e2e having never gone near the gold. Four things the gate could not see before, each found by adding the check: --lux-black was #0A0A0B — Hanzo's press-kit black wearing a Lux name after the hanzo- -> lux- rename, and not even grey. It paints the mark. assets/brand/hero-visualization.png was a full-spectrum rainbow, 39% saturated, in a card captioned "no warm gradients, no illustration style". The specimen cards captioned --border as #1f1f1f and --ring as #333 beside chips correctly painting the current tokens — fossils of the fork. And prompts/system.md still quoted the Hanzo brand hex. Gate: 26 checks. New — every token resolves achromatic in both themes except three named signals, each proven outside band 20-60; unreadable colour syntax fails rather than passes; specimen captions match the sheet; brand imagery is achromatic (PNG decoded in ~40 lines on node:zlib, no dependency). The .light rule is now value-shaped — exempt only if the value is a bare var() onto something that inverts — replacing a name-shaped --lux-* exemption that existed for a token now deleted. Verified: build green; the packed tarball rendered headless in both themes paints 0 saturated pixels of 8,780,800; eight mutations each fail the build and restore byte-identically. Co-authored-by: Hanzo Dev <[email protected]>
17 lines
2.5 KiB
HTML
17 lines
2.5 KiB
HTML
<!-- @dsCard group="Colors" viewport="700x150" name="Semantic hues" subtitle="The only places hue is permitted" -->
|
|
<!doctype html><html class="dark"><head><meta charset="utf-8"><title>Semantic hues</title><link rel="stylesheet" href="../styles.css">
|
|
<style>body{margin:0;padding:16px 20px;background:#000;font-family:var(--font-sans);color:var(--foreground)}
|
|
.g{display:flex;gap:10px;flex-wrap:wrap}.sw{flex:1;min-width:64px}.chip{height:56px;border-radius:8px;border:1px solid var(--white-10)}
|
|
.n{margin-top:6px;font-size:10px;font-weight:600;letter-spacing:.06em;color:var(--neutral-300);font-family:var(--font-mono)}
|
|
.v{font-size:9px;color:var(--neutral-600);font-family:var(--font-mono)}
|
|
.row{display:flex;align-items:baseline;gap:14px}.mono{font-family:var(--font-mono)}
|
|
.meta{font-size:10px;color:var(--neutral-600);font-family:var(--font-mono);white-space:nowrap}
|
|
</style></head><body>
|
|
<div class="g">
|
|
<div class="sw"><div class="chip" style="background:var(--state-error-bg);border-color:var(--state-error);display:flex;align-items:center;justify-content:center;color:var(--state-error-text);font-size:11px">Error</div><div class="n">--state-error</div><div class="v">red-500 / red-300</div></div>
|
|
<div class="sw"><div class="chip" style="background:#000;display:flex;align-items:center;justify-content:center;gap:6px;color:var(--state-online);font-size:11px"><span style="width:8px;height:8px;border-radius:99px;background:var(--state-online)"></span>Online</div><div class="n">--state-online</div><div class="v">green-400</div></div>
|
|
<div class="sw"><div class="chip" style="background:#000;display:flex;align-items:center;justify-content:center;color:var(--state-success);font-size:11px">Save 20%</div><div class="n">--state-success</div><div class="v">green-500</div></div>
|
|
<div class="sw"><div class="chip" style="background:var(--card);display:flex;align-items:center;gap:5px;padding-left:10px"><span style="width:9px;height:9px;border-radius:99px;background:var(--chrome-dot-red)"></span><span style="width:9px;height:9px;border-radius:99px;background:var(--chrome-dot-yellow)"></span><span style="width:9px;height:9px;border-radius:99px;background:var(--chrome-dot-green)"></span></div><div class="n">--chrome-dot-*</div><div class="v">monochrome in Lux</div></div>
|
|
</div>
|
|
<div class="meta" style="margin-top:10px">three signals, and nothing else — tiers, categories and accents use the opacity ladder. Hanzo permits a fourth; the yellow chrome dot is hue 45.6°, inside the band lux.network's e2e fences, so Lux does not.</div>
|
|
</body></html> |