Skip to content

feat(ios): PR1 brand color palette overhaul#98919

Closed
joelnishanth wants to merge 1 commit into
openclaw:mainfrom
joelnishanth:feat/ios-pr1-brand-colors
Closed

feat(ios): PR1 brand color palette overhaul#98919
joelnishanth wants to merge 1 commit into
openclaw:mainfrom
joelnishanth:feat/ios-pr1-brand-colors

Conversation

@joelnishanth

@joelnishanth joelnishanth commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

What Problem This Solves

The iOS app still used legacy accent/semantic colors (#C63E38 era accent, raw .orange/.green/.red, and systemBlue on Talk controls) instead of the design-guide palette. PR1 centralizes consumed tokens in OpenClawBrand and routes the hardcoded call sites through them.

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 after maintainer feedback: branch rebased on current main (Liquid Glass + navigation/settings refresh) and proof regenerated on that UI.

User Impact

  • Primary Talk actions and glass toggles use Claw Red (#E8302A) instead of system blue.
  • Push-relay sheet, gateway/talk banners, and privacy status rows use brand semantic colors.
  • Sheet chrome graphite values align to design-guide void/obsidian dark surfaces.

Evidence

Automated

  • OpenClawBrandTestsTEST SUCCEEDED (iPhone 17 Simulator, patched upstream/main + this diff)
  • Talk CTA pixel scan on current main UI: before 38,879 blue / 0 Claw Red → after 0 blue / 37,324 Claw Red (#E8302A)

Before / after (simulator, --openclaw-screenshot-mode, upstream/main @ c8dba85)

Proof PNGs live in a gist (not committed to the repo): https://gist.github.com/joelnishanth/6c9259b415c3f124118dd028e5ec357d

Talk — Start Talk / glass controls (systemBlue → Claw Red)

Before After
talk light before talk light after

Talk — dark mode

Before After
talk dark before talk dark after

Settings — Connected status + accent tab

Before After
settings light before settings light after
Before After
settings dark before settings dark after

Files changed (6)

  • apps/ios/Sources/Design/OpenClawBrand.swift — consumed tokens only (no unused follow-up palette surface)
  • TalkProTab.swift — primary CTA + glass toggle tint
  • SettingsProTab.swift — push relay sheet accent
  • GatewayProblemView.swift, TalkRuntimeIssueBanner.swift, PrivacyAccessSectionView.swift — semantic colors

Real behavior proof (required for external PRs)

  • Behavior or issue addressed: iOS brand accent/semantic palette alignment (PR1)
  • Real environment tested: macOS, Xcode 16, iPhone 17 Simulator (iOS 26.3.1), Debug build on current upstream/main UI shell
  • Exact steps or command run after this patch:
    xcrun simctl launch booted ai.openclawfoundation.app \
      --openclaw-screenshot-mode \
      --openclaw-appearance light \
      --openclaw-initial-tab talk \
      --openclaw-initial-destination talk \
      --openclaw-sidebar-visibility hidden
    xcrun simctl io booted screenshot talk-after.png
    Before captures used the same commands against an unpatched upstream/main build.
  • Evidence after fix: gist before/after PNGs above; pixel verification on Talk CTA region
  • Observed result after fix: Talk primary/glass controls and Settings accent tab use Claw Red; semantic rows use brand ok/warn/danger
  • What was not tested: physical device; hosted push-relay sheet in live settings flow; Watch approve buttons
  • Proof limitations or environment constraints: tab screenshots use debug screenshot fixture mode; proof images hosted in gist per repo artifact policy (not committed)

Review follow-up

  • Removed committed .github/proof PNGs from the branch
  • Trimmed unused follow-up tokens so Periphery/dead-code lane stays narrow
  • Rebased on main with Peter’s navigation/settings UI refresh before regenerating after screenshots

Joel Nishanth · offlyn.AI

@clawsweeper

clawsweeper Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Codex review: found issues before merge. Reviewed July 2, 2026, 1:15 AM ET / 05:15 UTC.

Summary
The PR changes iOS SwiftUI brand tokens, routes several hardcoded accent/status colors through OpenClawBrand, and adds before/after proof screenshots under .github/proof.

PR surface: Config 0, Other +36. Total +36 across 16 files.

Reproducibility: not applicable. this is a visual design-system PR, not a bug report. I verified the changed surfaces from the diff/current source and inspected the supplied after-fix simulator screenshots.

Review metrics: 2 noteworthy metrics.

  • Proof assets added: 10 PNG screenshots added under .github/proof/ios-pr1-colors. These are review artifacts, so maintainers should notice that landing would put them in repository history.
  • Dead-code symbols: 19 unused Swift static symbols reported by Scan iOS dead code. The failing lane is tied to the PR's expanded token surface and must be cleared before merge.

Merge readiness
Overall: 🦐 gold shrimp
Proof: 🦞 diamond lobster ✨ media proof bonus
Patch quality: 🦐 gold shrimp
Result: needs maintainer review before merge.

Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch.

Rank-up moves:

  • Remove the .github/proof/ios-pr1-colors PNGs and keep the screenshots available as PR attachments or an external artifact link.
  • Trim or consume the unused future palette/text/surface tokens so Scan iOS dead code passes.

Risk before merge

  • [P1] Merging as-is would permanently add ten PR-only screenshot files to repository history instead of keeping proof in PR attachments or an artifact store.
  • [P1] The branch currently fails Scan iOS dead code because the expanded palette includes unused future constants, so green CI does not support landing this head.

Maintainer options:

  1. Repair the branch before merge (recommended)
    Remove .github/proof/ios-pr1-colors/*.png, rehost or attach the screenshots outside the repo, and trim or consume the unused token constants so the dead-code lane passes.
  2. Accept artifact debt explicitly
    Maintainers could intentionally accept committed proof images, but that would make review-only artifacts permanent repository content and leave the proof policy exception on record.

Next step before merge

  • [P2] Contributor or maintainer follow-up is needed because the branch must rehome its proof artifacts before removing them from git and then clear the dead-code findings.

Security
Cleared: No dependency, workflow, secret, permission, or code-execution surface changes were found; the committed PNGs are a repository hygiene blocker, not a concrete security issue.

Review findings

  • [P2] Remove committed proof screenshots — .github/proof/ios-pr1-colors/talk-light-after.png:1
  • [P2] Trim unused palette tokens — apps/ios/Sources/Design/OpenClawBrand.swift:61-100
Review details

Best possible solution:

Land a narrow iOS color-token slice after moving proof screenshots out of the branch, keeping proof accessible externally, and removing or consuming unused tokens so Periphery is clean.

Do we have a high-confidence way to reproduce the issue?

Not applicable; this is a visual design-system PR, not a bug report. I verified the changed surfaces from the diff/current source and inspected the supplied after-fix simulator screenshots.

Is this the best way to solve the issue?

No; routing hardcoded colors through brand tokens is a good direction, but the best merge shape keeps proof artifacts external and avoids unused follow-up token surface.

Full review comments:

  • [P2] Remove committed proof screenshots — .github/proof/ios-pr1-colors/talk-light-after.png:1
    The diff adds ten before/after PNGs under .github/proof, but repository policy keeps PR proof assets in PR comments or external artifact storage rather than product repo history. Please remove these files and rehost the screenshots so proof remains available after merge.
    Confidence: 0.95
  • [P2] Trim unused palette tokens — apps/ios/Sources/Design/OpenClawBrand.swift:61-100
    The branch adds follow-up token constants that no current caller uses, and the iOS Periphery check fails on those static symbols. Keep this slice to consumed tokens or wire the new tokens into real callers/tests.
    Confidence: 0.9

Overall correctness: patch is incorrect
Overall confidence: 0.88

AGENTS.md: found and applied where relevant.

Codex review notes: model internal, reasoning high; reviewed against b2c507c5f04c.

Label changes

Label justifications:

  • P3: This is low-risk iOS visual polish/design-system work, not an urgent runtime, security, crash, or message-delivery regression.
  • merge-risk: 🚨 other: Merging as-is would permanently add PR-only proof screenshots to repository history despite the repository artifact policy.
  • rating: 🦐 gold shrimp: Overall readiness is 🦐 gold shrimp; proof is 🦞 diamond lobster and patch quality is 🦐 gold shrimp.
  • status: ⏳ waiting on author: ClawSweeper has contributor-facing work open and is waiting for author action. Sufficient (screenshot): The PR body includes simulator commands and before/after screenshots, and inspected after images visibly show the changed Talk CTA and Settings status colors; the proof should be rehomed before merge.
  • proof: sufficient: Contributor real behavior proof is sufficient. The PR body includes simulator commands and before/after screenshots, and inspected after images visibly show the changed Talk CTA and Settings status colors; the proof should be rehomed before merge.
  • proof: 📸 screenshot: Contributor real behavior proof includes screenshot evidence. The PR body includes simulator commands and before/after screenshots, and inspected after images visibly show the changed Talk CTA and Settings status colors; the proof should be rehomed before merge.
Evidence reviewed

PR surface:

Config 0, Other +36. Total +36 across 16 files.

View PR surface stats
Area Files Added Removed Net
Source 0 0 0 0
Tests 0 0 0 0
Docs 0 0 0 0
Config 10 0 0 0
Generated 0 0 0 0
Other 6 55 19 +36
Total 16 55 19 +36

What I checked:

Likely related people:

  • steipete: Recent merged iOS PRs touched OpenClawBrand.swift, TalkProTab.swift, SettingsProTab.swift, brand contrast tests, and snapshot coverage around this palette/UI surface. (role: recent area contributor; confidence: high; commits: 313560d5b98e, 3e50f41dd6ea, eb151b3550f7; files: apps/ios/Sources/Design/OpenClawBrand.swift, apps/ios/Sources/Design/TalkProTab.swift, apps/ios/Sources/Design/SettingsProTab.swift)
  • Solvely-Colin: Merged iOS pro UI work added the current apps/ios/Sources/Design surface, including OpenClawBrand.swift, pro components, settings, gateway, and Talk views this PR now adjusts. (role: introduced current pro UI direction; confidence: high; commits: 0d62f6bd49f0, 64ead505627a; files: apps/ios/Sources/Design/OpenClawBrand.swift, apps/ios/Sources/Design/OpenClawProComponents.swift, apps/ios/Sources/Design/SettingsProTab.swift)
  • zats: The merged accent-color centralization PR moved iOS accent and status colors through design tokens and touched OpenClawBrand.swift plus shared chat color surfaces. (role: recent token contributor; confidence: high; commits: 2e7e4704576d; files: apps/ios/Sources/Design/OpenClawBrand.swift, apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatTheme.swift, apps/shared/OpenClawKit/Sources/OpenClawChatUI/ChatMessageViews.swift)
  • ngutman: CONTRIBUTING.md lists this handle for the iOS app, and this account merged the large iOS pro UI refresh that created much of the current design surface. (role: listed iOS app owner and merger of adjacent UI work; confidence: high; commits: 0d62f6bd49f0; files: CONTRIBUTING.md, apps/ios/Sources/Design/OpenClawBrand.swift, apps/ios/Sources/Gateway/GatewayProblemView.swift)
What the crustacean ranks mean
  • 🦀 challenger crab: rare, exceptional readiness with strong proof, clean implementation, and convincing validation.
  • 🦞 diamond lobster: very strong readiness with only minor maintainer review expected.
  • 🐚 platinum hermit: good normal PR, likely mergeable with ordinary maintainer review.
  • 🦐 gold shrimp: useful signal, but proof or patch confidence is still limited.
  • 🦪 silver shellfish: thin signal; proof, validation, or implementation needs work.
  • 🧂 unranked krab: not merge-ready because proof is missing/unusable or there are serious correctness or safety concerns.
  • 🌊 off-meta tidepool: rating does not apply to this item.

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
  • ClawSweeper keeps one durable marker-backed review comment per issue or PR.
  • Re-runs edit this comment so the latest verdict, findings, and automation markers stay together instead of adding duplicate bot comments.
  • A fresh review can be triggered by eligible @clawsweeper re-review comments, exact-item GitHub events, scheduled/background review runs, or manual workflow dispatch.
  • PR/issue authors and users with repository write access can comment @clawsweeper re-review or @clawsweeper re-run on an open PR or issue to request a fresh review only.
  • Maintainers can also comment @clawsweeper review to request a fresh review only.
  • Fresh-review commands do not start repair, autofix, rebase, CI repair, or automerge.
  • Maintainer-only repair and merge flows require explicit commands such as @clawsweeper autofix, @clawsweeper automerge, @clawsweeper fix ci, or @clawsweeper address review.
  • Maintainers can comment @clawsweeper explain to ask for more context, or @clawsweeper stop to stop active automation.

@clawsweeper clawsweeper Bot added proof: sufficient ClawSweeper judged the real behavior proof convincing. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action. P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. labels Jul 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

app: ios App: ios merge-risk: 🚨 other 🚨 Merging this PR has meaningful risk outside the owned taxonomy. P3 Low-priority cleanup, docs, polish, ergonomics, or speculative work. proof: 📸 screenshot Contributor real behavior proof includes screenshot evidence. proof: sufficient ClawSweeper judged the real behavior proof convincing. rating: 🦐 gold shrimp Decent PR readiness signal, but merge confidence is limited. size: S status: ⏳ waiting on author ClawSweeper has contributor-facing work open and is waiting for author action.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant