1.7 KiB
G-079 default-colour semantics through renderspace/flattened output
Status: proposed
Scope: src/modules/overtype-999999.0a1.0.tm (renderspace/renderline replay-code emission), punk::ansi flatten consumers (ansicat), ansi2html consumer mapping (G-078)
Goal: flattened/rendered ANSI output preserves "default foreground/background" as a semantic value (SGR 39/49 or absence) instead of baking in explicit colours (replay/overlay output currently emits literal 0;40 - black background - for cells whose background was never set). Consumers can then map defaults to their own backdrop: html pages theme-match any page background, terminal replays keep the user's colour scheme.
Acceptance: ansicat/usage flattened output for content that never sets a background contains no explicit SGR 40/black-bg codes for those cells; the punk-native html pages render example-helper top/bottom bars (e.g. grepstr @cmd -help examples) blending with a NON-black page background with no contrasting bars; existing terminal display output is visually unchanged (regression-checked against current renderings).
Context
Found 2026-07-14 while reviewing the punk::ansi punknative doc page: example blocks
produced by the punk::ansi example helper show bars whose "background half" rendered
as black boxes contrasting with a grey page. Probe evidence: renderspace overlay
replay emits replay_codes_overlay: ESC[0;40m. Interim workaround (shipped in the
punknative generator): the <pre> backdrop is hard black so baked-black blends -
this constrains doc page theming and leaves lighter antialiasing seams at half-block
edges against non-matching content. Proper fix is upstream in the renderer's
replay-code model, then a -defaultbg/-defaultfg mapping option in the G-078 api.