Skip to content

fix(cloud): make the white-on-white primary CTAs visible (Create App + siblings) - #13546

Merged
lalalune merged 2 commits into
developfrom
fix/cloud-white-on-white-cta
Jul 4, 2026
Merged

lalalune merged 2 commits into
developfrom
fix/cloud-white-on-white-cta

Conversation

@standujar

Copy link
Copy Markdown
Collaborator

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:

  • button classes: bg-[var(--accent)] hover:bg-[#e54f00] text-white
  • under .theme-cloud, --accent resolves to var(--brand-white) (#fff)
  • bg-[var(--accent)] = white, text-white = white ⇒ computed background: 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 --accent is 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

  • Before: two invisible white boxes on dashboard/apps (top bar + empty state) — reproduce live now.
  • After: injected the fixed classes into the live staging DOM → computed 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.

…+ 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 lalalune left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 0xSolace left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@lalalune

lalalune commented Jul 4, 2026

Copy link
Copy Markdown
Member

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.

@lalalune

lalalune commented Jul 4, 2026

Copy link
Copy Markdown
Member

Reviewed PR #13546. The patch is scoped to the seven cloud CTAs that had the actual bg-[var(--accent)] + text-white white-on-white failure under .theme-cloud, and it aligns them to fixed orange resting / black label / darker-orange hover classes.

Checks run from /private/tmp/eliza-pr-work:

  • bunx @biomejs/biome check packages/ui/src/cloud/api-explorer/ApiExplorerPage.tsx packages/ui/src/cloud/applications/components/BuyDomainCard.tsx packages/ui/src/cloud/applications/components/app-earnings-dashboard.tsx packages/ui/src/cloud/applications/components/app-promote.tsx packages/ui/src/cloud/applications/components/create-app-button.tsx packages/ui/src/cloud/billing/components/auto-top-up-card.tsx packages/ui/src/cloud/join/JoinPage.tsx -> clean.
  • git diff --check -> clean.
  • bun run --cwd packages/ui typecheck -> blocked by temp-worktree baseline only: @elizaos/cloud-routing unresolved; after linking generated i18n artifacts, no diagnostics appeared in the touched TSX files.
  • Required bun run --cwd packages/app audit:app attempted, but the audit failed before screenshots during plugin view builds because plugins/plugin-phone and plugins/plugin-messages cannot resolve @elizaos/capacitor-phone / @elizaos/capacitor-messages package entries in this worktree.

Additional review notes:

  • After this PR, rg finds no remaining bg-[var(--accent)] ... text-white or text-white ... bg-[var(--accent)] matches in packages/ui/src/cloud / packages/app/src except non-button tint/status use in organization members.
  • Remaining solid bg-[var(--accent)] cloud controls I checked use black/default foreground under .theme-cloud and are visible, so I did not expand this PR beyond the white-on-white bug.

@lalalune
lalalune merged commit 607e049 into develop Jul 4, 2026
17 of 60 checks passed
@lalalune
lalalune deleted the fix/cloud-white-on-white-cta branch July 4, 2026 21:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants