PR: #344: [Story-1353] Brand the Clerk auth surface — pin sign-up to branded in-app pages by @ankitmaheshwari-com
View PR →
Story 1353

Brand the Clerk auth surface to PRAMAAN

The accelerator signed up through the Clerk-hosted Account Portal at accounts.pramaan.io/sign-up/continue and saw default Clerk chrome — a generic card and a Clerk-purple (#6c47ff) primary button. PRAMAAN already ships fully branded in-app /sign-in and /sign-up surfaces; the bug was that sign-up could fall through to the hosted portal instead. This Story makes the branded in-app surface canonical for the whole flow, including the OAuth "fill in missing fields" continue step.

Decision: brand in-app and make it canonical (issue option 2)

The one-line root cause

Before / after

Token-accurate comparison (maroon #882222 vs Clerk purple #6c47ff). The "after" mirrors the live in-app AuthEditorialShell + authSurfaceClerkAppearance.

Before — hosted portal
accounts.pramaan.io/sign-up/continue
Fill in missing fields
to continue to Pramaan
First name
Last name
After — in-app, branded
app.pramaan.io/sign-up
Create your account
Invitation-only access
First name
Last name
The "before" is a faithful reconstruction of the hosted portal — the live hosted page and the production (pk_live, domain-locked to staging) in-app form cannot be captured headlessly in this worktree. Per retired HR-20 a rendered-app screenshot is no longer a merge gate; the appearance config + CSS are the source of truth that the in-app surface is branded.

Residual hosted-portal surface (Dashboard ops step)

Acceptance criteria

Verification

Files changed

1 file(s), +7 / -0 lines

Path Role + -
src/app/[locale]/layout.tsxApp route+7-0