From 852d19e3db0df3f757b198c448937b5896e318e8 Mon Sep 17 00:00:00 2001 From: Marko Djordjevic Date: Fri, 20 Feb 2026 23:07:10 +0100 Subject: [PATCH] Add favicon from RealFaviconGenerator Downloads and integrates favicon assets (SVG, PNG, ICO, Apple touch icon, web app manifest icons) and wires them up via Next.js metadata API in the root layout. Co-Authored-By: Claude Sonnet 4.6 --- public/apple-touch-icon.png | Bin 0 -> 2837 bytes public/favicon-96x96.png | Bin 0 -> 1113 bytes public/favicon.ico | Bin 0 -> 15086 bytes public/favicon.svg | 66 +++++----------------------- public/site.webmanifest | 21 +++++++++ public/web-app-manifest-192x192.png | Bin 0 -> 2744 bytes public/web-app-manifest-512x512.png | Bin 0 -> 14701 bytes src/app/layout.tsx | 12 +++++ 8 files changed, 43 insertions(+), 56 deletions(-) create mode 100644 public/apple-touch-icon.png create mode 100644 public/favicon-96x96.png create mode 100644 public/favicon.ico create mode 100644 public/site.webmanifest create mode 100644 public/web-app-manifest-192x192.png create mode 100644 public/web-app-manifest-512x512.png diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6e638aba41d265815d7b7942829473039592cfbf GIT binary patch literal 2837 zcmd5;X*iT^8y*Y>#n`tn){2nqX)I63QYLF;Ng-a#=*=>AO$II2Y}q|c3}W;$$TFnm z#n>LQWQ02MX)HrUgz&2Ve1G0Q->>h-ec#7*oacSr$8lZvabD-$i#F#Db4zf;V6elM z7N&LwC*|ita2)LD0gh8J8239%Qxk^>4`wkY(CxKUx9+$VwJIo3f->}k-quhUI9wZ>W*9bjVUJC@JQ-_19pqyyPdVhPqIF5hs?6Mvi`K+P$o)m)zkEj%;K3__ zzZnAmSK$l~7g_`76W>(#r`3P9?~E^ghNWuwoB33f&dxlG2v}%QPrMO{OMqq=@3_50 zqpHVZdpky!i()euz4)Z^ZD*Zb25VFYW8UlBoE%4}zB0HD9(AQQSQYA8gU~kfTjIQH zIX$h6AK)=bcVtwF=B5{(-*h|4c&9aCSU{b(lOGcS6D_)xDQI$s*-1BbgBYjf!dqyM zyG$s-*PgHe|8!Y|2nmMhZuq7KcixcdD~s*;!oa&)pCj%(xC0qBEZ7PXp$-1dqsw{E zF=vvzF!7aHOZPSNsQv*b0EWbenYN{4iP$TsDN>*ctIJbKLhgrt zDHWiI|1v_0OO;Im^wGL65C; zc+JkO2kab~V|r=Rwrk^>$MYl4vT6g?7n`mMk6cK}qG*>aIITL9*No`0hSVLgfq{PS zPG|Q(55B9m4wCXJB|*5^n%8=kuE~0n9v!wP)|>)DLa3V26bo7g^Jg#6a_cwp!Oi3<*n3{kawpT>ehQc5Z8i|oEKgC_Z*H9SJ9peE-qurWtS`*xof zxFjDq?17Au1h+jLlOQu?rv@pIzhF}+4o7Yd$a@kevqNT-#h*9$MteZ~5%Y>x{R1H# zD6SwJZ{9~tc8qkARpl>GGr|RgY0y)frTILx}oqdFbi6lH2L+kg*xauEx5rVS^E9?Me||`2GhFi=z39W za%I|qc1Y&a(#G)aH=Bm{_$+L6yQD>C{a49>;_5j<$-}n4i~?eI68W-YJ`S@r=cdIi z*tv`=lwkJyRUdZw4RgXW%7A8C{-~)b;;eVccnrPFE?F&h{JY(SJ7qYyPF)Ax$;?~4 z`qnQByLGo6G-}@8iMU%`*Kjz*FYJ$vCjvnU1+RK&IOAS!H0;#aVuyDrA!Ly3E)#tW zMeO(s_FKSsphm3yVhFn>)zimNUUqH#OLq?~hglXo0`PI@{g*_>l4v*FgJxUmuay>0 z4Fw0gwKuN2sa|2dujKWtLT5{(yb)c|HOV*K%-QrPESx&1y@u@;R(T?qyNShk_=$>9 zrgz}TsMR4^`De*6fOz)bCi3s`EvP_=O{8}+)&Jy-J-LTjIJ!Ui$6hxnR|2tYin8z< zQfW-;zLp)gw^}^kef}`KS^=pP`ef&?-7h~L53x+9?R#Ij8AOhFM$l#;M`@AAi*Y;>&|ME`ZY+2>)=NZO6I0l>t?G{eS-S=E=|E`$D zhKI4{ygTc17b@KB-F?YBAI-w{NQkuy*K$d2-BWsb=zZN(Y1iyk8x#^it?Mh~a8Zwc zyHYbclyvA0UE?V7`{T-ci5=V7wv(iAs}7_2H!nU@xd`aKIy;cl>me2w|3D?|b@Umb zG&IW&w^aAqnp4RiS50}hyGV$ zt*VyKb{tD<0I^=_izm8mk~<=;R<+xT*G92x2H4t<`h4!Dao;~$S9p9BeJy9_)rKy) z!tGw+8Np1Bnj_KXj#fXj8Y&N_n_HvE0s1i-hsmUwp09#R_C|Is`hM!y(SDe=BcG{X z#y9mUCE4*7bxo4&+}nibHgJD^zQb5V$~_p6e(%igH~<3!x@b1%4qV)+TO7(&}j((GjfDpb{Za-kA|TCePR6RZkHwu;m&hdLa5 xMTfbCW)W6|JC9TNX=PRfTKVg`D-V93?X^Or^d=^+{J`$QEX{08$$;nWe*l8CJ3IgY literal 0 HcmV?d00001 diff --git a/public/favicon-96x96.png b/public/favicon-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..08f5e10f29780e574c1bd6df2f3707096bc943a6 GIT binary patch literal 1113 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U{UaNaSW-5dpmbyp0J}pTlskh zVF8bq42ri!M7D4^3aJZ;aJaZQD3w*PSViu2j`vs&%f^JT1GySR{*VV*i814BbP zyN!824+Fz_zKT3K$qB3sN3$xlFT7f4^r~k4{;1qr|39B?JsEob@A;a~DQr_#_s+id z;d-EQu5|6<(D@a!E5&X28rTB3ufLfh-~Dd!&y39pcar}b-#6i1AoVXOO1@WWrD4|Z z=)Fd>penOxB>v6T3-RFXf9zd*c}Zm|Ljji{!<<{*-OLPcCtmLO&*YH5a?KUx#Xj%t zT($4+^{>3MCOmA;E_H=@l?+F37N~K2DVicaw{Pd(trkDM4ydOK&14T)Wp-_A*mO3X z$>wj2er_`U&eCGczaWOU{?_j)k0-`SY`(n4f1bdHlQUhuF{aea*8cX5UV{0^6Xb2D6ES9tlCmEi^RgfIV?7``xj zRMdmQb$g7oi0a>?hMBfmB_|kC7);&U;-}Bsc&X~jiwTS;7_#~ln1lX)EqOUfajmO+B^1x<`EIAz zbRMADRjP4KOTNb}<(+)ZTbALaZFuJ4C0~Qs9jeZU-ZIGC`-M^9Uhz~jpD2EYBs(7# z1{-N$dfTu+%kzB4o|g}84-~rr-TGwr5=Ca9qZ$$;C;VtHj9`6xoROjO_5{KI27W&p zeJ}m>zB_xvm*W>RuY;`Mow?=pQa*?6&Xb}iMPBf}s?{+|uyXgjA6gpuY{8FN8BQr4 zzs`7Iu;wU_VWnc$`yCpuiu*+%=@rv3$qHt?xded^V@36CN#b+Gq@Hd z72kf4y|{rn;U?1zNtOJ5!^n;2)92Yme6A2>KTym4;AO$;Gg;9ye>zpCY~ERt$iD59 ztODbdcXbxaxt|%w8$F-+t?^;uxkzQkKYK6p+`p|pCI0NrtsC3VTc-E2J~*@2?Pq{{ zZSURYJNp~#fFcWCCl_ur6lZzm`p&jDk>U9qQ?rIR%~h@ZZ#Z@RlfEckU-*b&SKhQV z>C4|vOnCmS_gTccyH9!UtuU>gaN)>?3lWkV)JtBSJN8n!y?lP=+VzFMCSIS>7j}Jn zT-d!%<{QE~=URgu)psOq*_qM5OE){!kI$;yNMGR1`<-S$488sBin^%7`xfhdGIFQD0H>xiVmp!QkoY=d#Wz Gp$P!2ujCH^ literal 0 HcmV?d00001 diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..9d127397180434d0fac0e31bf6210bd1a592e9cc GIT binary patch literal 15086 zcmeI3J&YSg6vrn7i3(jLBxp|duEm!SMIdjo)?J&+Bl5iLG1G){-Ecdd|fj4l5V_2o#&68 zx0);L!I(bA69@G4@SvxQ+3^Qs`WR0f(9^?%o-Ss`AB^c^ zJaIrz4-a~}m>qvGrjPN&0X=={_1yEvP96~ZqDUOji<5di_x!Pw2gJT85(iu~PO2Yy zz*Ij^M;y@8HDxCcxNKbFfXl{<`I85X>0>-`z?gnno;={H#f#NL-C#@~t^vm+( z0hf)})OkI%4(bL|{XAV$=XEc>wNp1}`BfiNH@NEc+WJcQjfvW|Z~0Xp>u*eY%vCMn z_oh{!&$_<#3jCK>U|4M-c=)$Yej|iG4IYff2V3eH!ol_k6?6>#wY5>|xG5YC592k6 zqk18S)5@e>khXqLOBP{{ZU4E>{bjHHbXl}7G~T+MmRHJdx0TCv z?yK>2+C2Mi%D#W8t-Hq^o4nieO;b5$#re9s`JhcM*Y$_-k^awnz5K<-*Iqu){mWU~ z=GO6Eul)@9%YOdaG|f@k zWPiS;{W>?TKQq7NU~Q}~c3a!5cs7QPXX!OId8{w?b^ghHW7c}wHH@vl>|Y<~I?MU# zSL=Hm>p$pcPs#ghpUIqFKZ*P{XMKDe^RMT#{dNA)`@81c*yR3i*StPn)%DkV3~KZ4 zHzww>;PsCj_WY}{ZxroJTRo50pZD`3&aC`sQgEGrvHKsrCg^7%*NFF1*4fi6y#7V@ zhUEUV?6#ipVyD;_&7TrGMYG@Ae4KrG+WmP-jAb=?ta|t7%f?>&PhWw<=Lf@~JcqgG zrx4C++mU`LMAhEi+$y~`6mDv3ZI{Eg_}g|E^EOEZ^^2(d#jJW(an#Q#_AcIcuNW(IbVIkcwQ{!KNH&2uev8K@|(nv zx^Aki;(DF82h!lcy1&#{ecv2&`mAB}9Zv9?HaKv?zn{NTzaOv89dq~(x5Hg!?ODjY z{?r7nl7IF8F8PlawSo2Z!v@yt$7XSse{~%!@+;P-KAz>T=U#c7c&4tmeVv#5S8TjL gTmC4=`V94oRHyB#^xu1AvR#$&xNS+FCR+9V2hkb=V*mgE literal 0 HcmV?d00001 diff --git a/public/favicon.svg b/public/favicon.svg index 5fb33ce..70c6c75 100644 --- a/public/favicon.svg +++ b/public/favicon.svg @@ -1,56 +1,10 @@ - - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..4414029 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1,21 @@ +{ + "name": "Candle Annotator", + "short_name": "Candle Annotator", + "icons": [ + { + "src": "/web-app-manifest-192x192.png", + "sizes": "192x192", + "type": "image/png", + "purpose": "maskable" + }, + { + "src": "/web-app-manifest-512x512.png", + "sizes": "512x512", + "type": "image/png", + "purpose": "maskable" + } + ], + "theme_color": "#ffffff", + "background_color": "#ffffff", + "display": "standalone" +} \ No newline at end of file diff --git a/public/web-app-manifest-192x192.png b/public/web-app-manifest-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..73ac7b416476df4f70791ab54d2063c02aca59d6 GIT binary patch literal 2744 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 T`T)L02^r~`9?L)K6#l;e-uW$h literal 0 HcmV?d00001 diff --git a/src/app/layout.tsx b/src/app/layout.tsx index 307b1eb..e5e3822 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -21,6 +21,18 @@ const jetbrainsMono = JetBrains_Mono({ export const metadata: Metadata = { title: "Candle Annotator", description: "Annotate candlestick charts for ML training", + icons: { + icon: [ + { url: "/favicon.ico", rel: "shortcut icon" }, + { url: "/favicon-96x96.png", sizes: "96x96", type: "image/png" }, + { url: "/favicon.svg", type: "image/svg+xml" }, + ], + apple: [{ url: "/apple-touch-icon.png", sizes: "180x180" }], + }, + manifest: "/site.webmanifest", + appleWebApp: { + title: "Candle Annotator", + }, }; export default function RootLayout({