Skip to content

feat: add demo video and brand logo - #24

Merged
rgielen merged 5 commits into
mainfrom
feat/demo-video
Jul 3, 2026
Merged

feat: add demo video and brand logo#24
rgielen merged 5 commits into
mainfrom
feat/demo-video

Conversation

@rgielen

@rgielen rgielen commented Jul 3, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a demo video for the GitHub README hero, plus the brand logo it uses.

  • Demo video (video/): a ~36s terminal walkthrough rendered with Remotion — leitum initleitum provider add (Ollama preset) → leitum claude with interactive provider and model selection and the resolved-environment payoff. Built from reusable terminal/typing/select components; video/STORYBOARD.md captures the exact scene text and timing. node_modules and rendered output are git-ignored.
  • Logo (design/): the "Detour" mark (a path that reroutes around the direct route), lockup and wordmark (Urbanist SemiBold, outlined) in dark/light/mono variants, favicon/app-icon tile, PNG exports, reproducible build scripts and usage docs.
  • README: embeds the rendered demo GIF and the brand lockup (light/dark aware) at the top. Rendered assets committed under docs/assets/.

No changes to the leitum Python package.

Test plan

  • cd video && npm run lint (eslint + tsc) is green
  • npx remotion render LeitumDemo produces out/leitum-demo.mp4 (1280x720, ~36s)
  • GIF derived via ffmpeg 2-pass palette (docs/assets/leitum-demo.gif, 1.7 MB)
  • Per-scene stills verified for every state (typing, menus, payoff, intro/outro)
  • Reviewer: confirm the GIF renders inline on GitHub and the logo shows correctly in both light and dark themes

🤖 Generated with Claude Code

rgielen and others added 4 commits July 3, 2026 22:18
Logo, lockup and wordmark (Urbanist SemiBold, outlined) in dark/light/mono variants, plus favicon/app-icon tile and PNG exports. Reproducible build scripts and usage docs under design/.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
A ~36s terminal demo (init, add an Ollama provider, launch Claude Code with provider and model selection) rendered with Remotion. Reusable terminal/typing/select components, scene composition, and STORYBOARD.md capturing exact scene text and timing. node_modules and rendered output are git-ignored.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Embed the rendered demo GIF and the brand lockup (dark/light) at the top of the README.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings July 3, 2026 20:19
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adds a Remotion-based demo video project (for generating the README hero media) and introduces a new brand logo system under design/, then updates the root README.md to embed the logo (light/dark aware) and the rendered demo GIF.

Changes:

  • Add a self-contained Remotion project under video/ with reusable terminal UI components and composed scenes for the demo.
  • Add reproducible brand asset generation scripts and generated SVG outputs under design/ (logo + favicon variants).
  • Update root README.md to display the logo lockup and the demo GIF at the top.

Reviewed changes

Copilot reviewed 32 out of 61 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
video/tsconfig.json TypeScript config for the Remotion video project.
video/STORYBOARD.md Storyboard, exact on-screen text, and render pipeline notes for the demo.
video/src/util/timing.ts Typing timing utility for character-by-character animation.
video/src/theme.ts Shared color palette for terminal + brand accent.
video/src/scenes/TerminalScene.tsx Sequences the CLI “acts” in one persistent terminal window.
video/src/scenes/Intro.tsx Intro scene with animated mark and tagline.
video/src/scenes/Outro.tsx Outro scene with install command and repository URL.
video/src/scenes/acts/InitAct.tsx “leitum init” act content/timing.
video/src/scenes/acts/ProviderAddAct.tsx “provider add” act with preset selection and confirmation lines.
video/src/scenes/acts/ClaudeAct.tsx “leitum claude” act including provider/model selection and env payoff.
video/src/Root.tsx Remotion compositions registration (main demo + preview compositions).
video/src/index.ts Remotion registerRoot entrypoint.
video/src/index.css Minimal global CSS reset for the Remotion project.
video/src/fonts.ts Loads JetBrains Mono + Urbanist via @remotion/google-fonts.
video/src/Demo.tsx Assembles Intro → Terminal → Outro with crossfades and timing constants.
video/src/components/Terminal.tsx Terminal window chrome + layout component.
video/src/components/TermLine.tsx Terminal line primitives (prompt, output line, answered prompt line).
video/src/components/TypeLine.tsx Typing animation component using typedCount + cursor.
video/src/components/Cursor.tsx Block cursor with optional blink cadence.
video/src/components/SelectMenu.tsx Questionary-like select menu animation (walk + collapse).
video/src/components/LogoMark.tsx Inline SVG detour mark with “draw” animation.
video/remotion.config.ts Remotion CLI configuration (image format, overwrite behavior).
video/README.md Remotion project README scaffold/instructions.
video/package.json Dependencies + lint/dev scripts for the Remotion project.
video/eslint.config.mjs ESLint flat config using Remotion’s preset.
video/.prettierrc Prettier formatting configuration.
video/.gitignore Ignores node_modules, out/, etc. for the video project.
video/public/brand/leitum-mark.svg Mark asset copied into video public brand assets.
video/public/brand/leitum-mark-light.svg Light variant mark asset for video usage.
video/public/brand/leitum-lockup.svg Lockup asset copied into video public brand assets.
video/public/brand/leitum-wordmark.svg Wordmark asset copied into video public brand assets.
video/public/brand/icon.svg App-icon tile SVG copied into video public brand assets.
video/public/brand/favicon.svg Favicon SVG copied into video public brand assets.
README.md Adds centered logo lockup (theme-aware) + embeds the demo GIF.
design/src/wordmark.json Wordmark path source data (outlined text) used by generator.
design/src/outline_wordmark.py Script to outline the Urbanist wordmark into SVG path data.
design/src/generate_assets.py Script to generate all logo + favicon SVGs from a single source.
design/README.md Brand usage docs and regeneration instructions.
design/logo/leitum-mark.svg Generated logo mark (dark).
design/logo/leitum-mark-light.svg Generated logo mark (light).
design/logo/leitum-mark-mono.svg Generated logo mark (mono/currentColor).
design/logo/leitum-lockup.svg Generated logo lockup (dark).
design/logo/leitum-lockup-light.svg Generated logo lockup (light).
design/logo/leitum-lockup-mono.svg Generated logo lockup (mono/currentColor).
design/logo/leitum-wordmark.svg Generated wordmark (dark).
design/logo/leitum-wordmark-light.svg Generated wordmark (light).
design/logo/leitum-wordmark-mono.svg Generated wordmark (mono/currentColor).
design/favicon/icon.svg Generated app-icon tile (recommended favicon).
design/favicon/favicon.svg Generated bare-mark favicon SVG.
.gitignore Adds .todos/ to ignore list.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread video/tsconfig.json
"jsx": "react-jsx",
"strict": true,
"noEmit": true,
"lib": ["es2015"],
(OUT / "favicon").mkdir(parents=True, exist_ok=True)
(OUT / "png").mkdir(parents=True, exist_ok=True)

WORD = json.loads((HERE / "wordmark.json").read_text())
Comment thread video/package.json
"name": "video",
"version": "1.0.0",
"description": "My Remotion video",
"repository": {},
@rgielen
rgielen merged commit 3236b5d into main Jul 3, 2026
6 checks passed
@rgielen
rgielen deleted the feat/demo-video branch July 3, 2026 20:30
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