staccato-hugo 2026-04-05
Code review fixes: missing templates, post-single CSS, and 155 test failures resolved
23 files · 941+ · 360-

Missing templates: 404 page and RSS feed

2 files changed
  • 404.html New 404 page template (39 lines)
  • rss.xml New RSS feed template (21 lines)
  • Two templates were missing from the initial release. layouts/404.html provides a themed 404 page using the site’s full layout (header, effects, settings drawer). layouts/_default/rss.xml provides an RSS 2.0 feed template for Hugo’s built-in RSS generation. instantiate behavioral
    2 files
    • 404.html
    • rss.xml

Post-single CSS component and CSS custom properties extraction

4 files changed
  • post-single.css New post single component (84 lines): images, headings, lists, blockquotes, tables, copy button
  • properties.css New CSS custom properties file (48 lines): shared design tokens
  • base.css scrollbar-gutter: stable added
  • single.html Simplified to use .post-single class; inline styles removed
  • Post content styling extracted from posts/single.html inline styles into a dedicated post-single.css component (images with border-radius/margin, headings hierarchy, lists, blockquotes with accent border, tables, copy button). CSS custom properties extracted to properties.css for shared design tokens. base.css gains scrollbar-gutter: stable to prevent layout shift on scroll. instantiate behavioral
    3 files
    • post-single.css
    • properties.css
    • single.html

Link style and accessibility hardening

4 files changed
  • links.css Link item background opacity raised; backdrop-filter: blur(4px) added
  • header.html Accessibility attribute fixes
  • footer.html Accessibility attribute fixes
  • settings-drawer.html Accessibility fixes
  • Link item cards gain backdrop-filter: blur(4px) and raised background opacity (8%→15%) for better legibility over canvas effects. Header, footer, and settings drawer partials updated with accessibility fixes from the external code review (aria attributes, semantic markup). harden behavioral
    2 files
    • links.css
    • header.html

Fix all 155 failing tests: WebGL mocks, search DOM, color assertions

5 files changed
  • canvas.ts WebGL mock expanded from ~260 to 405 lines: missing methods added
  • search.test.ts Search test DOM fixtures rewritten (294-line change)
  • EffectUI.test.ts Color assertion patterns corrected (28-line change)
  • PolyCentriCityEffect.test.ts PolyCentriCity WebGL mock usage updated (38-line change)
  • dom-helpers.test.ts DOM helper test fixtures updated
  • All 155 failing tests fixed across three root causes: (1) WebGL canvas mock in mocks/canvas.ts was missing methods called by PolyCentriCity and EffectUI — expanded from 260 to 405 lines with full WebGLRenderingContext stub; (2) search.test.ts DOM fixtures didn’t match the updated search.ts markup structure — rewritten to match; (3) color assertions in EffectUI tests used exact RGB values that don’t survive the CSS variable pipeline — corrected to pattern-match. qualify internal
    4 files
    • canvas.ts
    • search.test.ts
    • EffectUI.test.ts
    • PolyCentriCityEffect.test.ts

Search and theme-switcher improvements

3 files changed
  • search.ts Search refactored: keyboard nav, result rendering (92-line change)
  • theme-switcher.ts Theme switcher additions (46 lines)
  • main.ts Main bootstrap updated (18-line change)
  • search.ts refactored for improved keyboard navigation and result rendering consistency. theme-switcher.ts gains additional settings persistence. Changes paired with the search.test.ts DOM fixture rewrite. instantiate behavioral
    2 files
    • search.ts
    • theme-switcher.ts