Dark mode

ONC2-8573 · PR #2645

Dark mode on every screen

Every screenshot from the dark mode PR, grouped by how a learner moves through the app. Each row is one device, with the old dark on the left and the new palette on the right. Click any frame to open it full size.

The palette aims for the same Oncourse at night: warm near-black neutrals rather than blue-black, off-white text, brand blue fills kept, and status and identity colours in their own hue. Since the first review, 12 games and Clinical Rounds draw in Dark too, on night versions of their worlds; Analyst Desk, Objection! and voice Probe stay light on purpose. They're at the top, under New since the first review.

All frames come from staging QA accounts. Open the PR.

NewStays light on purposeChanges in Light

New since the first review

Games in Dark, and Harsha's review New

Since the first review, 12 games draw in Dark on night versions of their stages and rooms, the lesson header goes deep with white text, and Readiness draws its desk photo at night. Three games keep their light look on purpose. Device captures of every game on iPhone, iPad, Android and web are next; until then this section shows the web captures already taken, the night images themselves, and mocks of the two drawn rooms.

Which games draw in Dark

GameCourseIn DarkHere
Synapsesevery courseNight stage, pale ink, deeper tile and button facesiPhone lobby
Medleevery courseNight navy; the patient chart stays light paperWeb pair
Probe (solo)every courseNight stage, with the stage ink on titles, timer and cluesWeb pair
Code BlueNCLEX-RNThe ward at nightWeb pair, night ward image
Image Rushmedical coursesMedle's night navyDevice captures next
Sheet RushCPAIts workroom at nightNight room image
Here and Theremedical coursesIts room at nightNight room image
CrossLSATIts drawn office and courtroom at nightMock from the palette
Clinical Roundsmedical coursesIts ward, start screen and case review at nightNight images
Say It RightNCLEX-RNIts drawn room with the lights down; the window keeps the moment's day or nightMock from the palette
Would You Get Fired?CFAIts office at nightNight room image
Four Call LightsNCLEX-RNThe nurses' station with its lights downNight room image

Which games stay light

GameCourseWhy
Analyst DeskCFAIts time skip is a second full-screen world with its own art and many colours; it needs its own night pass.
Objection!BarIts courtroom panel and 25 portraits would all need relighting.
Voice Probeevery courseStays light by design.

A game that stays light keeps light keyboards, sheets and navigation inside a dark app, as every game did at the first review.

Harsha's review, and the first games in Dark

Bar, tutor Casey (staging QA account) Web, 1280×800. Before is dev without this PR (the old developer Dark toggle), After is this branch at 5e3b97c57.

Lesson headerDeep art, white title and controls

Before

After

ReadinessA subject over the night photo

Before

After

MedleHome

Before

After

MedleA case

Before

After

ProbeHub

Before

After

ProbeSolo game

Before

After

Code BluePreceptor pick

Before

After

Probe's solo frame was taken just before a follow-up fix (774c60f88) that gives its title, timer and clue text the stage ink, so its faint title here is already fixed.

SynapsesiPhone 17 simulator

After

The Tile test button is a development tool learners don't get.

Night rooms

The images in the app, as committed: the day room learners see in Light, and its night version for Dark. Each game lays its own scrim and cards over these, so on screen they read darker still.

Would You Get Fired?CFA · the office

Light

Dark

Four Call LightsNCLEX-RN · the nurses' station

Light

Dark

Sheet RushCPA · the workroom

Light

Dark

Here and ThereMedical · the room

Light

Dark

Clinical RoundsStart screen

Light

Dark

Clinical RoundsThe ward

Light

Dark

Clinical RoundsCase review

Light

Dark

Code Blue and Clinical RoundsThe ward corridor

Light

Dark

ReadinessThe desk photo behind a subject

Light

Dark

Drawn rooms

Cross and Say It Right draw their rooms in code, so these are mocks drawn from the same palette values, not device frames. Say It Right's room opens only inside a shift, which saves a run to the account.

CrossLSAT · the office

Light

Dark

CrossLSAT · the courtroom

Light

Dark

Say It RightNCLEX-RN · the patient's room by day

Light

Dark

Images that drew a light box in Dark

Each gets a dark version or loses its baked-in white.

