Make the Freeze my deck button visually identical to Make my homework

Same sparkles icon, same shape, same states — only the label differs, which
is the one thing that cannot be shared. The snowflake stays the app's brand
mark on the hero, the drop zone and the tab bar.

Service worker: freezmo-v15.

Verified: computed-style diff between the two buttons is empty and the
cropped screenshots differ only in their text; CTA-parity suite 32/32,
desktop regression 74/74, mobile 51/51. Lint + build clean.
This commit is contained in:
Martin Dvořák 2026-10-09 08:53:03 +00:00
commit 4530466df0
2 changed files with 5 additions and 5 deletions

View file

@ -32,7 +32,7 @@ import { UNORGANIZED_ID, type Difficulty } from "@/lib/schemas";
import { upsertDeck } from "@/lib/storage";
import { openSettings } from "@/lib/ui-events";
import { cn, uid } from "@/lib/utils";
import { CameraIcon, FolderIcon, IceCubeIcon, PlusIcon, SnowflakeIcon, SunIcon } from "@/components/icons";
import { CameraIcon, FolderIcon, IceCubeIcon, PlusIcon, SnowflakeIcon, SparklesIcon, SunIcon } from "@/components/icons";
import { Button, ProgressBar } from "@/components/ui";
type Phase = "idle" | "preparing" | "loading" | "error";
@ -720,15 +720,15 @@ export function UploadScreen() {
</section>
<div className="sticky bottom-[calc(env(safe-area-inset-bottom,0px)+4.6rem)] z-20 -mx-4 space-y-2 border-t border-[var(--hairline)] bg-white/65 px-4 py-3 backdrop-blur-2xl dark:bg-[color-mix(in_oklab,var(--surface)_70%,transparent)] sm:bottom-0 sm:mx-0 sm:rounded-[1.35rem] sm:border sm:px-5">
{/* Same CTA shape as the homework flow: feature icon, full-width,
helper line centred underneath. */}
{/* Visually identical to the homework flow's CTA — same icon, shape
and helper line — only the label differs. */}
<Button
size="lg"
className="touch-target w-full"
onClick={() => void generate()}
disabled={!canGenerate}
>
<SnowflakeIcon className="size-5" /> {t("upload.freezeDeck")}
<SparklesIcon className="size-5" /> {t("upload.freezeDeck")}
</Button>
<p className="text-center text-[12px] text-[var(--text-subtle)]">
{documentsBusy

View file

@ -9,7 +9,7 @@
*
* Bumping CACHE_VERSION is how a new deploy invalidates old assets.
*/
const CACHE_VERSION = "freezmo-v14";
const CACHE_VERSION = "freezmo-v15";
const SHELL_CACHE = `${CACHE_VERSION}-shell`;
const ASSET_CACHE = `${CACHE_VERSION}-assets`;