Give both creation CTAs their feature icon (the other way around)

Correcting the previous change: instead of stripping the snowflake from
"Freeze my deck", "Make my homework" now carries the homework flow's own
sparkles icon, and the snowflake is back on the deck button.

Both CTAs are now identical in shape — feature icon + label, full-width,
44px, 14px radius, helper line centred underneath, same muted disabled chip
and ice gradient when enabled. The computed-style diff between the two
buttons is empty and their accessible names are unchanged.

Service worker: freezmo-v14.

Verified: 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:06:25 +00:00
commit efbdb5a55a
3 changed files with 5 additions and 4 deletions

View file

@ -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: text-only, full-width, with
the helper line centred underneath. */}
{/* Same CTA shape as the homework flow: feature icon, full-width,
helper line centred underneath. */}
<Button
size="lg"
className="touch-target w-full"
onClick={() => void generate()}
disabled={!canGenerate}
>
{t("upload.freezeDeck")}
<SnowflakeIcon className="size-5" /> {t("upload.freezeDeck")}
</Button>
<p className="text-center text-[12px] text-[var(--text-subtle)]">
{documentsBusy

View file

@ -326,6 +326,7 @@ export function HomeworkInput({
{/* -------------------------------------------------------- CTA */}
<div className="space-y-2">
<Button size="lg" className="touch-target w-full" onClick={onSubmit} disabled={!canSubmit} loading={intake.busy}>
<SparklesIcon className="size-5" />
{mode === "make" ? t("homework.start.make") : t("homework.start.guide")}
</Button>
<p className="text-center text-[12px] text-[var(--text-subtle)]">

View file

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