feat(ios): PR1 brand color palette overhaul#98930
Conversation
|
Codex review: needs real behavior proof before merge. Reviewed July 2, 2026, 3:09 AM ET / 07:09 UTC. Summary PR surface: Other +62. Total +62 across 14 files. Reproducibility: not applicable. this is a visual design-token PR rather than a runtime bug report. The reviewable check is whether current source, tests, PR text, and screenshots agree on the final palette. Review metrics: none identified. Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Pick the intended iOS accent contract, then either regenerate the PR body/proof for the contrast-safe tokens or restore the advertised Do we have a high-confidence way to reproduce the issue? Not applicable; this is a visual design-token PR rather than a runtime bug report. The reviewable check is whether current source, tests, PR text, and screenshots agree on the final palette. Is this the best way to solve the issue? No; routing hardcoded colors through Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against be5906e19dd7. Label changesLabel changes:
Label justifications:
Evidence reviewedPR surface: Other +62. Total +62 across 14 files. View PR surface stats
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
37df738 to
31c787f
Compare
31c787f to
97ebdf2
Compare
OpenClaw QA ArtifactsSummaryMatched iPhone 17 / iOS 26.5 screenshot-fixture captures.
Evidence
|
Land-ready maintainer verificationExact head: Maintainer repair completed before landing:
Before / after
Verification
Known proof gaps: none. |
|
Merged via squash.
|
Add OpenClawTypography with bundled Plus Jakarta Sans / DM Sans / JetBrains Mono fonts and Dynamic Type support. Add OpenClawSpacing, OpenClawRadius, OpenClawMotion tokens. Add shared OpenClawStatusBadge, OpenClawToggle, and button tier components. Migrate ~30 views to OpenClawType tokens. Add new color tokens (teal, void, obsidian, slate, stone, text tiers) without changing existing accent/semantic RGB values from openclaw#98930. Co-authored-by: Cursor <[email protected]>
After screenshots now use the original accent RGB values from openclaw#98930 (no brighter red). Only typography changes visible in before/after. Co-authored-by: Cursor <[email protected]>
Add OpenClawTypography with bundled Plus Jakarta Sans / DM Sans / JetBrains Mono fonts and Dynamic Type support. Add OpenClawSpacing, OpenClawRadius, OpenClawMotion tokens. Add shared OpenClawStatusBadge, OpenClawToggle, and button tier components. Migrate ~30 views to OpenClawType tokens. Add new color tokens (teal, void, obsidian, slate, stone, text tiers) without changing existing accent/semantic RGB values from openclaw#98930. Co-authored-by: Cursor <[email protected]>
Add OpenClawTypography with bundled Plus Jakarta Sans / DM Sans / JetBrains Mono fonts and Dynamic Type support. Add OpenClawSpacing, OpenClawRadius, OpenClawMotion tokens. Add shared OpenClawStatusBadge, OpenClawToggle, and button tier components. Migrate ~30 views to OpenClawType tokens. Add new color tokens (teal, void, obsidian, slate, stone, text tiers) without changing existing accent/semantic RGB values from openclaw#98930. Co-authored-by: Cursor <[email protected]>
* feat(ios): align brand color tokens with design guide (PR1) * fix(ios): preserve brand contrast * fix(ios): cover tinted palette surfaces * chore(ios): sync native i18n inventory * chore(ios): sync native i18n inventory * chore(ios): sync native i18n inventory --------- Co-authored-by: Peter Steinberger <[email protected]>




What Problem This Solves
The iOS app still used legacy accent/semantic colors (
#C63E38era accent, raw.orange/.green/.red, andsystemBlueon Talk controls) instead of the design-guide palette. PR1 centralizes consumed tokens inOpenClawBrandand routes the hardcoded call sites through them.Supersedes closed #98919 after maintainer feedback (stale after screenshots + committed proof assets).
Why This Change Was Made
Design-system PR 1 of 8: palette + hardcoded color cleanup only. Follow-up PRs own typography, spacing, and unused surface/text/teal tokens.
Reopened cleanly: branch rebased on current
main(Liquid Glass + navigation/settings refresh) and proof regenerated on that UI.User Impact
#E8302A) instead of system blue.Evidence
Automated
OpenClawBrandTests— TEST SUCCEEDED (iPhone 17 Simulator, patchedupstream/main+ this diff)#E8302A)Why Settings tab before/after looked identical
The Settings tab screenshot already used
OpenClawBrand.accentonmain; PR1 mostly retunes token values (#C63E38→#E8302A, dark graphite/ok shifts). That is only ~0.2–0.5% of pixels on the full Settings screen — too subtle for a side-by-side full-page compare. The user-visible regressions this PR fixes are on surfaces that still had hardcodedsystemBlueor UIKit semantic colors (Talk CTA, push-relay sheet, gateway/talk banners, privacy rows).Before / after (simulator + isolated SwiftUI render)
Proof PNGs are hosted on fork branch
pr-assets-98930(not part of this PR diff): https://github.com/joelnishanth/openclaw/tree/pr-assets-98930Talk — Start Talk CTA (systemBlue → Claw Red)
Talk — dark mode CTA crop
Talk — full screen context
Push relay disclosure sheet (systemBlue → Claw Red)
Files changed (6)
apps/ios/Sources/Design/OpenClawBrand.swift— consumed tokens only (no unused follow-up palette surface)TalkProTab.swift— primary CTA + glass toggle tintSettingsProTab.swift— push relay sheet accentGatewayProblemView.swift,TalkRuntimeIssueBanner.swift,PrivacyAccessSectionView.swift— semantic colorsReal behavior proof (required for external PRs)
upstream/mainUI shellSwiftUIRenderSmokeTests.exportProofSnapshotWhenRequestedagainstHostedPushRelayDisclosureSheeton unpatched vs patchedSettingsProTab.swift.pr-assets-98930); pixel verification on Talk CTA and push-relay rendersok/warn/dangerReview follow-up (from #98919)
.github/proofPNGs from the branchmainwith Peter’s navigation/settings UI refresh before regenerating after screenshots— Joel Nishanth · offlyn.AI