mirror of
https://github.com/hanzo-apps/hanzo.ai.git
synced 2026-10-30 14:58:08 +00:00
The dots were inconsistent because the chart could never colour them. The logo files are fill="currentColor", and currentColor inside <image href> resolves against the IMAGE's document, not the host page — so no CSS here could reach them. They rendered black on the light measured disc and vanished into the dark reported one. public/logos/color/ carries the same canonical bodies with each lab's brand hex substituted at generation time, because the one thing the host cannot supply is the one thing an <image> has to carry itself. The map covered 8 vendors against 13 in the data, and spent two of those on xAI and Mistral, which the snapshot does not contain — NVIDIA, Meta, Zhipu, Xiaomi and MiniMax had no mark at all. All 13 are now named; the five with no file in hanzoai/icons get their initial in their own colour until one lands. The disc is light behind every mark now, so provenance rides the RING alone: solid white measured, dashed grey reported. The dark reported disc was the thing swallowing the near-black marks, and a distinction carried in two places is a distinction that can disagree with itself. Both captions say ring. Label placement becomes one rule. It de-collided labels against other LABELS, per side, which says nothing about the DOTS the text sweeps past: qwen3.5's label cleared kimi-k2.6's label by exactly the required gap and ran straight through kimi's dot. Fixing dots in a second pass then let a right-anchored label meet a left-anchored one — a pair that belonged to neither pass. So every obstacle, discs and labels alike, is a box in one list tested by one overlap, and labels settle top-to-bottom so only the one being placed moves. Verified in the rendered DOM over all 144 ordered pairs: zero text/text and zero text/dot overlaps. The check that filtered by side reported clean while the collision was on screen, which is why it now filters by nothing.
900 B
900 B