v0.22.0 — Perfect DOS VGA 437 + AI-content provenance
Perfect DOS VGA 437 font swap + AI-content provenance phase 1.
Added
--color-semantic-text-ai-draft(Tailwind:text-dos-text-ai-draft) — Signalnoise hot pink (#FF1A8C). Brand-locked: identical across all 5 themes.--color-semantic-text-ai-draft-glow— 50% rgba of the same hex, used intext-shadowonly.src/styles/provenance.css—[data-provenance="ai-draft"]selector applying colour + halo, neutralised underprefers-contrast: high. Ships in the defaulteidotter/stylesbundle. Visual primitive only — downstream consumers compute the per-paragraph diff and emit the attribute. See DMNC-884.- Storybook:
Design System / Content Provenancecategory with six stories (Default, MixedDraftAndRevised, OnLightBackdrop, Variants, WallOfPink, HighContrastNeutralizesGlow).
Changed
- Primary font swapped to Perfect DOS VGA 437 by Zeh Fernando — pixel-perfect-vector TTF where every glyph outline is axis-aligned. Replaces Flexi IBM VGA True v2, which was aspect-corrected but still rendered bezier outlines that "resembled" rather than rendered authentic DOS pixel-art shapes. Free to redistribute per the bundled author license; single-weight by design. Resolves DMNC-882 (option 4 from the research — adopt an existing pixel-perfect-vector font rather than hand-pixelize Flexi). Flexi files remain bundled so legacy consumers can override
--typography-font-family-primaryto keep the old font. <TimelineContainer>no longer paints its own background. Aligns with the convention enforced by<Alert>and<Notification>(verified via regression test).
Notes
- Specificity (0,1,0). The provenance attribute selector is intentionally weak — component CSS at class specificity overrides it without
!important. - Link affordance preserved.
<a>descendants of an[data-provenance="ai-draft"]element keep their own link colour by design. - API contract. Only
data-provenance="ai-draft"is supported. Revised paragraphs should carry no attribute at all. - Font behaviour parity. Both fonts are single-weight; existing
font-synthesis: noneand thefont-dos-bold/semibold/regularaliases (all → 400) keep working unchanged. Visual letterform is different — pixel-aligned vs bezier-resembling. - Tests: 1028/1028 pass (full suite). Build green;
dist/eidotter.cssships the new font inlined as base64 — 213KB total (down from 446KB).
Full diff: v0.21.0...v0.22.0