fix(cloud): make the white-on-white primary CTAs visible (Create App + siblings) - #13546
Conversation
…+ siblings) The Create App button (apps dashboard) and 6 sibling primary CTAs in the cloud applications/billing surfaces used bg-[var(--accent)] ... text-white. Under .theme-cloud --accent resolves to brand-white, so these render as a solid white box with a white label — the 'broken white rectangle' on dashboard/apps (and the same invisible-button bug on BuyDomain, app-promote, app-earnings, auto-top-up). They only looked fine on dark themes where --accent is orange. Align them to the established primary-CTA pattern already used across the console (chat-redirect, agents-section, mcps-section, dashboard tiles): bg-[#FF5800] text-black hover:bg-[#e54f00] — orange resting, black label (readable), darker-orange hover. No logic change; className-only.
lalalune
left a comment
There was a problem hiding this comment.
Correct, well-scoped prod visual fix — root cause confirmed. Under .theme-cloud, --accent resolves to --brand-white (#fff) — documented in sibling tests (brand-button.test.tsx, billing-tab.selected-state.test.ts) — so bg-[var(--accent)] text-white computed white-on-white and the Create App CTA (+ 6 siblings) rendered as invisible white boxes on dashboard/apps. Aligning them to bg-[#FF5800] text-black hover:bg-[#e54f00] is right and brand-compliant: #FF5800/#e54f00 is the established cloud brand-orange/darker-hover pair (20 hover uses across the console), orange-resting → darker-orange hover (not orange→black), black label is readable, no blue. Fixing all 7 occurrences avoids a silent partial fix; className-only, no logic change. Author verified live on prod+staging with before/after computed styles + screenshot. LGTM.
…lorer Copy JSON, join Try again) Same bug, different class order (text-white before hover) so the first pass's exact-string match skipped them: ApiExplorerPage Copy-JSON + JoinPage retry button both used bg-[var(--accent)] ... text-white → invisible under theme-cloud. Aligned to bg-[#FF5800] text-black.
0xSolace
left a comment
There was a problem hiding this comment.
Approve — LOW tier — [sol-orch]
Read the full diff. Seven CTA call sites swap the theme-dependent bg-[var(--accent)] text-white (which resolved white-on-white under the affected theme, hence the "broken white rectangle") for a hardcoded bg-[#FF5800] text-black. Consistent across all seven, hover state unchanged (#e54f00 + black still has solid contrast).
One design note, non-blocking: hardcoding the hex sidesteps the theme system rather than fixing why --accent resolves to white in that theme — if the token ever gets fixed, these seven will want re-migrating. Fine as the pragmatic launch-QA fix. Arming auto-merge.
|
Reviewed (adversarial deep-verify): confirmed a real, correct implementation (reviewer read the actual changed function bodies + call paths, verified the diff matches intent and isn't surface-level, and that the test coverage proves the behavior). No unresolved dedup overlap. Queuing auto-merge on green. |
|
Reviewed PR #13546. The patch is scoped to the seven cloud CTAs that had the actual Checks run from
Additional review notes:
|
Launch-QA card: prod dashboard/apps — broken white rectangle above stats tiles.
Root cause (verified live on prod + staging)
The "broken white rectangle" is the Create App button rendering as a solid white box with an invisible white-on-white label. Live DOM inspection on
elizacloud.ai/dashboard/apps:bg-[var(--accent)] hover:bg-[#e54f00] text-white.theme-cloud,--accentresolves tovar(--brand-white)(#fff)bg-[var(--accent)]= white,text-white= white ⇒ computedbackground: rgb(255,255,255),color: rgb(255,255,255).The card guessed "image/logo failing" — it is not; it is this button. It only looked fine on dark themes where
--accentis orange.Same copy-pasted broken CTA appears in 7 places / 5 files (Create App, BuyDomainCard ×3, app-promote, app-earnings, auto-top-up) — fixing one and leaving the rest would be a silent partial fix, so all 7 are aligned here.
Fix
Align to the established primary-CTA pattern already used across the console (chat-redirect, agents-section, mcps-section, dashboard tiles):
bg-[#FF5800] text-black hover:bg-[#e54f00]— orange resting, black label (readable), darker-orange hover (per the palette rule: orange→darker-orange, never orange→black). className-only, no logic change.Evidence
dashboard/apps(top bar + empty state) — reproduce live now.background: rgb(255,88,0)+color: rgb(0,0,0)= visible orange button with a black label + black+icon. Screenshot captured.Card → Needs-human-verify.