Add support for dark mode images via JS #153
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds support for dark mode images via JS. No change is required on the end user.
The JS alters the image src to add
-dark
before the extension. For example:test.png
in light modetest-dark.png
in dark modeIf there is no dark mode image in the same location as the light mode version the fallback is the light mode image. There doesn't seem to be a clean way to test if a file exists and handle the responses well (unless someone else can point me to some nice JS!) so the dev console in firefox/chrome etc. will throw 404 errors when it attempts to load dark mode images that aren't available (only when choosing to switch from light to dark mode). There might be ways of suppressing the errors but these seem convoluted.
If the fallback light image is used in dark mode the
img.dark-filter
css rule is applied which inverts the image, and slightly reduces the saturation and brightness.Example
git-novice lesson where the top comic strip image has a fuzzy dark mode variant for demonstration purposes.
Light Mode User Supplied Image:
Dark Mode User Supplied Image:
Light Mode SVG:
Dark Mode SVG - fallback to light with dark-filter:
Light Mode PNG:
Dark Mode PNG - fallback to light with dark-filter:
Related Issues
carpentries/instructor-training#1715
#150