Skip to content

feat: GitHub Pages site for flow#60

Merged
rr0hit merged 6 commits into
mainfrom
feat/gh-pages-site
May 27, 2026
Merged

feat: GitHub Pages site for flow#60
rr0hit merged 6 commits into
mainfrom
feat/gh-pages-site

Conversation

@pramodh-ayyappan
Copy link
Copy Markdown
Contributor

Summary

  • Adds a static site under site/ introducing flow at a glance, with the four-act demo embedded as MP4 video.
  • Dark-only terminal aesthetic on hero + demo bands; brief-styled (file-tab header, What/Why/Done-when treatment) on Why flow / How context compounds / Playbooks / Install sections. ASCII diagrams from the README rendered as inline SVG.
  • Pure HTML/CSS/vanilla JS, zero build step. Above-the-fold weight ~50 KB, system font stack, no external fonts/CDNs.
  • .github/workflows/pages.yml force-pushes to an orphan gh-pages branch on push to main, filtered to site/** + docs/demo/**.
  • site/demo is a symlink to ../docs/demo so local serving and the CI publish step share one source of MP4s + posters.
  • Demo GIFs are kept; MP4s are committed alongside and used as the primary <video> source, with the GIFs surviving as <noscript> and reduced-motion fallback.
  • README gets a top-of-file links bar pointing at the Pages URL.

One-time setup required after merge

GitHub Pages isn't enabled on the repo yet (the /pages API returns 404). After this PR merges and the workflow's first run creates the gh-pages branch:

  1. Repo Settings → Pages → Source: Deploy from a branch
  2. Branch: gh-pages / / (root)
  3. The site will then be live at https://facets-cloud.github.io/flow/.

Test plan

  • git checkout feat/gh-pages-site && python3 -m http.server 4173 -d site → open http://127.0.0.1:4173/ and verify the page renders end-to-end (hero, all four demo videos autoplay/loop, brief sheets, both diagrams aligned, install copy buttons work).
  • Click each copy button — confirm clipboard contents are correct (primary copies Install flow from https://github.com/Facets-cloud/flow, manual install copies the full bash snippet).
  • Resize to mobile width — sections collapse to single column, act-caption ordering swaps so the caption precedes the video.
  • System → Accessibility → Reduce Motion ON: videos pause to poster + show controls; OFF: autoplay resumes.
  • Merge → confirm pages.yml workflow runs and creates gh-pages (visible in the Actions tab + as a new branch on origin).
  • Enable Pages in Settings (see above) → visit https://facets-cloud.github.io/flow/.

🤖 Generated with Claude Code

pramodh-ayyappan and others added 6 commits May 26, 2026 14:06
H.264 encodes of the four-act demo GIFs plus a poster frame each. Encoded
locally so CI doesn't need ffmpeg; total weight is ~5MB (down from ~14MB
GIFs). The Pages site loads these as <video autoplay muted loop>, with
the existing GIFs kept as <noscript> fallback and the reduced-motion path.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a static site under site/ that introduces flow at a glance and
embeds the four-act demo as video. Dark-only terminal aesthetic on the
hero/demo bands, brief-styled (file-tab header, What/Why/Done-when)
treatment on Why flow / How context compounds / Playbooks / Install.

- site/index.html, styles.css, script.js — pure HTML/CSS/vanilla JS,
  no build step. Above-the-fold weight ~50KB, system font stack, videos
  preload only metadata, prefers-reduced-motion is honored, clipboard
  copy buttons on install snippets.
- site/demo/ — symlink to ../docs/demo/ so local serving and CI deploy
  share one source of MP4s + posters.
- .github/workflows/pages.yml — orphan force-push to gh-pages on push
  to main, filtered to site/** and docs/demo/**.

GitHub Pages still needs to be enabled in repo Settings (one-time)
to point at the gh-pages branch the workflow creates.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds a Website · Install · Demo · Changelog nav row under the wordmark
pointing at the new facets-cloud.github.io/flow site.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Replaces the hand-drawn wave icon with the actual w path from
assets/flow-logo.svg, centered inside a 64×64 rounded tile. The
gradient definition mirrors the wordmark's waveGradient (same stops,
same x1=9710 → x2=13250 coords in the path's local space) so the
favicon renders the identical green → teal → blue wave as the
wordmark and footer mark.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds controls + controlslist="nodownload noremoteplayback noplaybackrate"
to all four demo <video> tags so visitors can pause and scrub the
timeline. Autoplay + muted + loop still work on first load; the controls
just become available on hover/interaction.

Drops the v.controls = false toggle from the reduced-motion handler since
the HTML attribute now drives the default; reduced-motion still pauses
the video and surfaces the poster.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Adds full light-mode support driven by prefers-color-scheme and a
small batch of layout / accessibility fixes surfaced during local
testing.

Theme:
- Inline <head> script sets html[data-theme="light|dark"] synchronously
  before paint, so the swap can't flash and can't be defeated by stale
  CSS cache or browser-level "force dark for site" flags.
- script.js adds a matchMedia change listener that keeps data-theme in
  sync with live OS toggles, no refresh needed.
- styles.css gains a :where(html[data-theme="light"]) block + an
  @media (prefers-color-scheme: light) fallback for JS-disabled users.
  Both define the same light-mode token values.
- Surfaces that should stay dark in both themes (terminal frames, code
  blocks, copy buttons, both architecture diagrams) now key off a new
  --code-* token family that doesn't flip. --code-accent-1/--code-accent-2
  keep the scoop/sweep diagram labels, codeblock prompt sigil, and
  copy-button "copied" state visible on those dark panels.
- Wordmark gradient stops switch to CSS-driven .wm-s1/s2/s3 classes so
  the wave is one source of truth.

Layout:
- Hero is back to a single-column centered block (wordmark, tagline,
  prompt line, CTAs) instead of the empty-on-the-right layout.
- Mac-style traffic-light chrome bar at the top of the hero removed.
- Brief sections drop the .md tab pill and the path metadata line —
  just the section title + body.
- Demo and Install sections drop the "$ flow show demo" / "$ flow init"
  kicker pre-titles; sections start clean at the H2.

Fixes:
- pre code now resets the inline-code border/background/padding so the
  install bash snippet no longer renders a per-line underline on light
  bg (each line of a multi-line inline <code> inside <pre> was drawing
  its own border).
- a:not(.btn):hover excludes buttons from the link-hover gradient color
  so the "See it in action" / "Install" buttons keep readable contrast
  in their hover state.
- All seven external links (hero GitHub icon, five footer GitHub links,
  Facets Cloud legal link) get target="_blank" rel="noopener noreferrer"
  so they open in a new tab and don't leak the opener context.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@rr0hit rr0hit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the site locally — looks really good. Merging.

@rr0hit rr0hit merged commit 4809938 into main May 27, 2026
3 checks passed
@rr0hit rr0hit deleted the feat/gh-pages-site branch May 27, 2026 05:59
@rr0hit rr0hit mentioned this pull request May 27, 2026
2 tasks
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