From cda951c367f1c45026f6fc07c39f6185b0273103 Mon Sep 17 00:00:00 2001 From: Guilherme Vozniak Date: Fri, 22 May 2026 15:08:58 +0200 Subject: [PATCH] feat(landing): frame demo as a monitor screen; drop version from download cards MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three tweaks to the landing, all cosmetic: - Demo: removed the "A live preview — no video, just the real UI" caption. It explained the trick rather than selling the product. - Demo: wrapped the faux app window in a simulated monitor — a dark bezel with a webcam dot and a stand (neck + base) — so the looping record → transcribe → paste preview reads as "watching the app run on a display" instead of a flat UI card on the page. A soft radial glow sits behind the screen for depth. - Download: removed the version line from the platform cards. It only showed on macOS (the manifest carries one version), and repeating the release number at the bottom of the page added nothing — the changelog and footer already carry it. No behavior change to the demo state machine. Landing suite 50/50, typecheck + build + lint clean. Co-Authored-By: WOZCODE --- packages/landing/src/components/demo.tsx | 142 ++++++++++-------- .../landing/src/components/download.test.tsx | 3 +- packages/landing/src/components/download.tsx | 7 +- 3 files changed, 85 insertions(+), 67 deletions(-) diff --git a/packages/landing/src/components/demo.tsx b/packages/landing/src/components/demo.tsx index bb79aae..832a542 100644 --- a/packages/landing/src/components/demo.tsx +++ b/packages/landing/src/components/demo.tsx @@ -90,74 +90,96 @@ export function Demo({ initialPhase }: DemoProps = {}) { return (
-
- {/* Faux app window */} + {/* A simulated monitor — just the screen on a stand — so the + preview reads as "watching the app run on a display" rather + than a flat UI card sitting on the page. */} +
+ {/* Soft glow behind the screen for depth. */}
- {/* Title bar with traffic-light dots */} -
-
); diff --git a/packages/landing/src/components/download.test.tsx b/packages/landing/src/components/download.test.tsx index 8c0fb12..bc85c20 100644 --- a/packages/landing/src/components/download.test.tsx +++ b/packages/landing/src/components/download.test.tsx @@ -59,7 +59,8 @@ describe('Download', () => { expect(screen.queryByRole('link', { name: /download bluemacaw for windows/i })).toBeNull(); expect(screen.queryByRole('link', { name: /download bluemacaw for linux/i })).toBeNull(); expect(screen.getAllByText(/coming soon/i)).toHaveLength(2); - expect(screen.getByText(/v0\.1\.0/)).toBeInTheDocument(); + // Version is intentionally not shown on the download cards. + expect(screen.queryByText(/v0\.1\.0/)).toBeNull(); }); it('keeps the coming-soon Setup guide link visible even when the download is unavailable', async () => { diff --git a/packages/landing/src/components/download.tsx b/packages/landing/src/components/download.tsx index 677b2c3..7b2c39a 100644 --- a/packages/landing/src/components/download.tsx +++ b/packages/landing/src/components/download.tsx @@ -69,7 +69,6 @@ export function Download() { href={macHref} docsHref="/docs/#install-macos" icon={} - version={manifest?.version} /> . The Download button is the // only download link — a separate “Setup guide” link points at the OS’s // section in /docs. This way a user can read the install notes before // committing to a download, and screen readers see two distinct actions. -function PlatformCard({ name, detail, href, docsHref, icon, version }: PlatformCardProps) { +function PlatformCard({ name, detail, href, docsHref, icon }: PlatformCardProps) { const comingSoon = href === null; return (
{comingSoon ? 'Coming soon' : detail}
- {version && !comingSoon ? ( -
v{version}
- ) : null}
{comingSoon ? null : (