Story: Replace site navbar with a structured menu

Table of Contents

This page documents a story in Sprint 20. It captures the goal, current status, acceptance criteria, and the tasks that compose it.

Goal

The flat nav bar in ores-build-site.el currently lists twelve items in a single row. As the number of sections grows, the bar becomes cluttered and new pages cannot be exposed without making it worse. Replace the flat row with a hierarchical dropdown menu — existing items reorganised into logical groups, no page content changed — so future sections can be added cleanly.

Status

Field Value
State DONE
Parent sprint Sprint 20
Now Nothing.
Waiting on Nothing.
Next Nothing.
Last touched 2026-06-09

Acceptance

  • site-html-preamble in ores-build-site.el is replaced with a dropdown menu structure using semantic HTML (<ul> / <li> with hover or focus driven submenus).
  • All existing nav items (Home, Orientation, Product, Architecture, LLMs, Manuals, Downloads, Agile, Developer, Roadmap, Knowledge Graph, GitHub) are present under the new menu, reorganised into logical groups.
  • Dropdown CSS lives in assets/style.css; no inline styles added.
  • The graph-page injection in ores-inject-site-nav is updated to use the same markup.
  • Site builds and deploys cleanly (cmake ... --target deploy_site).
  • Menu is usable without JavaScript (CSS-only :hover / :focus-within).

Tasks

Task State Start End Description
Scaffold story: Replace site navbar with a structured menu DONE 2026-06-07 2026-06-07 Create story folder, wire sprint table, fill in all scaffold docs, raise scaffold PR.
Design and implement the site navigation menu DONE 2026-06-07 2026-06-07 Replace flat site-html-preamble with a dropdown menu; update CSS and graph-page injection.
Merge the Agile menu into Developer and reorder for new users DONE 2026-06-09 2026-06-09 Fold the Agile group into Developer; drop the agile recipes link; rename Overview→Agile, Board→Agile Board; reorder for new users.

Decisions

Out of scope

  • Adding new pages or changing page content.
  • JavaScript-driven menus or framework dependencies.
  • Mobile hamburger menu (nice-to-have; revisit if CSS-only proves insufficient).

Emacs 29.1 (Org mode 9.6.6)