Feature flag:
- [project.extra.action_points] enabled (default true) in zensical.toml.
- overrides/main.html exposes it as window.TOA_ACTION_POINTS_ENABLED in
<head>, before extra_javascript loads.
- extra.js bails at the top of the IIFE when the flag is false: no
storage, no nav badges, no heading pills, no confetti, no per-click
work. Checkboxes fall back to Material's read-only tasklist.
Verified inert when disabled (0 badges/pills/canvases, no localStorage,
no JS errors).
Perf:
- In-memory write-through cache for the parsed store: a single toggle
went from 15 localStorage JSON.parse reads to 0.
- updateNavBadges() updates badges in place (reuse span, only write on
change) instead of removing+rebuilding every badge each toggle, which
forced a full Material nav relayout. JS/toggle ~0.37->0.26ms,
layout delta ~0.73->0.63ms.
Legibility:
- Override -webkit-text-fill-color (headings set it; pseudo-elements
inherit it and it beats `color`) to #fff on completed green pills and
nav badges, so the count/checkmark is white on green. h2 text color
itself untouched.
- Fix nav badge mis-targeting: scope to .md-nav--primary, skip #anchor
(TOC) links so 'On this page' entries no longer show the page total;
detect active-leaf sections via md-nav__item--nested instead of the
secondary (TOC) nav, so the active page gets its own badge.
- Add build-time totals manifest (main.py -> docs/javascripts/toa-totals.json)
so nav badges show correct totals on first load before a user has
visited each page. Fetched once, browser-cached, zero runtime cost.
Wired into CI before zensical build.
- Exclude fenced code blocks when counting tasks, so the Markdown
reference doc's example checkboxes don't produce a phantom 0/3 badge.
- Force white text (#fff !important) on completed green pills/badges,
incl. badge-inside-complete-link, to beat the nav link's green color.
- Convert prose practice/strategy steps into interactive tasklist items.
- Add action-points PRD under planning/.
- Captions now positioned over the image (absolute, bottom-right)
- Semi-transparent white background with subtle blur
- Smaller text (0.68rem), no emojis
- Remove markdown='1' from figure tags so img is direct child
- Merged .page-hero and .page-infographic styles
- Make hero and infographic images full-width with minimal caption area
- Remove frosted glass card chrome from image figures (cleaner look)
- Add Grebedoc 88x31 banner to footer next to Zensical link
- Change 'Made with' to 'Built with Zensical'
- Right-align image captions, reduce font size for subtlety
- Add footer badge flex layout CSS
- Enlarge header logo (3.2rem) and hide site name via extra.css
- Darken link color (#4a8262) and green-to-sage table header gradient
- Add contributing/ section with leaf captcha email reveal
- Move markdown.md to contributing/; theming.md stays root (unpublished)
- Add practices/ and teachings/ content sections
- Update zensical.toml config