This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow-site.git
The following commit(s) were added to refs/heads/main by this push:
new f1bed25eb0 Fix favicon cropping in Chromium browsers and Google Search
(#1433)
f1bed25eb0 is described below
commit f1bed25eb048d87fe7f636f044e3edfb30392986
Author: Jarek Potiuk <[email protected]>
AuthorDate: Wed Mar 4 20:35:18 2026 +0100
Fix favicon cropping in Chromium browsers and Google Search (#1433)
Add ~10% transparent padding around the Airflow pinwheel icon so it is
not clipped in Chrome, Edge, or Google Search results. Also add an SVG
favicon with an expanded viewBox for crisp rendering at any size.
Closes #1432
Co-authored-by: Claude Opus 4.6 <[email protected]>
---
landing-pages/generate-missing-favicons.sh | 69 ++++++++++++---------
landing-pages/site/layouts/partials/favicons.html | 1 +
landing-pages/site/static/favicon.ico | Bin 1150 -> 15342 bytes
.../site/static/favicons/android-144x144.png | Bin 9948 -> 8296 bytes
.../site/static/favicons/android-192x192.png | Bin 13664 -> 11496 bytes
.../site/static/favicons/android-36x36.png | Bin 2117 -> 1952 bytes
.../site/static/favicons/android-48x48.png | Bin 2870 -> 2530 bytes
.../site/static/favicons/android-72x72.png | Bin 4463 -> 3803 bytes
.../site/static/favicons/android-96x96.png | Bin 6257 -> 5291 bytes
.../site/static/favicons/android-icon-144x144.png | Bin 9948 -> 8296 bytes
.../site/static/favicons/android-icon-192x192.png | Bin 13664 -> 11496 bytes
.../site/static/favicons/android-icon-36x36.png | Bin 2117 -> 1952 bytes
.../site/static/favicons/android-icon-48x48.png | Bin 2870 -> 2530 bytes
.../site/static/favicons/android-icon-72x72.png | Bin 4463 -> 3803 bytes
.../site/static/favicons/android-icon-96x96.png | Bin 6257 -> 5291 bytes
.../static/favicons/apple-touch-icon-180x180.png | Bin 12751 -> 10692 bytes
.../site/static/favicons/favicon-1024.png | Bin 62509 -> 78759 bytes
.../site/static/favicons/favicon-16x16.png | Bin 1338 -> 1188 bytes
landing-pages/site/static/favicons/favicon-256.png | Bin 18875 -> 15891 bytes
.../site/static/favicons/favicon-32x32.png | Bin 1909 -> 1700 bytes
.../site/static/favicons/favicon-96x96.png | Bin 6257 -> 5291 bytes
landing-pages/site/static/favicons/favicon.ico | Bin 15342 -> 15342 bytes
landing-pages/site/static/favicons/favicon.svg | 18 ++++++
landing-pages/site/static/favicons/pwa-192x192.png | Bin 13664 -> 11496 bytes
landing-pages/site/static/favicons/pwa-512x512.png | Bin 41396 -> 35168 bytes
landing-pages/site/static/favicons/tile150x150.png | Bin 10417 -> 8685 bytes
landing-pages/site/static/favicons/tile310x150.png | Bin 10417 -> 8685 bytes
landing-pages/site/static/favicons/tile310x310.png | Bin 23579 -> 19518 bytes
landing-pages/site/static/favicons/tile70x70.png | Bin 4364 -> 3747 bytes
29 files changed, 59 insertions(+), 29 deletions(-)
diff --git a/landing-pages/generate-missing-favicons.sh
b/landing-pages/generate-missing-favicons.sh
index cd48dbbf93..a1b9639d2a 100755
--- a/landing-pages/generate-missing-favicons.sh
+++ b/landing-pages/generate-missing-favicons.sh
@@ -31,55 +31,66 @@ fi
mkdir -p "$DEST_DIR"
-echo "Converting SVG to high-resolution PNG..."
+echo "Converting SVG to high-resolution PNG with padding..."
+# Render SVG at high resolution, then add ~10% padding on each side so the icon
+# is not clipped in Chromium-based browsers or Google Search results (see
#1432).
rsvg-convert -w 1024 -h 1024 "$SOURCE_SVG" -o "$TEMP_PNG"
+PADDED_PNG="/tmp/airflow-logo-padded.png"
+magick "$TEMP_PNG" -gravity center -background transparent -extent 1230x1230
"$PADDED_PNG"
echo "Generating ALL favicon files..."
+# Helper: generate a padded square favicon PNG
+generate_favicon() {
+ local size=$1
+ local output=$2
+ magick "$PADDED_PNG" -resize "${size}x${size}" "$output"
+}
+
# Generate standard favicon sizes
-magick "$TEMP_PNG" -resize 16x16 "$DEST_DIR/favicon-16x16.png"
-magick "$TEMP_PNG" -resize 32x32 "$DEST_DIR/favicon-32x32.png"
-magick "$TEMP_PNG" -resize 96x96 "$DEST_DIR/favicon-96x96.png"
-magick "$TEMP_PNG" -resize 256x256 "$DEST_DIR/favicon-256.png"
-cp "$TEMP_PNG" "$DEST_DIR/favicon-1024.png"
+generate_favicon 16 "$DEST_DIR/favicon-16x16.png"
+generate_favicon 32 "$DEST_DIR/favicon-32x32.png"
+generate_favicon 96 "$DEST_DIR/favicon-96x96.png"
+generate_favicon 256 "$DEST_DIR/favicon-256.png"
+magick "$PADDED_PNG" -resize 1024x1024 "$DEST_DIR/favicon-1024.png"
# Generate favicon.ico with multiple sizes (16, 32, 48)
-magick "$TEMP_PNG" -resize 16x16 /tmp/favicon-16.png
-magick "$TEMP_PNG" -resize 32x32 /tmp/favicon-32.png
-magick "$TEMP_PNG" -resize 48x48 /tmp/favicon-48.png
+generate_favicon 16 /tmp/favicon-16.png
+generate_favicon 32 /tmp/favicon-32.png
+generate_favicon 48 /tmp/favicon-48.png
magick /tmp/favicon-16.png /tmp/favicon-32.png /tmp/favicon-48.png
"$DEST_DIR/favicon.ico"
# Generate android-* files (without -icon- in name)
-magick "$TEMP_PNG" -resize 36x36 "$DEST_DIR/android-36x36.png"
-magick "$TEMP_PNG" -resize 48x48 "$DEST_DIR/android-48x48.png"
-magick "$TEMP_PNG" -resize 72x72 "$DEST_DIR/android-72x72.png"
-magick "$TEMP_PNG" -resize 96x96 "$DEST_DIR/android-96x96.png"
-magick "$TEMP_PNG" -resize 144x144 "$DEST_DIR/android-144x144.png"
-magick "$TEMP_PNG" -resize 192x192 "$DEST_DIR/android-192x192.png"
+generate_favicon 36 "$DEST_DIR/android-36x36.png"
+generate_favicon 48 "$DEST_DIR/android-48x48.png"
+generate_favicon 72 "$DEST_DIR/android-72x72.png"
+generate_favicon 96 "$DEST_DIR/android-96x96.png"
+generate_favicon 144 "$DEST_DIR/android-144x144.png"
+generate_favicon 192 "$DEST_DIR/android-192x192.png"
# Generate android-icon-* files (with -icon- in name)
-magick "$TEMP_PNG" -resize 36x36 "$DEST_DIR/android-icon-36x36.png"
-magick "$TEMP_PNG" -resize 48x48 "$DEST_DIR/android-icon-48x48.png"
-magick "$TEMP_PNG" -resize 72x72 "$DEST_DIR/android-icon-72x72.png"
-magick "$TEMP_PNG" -resize 96x96 "$DEST_DIR/android-icon-96x96.png"
-magick "$TEMP_PNG" -resize 144x144 "$DEST_DIR/android-icon-144x144.png"
-magick "$TEMP_PNG" -resize 192x192 "$DEST_DIR/android-icon-192x192.png"
+generate_favicon 36 "$DEST_DIR/android-icon-36x36.png"
+generate_favicon 48 "$DEST_DIR/android-icon-48x48.png"
+generate_favicon 72 "$DEST_DIR/android-icon-72x72.png"
+generate_favicon 96 "$DEST_DIR/android-icon-96x96.png"
+generate_favicon 144 "$DEST_DIR/android-icon-144x144.png"
+generate_favicon 192 "$DEST_DIR/android-icon-192x192.png"
# Generate apple-touch-icon
-magick "$TEMP_PNG" -resize 180x180 "$DEST_DIR/apple-touch-icon-180x180.png"
+generate_favicon 180 "$DEST_DIR/apple-touch-icon-180x180.png"
# Generate PWA icons
-magick "$TEMP_PNG" -resize 192x192 "$DEST_DIR/pwa-192x192.png"
-magick "$TEMP_PNG" -resize 512x512 "$DEST_DIR/pwa-512x512.png"
+generate_favicon 192 "$DEST_DIR/pwa-192x192.png"
+generate_favicon 512 "$DEST_DIR/pwa-512x512.png"
# Generate tile icons
-magick "$TEMP_PNG" -resize 70x70 "$DEST_DIR/tile70x70.png"
-magick "$TEMP_PNG" -resize 150x150 "$DEST_DIR/tile150x150.png"
-magick "$TEMP_PNG" -resize 310x150 "$DEST_DIR/tile310x150.png"
-magick "$TEMP_PNG" -resize 310x310 "$DEST_DIR/tile310x310.png"
+generate_favicon 70 "$DEST_DIR/tile70x70.png"
+generate_favicon 150 "$DEST_DIR/tile150x150.png"
+magick "$PADDED_PNG" -resize 310x150 "$DEST_DIR/tile310x150.png"
+generate_favicon 310 "$DEST_DIR/tile310x310.png"
echo "Cleaning up temporary files..."
-rm -f "$TEMP_PNG" /tmp/favicon-*.png
+rm -f "$TEMP_PNG" "$PADDED_PNG" /tmp/favicon-*.png
echo "✓ All missing favicons generated successfully!"
echo " Output directory: $DEST_DIR"
diff --git a/landing-pages/site/layouts/partials/favicons.html
b/landing-pages/site/layouts/partials/favicons.html
index 783c1979f5..23343f2d85 100644
--- a/landing-pages/site/layouts/partials/favicons.html
+++ b/landing-pages/site/layouts/partials/favicons.html
@@ -17,6 +17,7 @@
under the License.
*/}}
+<link rel="icon" type="image/svg+xml" href="{{ "/favicons/favicon.svg" |
relURL }}">
<link rel="apple-touch-icon" sizes="57x57" href="{{
"/favicons/apple-icon-57x57.png" | relURL }}">
<link rel="apple-touch-icon" sizes="60x60" href="{{
"/favicons/apple-icon-60x60.png" | relURL }}">
<link rel="apple-touch-icon" sizes="72x72" href="{{
"/favicons/apple-icon-72x72.png" | relURL }}">
diff --git a/landing-pages/site/static/favicon.ico
b/landing-pages/site/static/favicon.ico
index 8f4ce22a10..43f5aab7f8 100644
Binary files a/landing-pages/site/static/favicon.ico and
b/landing-pages/site/static/favicon.ico differ
diff --git a/landing-pages/site/static/favicons/android-144x144.png
b/landing-pages/site/static/favicons/android-144x144.png
index 6bb9b217bc..48695b7434 100644
Binary files a/landing-pages/site/static/favicons/android-144x144.png and
b/landing-pages/site/static/favicons/android-144x144.png differ
diff --git a/landing-pages/site/static/favicons/android-192x192.png
b/landing-pages/site/static/favicons/android-192x192.png
index 1e428c4fdf..52776d4290 100644
Binary files a/landing-pages/site/static/favicons/android-192x192.png and
b/landing-pages/site/static/favicons/android-192x192.png differ
diff --git a/landing-pages/site/static/favicons/android-36x36.png
b/landing-pages/site/static/favicons/android-36x36.png
index cdd36f1906..0989d4e7b7 100644
Binary files a/landing-pages/site/static/favicons/android-36x36.png and
b/landing-pages/site/static/favicons/android-36x36.png differ
diff --git a/landing-pages/site/static/favicons/android-48x48.png
b/landing-pages/site/static/favicons/android-48x48.png
index 9584c46749..aa31ec370d 100644
Binary files a/landing-pages/site/static/favicons/android-48x48.png and
b/landing-pages/site/static/favicons/android-48x48.png differ
diff --git a/landing-pages/site/static/favicons/android-72x72.png
b/landing-pages/site/static/favicons/android-72x72.png
index d22cdbf69a..34e5d90c55 100644
Binary files a/landing-pages/site/static/favicons/android-72x72.png and
b/landing-pages/site/static/favicons/android-72x72.png differ
diff --git a/landing-pages/site/static/favicons/android-96x96.png
b/landing-pages/site/static/favicons/android-96x96.png
index 01336f34a8..cfeb8a2acf 100644
Binary files a/landing-pages/site/static/favicons/android-96x96.png and
b/landing-pages/site/static/favicons/android-96x96.png differ
diff --git a/landing-pages/site/static/favicons/android-icon-144x144.png
b/landing-pages/site/static/favicons/android-icon-144x144.png
index 6bb9b217bc..48695b7434 100644
Binary files a/landing-pages/site/static/favicons/android-icon-144x144.png and
b/landing-pages/site/static/favicons/android-icon-144x144.png differ
diff --git a/landing-pages/site/static/favicons/android-icon-192x192.png
b/landing-pages/site/static/favicons/android-icon-192x192.png
index 1e428c4fdf..52776d4290 100644
Binary files a/landing-pages/site/static/favicons/android-icon-192x192.png and
b/landing-pages/site/static/favicons/android-icon-192x192.png differ
diff --git a/landing-pages/site/static/favicons/android-icon-36x36.png
b/landing-pages/site/static/favicons/android-icon-36x36.png
index cdd36f1906..0989d4e7b7 100644
Binary files a/landing-pages/site/static/favicons/android-icon-36x36.png and
b/landing-pages/site/static/favicons/android-icon-36x36.png differ
diff --git a/landing-pages/site/static/favicons/android-icon-48x48.png
b/landing-pages/site/static/favicons/android-icon-48x48.png
index 9584c46749..aa31ec370d 100644
Binary files a/landing-pages/site/static/favicons/android-icon-48x48.png and
b/landing-pages/site/static/favicons/android-icon-48x48.png differ
diff --git a/landing-pages/site/static/favicons/android-icon-72x72.png
b/landing-pages/site/static/favicons/android-icon-72x72.png
index d22cdbf69a..34e5d90c55 100644
Binary files a/landing-pages/site/static/favicons/android-icon-72x72.png and
b/landing-pages/site/static/favicons/android-icon-72x72.png differ
diff --git a/landing-pages/site/static/favicons/android-icon-96x96.png
b/landing-pages/site/static/favicons/android-icon-96x96.png
index 01336f34a8..cfeb8a2acf 100644
Binary files a/landing-pages/site/static/favicons/android-icon-96x96.png and
b/landing-pages/site/static/favicons/android-icon-96x96.png differ
diff --git a/landing-pages/site/static/favicons/apple-touch-icon-180x180.png
b/landing-pages/site/static/favicons/apple-touch-icon-180x180.png
index 8dafca2549..54d1322fb9 100644
Binary files a/landing-pages/site/static/favicons/apple-touch-icon-180x180.png
and b/landing-pages/site/static/favicons/apple-touch-icon-180x180.png differ
diff --git a/landing-pages/site/static/favicons/favicon-1024.png
b/landing-pages/site/static/favicons/favicon-1024.png
index 0657ebea72..d910409ab8 100644
Binary files a/landing-pages/site/static/favicons/favicon-1024.png and
b/landing-pages/site/static/favicons/favicon-1024.png differ
diff --git a/landing-pages/site/static/favicons/favicon-16x16.png
b/landing-pages/site/static/favicons/favicon-16x16.png
index 6a49564970..91f56fa52b 100644
Binary files a/landing-pages/site/static/favicons/favicon-16x16.png and
b/landing-pages/site/static/favicons/favicon-16x16.png differ
diff --git a/landing-pages/site/static/favicons/favicon-256.png
b/landing-pages/site/static/favicons/favicon-256.png
index 3bc65de9ee..9b5fd3c9a6 100644
Binary files a/landing-pages/site/static/favicons/favicon-256.png and
b/landing-pages/site/static/favicons/favicon-256.png differ
diff --git a/landing-pages/site/static/favicons/favicon-32x32.png
b/landing-pages/site/static/favicons/favicon-32x32.png
index 60a576dcfe..abed1e27e2 100644
Binary files a/landing-pages/site/static/favicons/favicon-32x32.png and
b/landing-pages/site/static/favicons/favicon-32x32.png differ
diff --git a/landing-pages/site/static/favicons/favicon-96x96.png
b/landing-pages/site/static/favicons/favicon-96x96.png
index 36492f71ac..3e06e6d828 100644
Binary files a/landing-pages/site/static/favicons/favicon-96x96.png and
b/landing-pages/site/static/favicons/favicon-96x96.png differ
diff --git a/landing-pages/site/static/favicons/favicon.ico
b/landing-pages/site/static/favicons/favicon.ico
index 94e96b70ad..43f5aab7f8 100644
Binary files a/landing-pages/site/static/favicons/favicon.ico and
b/landing-pages/site/static/favicons/favicon.ico differ
diff --git a/landing-pages/site/static/favicons/favicon.svg
b/landing-pages/site/static/favicons/favicon.svg
new file mode 100644
index 0000000000..9706df2abb
--- /dev/null
+++ b/landing-pages/site/static/favicons/favicon.svg
@@ -0,0 +1,18 @@
+<svg width="175" height="175" viewBox="-18 -18 211 211" fill="none"
xmlns="http://www.w3.org/2000/svg">
+<g clip-path="url(#clip0)">
+<path d="M4.18587 172.44L86.3959 88.1685C86.9109 87.6406 87.0096 86.8244
86.5801 86.2249C81.5792 79.2442 72.3564 78.0343 68.9375 73.3445C58.8101 59.4522
56.2405 51.5891 51.8887 52.0768C51.5847 52.1109 51.3137 52.2745 51.1001
52.4934L21.4015 82.9367C4.31645 100.45 1.86636 139.01 1.41703 171.298C1.39673
172.757 3.1669 173.484 4.18587 172.44Z" fill="#017CEE"/>
+<path d="M172.44 170.357L88.1685 88.1466C87.6406 87.6316 86.8244 87.5328
86.2249 87.9623C79.2443 92.9633 78.0344 102.186 73.3445 105.605C59.4522 115.732
51.5891 118.302 52.0768 122.654C52.1109 122.958 52.2745 123.229 52.4935
123.442L82.9367 153.141C100.45 170.226 139.01 172.676 171.298 173.125C172.757
173.146 173.484 171.376 172.44 170.357Z" fill="#00AD46"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M82.9363 153.141C73.3696
143.809 68.9312 125.346 87.2715 87.2725C57.4647 100.593 47.0194 118.103 52.1578
123.116L82.9363 153.141Z" fill="#04D659"/>
+<path d="M170.355 2.10462L88.1451 86.376C87.6301 86.9039 87.5314 87.72 87.9609
88.3195C92.9618 95.3002 102.185 96.5101 105.603 101.2C115.731 115.092 118.301
122.955 122.652 122.468C122.956 122.434 123.227 122.27 123.441 122.051L153.139
91.6077C170.225 74.0942 172.675 35.5346 173.124 3.24627C173.144 1.78719 171.374
1.0601 170.355 2.10462Z" fill="#00C7D4"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M153.14 91.6077C143.807
101.174 125.344 105.613 87.2705 87.2725C100.591 117.079 118.101 127.525 123.114
122.386L153.14 91.6077Z" fill="#11E1EE"/>
+<path d="M2.10315 4.18733L86.3745 86.3973C86.9024 86.9123 87.7185 87.0111
88.3181 86.5816C95.2987 81.5807 96.5086 72.3579 101.198 68.939C115.091 58.8116
122.954 56.242 122.466 51.8902C122.432 51.5862 122.268 51.3152 122.05
51.1016L91.6063 21.403C74.0928 4.31792 35.5331 1.86783 3.2448 1.4185C1.78572
1.39819 1.05863 3.16836 2.10315 4.18733Z" fill="#E43921"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M91.6057 21.4025C101.172
30.7352 105.611 49.1977 87.2705 87.2714C117.077 73.9511 127.523 56.4408 122.384
51.4281L91.6057 21.4025Z" fill="#FF7557"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M21.4025 82.9368C30.7352
73.3701 49.1977 68.9317 87.2714 87.272C73.951 57.4652 56.4408 47.0199 51.4281
52.1583L21.4025 82.9368Z" fill="#0CB6FF"/>
+<circle cx="87.2838" cy="87.2606" r="3.67606" transform="rotate(-0.709386
87.2838 87.2606)" fill="#4A4848"/>
+</g>
+<defs>
+<clipPath id="clip0">
+<rect width="175" height="175" fill="white"/>
+</clipPath>
+</defs>
+</svg>
diff --git a/landing-pages/site/static/favicons/pwa-192x192.png
b/landing-pages/site/static/favicons/pwa-192x192.png
index 1e428c4fdf..52776d4290 100644
Binary files a/landing-pages/site/static/favicons/pwa-192x192.png and
b/landing-pages/site/static/favicons/pwa-192x192.png differ
diff --git a/landing-pages/site/static/favicons/pwa-512x512.png
b/landing-pages/site/static/favicons/pwa-512x512.png
index 2122d4f284..7ee565587a 100644
Binary files a/landing-pages/site/static/favicons/pwa-512x512.png and
b/landing-pages/site/static/favicons/pwa-512x512.png differ
diff --git a/landing-pages/site/static/favicons/tile150x150.png
b/landing-pages/site/static/favicons/tile150x150.png
index f78b6c37d6..cf13bb0a63 100644
Binary files a/landing-pages/site/static/favicons/tile150x150.png and
b/landing-pages/site/static/favicons/tile150x150.png differ
diff --git a/landing-pages/site/static/favicons/tile310x150.png
b/landing-pages/site/static/favicons/tile310x150.png
index f78b6c37d6..cf13bb0a63 100644
Binary files a/landing-pages/site/static/favicons/tile310x150.png and
b/landing-pages/site/static/favicons/tile310x150.png differ
diff --git a/landing-pages/site/static/favicons/tile310x310.png
b/landing-pages/site/static/favicons/tile310x310.png
index bb8070049b..68cef67aa8 100644
Binary files a/landing-pages/site/static/favicons/tile310x310.png and
b/landing-pages/site/static/favicons/tile310x310.png differ
diff --git a/landing-pages/site/static/favicons/tile70x70.png
b/landing-pages/site/static/favicons/tile70x70.png
index f00cb33169..731c43ad69 100644
Binary files a/landing-pages/site/static/favicons/tile70x70.png and
b/landing-pages/site/static/favicons/tile70x70.png differ