Skip to content

Commit 07bc3d9

Browse files
authored
Merge pull request #2551 from cdr/dark-mode-favicon-b1d7
favicon: Add dark mode support
2 parents cb11e1f + f15580b commit 07bc3d9

File tree

7 files changed

+35
-3
lines changed

7 files changed

+35
-3
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.afdesign filter=lfs diff=lfs merge=lfs -text

ci/dev/gen_icons.sh

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,31 @@ main() {
1414
# -background defaults to white but we want it transparent.
1515
# https://imagemagick.org/script/command-line-options.php#background
1616
convert -quiet -background transparent -resize 256x256 favicon.svg favicon.ico
17+
# We do not generate the pwa-icon from the favicon as they are slightly different
18+
# designs and sizes.
19+
# See favicon.afdesign and #2401 for details on the differences.
1720
convert -quiet -background transparent -resize 192x192 pwa-icon.png pwa-icon-192.png
1821
convert -quiet -background transparent -resize 512x512 pwa-icon.png pwa-icon-512.png
1922

2023
# 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
2142
}
2243

2344
main "$@"

src/browser/favicon.afdesign

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:625d2049c38ae27df0613fa533020e889fa98affd603050f46d3748be7b90d0b
3+
size 38675
Lines changed: 7 additions & 0 deletions
Loading

src/browser/pages/error.html

Lines changed: 1 addition & 1 deletion
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/login.html

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 1 deletion
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)