Thanks for your comments. Here is my proposal.

(You can think of this as a hierarchy, where each line is an override for the 
previous step)

1. We should continue to serve light mode by default.
2. If a browser requests dark mode (through the 
[prefers-color-scheme](https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme)
 mechanism) then we should continue to do that.
3. (If browsers start implementing native support for per-site choices then 
great, that would work too. But it's not available yet for most browsers.)
4. We should add a color-mode preference for the overall UI. It will have three 
choices: Auto (default) / Light / Dark. This can be used to override the mode 
that their browser has asked for (i.e. it's useful if your browser asks for 
dark but you want to see light mode, or vice-versa).
5. We should add a color-mode preference for the maps. It will have three 
choices: Auto (default) / Light / Dark. By default, the maps will be the same 
as the UI, based on all the above steps. This preference can be used to 
override the color-mode just for the maps, so you could e.g. see light mode 
maps in a dark mode UI, or dark mode maps when using the light mode UI.

Here's some worked examples:
* prefers-color-scheme = dark, UI mode preference = auto, map preference = 
light: Dark UI with Light Maps
* prefers-color-scheme = not set, UI mode preference = light, map preference = 
light: Light UI with Light Maps
* prefers-color-scheme = not set, UI mode preference = auto, map preference = 
auto: Light UI with Light Maps
* prefers-color-scheme = dark, UI mode preference = light, map preference = 
dark: Light UI with Dark Maps

I hope this is clear and logical. This will allow a reasonable amount of 
control of how the site looks, respecting the browser settings by default but 
allowing people to override it if they want to.

At this stage, I'm **not** proposing preferences for the following:

* Per-style preferences. That would allow you to e.g. have dark mode for all 
maps, except one particular map, which you always want to see in light mode (or 
vice-versa).
* Global (or Per-style) personal map filter preferences. That would allow you 
to "pick you own filter" to override the cartography.

The reason that I'm not proposing these preferences right now, is that I'm not 
sure they are necessary, and I want to make progress and I hope that a more 
simplified system can be finished and tried out more quickly.

At this stage, I'm also proposing:

* Preferences should be based on your user account.

This matches how github has implemented their preferences, and how we currently 
handle language preferences. So for example, your preferences would apply to 
all your own browers/devices, and will only take affect when logged in. Again, 
this is because I want to simplify the implementation and get it working more 
quickly.

Now straight away I know that not everyone will be happy with this, and some 
people will want more preferences or have some use-case where they want dark 
mode on their phone and light mode on their desktop despite their browser 
settings or something similar. What I would like is for people to think whether 
my suggestion is a step in the right direction, and if we can get a rough 
consensus on that to get started.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/openstreetmap/openstreetmap-website/issues/5324#issuecomment-2504102012
You are receiving this because you are subscribed to this thread.

Message ID: 
<openstreetmap/openstreetmap-website/issues/5324/2504102...@github.com>
_______________________________________________
rails-dev mailing list
rails-dev@openstreetmap.org
https://lists.openstreetmap.org/listinfo/rails-dev

Reply via email to