From 0de953ef663f07f7e3676dcb78b0fef56333148e Mon Sep 17 00:00:00 2001 From: gramps Date: Thu, 5 Nov 2026 13:00:57 -0800 Subject: [PATCH] feat(about): rebuild the About box as a conversion surface MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Creator: the About box was "shitty" — an unreadable logo, a version number nobody asked for, copy that insulted the creator, and buttons that looked like text. Rebuilt around one job: convert. - **820×860 modal** (was 650×700) with a scrollable hub, and the logo at **520 px wide** instead of 125 — the asset is 2816×1536, so it was being drawn as a thumbnail, not an icon problem. - **Pre-Release pill** replaces "Version 1.0.0" (the assembly version stays in log lines). The pill is a button: it opens llamacasty.com until a Steam store page exists, so the link changes in one place. - Tagline: "1-2-3, and go live to the world on YouTube!" The old "simple enough that even the most right-brained person can intuit it" is gone, and a test asserts it stays gone. - The offer in three short blocks (free 30 fps · paid 60 fps · one-time, lifetime, no account / subscription / tracking), then the launch price and **one primary CTA**: "Unlock 60 fps — $79". - Price: $79 until **April 1, 2027**, then $99 locked for life. The numbers live once, in `MainViewModel.Overlays`, and are recorded in `docs/ai/commercial.md`. - **A paying customer is never sold to**: ownership collapses the price/CTA block and shows "Licence: owned via Steam — thank you." - Secondary destinations (channel, Mastodon, coffee, licences) are one quiet row; footer is `© Llama Chile Shop`; the "Made by gramps" line is removed. - `YtButtonSecondary` now carries a higher surface, a hairline border and a keyboard focus ring — they were the same tone as the panel behind them, which is why they read as plain text. Test: `AboutHubTests.About_ShowsTheOfferToFreeUsers_AndNothingToSellToOwners` — tagline, pill, price, CTA text, copyright, the removed lines stay removed, and the CTA block collapses when owned. FAST gate: 540 passed, 0 failed, 0 warnings. --- Controls/OverlayHost.xaml | 119 +++++++++++++++------- Themes/Controls.xaml | 59 ++++++++++- ViewModels/MainViewModel.OutputProfile.cs | 2 + ViewModels/MainViewModel.Overlays.cs | 21 ++++ docs/ai/commercial.md | 9 ++ docs/ai/ui-surface.md | 14 +++ ytLive.Tests/AboutHubTests.cs | 87 ++++++++++++++++ 7 files changed, 275 insertions(+), 36 deletions(-) diff --git a/Controls/OverlayHost.xaml b/Controls/OverlayHost.xaml index cbcd438..d941351 100644 --- a/Controls/OverlayHost.xaml +++ b/Controls/OverlayHost.xaml @@ -15,7 +15,7 @@ - @@ -76,42 +76,91 @@ Background="{StaticResource Brush.SurfaceContainerLow}" Visibility="{Binding IsAboutOpen, Converter={StaticResource BoolToVis}}"> - - - - - - -