@@ -27,17 +27,14 @@ const features = [
2727 title : "Copy Paste simplicity" ,
2828 description :
2929 "No installation needed, just copy and paste directly into your project." ,
30- icon : "FaCopy" ,
3130 } ,
3231 {
3332 title : "Dark Mode Compatible" ,
3433 description : "Seamless support for dark mode across all components." ,
35- icon : "FaPencilRuler" ,
3634 } ,
3735 {
3836 title : "Animation Ready" ,
3937 description : "Components with GSAP/Framer Motion for subtle animations." ,
40- icon : "FaFile" ,
4138 } ,
4239] ;
4340
@@ -60,6 +57,27 @@ export default function Hero() {
6057 )
6158 . add ( ( ) => setCopyText ( "Copy" ) , "+=0.5" ) ;
6259 }
60+
61+ if ( typeof window !== "undefined" ) {
62+ // Animate loading bar
63+ gsap . to ( ".loading-bar" , {
64+ width : "100%" ,
65+ duration : 2 ,
66+ ease : "power1.inOut" ,
67+ repeat : - 1 ,
68+ yoyo : true ,
69+ } ) ;
70+
71+ // Animate "Loading" letters with wave
72+ gsap . to ( ".loading-letter" , {
73+ y : - 5 ,
74+ stagger : 0.1 ,
75+ duration : 0.5 ,
76+ ease : "power1.inOut" ,
77+ yoyo : true ,
78+ repeat : - 1 ,
79+ } ) ;
80+ }
6381 } , [ ] ) ;
6482
6583 return (
@@ -242,6 +260,19 @@ export default function Hero() {
242260 </ p >
243261 ) }
244262 </ >
263+ ) : idx === 4 ? (
264+ < div className = "flex flex-col items-center justify-center mb-4" >
265+ { /* Loading Text */ }
266+ < div className = "flex space-x-1 text-lg font-medium" >
267+ { "Loading" . split ( "" ) . map ( ( letter , index ) => (
268+ < span key = { index } className = "loading-letter" > { letter } </ span >
269+ ) ) }
270+ </ div >
271+ { /* Loading Bar */ }
272+ < div className = "relative mt-2 w-40 h-2 bg-neutral-300 rounded-full overflow-hidden" >
273+ < div className = "loading-bar absolute left-0 top-0 h-full bg-black rounded-full" > </ div >
274+ </ div >
275+ </ div >
245276 ) : (
246277 iconMap [ item . icon ] &&
247278 React . createElement ( iconMap [ item . icon ] , {
0 commit comments