Back to blog
    August 17, 2026Tutorial

    Test Dark Mode Without Drifting Into Settings

    Dark mode bugs are easy to ship because checking for them is tedious. The bug itself is usually obvious once you see it — white-on-white text, an icon that vanishes, a hardcoded #FFFFFF background inside an otherwise dark screen. The problem is how many steps it takes to look.

    The round trip that stops people checking

    On a real device the usual loop is:

    1. Leave the app
    2. Open Settings
    3. Find Display (or Display & Brightness)
    4. Toggle the appearance
    5. Go back to the app
    6. Navigate to the screen you were on
    7. Repeat, in reverse, for the next screen

    Seven steps to see one screen in the other theme. Nobody does that for forty screens, so dark mode gets spot-checked on the home screen and shipped.

    There's a worse problem than tedium: leaving the app can cost you the state you were testing. Backgrounding may reset a form, drop a partially-filled cart, or trigger a re-auth. The bug you were about to inspect is often gone by the time you get back.

    Toggle it from a button instead

    On RobotActions the appearance switch is a control in the device toolbar. One click flips the device between light and dark while your app stays in the foreground, on the screen you were already looking at. No Settings, no navigating back, no losing state.

    That turns the check into something you'll actually do: walk the flow once in light, click, walk it again in dark — comparing the same screens with the same data.

    What to look for

    • Hardcoded colours. Anything that didn't come from a theme token: #FFF backgrounds, black text set literally, a divider that disappears against its new background.
    • Images and icons. PNGs with baked-in white backgrounds, monochrome icons that assume a light surface, logos that vanish.
    • Contrast. Grey-on-grey is the classic dark-mode regression — legible in light, unreadable in dark.
    • Elevation and shadows. Shadows do almost nothing on a dark surface; cards that relied on them stop reading as separate.
    • Third-party and web views. Embedded checkout, help centres and map views often don't follow your theme.
    • The switch itself. Some screens only re-theme on remount — flip while the screen is open and see whether it updates live or stays half-light until you navigate away.

    That last one is the bug most often missed, precisely because the Settings round trip forces a remount and hides it. Toggling in place is what surfaces it.

    Do it on hardware

    Simulators re-theme cleanly. Real devices bring the OEM skin, the real rendering stack, and the actual system chrome your app sits inside — which is where the disagreements between your theme and the platform's show up.

    Let an AI agent do it

    The appearance switch is an MCP tool as well as a toolbar button, so the whole sweep can be handed to an agent:

    "Open the app, walk through onboarding, checkout and settings in light mode, then flip the device to dark and walk the same three flows again. Screenshot each screen in both themes and tell me where the contrast breaks."

    That turns a check nobody has time to do by hand across forty screens into one that runs unattended — and because it toggles in place, it also catches the screens that only re-theme on remount.

    Open a real device and flip the theme →

    Ready to test on real devices?

    Sign in with Google or GitHub and get real iOS and Android devices in your browser — free to try.

    👋 Hi! Need help? Chat with us!

    Chat with us

    Online

    Before we start

    Share your details so we can follow up with you.