From 370fb2acbb001e68fb78287e7e87a90a798e9a53 Mon Sep 17 00:00:00 2001 From: sophiayduan Date: Mon, 16 Mar 2026 21:44:17 -0400 Subject: [PATCH] help --- app/frontend/pages/landing/index.tsx | 105 ++++++++++++++++++++++++++- app/frontend/styles/application.css | 4 +- public/arrow.png | Bin 2453 -> 0 bytes public/arrow.svg | 3 + public/arrow2.png | Bin 2550 -> 0 bytes 5 files changed, 106 insertions(+), 6 deletions(-) delete mode 100644 public/arrow.png create mode 100644 public/arrow.svg delete mode 100644 public/arrow2.png diff --git a/app/frontend/pages/landing/index.tsx b/app/frontend/pages/landing/index.tsx index 431458dc8..e8baa118a 100644 --- a/app/frontend/pages/landing/index.tsx +++ b/app/frontend/pages/landing/index.tsx @@ -20,6 +20,7 @@ export default function LandingIndex() { const card3Ref = useRef(null) const hoveredCardRef = useRef(null) const howSectionRef = useRef(null) + const navRef = useRef(null) useEffect(() => { gsap.registerPlugin(ScrollTrigger) @@ -33,6 +34,7 @@ export default function LandingIndex() { scrollTrigger: { trigger: hero, start: 'top top', end: 'bottom top', scrub: true }, }) + const el = falloutRef.current const container = containerRef.current gsap.timeline() @@ -80,12 +82,24 @@ export default function LandingIndex() { }) }) + const hero = document.getElementById('hero')! + gsap.set(navRef.current, { y: -80 }) + const navTrigger = ScrollTrigger.create({ + trigger: hero, + start: 'bottom top', + onEnter: () => gsap.to(navRef.current, { y: 0, duration: 0.5, ease: 'power2.out' }), + onLeaveBack: () => gsap.to(navRef.current, { y: -80, duration: 0.4, ease: 'power2.in' }), + }) + return () => { ctx.revert() + navTrigger.kill() stickerCleanups.forEach((fn) => fn()) } }, []) + const [videoOpen, setVideoOpen] = useState(true) + const iframeRef = useRef(null) const [email, setEmail] = useState('') const [submitting, setSubmitting] = useState(false) const [currentSection, setCurrentSection] = useState('overview') @@ -160,7 +174,9 @@ export default function LandingIndex() { ] return ( + <>
+ Fallout: Hardware Hackathon -
+
@@ -224,11 +240,48 @@ export default function LandingIndex() {

For teenagers 13-18

Sign in with HCA -
+ {/*
+

+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc sit amet tempus ex, vitae pretium lectus. Aliquam mau +

+ +
*/} + +
+ {/* + */} + +
animateHowCards(0, true)} onMouseLeave={() => animateHowCards(0, false)} className="relative w-full sm:w-[33%] bg-dark-brown min-h-60 aspect-5/6 rounded-lg p-4 bg-cover hover:border-8 border-green bg-center outline-2 outline-beige hover:shadow-sm group" style={{ backgroundImage: "url('/1.png')" }}> +
+ Design your project! +
+
+ 1 +
+
+ +
animateHowCards(1, true)} onMouseLeave={() => animateHowCards(1, false)} className="relative w-full sm:w-[33%] bg-dark-brown min-h-60 rounded-lg p-4 hover:border-8 border-green flex flex-col aspect-5/6 bg-cover bg-center outline-2 outline-beige hover:shadow-sm group" style={{ backgroundImage: "url('/2.png')" }}> + Buy the parts with your grant & Build your project! + +
+ 2 +
+
+ +
animateHowCards(2, true)} onMouseLeave={() => animateHowCards(2, false)} className="hover:shadow-sm group relative w-full sm:w-[33%] min-h-60 rounded-lg flex flex-col hover:border-8 border-green aspect-5/6 bg-cover bg-center text-dark-brown outline-2 outline-beige" style={{ backgroundImage: "url('/3.png')" }}> + {/*

Share

*/} +
+ 3 +
+ Post your project online and earn your ticket to Fallout! + +
+
+
@@ -374,10 +427,10 @@ export default function LandingIndex() {
-
+ {/*
-
+
*/}

@@ -409,6 +462,50 @@ export default function LandingIndex() { back to top
+
+
{ + setVideoOpen((v) => { + const next = !v + const msg = next ? 'playVideo' : 'pauseVideo' + iframeRef.current?.contentWindow?.postMessage(`{"event":"command","func":"${msg}","args":""}`, '*') + return next + }) + }}> + {videoOpen ? 'Close Video' : 'Open Video'} + +
+
+ +
+
+ {/*
+
+
+ fallout +
+
+ +
+
+
+ +
*/} + ) } diff --git a/app/frontend/styles/application.css b/app/frontend/styles/application.css index 61accca48..2569c3217 100644 --- a/app/frontend/styles/application.css +++ b/app/frontend/styles/application.css @@ -13,7 +13,7 @@ --breakpoint-2xs: 320px; --breakpoint-xs: 480px; - --color-blue: #38c9ff; + --color-blue: #41D2FF; --color-light-blue:#C3EFFF; --color-dark-brown: #61453a; --color-brown: #9f715d; @@ -21,7 +21,7 @@ --color-beige: #FFFCF5; --color-light-green: #c8e6d8; - --color-green: #A8C866; + --color-green: #37B576; /* --color-light-blue: #c3efff; */ --color-yellow: #ffebad; --color-pink: #fc90d2; diff --git a/public/arrow.png b/public/arrow.png deleted file mode 100644 index 111a702cc5ea0308eaba96a43c972e5759b9b68e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2453 zcmV;G32OF7ip7=FKRx3o%MshrRl?et_5qn3j|p#>JJ7Hy47XfN`&SS5i26fTsu zJD=b4&CYaoyFar(Luc7ONi)0Knc3ZEo_YVjWmMzPp6U#-WZ*j@5oScX5is`ZKOIYu zM_^RLP-GkY2nh<=FEWu3v-NFyEH+IZfKx3a$s-_p)v7z_t+zBnzgS-MND*h}u+m%AB;eZpgWdrE*F79xW1Sqza)X376(% zJGS`&Wqz4pl#u_ISsM?>H#m6kSM|q)82oa0^f@X6 zo)HeB856smO2!v#ZM~0LTAFForVVL?Rsy&vApiXN3v~MQl>GZgT^t8ckZOdp)HL_J zrKwyPUHb5`7?p^M6P}G|*h_?2*A6N+P{B*%29cM$^b&Uw)<9pDzDqy@@WH1$Lp{6sDvUIT(XGMGr*yP zbm^!=ZR^)0;-~*TPDP?*!j%bO#*dQhr|=v#hy286bUpd;+#19By9UA5SD^ ziaEX{!tK@+(MEg#O?zIx`~6f4uvLEPY9sOFO#IB$(PEA-I<%3qYion#|ndE9*T$rCI}ohKNUonGMCN+_l1SCDWDt(oGkI6a%O{)&DF? z<*o_mw_NXYnvq&28*ubL8+qOA$8L{vMffY-oA(I8w&RL|Y`obr%>E}h5z+u?+d9H- zjwwhu?6wf3dV9EymdRcKLSVbgPeE5IFGzSQ{G*PJR{P}3Sb(K+w_X0cgd=6Q?Dj&B zZy8QN<am+He@?=cDdFa1(y}SZ4^$rA&a&hroG1Bis2lZ>VoRB|h!WXU zs~mlS9J4Ho6>g3ZG~!^d)NM9@RV_mO;c-Uqv1(ChmSs_wK<)@?M9;rI|x!Xh=`0)TW}d^dwTenGxjmNbQPX6%qelvLlw$wx-U=;xpR%p`eQ7&J&+ zr~w_GWQi{h|8_3hIZ%&aqHe8_@hp)MmgkA!!r^b_%G;Gs>FC%*eutIvW0r-_Go<|X zOh%f*d%HKEMeL3BE?9!$204hHmYwZSq_;-1wWyAW6I!G*M0G66h#|}h;k9ZZKG!UZ zO?a{9BpcB}h#1z#ltXeZXisd`>oDb7&1WzA9f`4cwbZ7uhFC^vUM`|RU6RRdN3@WWC1=9{6EszpND=U)BL z=sR8!oe7ipseSSbAi;=OBW)nvj}rqh%^+P0G6caWlVVOy@v|s1V#qNYFmbeh|5tWc zCsq9k&DZbsY5}Pmz{ayWRXz^+*~Gm6{%0!J;7JOZiO*b}>Q>~sHOI$K&_^HXDY8WZ z<80D=yt$NQ1A6ROLd+RmjEO;fHVDFx3Dl}px2vrY5Gld~#^cyz3kMG#{DlSvepDs| zwpz^9w|U_dO9eDio0xV?1Y-yg^vNGSO;MdQi+c_@oFg?2k82@_ReG&ntte5Klv0g zPTzrOWhn^`p!T3T*=c$lk<0rQLao8}w#IelGFTJjLwCyFlVWXq6`=AYAt{7bfi!<^hG`wfyO zCQd1{kw!A=L&DHGHwOEL{>VC68&nQcnC2vn>^ae;$Ho%mb8taeq~*CeL0AWZ$Hpcy zE1t59!E~9W59%(0iJ;{$aU$D{D6+l#Rh&uz^=83lRkOs4fzoWwF9lVQV_fLPMr?4J zsw|pjv#UVa3V~zl6-jbjk~~;$1KTT9{ZFBq&1G84I7{$(5z94#;TQZ5L-fwI T$nan>00000NkvXXu0mjf;a#SI diff --git a/public/arrow.svg b/public/arrow.svg new file mode 100644 index 000000000..9e59f2d41 --- /dev/null +++ b/public/arrow.svg @@ -0,0 +1,3 @@ + + + diff --git a/public/arrow2.png b/public/arrow2.png deleted file mode 100644 index 853409b7958b0e53399c82d6391460f531fabbba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2550 zcmV7)h60X;_iKB=xuu@jCNiud|6^S4wDM_OseTo!WxhZ711oC6%OIkBAFkvJp=Ha084u5IG60`W-BiniitH^NS4 z`J{ID^v~qYSJhSZs_I3MPZ4hUL$eUFn@ENd zrz{~UX7iq;94AA>%)tv5c?^Pli170Vf@0aY=Hk{l{)rHTWlMX+3qtTG;jIU|g_NDG ztq1AJCm*Muf1c;j7YHN4U zgAZ<38?a~3&Q-VFyg8HHQiQ=_sOGL4hMSiVw`ZfOe2OQis*~1DQ~~r+SpA# zL#mc*ZSo4V0x-{}8HvVN!=*}B>I4vb(oXjLU-`|h8%BIifpE-AKy(5Kk|y>>!s)1) z6hfT5Yj5#evY{f-VDI-o9K)&@<-E5X_y5Nz9j zzh`IgiQmhp?l>*|fz z{yh&jFD)$xQ8h`}ah1H^x9?G9-xE3F5PPNaPRyTU%X9>v(ixVrf8b$rIS;9oW)9qSh02b+q$2QRdzUR#wd z%qPFRhWPl`MMx~0(x8!I$w%LbLGp+cGEA!GNNP;aJ$I0*tJk;KP%Peg=WoiK$VIyj zlbzISs|eTmW!UaF-UyQ$fOyRA9H!Kk(tH>FAkbni+y?nD#9`AjtQm;^1Nu75M_bzq zo(lOg0X%&0!D%?lh&eR+Z2I*z`S3#X%cy=#Onj}#&r*b)<9~5=gd-KPf%F?;I-t?; z9qE;KFXQy-Pvf~0+Ya}B9zB(QeNCGL$F(LqrY@L^jt=*PL;FAwwk)NmK!RY$=h0_^ zD5<9Aw`+P#{D721)tp?e?svLpZC?s9Z&eGOoOui2^(Z911$o$@of-%&F`)FCA3{55 zv)Api8>A$v`ZBdoRHUDEW2J#;B~j%BN5bRzWqA_ED1c_^zbGStWVI z&t3(z(z5=e96!QbkOs5Z*tnmns@!EQR~3l|M~_n;D2i}^r8~l;kAQT}c?a+#Fd$TE zyhJ>R9v+U;M<4xz#>fAw^7EutCDZ?xmX-tCw{N4}yK7v17eZqQ2`d`-O?Pd-fuacq z(AN^$RohP$0wyMe!JzUnGjnHCiPzc;ZT$G-0k!&!$yN16o`!ez4vijTWf?~k)XdCx z^z_s2IsuSDRRUYG+pXA*&0VLNShR|+sGvUA(6EmS8T&S*I|@aUOP9V@5d_M62~Ac| zM05EtJzuT66<&Jjg`5Q!m`xNKG8Kt)q2#3&Goq^Vb>TxzVSayJhsHzOv7sdzq{Gf* zU+mgSXfOz#oV-rAZq2BDVj_}+T0bwS4_(5U%3g9=oDvn(j4|dS9Q~I7zab_SfOTKR z#@h1?=NZBxt@Qzbxj~r?d(<>hL$dkwh>pm<{CB6;mNb9XCX z4DY^+HbLbq>!<*%doeNb`eJKuZ)rLrg(5zrZ9TSP%6Jk>X5s`#u=+P!c`NJpxad|$ zE*){1sB*%FR&RTUE}(TlwGYHw*zP{TgoQ{NK`g0LHwh7Rd{{~*R>b)FoG^%!X$#}D zxGh$)|7OEQw*u_9!lHeW3WV<$#+DM{mZrC%<>-m&=s33O8s0+0?u9x_4c{+}Eh)0B zhD)jHm{bJHgr^|Wn$LWzI@wSrJRJ^NuE{UPS!$GIrul0^YUi0QFhrw?+QOoJG~bzJ zI?5XEgt(Tg!nsa8OKErIlZMTNa+Hz*@t*a&e<53hgdxpBPx# M07*qoM6N<$f^&e&RsaA1