Skip to content

docs(site): redesign the docs site and demo pages - #742

Merged
stormmuller merged 36 commits into
devfrom
claude/quirky-babbage-4156mb
Oct 10, 2026
Merged

stormmuller merged 36 commits into
devfrom
claude/quirky-babbage-4156mb

Conversation

@stormmuller

@stormmuller stormmuller commented Oct 9, 2026 •

Copy link
Copy Markdown
Member

Summary

This restyles the whole docs site in the Forge brand and moves every demo page to one new layout, DemoPage.

Site look and feel

  • Fonts: self-hosted through @fontsource. Exo 2 for headings, Inter for body text, and JetBrains Mono for code and small letter-spaced labels.
  • Theme:
    • Dark mode (now the default) sits on a navy gradient, with a brighter teal for links and icons and amber for calls to action.
    • Light mode keeps the same hues, with a darker teal so links stay readable on white.
    • The navbar is navy in both themes, so the white logo always shows.
    • Cards, code blocks, admonitions and the footer are restyled to match.
  • Homepage:
    • A hero with the tagline, "Get started" and "Browse demos" buttons, and the npm install command.
    • A "What Forge is" grid of 16 engine modules. Each has a line icon (teal with an amber accent) and links to its guide.
    • Four featured demos.
  • Demo catalogue: the landing page, category pages, cards and search box are restyled to match.

Demo pages

  • Layout:
    • Header: title, a one-sentence summary and docs links. The title and summary come from src/data/demos.ts.
    • Game: a focusable game box. While it has focus, arrow keys and Space don't scroll the page.
    • Sidebar: a Controls card, optional extra panels, and a short "How it works" list whose items open the matching file in the code explorer.
    • Code explorer: files grouped by purpose, a type icon per file, and search and a type filter on demos with 6 or more files. It only shows engine code; DemoPage throws if a .tsx/.jsx file is listed.
  • Reusable components: documentation-site/src/components/demo-page/ holds the parts above, plus the DemoSlider, DemoToggle, DemoChoice and DemoTextField setting controls.
  • Rollout: all 41 demos use DemoPage, and the old Demo component and its helpers are deleted.
    • Each demo's controls were checked against its input code.
    • The text demo was rebuilt as one live playground, because most of the old showcase sat below the visible canvas.
    • The car demo's source comments were shortened; the code itself is unchanged.
  • Docs: AGENTS.md and the add-feature-demo skill describe DemoPage.

Follow-ups, not in this PR

  • KeyboardInputSource listens on the whole page and never calls preventDefault. Scoping it to the game's container is an engine API change.
  • The nine-slice demo's code draws two panels, not three. Its "tile" panel is gone, and its size settings are hard-coded.

Related issue(s)

None.

Verification checklist

  • npm run check-types passes with 0 errors
  • npm test passes (not run; no /src changes)
  • npm run lint passes with 0 errors
  • npm run cspell passes with 0 errors
  • npm run check-exports passes (not run; no /src changes)
  • Any new/changed public API is exported from the module's index.ts (no engine API changes)
  • Documentation under /documentation-site/docs/docs is updated if this change affects documented behavior (no engine behavior changed)
  • documentation-site: npm run typecheck and npm run build pass. The build fails on broken links, so every module and docLinks route resolves.
  • Checked in Chromium:
    • The homepage in dark, light and 390px-wide views.
    • A docs page in both themes and the demos landing page.
    • The car, text, ui-anchors and visibility demo pages.
    • Not every demo page has been opened in a browser.

Changelog

  • Not required: this is a docs change.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB

Add a DemoPage layout (game with fullscreen and focus, a controls card,
a short 'how it works' list linked to the code, and a code explorer with
an always-visible, grouped file tree), use it for the car demo, and trim
the car demo's source comments. Share the back link and fullscreen
button with the existing Demo component.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
@codecov

codecov Bot commented Oct 9, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

claude added 9 commits October 9, 2026 19:08
Label each file's type (setup, component, system, shader) with a colored
icon, a filter chip and a badge on the open file, add a file-name search,
and remove the empty space under the game by keeping the game and its
sidebar the same height and moving the docs links into the header.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
Break the demo page into DemoHeader, DemoGame, DemoPanel, DemoControls,
DemoHighlights, DemoLegend and CodeExplorer, take each page's title and
summary from the demo catalogue, add a panels slot and mouse/gamepad
inputs, and describe the new page in the add-feature-demo skill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
…os to DemoPage

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
Move the game, ECS and state demos to DemoPage, delete Demo and its code
selector, key and interaction components, tighten the catalogue
descriptions that are now each page's summary, and replace the
nine-slice legend with highlights that say which panel is which.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
@stormmuller stormmuller changed the title docs(demos): redesign the car demo page layout docs(demos): redesign the demo pages Oct 9, 2026
claude added 4 commits October 9, 2026 19:32
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
Replace the text demo's stacked showcase sections, most of which were
below the visible canvas, with one block of text whose wrap column and
anchor line are drawn, and a tidy settings panel built from new reusable
DemoSlider, DemoToggle, DemoChoice and DemoTextField controls. Show Enter
and Space as key symbols, size the controls' key column to its keys,
clarify the visibility demo's controls, and cap the game at 3:2 so a tall
sidebar scrolls instead of squeezing the canvas.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
Remove the text and ui-anchors React settings panels from their code
explorers, make DemoPage reject .tsx/.jsx files, and document the rule in
AGENTS.md and the add-feature-demo skill.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
Self-host Exo 2, Inter and JetBrains Mono, retheme the site around a navy
gradient with a brighter teal and amber accents, keep the navbar navy in
both themes, and rebuild the homepage with a hero, a 'What Forge is'
grid of the engine's modules with line icons, and featured demos.
Restyle the demo catalogue cards, search and landing pages to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
@stormmuller stormmuller changed the title docs(demos): redesign the demo pages docs(site): redesign the docs site and demo pages Oct 10, 2026
claude and others added 13 commits October 10, 2026 16:48
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
…he homepage

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
…age-4156mb' of github.com:Forge-Game-Engine/Forge into claude/quirky-babbage-4156mb
Put the hero text and a framed, looping gameplay clip of Galactic Journey
side by side on desktop (stacked on phones), in WebM and MP4, replacing the
blurred 25 MB background video with two ~1.1 MB clips.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
…to claude/quirky-babbage-4156mb

# Conflicts:
#	documentation-site/src/pages/index.tsx
Replace the pastel category illustrations with the homepage's teal line
icons on a tinted tile, show each category's demo count, tighten the
category descriptions, and share ModuleIcon between the homepage and the
demo catalogue. Update AGENTS.md to match.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
Replace the scripted 8.5-second clip with a 60-second recording of real
play, at its native 852x480 with the audio stripped (2.4 MB WebM,
3.6 MB MP4).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TJaAau36yMnVzEdEhG6VpB
@stormmuller
stormmuller merged commit 28b07d0 into dev Oct 10, 2026
13 checks passed
@stormmuller
stormmuller deleted the claude/quirky-babbage-4156mb branch October 10, 2026 20:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants