This is an automated email from the ASF dual-hosted git repository. potiuk pushed a commit to branch fix/favicon-cropping-1432 in repository https://gitbox.apache.org/repos/asf/airflow-site.git
commit f0b64e75a02e88bbc6533476bfcc35fd26a725ba Author: Jarek Potiuk <[email protected]> AuthorDate: Wed Mar 4 20:27:40 2026 +0100 Fix favicon cropping in Chromium browsers and Google Search 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
