Skip to content

Commit c8d42f7

Browse files
committed
autoplay walkthrough in README, embed in docs landing
Use the GitHub user-attachments URL for both README and docs so the video plays inline without bundling the 15MB binary into the gh-pages build. README gets autoplay/muted/loop; docs landing uses controls.
1 parent 2ef8d71 commit c8d42f7

3 files changed

Lines changed: 50 additions & 1 deletion

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Build FHIR REST queries with compile-time type safety for resources, search para
66

77
**[Documentation](https://awbx.github.io/fhir-dsl/)** | **[Quick Start](https://awbx.github.io/fhir-dsl/docs/getting-started/quick-start)** | **[CLI Usage](https://awbx.github.io/fhir-dsl/docs/cli/usage)** | **[Roadmap](https://awbx.github.io/fhir-dsl/docs/roadmap)**
88

9-
<video src="https://github.com/user-attachments/assets/64947e51-cdd0-41fc-b7e0-01d68009ffc8" controls width="100%"></video>
9+
<video src="https://github.com/user-attachments/assets/64947e51-cdd0-41fc-b7e0-01d68009ffc8" autoplay muted loop playsinline controls width="100%"></video>
1010

1111

1212
## Why fhir-dsl?

apps/docs/src/pages/index.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import { Highlight, themes } from 'prism-react-renderer';
55
import { useState } from 'react';
66
import styles from './index.module.css';
77

8+
const WALKTHROUGH_VIDEO_URL =
9+
'https://github.com/user-attachments/assets/64947e51-cdd0-41fc-b7e0-01d68009ffc8';
10+
811
const EXAMPLES = [
912
{
1013
id: 'search',
@@ -399,6 +402,32 @@ function Hero({ title, tagline, version }) {
399402
);
400403
}
401404

405+
function Walkthrough() {
406+
return (
407+
<section className={styles.section}>
408+
<div className={styles.sectionHeader}>
409+
<span className={styles.eyebrow}>Walkthrough</span>
410+
<h2 className={styles.sectionTitle}>See it in action</h2>
411+
<p className={styles.sectionLead}>
412+
A short narrated tour of the query builder, generator, and CLI.
413+
</p>
414+
</div>
415+
416+
<div className={styles.videoFrame}>
417+
<video
418+
className={styles.video}
419+
src={WALKTHROUGH_VIDEO_URL}
420+
controls
421+
preload="metadata"
422+
playsInline
423+
>
424+
<track kind="captions" />
425+
</video>
426+
</div>
427+
</section>
428+
);
429+
}
430+
402431
function Playground() {
403432
const [activeId, setActiveId] = useState(EXAMPLES[0].id);
404433
const active = EXAMPLES.find((e) => e.id === activeId) ?? EXAMPLES[0];
@@ -509,6 +538,7 @@ export default function Home() {
509538
tagline={siteConfig.tagline}
510539
version={siteConfig.customFields?.version}
511540
/>
541+
<Walkthrough />
512542
<Playground />
513543
<Features />
514544
<CTA />

apps/docs/src/pages/index.module.css

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,25 @@
244244
margin: 0;
245245
}
246246

247+
/* ───── Walkthrough video ───── */
248+
249+
.videoFrame {
250+
border: 1px solid var(--surface-border);
251+
border-radius: 14px;
252+
background: var(--code-bg);
253+
overflow: hidden;
254+
box-shadow: 0 24px 60px -30px rgba(15, 23, 42, 0.5);
255+
aspect-ratio: 16 / 9;
256+
}
257+
258+
.video {
259+
display: block;
260+
width: 100%;
261+
height: 100%;
262+
object-fit: cover;
263+
background: var(--code-bg);
264+
}
265+
247266
/* ───── Tabs / code playground ───── */
248267

249268
.playground {

0 commit comments

Comments
 (0)