Skip to content

Commit aa7d5c1

Browse files
committed
favicon: Add dark mode support
Closes coder#2538 Works as expected on latest Firefox and Chromium.
1 parent 87adef5 commit aa7d5c1

File tree

5 files changed

+28
-3
lines changed

5 files changed

+28
-3
lines changed

ci/dev/gen_icons.sh

+18
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,24 @@ main() {
2121
convert -quiet -background transparent -resize 512x512 pwa-icon.png pwa-icon-512.png
2222

2323
# We use -quiet above to avoid https://github.com/ImageMagick/ImageMagick/issues/884
24+
25+
# The following adds dark mode support for the favicon as favicon-dark-support.svg
26+
# There is no similar capability for pwas or .ico so we can only add support to the svg.
27+
favicon_dark_style="<style>
28+
@media (prefers-color-scheme: dark) {
29+
* {
30+
fill: white;
31+
}
32+
}
33+
</style>"
34+
# See https://stackoverflow.com/a/22901380/4283659
35+
# This escapes all newlines so that sed will accept them.
36+
favicon_dark_style="$(printf "%s\n" "$favicon_dark_style" | sed -e ':a' -e 'N' -e '$!ba' -e 's/\n/\\n/g')"
37+
sed "$(
38+
cat -n << EOF
39+
s%<rect id="favicon"%$favicon_dark_style<rect id="favicon"%
40+
EOF
41+
)" favicon.svg > favicon-dark-support.svg
2442
}
2543

2644
main "$@"
Loading

src/browser/pages/error.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
content="style-src 'self'; manifest-src 'self'; img-src 'self' data:; font-src 'self' data:;"
1212
/>
1313
<title>{{ERROR_TITLE}} - code-server</title>
14-
<link rel="icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon.svg" />
14+
<link rel="icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon-dark-support.svg" />
1515
<link rel="alternate icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon.ico" />
1616
<link rel="manifest" href="{{CS_STATIC_BASE}}/src/browser/media/manifest.json" crossorigin="use-credentials" />
1717
<link rel="apple-touch-icon" sizes="192x192" href="{{CS_STATIC_BASE}}/src/browser/media/pwa-icon-192.png" />

src/browser/pages/#.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
content="style-src 'self'; script-src 'self' 'unsafe-inline'; manifest-src 'self'; img-src 'self' data:; font-src 'self' data:;"
1212
/>
1313
<title>code-server login</title>
14-
<link rel="icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon.svg" />
14+
<link rel="icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon-dark-support.svg" />
1515
<link rel="alternate icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon.ico" />
1616
<link rel="manifest" href="{{CS_STATIC_BASE}}/src/browser/media/manifest.json" crossorigin="use-credentials" />
1717
<link rel="apple-touch-icon" sizes="192x192" href="{{CS_STATIC_BASE}}/src/browser/media/pwa-icon-192.png" />

src/browser/pages/vscode.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<meta id="vscode-remote-nls-configuration" data-settings="{{NLS_CONFIGURATION}}" />
2525

2626
<!-- Workbench Icon/Manifest/CSS -->
27-
<link rel="icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon.svg" />
27+
<link rel="icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon-dark-support.svg" />
2828
<link rel="alternate icon" href="{{CS_STATIC_BASE}}/src/browser/media/favicon.ico" />
2929
<link rel="manifest" href="{{CS_STATIC_BASE}}/src/browser/media/manifest.json" crossorigin="use-credentials" />
3030
<!-- PROD_ONLY

0 commit comments

Comments
 (0)