Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ID Dark Mode #8214

Open
CharliePlett opened this issue Nov 21, 2020 · 11 comments
Open

ID Dark Mode #8214

CharliePlett opened this issue Nov 21, 2020 · 11 comments
Labels
accessibility Relates to personal ability or assistive tools

Comments

@CharliePlett
Copy link

Hey, could we please have a dark mode?

@quincylvania
Copy link
Collaborator

Hi and welcome, @CharliePlett.

Dark mode definitely sounds cool. I mention it as a missing vision feature in our accessibility documentation. The toughest part will likely be maintaining two UI styles that are both look and work great.

@quincylvania quincylvania added the accessibility Relates to personal ability or assistive tools label Nov 23, 2020
@mxdanger
Copy link

mxdanger commented Dec 18, 2020

@quincylvania Hi, I just wanted to add to this conversation and say that before we can begin working on a dark mode, all the CSS color values in ID should be replaced with CSS variables. Compatibility will not be a problem as every browser supports CSS variables except for IE, which ID has discontinued support for.

This makes standardization easier for the existing light theme and implementing dark mode would be as easy as setting up CSS variables that overwrites the light theme. This would allow for easily maintaining both themes side by side.

All the theme switching would be handled by the browser based on what the user has already selected as their theme preference for their OS. This does not require any custom JS theme switcher and is the recommended way for accessibility and respecting the user's choice. Both code snippets use light mode as the default fallback if the user has no preferred theme.

Example with media query prefers-color-scheme for changing the CSS variables. Related link: MDN

:root {
    --color-text-primary: #000;
}
@media (prefers-color-scheme: dark) {
    :root {
        --color-text-primary: #fff;
    }
}

The meta color-scheme tag is also particularly useful as it changes the user agent stylesheet, and for ID it would be primarily used for dark themed scrollbars and plain form controls such as checkboxes or radio buttons. Related links: web.dev, CSSWG

<meta name="color-scheme" content="light dark">

@quincylvania
Copy link
Collaborator

We haven't abandoned support for IE 11, though it's true we're not actively testing it nor expecting all features to work perfectly. I think we can still use CSS variables but have PostCSS convert them to legacy CSS at build time.

For dark mode, lots of sites have a Light/Dark/Match System selection control that I think works well. We could add one for iD in the Preferences pane.

@1ec5
Copy link
Collaborator

1ec5 commented Sep 27, 2022

We haven't abandoned support for IE 11

By way of an update, we mostly if not completely dropped IE11 support in #8811.

The solid black “none” background feels more at home in dark mode. #9307 would change the background to white, but maybe a black option could be restored as part of dark mode support.

@AntonKhorev
Copy link
Contributor

I was doing dark mode in osm-website, so I decided to do it here too.

Preview:
https://github.com/AntonKhorev/iD/tree/x/dark-mode

@1ec5
Copy link
Collaborator

1ec5 commented Nov 15, 2024

As noted in #10542, openstreetmap/openstreetmap-website#4761 enabled dark mode support on the OSM website, including the main map (sort of), so users with dark mode enabled may find transitions to iD a little more jarring than before.

@VlctM
Copy link

VlctM commented Nov 15, 2024

It's cool to have dark mode, but imo that dimmed map looks horrible.

@Nekzuris
Copy link
Contributor

Nekzuris commented Nov 15, 2024

For now, apply this CSS with an extension like Stylus

@media(prefers-color-scheme: dark) {
 .leaflet-tile-container, .leaflet-tile {
    filter:brightness(1) !important 
   }
}

edit: updated CSS

@Nekzuris
Copy link
Contributor

Nekzuris commented Nov 15, 2024

This CSS also fix performance issue on Firefox when panning because the css filter: brightness(0.8) is not well optimized.

Edit: this is not wide spread issue on Firefox, here is a bug report https://bugzilla.mozilla.org/show_bug.cgi?id=1826576
and I manage to resolved my problem here openstreetmap/openstreetmap-website#5328 (comment)

@Nekzuris
Copy link
Contributor

Nekzuris commented Nov 29, 2024

I was doing dark mode in osm-website, so I decided to do it here too.
Preview:
https://github.com/AntonKhorev/iD/tree/x/dark-mode

@AntonKhorev sorry for missing this, it looks very good 👍
I noted that the save button, view-on-osm and many icons are still missing:
image

also remove-icon:
image

keyboard shortcuts:
image

section-issues-status:
image

issue-message:
image

@AntonKhorev
Copy link
Contributor

How exactly to continue with dark mode here depends on whether openstreetmap/openstreetmap-website#5339 gets merged.

Save button is a bit tricky because it changes color depending on the number of edits.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accessibility Relates to personal ability or assistive tools
Projects
None yet
Development

No branches or pull requests

7 participants