From b23af1fea45138390e03266dd08aa27a1b7c3e83 Mon Sep 17 00:00:00 2001 From: R-Bharathraj Date: Tue, 30 Jun 2026 17:08:43 +0530 Subject: [PATCH] Add heartbeat blink animation to preloader logo and fix header logo paths --- public/favicon.png | Bin 0 -> 7204 bytes src/app/globals.css | 29 ++++++++++++++++++++++++++++- src/components/Header.tsx | 6 +++--- 3 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 public/favicon.png diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..a7bfb16b95937bce608983849bc836aa439859f1 GIT binary patch literal 7204 zcmbtZcU05MvkyfCA|OSO9%=vyRXPMh?sC2Z|jS0Qw zX(J~iJY@@E#Dwl8(n7~UM@I-iP7ufdbVMWoBEsmju@Id*>u(UotiQ)Lgt5SH%;|D^ z;=l3EF{EdB2ZH|eb(_#mdH&NAcEz6ukPZQK!N7`sbLhJ+Bdxc0P2p@M)cqcH7fvcPRH5Q0%KvIFK_SRCIUxz z*dax*Zl0&B0E)_3Pq@7+5(BbBIy$>6f!7*Zz#wOY64+eIK+M2X4e8{p?T<#9_#2wq z`@7o9A;8K|N=2+Zfxr!kfrGGaD0gpptP=Q)SDr9FRf~cNAT+{3-dJ7pH-sQ5ft@fI zPkB*MKR-VaKS>b}w4q${@TO@>2)Ujl2FcPJ9)y<-bhoNCsGM)jP&;KLE9tG7)}@cCQ(Bp;TR+WDj_Bz z4H1)oh)XDn{qJ^o&x4#&Wu0sLM*9vB6LhyAaC{I5hxLrT6hh zqW=XngJ~MtT1vaR8hHHD{|4Hj;qHikAyvdidBoot`uF@6-ERcZO9IJ-vFA^RF8_6MkRWAL3v4`3v}unEBtw z5yJjY40-yXQD^aquop$5kZwqK%xMIP|BfJpy*$PlgF^ltKQI*L-|<6840#mX-BAgQ zg&>d)a32%~3^j8lQHMqMk97ISMrGF#|=rl2u{*erzvjkB3N6;&Z{&%MT(fVHw z5vmoTZi)V>ZUo^^eMGtwiXxg&{i1!aGyuS*HXU`CDfY=q1_hq&t4}C+qz&ZkCpDoY0mI#i#%;WVb{{5 zDHEEkD@K<%dkSw;4y(e{(A?LjwNC@rQCW*t!TbGHg_E-l$yj4uWL|# z1Jo;(lFr!*!f?QEOk_v$_d`FHlFfyFe;C3F^v{f#4q@A>D_il%n7lRgjvoFMOXL!D z_-^}Ey+b##w+BGu#DGe-0rs}s4KppT%eG)|o3~S( z&^KP`;~np0A(e6B{l4>3*9c-Lqm&HHQB7!!swBcsAH_;Cz-D1aza)#i^$2aVUeva_>rvb1f zjOz~T*}06R1N|@=tDsRT7`sm-2T=RK9_pOrwes_|be8&0nII*W`#X$n=Xez!Z&|#d z)Xc}4si|tJ-5p(JOkUlj15{rhoxn(cf=6xe+?A&+HYUzw{gfT3K0Os48h5Mvdb>}k zVSlWM*yI;TxQ}uOMlZJ;!C)Vu-x6b;#kL;6p3(?lScnNQXPO^)x|7$Zs*;8BeV*4m%nT^G9hVhjo5a$ZJUq)ol~7ia z`;>&kW|`;nk8&Pf?|~Vq?SVR=aQ06@u02^y?KImZRJ++>jkCyZ&Pf-UfD|XJ6nl|@ z>M9KJUWGwfStz*cgq6zIiQH0V;+E3;`A_yGnOTqFz@Bbf@4j%d=6KqKzm5uXi9Yv- z)tNFKmPVh17P2oSVHXy(8)xsujs;7IRejl6iNg4J2Z2q$Jsk;*;(L8)_yVE9h*AfZsIv z;j#V1{w543Yz`XKtwc4{H;SIgH}Z}NDWTju-g68uUIyC7JX=d({PIkD#_tticjJ*4>13k69cKibr@jH2 zwRx$kO+K6qe8LN*`zCtn8CfXt-4GFh6RG6A+f)Me=?p-f8QxA*&j}I#Badc zDIeQDsjuwQRiQCb(nAU5X{G!fd-o@UW&1m|4!jn=Gt!0I=0qR zZ)A?=n85u^hy>mQP4h%;#_)I62t4oyHk}MV)>)=)RLAmkuqrm+5BDsvJh`MFE`-}DA@J1H=F$t#@2gj&1XzN(W zSa@FdFMLjQj#U2UlSf}PovakHq^Viy&IWv-ufDP&F@Q6 zmOXI%SU|~baVLbVG{?f%y}OtxZgapVgJWg^O>4ycG$@HOiIR#~c+(VXOcH&d)?SoA zEhf;UPJgbLL-B1+4!mmojU6!4VX^l00w6Em}RY=V%fPddCKzK zedU-8c5K4s3arLeRak_XE7xM5(vp<}Ybg)ik3ed>&kUTH_r+W?7u^Y}KMn_S=T#Q09T4W_u zW~@#+wtou8OaP#`bMSjsL8VQt?|$!zudw zCfgjrWc$_lJ@WPNGK=qbgyX((5ob~{NF<7Ot9@|Cd^SrWtDYalhfbLJhP|O*J$jmJ z&~!jQ@NB*Zdf&EL8C_ICL;v2 z1fV{e5}uJwj>ZQ)d(Zp&@VHXa@}gEqe5HLib*0mLZkM_n_`dS@mG2WSP*II$%Ipp8 z)RmRqDT(OARYvfO^>U5jvv?GqkM~$cYZ*32p;=|iY|GpeK`Op426zj&_f?dsf;h#FMIX|w*I4a4vd9F0 z;&Ii>dGuEtdalSKzzCdjPe`@U8Tp6fy z0;{-**QTj3Nm`SS9TezMV3iSu4X>4F@s0=2oITy4iyag(7i`6abJ_2fG+bn#7N)Li zmaSV>onfkl^`=5trJODtTzjFyM7L(K?~Hhi>Ry|IKBT*!@`&n&l<+rx%N>opNAey0 z@=4hSc$(6AXFqSM9&f<0`@)ub!ZiYbURDFZZ<7*Pm_TC|P90AFmry^V zGM#IB9L%pch>e9FaPLg|ar$r?vU4BPDD*wc3a(#1Laq=A7Tg0A>%D-mRIP+QQ5g_A z%9n^H3yGNRi$aJhFJi5=7QKu(Ev=s!k?BpH@E8jt{$i09fnW)qN+^8)L>%NJx8_U>Qv!OA?0-*gjDSiGFB+2TNb5+^u?3B53s z8Mx$b{1&Vp*X8BLns6DFQzV3&O_1q%EalqMPNS?Z+2xpti^ll*u|9vbLY{ReSNYIf zz7Uxd%`|d3`S6PQThTHvT?=F6=Me=E!!z|C{*Ya#P#-Ma-vakM9E^h3Pi-1$@&D#($u0VkkTHJ6c zMuW*1)`{-2IqHaB177*>}&Z9Yg>#qO! zhCwIsRJ+9;^%&i1=}`}v^2kuS1}54jy!4`J3-=<;ahh69)!g3I62s-Dly4>^H+uwb z$0aq`NarKP(cnW#i+xM`&$d9_5R-{9lv095NquZQ+ksK3Av-kQDj2#aVq{RvaV3Q> z%P{DPjdt3Y0@4_~%pG(cePTNZCu#tj0Rv(SZE_@b_g~-uxmkv@=5;hT1nAcei6>y0 ziNhE!eOmcXvsIU&SCt@Ri5_7A*W-5#0={fQ9Xlj)20_|jMH zK3p!(`m{2t_}uBmBDJuxZ-~}gJLU(uBxN!gB+d0%3DP$|8hDPxHcjX2L_$!sRvfs* z&eR*%$+E)#Vhd<GT2D>$$y?zYpE5P zXMg#_sF_gMa~VM*oNMWLslBiU#aLzwsUIIDnH*~J{(+zA!tp#-Zv2GxICGK8ifJ`m z6&j;fvw9e>+8w$e?)}^vcf=0noL+9e;NL6Y$F-eG^*+4jK-2iGMxAcHd^PGs^KrA) zzQb-n|2fPWn)OxK+8#sR)=rhLeie23t&XdgR91I|W!M6GcqU&${ikn_1eBIY znYYfncWhkC>CL4eL^%+tRsGE$vYuy*zrEMs0mJDUoC|HUk)I`G6|5D06+x z3Q6_Y<~3J$Jz$+l7IEP3L@6iG!bx$}Mzt=%0ak>|(C%2k0d6zB97{ErQ7HZ3UEyv$ zeoR&Kk=vAr#l$Q=qpH2}`e2_juxFC+xzx_UuMM)7%`)FB*j4%c73wH+Iw&M(GQE9( zkFnggU-kT^g6Ker1FJ55Gm|R6z+Jv)^iCYF1;DbM?H4Y3r#_9DI*B-pY`&Pnt# z>U{~!%&%ojv#eo9ZMNO6revosIpmC!^>ncAHTxE{&ZV;JEp{Gurh)pT|5K|OF z46X!m_|z5}Oyr>tbSQUAf68T5-ezv%eXcs$pk($w_#I?QVjYq@oP z_0aXKgYyi&>GY@uR?wh$xa#+ysh;O#eO%o;17GPFDkB=Q!>N{h*xztGWe1p=qL=Eu`mfH1`3JkQVip==lQ11~EtGu;5 z`NpUYr`s|8p^;xrEs3S`v-fwKg(XFr)Z5Ue-4-mbnbjQ({SfQR$tE!*G4*hfc)4uTtoMDAST~RVh7i4-~r-SS`{Mi&tdZcw_#EYB@5l_Q$p20~Uy| z)*w4|Zg9bz=7nnX2QUMg1A<%Plj6$#qOzbQJK?fyDOLxqOC>)CVyRAk(}_R#^p;&fI(_tw9=d*B~D<*qyBD{&&s#K^4J* z%okoX@Hb5_ovQffs2~5N(jr-Pbs8@iOTMDf%0V1b5S_;p*utkZ@=}Q6iiVcC1=OX- z>CM9tr}is9KG451%_*sQdC+D*!F^BzTR;* zDWY#4pDXOpb_vWpr+e)?yH{l2Lq;`*aI=D3i-*RXh&v)LSIj@2V^;9y109`nYsbV0 ztGBMYJ`la3x*mpNFZW{O4f<9=5!%P~44O^fS`C`LpTU@XNi06Sa1{(haA}g&Ij^4k zT($FFN3VB9ke{xmP*6@E=>6pT5$T*dtIBqOdx3lw3Lo`oqGyj>VOTP)ytA28E4F6C zr5W&?Y_9x;261Mm>2S)W%8Nt?xiTzJAoG{>7qxk*{k|z5pMJ^>wH~{5&JSLAj`@mX zTe68-`d6#xiC_f;7qPUvBgOk3-wF3Bew2L#y)lV&%o90kd`stWm#mthZ%^9OK6lDG z^zi2t8&cGbYl0rRdelPZ%#Yx+{D4}ejyAJ=c8{Xl-aWO4@%6y;a9wKV7#}a;Ag8zk z>5qJkc6Yl(_^rsxUML=qu`x^Za8Qp=ReFi@mTD>QUY@nA*<+Zla6sH?03NL0Wb5j@ z$u%MFmu*%b@m*q4qB)jP98%ybT}R|we%rjwr8bGNW|uQiI--QtEF-~~J zmq@k+d|UEbj(p$*7m&8RVu(h*$6&9dHnfm>1P`N(=n|)M8|Jozd=-;a<(jQYzqmIM zF?={u4^$9$7?#1YaODL+x?e3|B3IH4APu2-zmRmb8g|eJv&e~6zUwW4%1!g#C9}om z@l=lOnD)`>ADBsp^-zP=8DFZOnQ^F{40^m5SXbCN?wlgcfNRh#)!K@?qm@M4Wfd0J zd?FKc63p_8DA2WacNCzS5g&y7sq6xW{yOmx-!7gaE036Z=yVA`>+pHIVPgh5EUV41 zfy-pz#EL()LU&GQqR`XjRu^Rs>aC2QU}pQRLOC8r<9!s-+LJ<~eYweP=-V0`(|`eM+lPBUTc1mo z7`(F!0tJ=zITF9sjw09I#es{aH)`pUHN`60?k%)lmzf|Txrg$LOPuA`Re?$`r>y3! zWrQip)82#nIvgDrl&Ps#8dB(<&#vk)61{r`hP#-!a(BAP$68tj($43l6!B{lf>_QG1TuiUAp@FH&bxSA!jIk W)2+5~Q=ZfR!E`hX)k{@xhyNGnkDBZN literal 0 HcmV?d00001 diff --git a/src/app/globals.css b/src/app/globals.css index c66a97c..2db29d5 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -246,11 +246,38 @@ body.is-home-page.scroll-up .sticky-active { z-index: 999999999 !important; } -/* Ensure page loader covers everything during initial render */ .page-loader-container { z-index: 1000000000 !important; } +.page-loader-logo { + animation: heartbeat-blink 1.4s infinite ease-in-out; + transform-origin: center; +} + +@keyframes heartbeat-blink { + 0% { + transform: scale(1); + opacity: 0.8; + } + 14% { + transform: scale(1.12); + opacity: 1; + } + 28% { + transform: scale(1); + opacity: 0.8; + } + 42% { + transform: scale(1.12); + opacity: 1; + } + 70% { + transform: scale(1); + opacity: 0.8; + } +} + /* Respect user preference for reduced motion */ @media (prefers-reduced-motion: reduce) { /* Disable utility animation classes used across the project */ diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 717f81e..86dfb40 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -71,7 +71,7 @@ export default function Header() { >
Loyaly.AI Loyaly.AI