Rezzy's privacy art: lost its white background (top, on Dark)
The Harvard logo on onboarding: light wordmark in Dark
The quiz paywall's blurred preview: drawn from dark screens

Flow 1

Welcome, onboarding and sign-in

The signed-out welcome and every onboarding step draw on the dark canvas. The welcome card keeps its own art.

Signed-out welcome and onboarding

Signed out, then onboarding (placeholder email) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

iPhoneiPhone 17

Before

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Android

Before

After

Flow 2

Home and Today's plan Changes in Light

The sky, greeting, plan cards, composer and tab bar go dark. The exam switcher's pill, menu and loading skeletons now draw dark too.

Light mode changes.
  • The REG badge fill moves one step, premium-50 to premium-100, the same tint its siblings use.

Home: greeting, Today's plan, More ways to start, composer and tab bar

Bar, tutor Casey (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

iPhoneiPhone 17

Before

After

iPhoneiPhone SE, 3rd gen

Before

Not captured on iPhone: the SE carries this branch's small-phone, largest-text, keyboard and sheet checks; iPhone 17 above has the pairs

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Android

Before

After

The exam switcher on Home: closed, open and a section picked

CPA, tutor Savvy (staging QA account); the web pair is on US Medical PG Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

Before, the pill and the day capsule stay light on the dark sky, and on Android the greeting is invisible on the light sky and the tab bar is white. After, the pill, the menu and the loading skeletons draw dark. On the iPhone Before, staging failed to load the FAR plan after the pick; the After loaded it.

Web

Before

After

iPhoneiPhone 17

Before

After

iPadiPad Pro 13-inch

Before

After

Android

Before

After

The exam badges in the switcher menu, Dark and Light

CPA, tutor Savvy (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

Before, the REG tile nearly vanished on the dark menu (1.06:1) and BAR's orange label was 4.2:1 on its own fill. After, REG takes the tint step its siblings use (1.26:1, level with FAR), BAR's label is 5.6:1, and the Badge specimen's warning and danger labels pass AA on their own wash. In Light, REG's fill moves one step (premium-50 to premium-100).

Web1280 wide; Dark above, Light below

Before

After

iPhoneiPhone 17

Before

After

iPadiPad Pro 13-inch

Before

After

Android

Before

After

Flow 3

The tutor chat

The chat wash, bubbles, composer and past-chats drawer use the dark surfaces. The tutor art is the same image in both schemes.

The tutor chat, opened from Home's composer

Bar, tutor Casey (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

iPhoneiPhone 17

Before

After

iPhoneiPhone SE, 3rd gen

Before

Not captured on iPhone: the SE carries this branch's small-phone, largest-text, keyboard and sheet checks; iPhone 17 above has the pairs

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Android

Before

After

Flow 4

Subjects and lessons Stays light on purpose

Reading text, flowcharts and tabs go dark while the header art keeps its colours.

Stays light on purpose. On iOS the lesson's options menu takes the lesson's light scheme, so its labels read on the light glass of the header art (16.2:1 on the SE).
Updated since. The lesson header frames here are from the first review. In Dark the header art now goes deep with white text (Harsha's review): see New since the first review.

A lesson: header art, reading text, the flowchart and the lesson tabs

Bar, tutor Casey (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

iPhoneiPhone 17

Before

After

iPhoneiPhone SE, 3rd gen

Before

Not captured on iPhone: the SE carries this branch's small-phone, largest-text, keyboard and sheet checks; iPhone 17 above has the pairs

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Android

Before

After

The lesson's options menu, over the light header art

Bar, tutor Casey (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

Before on iOS is this branch before 643da792c: the system menu followed the dark window and drew white labels on the lesson's light glass (about 2.3:1). After, the menu takes the lesson's light scheme (16.2:1 on the SE, 16.3:1 on iPad).

Web

Before

Not captured on Web: the bug lived only on this branch (383c8ddbb to d904fccd2); `MenuPortalScheme.web.test.tsx` fails without the fix

After

iPhoneiPhone SE, 3rd gen

Before

After

iPadiPad Pro 13-inch

Before

After

Android

Not captured on Android: Expo UI's Material menu already took the scheme there, so this round changes nothing on Android

Flow 5

Practice

Shortcuts, Simulations, the wrong answer journal and the Bookmarks and Recents pill sit on the dark surfaces.

Practice: shortcuts, Simulations, the wrong answer journal, Bookmarks and Recents

Bar, tutor Casey (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

iPhoneiPhone 17

Before

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Android

Before

After

Flow 6

Flashcards and notes

Decks and notes go dark. The coral and amber identity fills stay light in both schemes, with dark ink on them.

Flashcards and notes: My decks

Bar, tutor Casey (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

iPhoneiPhone 17

Before

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Android

Before

After

Flow 7

Play and games

The Play catalog goes dark, and each game keeps its own art palette.

Updated since. These frames are from the first review, when games stayed light. Most games now draw in Dark: see New since the first review.

The Play catalog and a game

Bar, tutor Casey (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

iPhoneiPhone 17

Before

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Android

Before

After

Synapses inside Today's plan

Bar, tutor Casey (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

Found while capturing this round. Before is this branch before the fix: the game's title, subtitle, How to play and timer drew in its art ink on the dark page.

iPhoneiPhone 17

Before

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Androidround, then result; an in-memory fixture reopens the played round, no staging write

Before

After

Flow 8

Clinical Rounds

At the first review the whole world was pinned light, so its cards and categories sheet stopped turning dark on the light scene.

Updated since. These frames are from the first review, when Clinical Rounds stayed light. It now draws in Dark on its ward at night: see New since the first review.

Clinical Rounds: the dashboard and its categories

US Medical PG (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

Before drew dark cards and a dark categories sheet on the light scene (iPhone, iPad, web), and dark header controls over it on Android. After pins the world light (category labels 5.1:1).

Web

Before

After

iPhoneiPhone 17

Before

After

iPadiPad Pro 13-inch

Before

After

Android

Before

After

Flow 9

Paywall and Settings

The paywall and Settings go dark, and Settings gains the Appearance row.

The paywall and Settings, with the new Appearance row

Bar, tutor Casey (staging QA account) Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

iPhoneiPhone 17

Before

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Android

Before

After

Flow 10

Settings and Appearance

Settings > Appearance offers System, Light and Dark. The choice survives a relaunch or reload, and switching back restores Light.

Switching Dark on, and back to Light

Bar, tutor Casey (staging QA account) There was no Appearance setting before this PR, so only After.

The focused stills: the menu, Dark at once, Dark after a relaunch (iPhone) or reload (web), a game opened from Dark staying light and Profile still dark on return (web), Light again, and System. The ⚡ at the bottom left of the web stills is the development build's tools button, which learners don't get.

iPhoneiPhone 17

After

iPadiPad Pro 13-inch

After

Web

After

Android

After

iPhone: the menu, Dark, a relaunch and back to Light
Web: through a reload and a game

Flow 11

Light mode Changes in Light

Light is unchanged apart from the REG badge fill and a few glyphs that moved from one-off greys to the icon tokens.

Light mode changes.
  • The REG exam badge fill: premium-50 to premium-100, the tint its siblings use.
  • Quiz pause, the finish-quiz stop and chat history: one-off greys to grey-500.
  • The 15-second skip buttons and the lesson selector: near-black to fg.
  • The subject chevron in test setup, Regenerate in chat and Generate with AI on the upload sheet: one-off greys to grey-500.
  • The "Where did you hear about us?" source icons: slate to fg.
  • The lesson header's status bar now takes the header art's ink, so dark art gets light status bar icons.

Light: Home, Practice, a lesson, the design-system page and the Appearance menu

Bar, tutor Casey (staging QA account) Before and After are both Light: the old build and this branch.

iPhoneiPhone 17

Before

Not captured on iPhone: light Before is the same build as the light After apart from the glyph inks listed under "Light mode changes"; the web row has the matched light pairs

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Flow 12

Design-system specimens

Every token and shared component in Dark, as the screens above draw from them.

The design-system page: every token and shared component

Design-system page Before is the old dark (the developer toggle, a straight token flip). After is the new palette.

iPhoneiPhone 17

Before

After

iPadiPad Pro 13-inch

Before

After

Web

Before

After

Android

Before

After

Video

Walkthroughs

Settings > Appearance > Dark, then Home, Practice and chat, then back to Light.

iPhone
Android
Web