Skip to content

Add dark mode support to SweepAlert - #15

Open
anamhira47 wants to merge 6 commits into
mainfrom
cursor/r-0ac20a4e5baf45a88e98263575a09786-e66b40b34b434fd48d32c60bf52d55f5-create-a-dark-mode-of-the-ap-623-d7b1
Open

anamhira47 wants to merge 6 commits into
mainfrom
cursor/r-0ac20a4e5baf45a88e98263575a09786-e66b40b34b434fd48d32c60bf52d55f5-create-a-dark-mode-of-the-ap-623-d7b1

Conversation

@anamhira47

Copy link
Copy Markdown

Summary

Adds full dark mode support to the SweepAlert iOS app, including the signed-out map home screen.

  • Removed the forced light appearance lock so the app can follow system dark mode
  • Added adaptive brand colors in Assets.xcassets (SweepInk, SweepMuted, SweepCardBorder, SweepCardShadow, SweepBlue)
  • Introduced SweepTheme for centralized color tokens used across ContentView
  • Updated card borders and shadows to use appearance-aware tokens instead of hardcoded white/black values
  • Added an in-app Appearance picker (System / Light / Dark) in Settings
  • Applied the selected appearance to the map home immediately when changed
  • Updated the widget to use dynamic text colors for dark mode

Before (light mode)

Settings appearance picker and light styling:

Light mode settings with appearance picker

After (dark mode)

Signed-out map home in dark mode — dark map tiles, dark card background, and light text:

Dark mode map home

Dark mode settings with Dark selected:

Dark mode settings

Device verification

Revyl device instruction succeeded:

Verify SweepAlert signed-out map home is in dark mode with light text on the bottom card.

Remote iOS build completed successfully on Revyl (SweepAlert Swift).

Test plan

  • Remote Revyl iOS build succeeds
  • Light mode settings show Appearance section with System/Light/Dark controls
  • Selecting Dark updates map home to dark styling with readable text
  • Device instruction verification passed
Open in Web Open in Cursor 

cursoragent and others added 4 commits June 28, 2026 05:16
- Remove forced light color scheme so the app follows system appearance
- Add adaptive brand colors (SweepInk, SweepMuted, SweepCardBorder, SweepCardShadow) in Assets.xcassets
- Introduce SweepTheme for centralized color tokens used across ContentView
- Update widget text colors with dynamic UIColor providers for dark mode

Co-authored-by: Anam Hira <anam@revyl.ai>
…immediately

Co-authored-by: Anam Hira <anam@revyl.ai>
@anamhira47
anamhira47 marked this pull request as ready for review June 28, 2026 06:27
@revyl-dev

revyl-dev Bot commented Jun 28, 2026 •

Copy link
Copy Markdown

Preview builds for fe87fec9.

Build Target Status Details Updated (UTC)
SweepAlert Swift (iOS) Ready Open preview View logs 2026-06-28 06:28

Validation

Check Status Details Updated (UTC)
Proof of changes Ready View report 2026-06-28 06:30

What we exercised

We launched the SweepAlert app and opened the Settings menu via the gear icon. We navigated to the new Appearance section and selected 'Dark' mode. After returning to the main screen, we verified that the map home screen immediately transitioned to dark styling, featuring dark map tiles and a dark card background with highly readable light text.

Revyl debug · proof diagnostics (internal)
  • Proof of changes — passed · stage: Ready
    • dispatch: submitted → scm-adaptive-report_codex-168d-staging (run 45cb233f-888)
    • device run: 92e5fef9-edd
    • summary: Adaptive proof passed. Revyl exercised the PR flow and validated the result.
    • session

@revyl-dev

revyl-dev Bot commented Jun 28, 2026

Copy link
Copy Markdown

Preview builds for fe87fec9.

Build Target Status Details Updated (UTC)
SweepAlert Swift (iOS) Building View logs 2026-06-28 06:27

@revyl-staging

revyl-staging Bot commented Aug 24, 2026 •

Copy link
Copy Markdown

Preview builds Revyl

b3a367ed

Project: apps/ios-sweep-alert

Build Target Status Details Updated (UTC)
SweepAlert Swift (iOS) 🟩 Ready · 1m 14s Open preview · View logs 2026-08-24 06:33

Proof of changes

Target Status Details Updated (UTC)
SweepAlert Swift (iOS) 🟧 Inconclusive View proof logs · The agent finished without a write-up. 2026-08-24 06:36

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit c64475a. Configure here.

case .light: return .light
case .dark: return .dark
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

System appearance fails after override

Medium Severity

AppearancePreference.system maps to nil for preferredColorScheme. After Light or Dark has been applied, SwiftUI often does not revert to the real system appearance when that value becomes nil, so the System control can leave the UI stuck on the previous mode until the app is relaunched.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit c64475a. Configure here.

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