feat(#160): multi-tab terminal demo on the landing site#162
Merged
atlas-apex merged 1 commit intoMay 4, 2026
Merged
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Landing-site
site/index.htmlterminal demo previously played one canonical flow ("one ticket, start to finish") on autoplay. With the v1.2.0 skill surface expansion (4 new skills, 8+ new hooks), one flow no longer represents the framework's breadth.This PR adds tabs to the terminal chrome — four flows that auto-cycle (or visitors can click directly):
Auto-advance: on completion of the active tab's script, the demo pauses ~1.8s, then advances to the next tab. Loops at the end. The user can interrupt by clicking any tab or hitting Replay (which restarts the active tab).
Hero metrics also corrected to current reality alongside the PR #161 fix that catches the same numbers in
CLAUDE.md/CHANGELOG.md:Refs me2resh/apexyard#160— the release ticket bundles "release v1.2.0" and "landing-site refresh"; this PR delivers the site half. The release-tag half follows once #159 (testing) is closed and #161 (voice + counts bundle) is merged.Implementation notes
role="tablist"of 4 buttons. Each tab carriesdata-tab=<idx>for the JS dispatcher. Aria semantics:role="tab",aria-selected. Tabs are keyboard-focusable and clickable. Tab strip scrolls horizontally on narrow viewports..shell-demo__tabsflex container +.shell-demo__tabbutton with an accent underline onis-active. Mobile-responsive padding + font-size atmax-width: 720px.scriptarray to an array of four. NewsetActiveTab(idx)updates ARIA state.play(idx)takes a tab index. End-of-script auto-advances to(idx + 1) % Nunless the user clicked away during the pause window. Added a newcmdtype for slash-command invocations (renders with the same>prompt prefix asyou).Testing
awk '/multi-tab shell animation/,/})\(\);$/' site/index.html | node --check→ clean.<div\bopen/close count: 0 delta.<script>open/close: balanced.grepagainst the post-edit file.ls .claude/skills/*/ | wc -l= 39 ✓;ls .claude/hooks/*.sh | grep -v _lib- | wc -lpost-chore(#157): remove voice-prompts feature + correct hook/skill counts #161 = 24 ✓.site/index.htmlin a browser:Glossary
#shell-lifecycle-bodyat page load. Used when JS is disabled, a script error happens, orprefers-reduced-motionis set. Shows tab 0's content (the canonical one-ticket flow) as the most representative no-animation view.cmdtypeyou/sys/ok/muted/blank. Renders a typed slash-command invocation (e.g./handover legacy-billing-api) with a>prompt prefix. Used by tabs 1–3 to signal "this is the user invoking the skill that drives this flow."🤖 Generated with Claude Code