From ef31fb3059899b9cb80f01bf36f483358f977239 Mon Sep 17 00:00:00 2001 From: Bastien Chanot Date: Sun, 17 May 2026 03:51:14 +0200 Subject: [PATCH] =?UTF-8?q?feat(landing):=20add=20favicon=20set=20?= =?UTF-8?q?=E2=80=94=20SVG=20primary=20+=20PNG/ICO=20fallback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Brand pulse-dot translated to favicon: dark rounded square (#0d1b12) + inner green dot (#6ab98a) + faint outer ring (#2d7a4f @60%). Identical visual language to .brand::before in the nav. Assets: - favicon.svg — vector primary (modern browsers, scales) - favicon-32.png — PNG hint - favicon.ico — legacy multi-size (16/24/32/48) - apple-touch-icon.png — iOS home-screen 180x180 PIL-generated PNG/ICO at 8x supersample + Lanczos downscale for clean antialiasing. No external dependency added (PIL already on system). index.html: 4 tags wired in (SVG, PNG 32, ICO alternate, apple-touch). CV HTML left untouched; browser auto-fetches /favicon.ico from root as fallback — TODO logged to mirror the link block when the user finalizes CV edits. Co-Authored-By: Claude Opus 4.7 (1M context) --- .claude/tasks/TODO.md | 3 ++- apple-touch-icon.png | Bin 0 -> 13247 bytes favicon-32.png | Bin 0 -> 1681 bytes favicon.ico | Bin 0 -> 6520 bytes favicon.svg | 5 +++++ index.html | 4 ++++ 6 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 apple-touch-icon.png create mode 100644 favicon-32.png create mode 100644 favicon.ico create mode 100644 favicon.svg diff --git a/.claude/tasks/TODO.md b/.claude/tasks/TODO.md index ed5cde7..6d29dd8 100644 --- a/.claude/tasks/TODO.md +++ b/.claude/tasks/TODO.md @@ -34,7 +34,8 @@ Align landing with CV + add depth (Projets, Méthode, bullet-format Parcours). - Verify WCAG AA contrast on all green-on-parchment text. - Hosting decision: GitHub Pages vs Netlify vs Vercel vs nginx VPS — pending. - DNS / domain config for `bchanot.fr` — pending. -- Consider OG image + favicon — not yet present. +- Consider OG image — not yet present. +- Mirror favicon link block into `CV_Bastien_Chanot.html` when user finalizes CV edits (currently /favicon.ico auto-served as legacy fallback). ## Open ideas (not committed) diff --git a/apple-touch-icon.png b/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..045f3065140f5c473adc1b6e7234c0293720fd19 GIT binary patch literal 13247 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 literal 0 HcmV?d00001 diff --git a/favicon-32.png b/favicon-32.png new file mode 100644 index 0000000000000000000000000000000000000000..244ff8fbce3ab6a9fab5ca248b673fbee23d0481 GIT binary patch literal 1681 zcmV;C25$L@P)io{l*@Tz4q>Ux7kawx$K6lA~i`xMH@g3prA^KM5R)Z;DLuqJRu%<;T8S? z`U1Sdb1I=iBLPJ$1PHfQ5lY%7Y1m7*l2J{L*QvfUg!bb}QkODdj(DfAfVPj=`c`qmJT@*%3FA$p_ z6VsTgwjX<(K>!g!MORhax9V#l923jT$F+Kp29;b&`La;Xp7@Y&pZ{Og8Yp$4r-dPEOEHZ3x=oiD>V>_E0$n;E1Sz zRFw*21OFtV$xey5YhndyD($b9K^`~Tq=~Po5ELN80JneJ1%v<~Rh^^0@j=%$@!q?p zLS$HSM+fc)6Xo~4QocsqZdDbKt2cvisd6k@ten-B%aF&1fdBxZzVX4s`d!rt`6KX%VinnSL#O?nSQ9u=JxLqa@c%@)t_|lo*#hbN(%HQUmC#J3-4hBF_ zO@vD4kNr8A7+U_r>SqVLE6hzRw{4wh~`z}+|A zL>xBN^F2u7X!OfZU8~()ovzQVpFgN44yu3xkkP9bu2uf{-lf)dG%hNVE9UtN-}x$z zUYJ4}Cy>;&=gJz`tcT6n70kTyDyqwyYBQGD_jbmyu47K+nOY1ZADE?Uw#@#FH9k-*1*<)m^ud#ftbM7ps^dF zd}0LWU-&FqQA})E!-cKW`HAupn6V!Pyif6&EUQ<{)st#C0w@{J(#dDeB8?LeAADr6 zVI)zESqn9+ z?0}8wE)!J2meF_^BHZ2uTLvsQ$*{O2&C%WxJ7fw}Qz2Jx1-2Bd1Efha(ZyR2V0{nj z*D zelcistBs26sAT#sLyVkqXWj! zWQ)1)@6#EgiP$u1neww!f2rMHd(vbq!s;&OZoWg>o(y7$9FR z5iudG?4q$#SDVeKv4*9UV&GG!exDi0Kiv53yI(<J>(?AvhY;^`UkOu8|1_bOCPx0&o&kQ64L_(%U!C*FycwnxH+ z_0vhMIgC^SC;-b%ui$S5$I5g0$>F8i{k6%RcUL}51avyTD}ci#SzGrJ=WJ9sb>vQN zqP$` literal 0 HcmV?d00001 diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d1e2fa1bdfdf8538aed9502f758f081bdd1a0fa4 GIT binary patch literal 6520 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 + + + + diff --git a/index.html b/index.html index b05758f..28a9cae 100644 --- a/index.html +++ b/index.html @@ -7,6 +7,10 @@ Bastien Chanot — Développeur Systèmes · Embarqué · Backend + + + +