Should I dynamically change the theming of my application based on ambient lighting?

My app will be used in bright daylight, as well as in a dark movie theatre, or may be opened at night. I searched over the site and haven't yet seen a question that addresses the dynamic switching of themes based on the environment.

  • 2
    You need to take into account whether the user or the device will adjust the brightness settings as well...
    – Michael Lai
    May 13, 2015 at 3:18
  • 1
    Look at "Waze" for example - it switches automatically since very beginning at sunset and sunrise. For navigation app, it's look like best default behavior.
    – Anton
    May 13, 2015 at 10:09
  • 3
    @Anton - Google Maps take this one step further, by using the ambient light from the front camera. Go through a tunnel or under a wide overpass, and the maps will switch to dark mode. May 13, 2015 at 20:33
  • @GalacticCowboy where did you read this, can you share something? It is interesting. May 14, 2015 at 3:55
  • @GrijeshChauhan - I've seen it happen. May 14, 2015 at 12:54

3 Answers 3


A good example to consider would be the iBooks app in iOS which allows users to enable the dark theme automatically depending on the light sensor detection.

enter image description here

However as PS86 rightly pointed out, don't build this automatically into the system but enable the user to set as a desired parameter. To quote this article, the iBooks app enables this by an option called auto night Theme

You can always enable the Night theme manually, but in the latest version of iBooks you can also enable a new setting called Auto-Night Theme. This changes your theme from your default (either White or Sepia) to the Night theme automatically. Despite the “Night” name designating the late hours of the day, the switch is based on ambient lighting conditions, not time. If you have Auto-Night Theme enabled, any time your iPhone or iPad’s ambient light sensor detects a dark room, iBooks will instantly switch over to the Night theme and then switch back when light in the room returns, whether that’s due to the sun rising or a lamp being turned on.

Also since the brightness of the content would define the comfort level while reading , allow users to choose a brightness option while changing themes or within the theme itself.

Lastly while designing the night or darker theme, I recommend looking at this interesting article which talks about the impact of brightness of the text and readablity when the text is placed on darker background'.

I would recommend looking at this article on the for inputs on readable text and the tools you can potentially use for contrast checking. To quote the article

First, it's helpful to establish good body text values. I usually start with a neutral color palette and aim for the lightest gray with a AAA (Section 508 compliant) rating (here's a good plain language explanation of ratings, WCAG 2.0 Level A/AA/AAA versus Section 508.) The AAA rating ensures optimal readability while some brightness allows for softness in the text.

enter image description here

  • 1
    A small technical note on the iOS implementation: currently there is no public API for accessing the ambient light sensor. iBooks is very likely using private APIs. May 13, 2015 at 18:46
  • Why was there a downvote on this?
    – Mervin
    May 13, 2015 at 19:38
  • @FriedPotato: I've seen apps use the screen brightness as a trigger for the dark theme instead. A little hacky, but since most users have auto brightness adjustment turned on, it works ...
    – Reid
    May 14, 2015 at 3:24

Yes, it's a good idea to dynamically change the theming of the application based on lighting.

Also remember to add:

  • the ability for the user to turn off dynamically changing the theme based on lighting
  • The ability to change theme regardless of the current lighting ambience

Sometimes users prefer having dark theme during the day and vice versa


I happen to disagree with the other suggested answers, so let me try to explain why.


Is the use of your app in dark environments a core feature of the application? For example this is the case for an e-reader application or navigation application, but is not the case for a messaging application. If it is a core feature then I agree that providing this functionality is a good idea. In the case of a messaging application - which is also used in bed or in a theater - I would however not consider it appropriate.

User expectations

Why not do it in all other cases? Simply because it's not what the user is expecting to happen. Introducing such functionality as you're describing OS-wise might actually be a fine idea, however on a per application level you should not do it without very good cause. What does this practically mean? Taking the previous two examples into account I think it's a good idea that navigation applications tend to switch to a dark theme during night automatically, whilst e-reader applications tend to leave this up to the user, but provide alternative theming options close at hand.

  • 2
    I may be old-school, but the whole notion of per-app(lication) skinning is nonsense to me. Windows 3.0 did this right: Let the user select one (however ugly) theme in Control Panel, and have all programs stick to it. May 13, 2015 at 19:58
  • @IngoKarkat I hope you meant that as a joke. May 14, 2015 at 20:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.