The Cloudbase Foundation · Internal Documents

Design — internal doc space styling & navigation

Design — internal doc space styling & navigation

Date: 2026-06-29 · Owner: Claude (build) + Jonathan (review) · Status: Design approved — implementation plan pending Builds on: the live doc space (it/2026-06-25-internal-doc-space-{design,plan}.md). This is a follow-on styling/navigation pass, internal tier only.

The need

The Markdown-rendered pages on board.cloudbase.foundation render through a bare base.liquid (just <main class="doc-main">{{ content }}</main> + the inlined theme). They get the brand typography but no site chrome — no masthead, no footer, no navigation — so they look unfinished next to the bespoke showcase HTML pages (domain-map, roadmap, the agendas), and the doc space reads as a pile of standalone pages rather than a navigable site. This pass adds a branded baseline template and real navigation so the internal space feels cohesive.

Decisions (locked)

  1. Scope: internal (board.*) tier only. The public (public.*) tier stays bare for now. The chrome is tier-gated, so public pages are byte-for-byte unchanged.
  2. Approach A (of three considered): one tier-aware shared layout + a reusable nav component + Eleventy collections for auto-listed section pages. Explicitly not a separate internal layout (B) and not full docs-grade breadcrumbs/prev-next/ active-highlighting (C).
  3. Chrome lives in base.liquid, guarded by {% if tier == "internal" %}: a branded masthead (CBF wordmark + nav) and a footer/colophon. The internal build sets tier: "internal" as global data; the public build leaves it unset → public output unchanged.
  4. Top nav is hand-curated via _data/nav.json. Items: Home · Agendas · IT & Ops · Research · Reference (Reference groups the tech showcase pages + the components ref). resumes/ and foundational/ are deliberately not top-nav items.
  5. Auto-listed section landing pages. Eleventy collections by directory generate /agendas/, /it/, /research/ (and other configured sections), each rendered by one shared listing template (doc title + date, newest first). New docs appear with no manual index editing. The curated index.md remains the homepage/dashboard.
  6. Nav is a self-contained component_includes/site-nav.html plus nav styles, with the component carrying its own scoped CSS so it can be dropped into pages that do not include theme.css (the showcase pages). Used by the layout and injected into the standalone HTML pages.
  7. Showcase HTML pages keep their bespoke design. tech/domain-map.html, tech/roadmap.html, and the agendas/*.html files get the site-nav component injected at the top of <body> (markup + scoped CSS); their embedded <head>/<style> and body layout are otherwise untouched.
  8. Theory of Change relocates to the internal tier. Move public/theory-of-change.mdfoundational/theory-of-change.md so it picks up the new chrome and can be styled. public/index.md is updated to mark ToC "coming soon." The public URL public.cloudbase.foundation/theory-of-change/ will 404 in the interim — an accepted, temporary tradeoff; ToC returns to public/ when the public-site work resumes.

Architecture

base.liquid  (shared by both builds)
│
├── tier == "internal"  → masthead (wordmark + nav) + <main> + footer/colophon
│        nav links from _data/nav.json; section pages from collections
│
└── tier unset (public) → current bare <main> only   [public output unchanged]

site-nav component  (_includes/site-nav.html + scoped CSS)
│
├── used inside base.liquid (internal chrome), and
└── injected into the standalone showcase HTML pages (verbatim body preserved)

Eleventy collections (by directory)  →  /agendas/, /it/, /research/, …  (shared listing template)

Components (files)

File Change Purpose
_includes/base.liquid modify Add tier-gated masthead + footer; render nav from _data/nav.json
_includes/site-nav.html create Reusable nav component (markup)
_includes/theme.css modify Append masthead/footer/nav styles (reuse existing tokens)
_data/nav.json create Curated top-level nav links
_includes/section-list.liquid (or similar) create Shared listing template for section landing pages
eleventy.config.js modify Set tier global data; register directory collections + landing pages
tech/domain-map.html, tech/roadmap.html, agendas/*.html modify Inject site-nav at top of <body>
foundational/theory-of-change.md move (from public/) Relocate ToC to internal tier
public/index.md modify Mark ToC "coming soon" (remove the now-internal link)

Implementation considerations (resolve in the plan)

Non-goals

Risks & rollback