diff --git a/app/(pages)/(index-page)/_components/Crowdfund/Crowdfund.module.scss b/app/(pages)/(index-page)/_components/Crowdfund/Crowdfund.module.scss new file mode 100644 index 0000000..5dc10fd --- /dev/null +++ b/app/(pages)/(index-page)/_components/Crowdfund/Crowdfund.module.scss @@ -0,0 +1,81 @@ +@import '@globals/styles/mixins.scss'; + +.container { + display: flex; + padding: 5% 0%; + width: 100%; + background-color: var(--water-background); + overflow-x: clip; + position: relative; + flex-direction: column; + + @include sm-desktop { + padding-top: 5%; + } + + @include tablet { + padding-top: 10%; + } + + @include phone { + padding-top: 15%; + } + + .heading { + display: flex; + flex-direction: row; + text-align: center; + justify-content: center; + align-items: center; + padding-bottom: 1%; + + h1 { + color: var(--text-light); + font-size: 40px; + font-style: normal; + font-weight: 700; + line-height: 125%; + letter-spacing: 0.8px; + text-align: center; + display: flex; + + @include tablet { + font-size: 30px; + } + + @include sm-tablet { + font-size: 25px; + } + + @include sm-phone { + font-size: 13px; + } + } + + .heartIcon { + padding-left: 10px; + width: 40px; + height: 40px; + font-weight: 800; + aspect-ratio: 1/1; + color: var(--text-light); + + @include sm-tablet { + width: 30px; + height: 30px; + } + + @include phone { + width: 25px; + height: 25px; + } + } + } +} + +.sponsors { + display: flex; + align-items: center; + background-color: var(--water-background); + z-index: 0; +} \ No newline at end of file diff --git a/app/(pages)/(index-page)/_components/Crowdfund/Crowdfund.tsx b/app/(pages)/(index-page)/_components/Crowdfund/Crowdfund.tsx new file mode 100644 index 0000000..6ba7a69 --- /dev/null +++ b/app/(pages)/(index-page)/_components/Crowdfund/Crowdfund.tsx @@ -0,0 +1,71 @@ +// import Image from 'next/image'; +import CrowdfundCarousel from './_components/CrowdfundCarousel/CrowdfundCarousel'; +import styles from './Crowdfund.module.scss'; +import { LuHeart } from 'react-icons/lu'; + +const supportersLine1 = [ + 'Aarav Gambhir', + 'Aland Liu', + 'Alice Heng', + 'Alison Young', + 'Anthony Thomas', + 'April Fallon', + 'Arun Pratap Singh', + 'Bill Mead', + 'Caitlyn Wong', + 'Cambria Yang', + 'Carlos Alvarez Vereterra', + 'Chelsea Lai', + 'Dilip Mandadi', + 'Elizabeth White', + 'Eric Lin', + 'Fiona Phongsa', + 'Glenda Drew', + 'Hung-Ta Chen', + 'Jason Bui', + 'Jason Xie', + 'Joël Porquet-Lupine', + 'Katerina Rahhal', + 'Lana Wong', +]; + +const supportersLine2 = [ + 'Michelle Feng', + 'Murali Krishna Bachhu', + 'Peter Webster', + 'Pragati Satpute', + 'Raju Dandigam', + 'Raman Dhir', + 'Ravi Sandhu', + 'Ritu Prajapati', + 'Rushil Patel', + 'Sam Poder', + 'Sasikala Sasikumar', + 'Sauvikesh Lal', + 'Shashank Kapadia', + 'Sreeprasad Govindankutty', + 'Srinivasa Rao Bittla', + 'Tarini Maram', + 'Tiffany Chac', + 'Trisha Baadkar', + 'Vamsi Chagari', + 'Vivek Sandhu', + 'Win Cheng', +]; + +export default function Crowdfund() { + return ( +
+
+

And a special thanks to our donors

+ +
+
+ +
+
+ ); +} diff --git a/app/(pages)/(index-page)/_components/Crowdfund/_components/CrowdfundCarousel/CrowdfundCarousel.module.scss b/app/(pages)/(index-page)/_components/Crowdfund/_components/CrowdfundCarousel/CrowdfundCarousel.module.scss new file mode 100644 index 0000000..2cd12a2 --- /dev/null +++ b/app/(pages)/(index-page)/_components/Crowdfund/_components/CrowdfundCarousel/CrowdfundCarousel.module.scss @@ -0,0 +1,18 @@ +@import '@globals/styles/mixins.scss'; + +.container{ + display: flex; + flex-direction: column; + + .supportText { + color: #FFF; + text-align: center; + font-family: "Metropolis"; + font-size: 50px; + font-style: normal; + font-weight: 700; + line-height: 60px; + letter-spacing: 1px; + margin-top: 2%; + } +} diff --git a/app/(pages)/(index-page)/_components/Crowdfund/_components/CrowdfundCarousel/CrowdfundCarousel.tsx b/app/(pages)/(index-page)/_components/Crowdfund/_components/CrowdfundCarousel/CrowdfundCarousel.tsx new file mode 100644 index 0000000..14cefe7 --- /dev/null +++ b/app/(pages)/(index-page)/_components/Crowdfund/_components/CrowdfundCarousel/CrowdfundCarousel.tsx @@ -0,0 +1,31 @@ +import Marquee from '../Marquee/Marquee'; +import styles from './CrowdfundCarousel.module.scss'; + +type CrowdfundCarouselProps = { + supportersLine1: string[]; + supportersLine2: string[]; +}; + +export default function CrowdfundCarousel({ + supportersLine1, + supportersLine2, +}: CrowdfundCarouselProps) { + return ( +
+ + {supportersLine1.map((name, index) => ( + + {name} + + ))} + + + {supportersLine2.map((name, index) => ( + + {name} + + ))} + +
+ ); +} diff --git a/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Logo.module.scss b/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Logo.module.scss new file mode 100644 index 0000000..7c867e8 --- /dev/null +++ b/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Logo.module.scss @@ -0,0 +1,40 @@ +@import '@globals/styles/mixins.scss'; + +.container { + background: var(--card-background); + border-radius: 10px; + transition: transform 0.2s ease-in-out; + + &:hover { + // cursor: pointer; + transform: scale(1.05); + } + + > a { + display: flex; + justify-content: center; + align-items: center; + width: 350px; + height: 250px; + padding: 20px 40px; + + @include phone { + width: 245px; + height: 140px; + padding: 10px 20px; + } + } + + img { + width: 100%; + height: auto; + max-height: 100%; + + &.tall { + width: auto; + height: 100%; + max-height: initial; + max-width: 100%; + } + } +} \ No newline at end of file diff --git a/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Logo.tsx b/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Logo.tsx new file mode 100644 index 0000000..932b815 --- /dev/null +++ b/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Logo.tsx @@ -0,0 +1,28 @@ +import Image, { StaticImageData } from 'next/image'; +import React from 'react'; +import styles from './Logo.module.scss'; + +interface LogoOptions { + imgSrc: StaticImageData; + url: string; + alt: string; +} + +const Logo = ({ imgSrc, url, alt }: LogoOptions) => { + const imgClass = imgSrc.width / imgSrc.height < 1.75 ? styles.tall : ''; + + if (!imgSrc.blurDataURL) { + imgSrc.blurDataURL = + 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8vx8AAsMBwDLzsnQAAAAASUVORK5CYII='; + } + + return ( +
  • + + {alt} + +
  • + ); +}; + +export default Logo; diff --git a/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Marquee.module.scss b/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Marquee.module.scss new file mode 100644 index 0000000..8edd2f0 --- /dev/null +++ b/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Marquee.module.scss @@ -0,0 +1,84 @@ +@import '@globals/styles/mixins.scss'; + +.marquee { + --gap: 36px; + --scroll-start: 0; + --scroll-end: calc(-100%); + display: flex; + overflow: hidden; + user-select: none; + padding: 10px 0px 10px 0px; + width: 100%; + margin: auto; + mask-image: linear-gradient( + var(--mask-direction, to right), + hsl(0 0% 0% / 0), + hsl(0 0% 0% / 1) 20%, + 122537 80%, + hsl(0 0% 0% / 0) + ); + + ul { + animation-duration: 150s !important; + } + + &:hover .marqueeGroup { + animation-play-state: paused; + } + + @include phone { + --gap: 20px + } +} + + +.marqueeGroup { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: space-around; + list-style: none; + margin-left: 0; + padding-left: 0; + margin-right: var(--gap); + animation: scroll 20s linear infinite; + + > * { + margin-right: 28px; + padding: 12px 24px; + border-radius: 108.865px; + border: 1px solid rgba(255, 255, 255, 0.70); + background: rgba(255, 255, 255, 0.20); + backdrop-filter: blur(5px); + color: var(--text-light); + text-align: center; + font-family: Metropolis; + font-size: 16px; + font-style: normal; + font-weight: 600; + line-height: 125%; + letter-spacing: 0.32px; + + @include tablet { + padding: 5px 15px; + } + } + + > *:last-child { + margin-right: 0; + } + + &.reverse { + animation-direction: reverse; + animation-delay: -3s; + } +} + +@keyframes scroll { + from { + transform: translateX(var(--scroll-start)); + } + to { + transform: translateX(var(--scroll-end)); + } +} \ No newline at end of file diff --git a/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Marquee.tsx b/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Marquee.tsx new file mode 100644 index 0000000..79174e8 --- /dev/null +++ b/app/(pages)/(index-page)/_components/Crowdfund/_components/Marquee/Marquee.tsx @@ -0,0 +1,50 @@ +import React, { Fragment, PropsWithChildren } from 'react'; +import styles from './Marquee.module.scss'; + +interface MarqueeOptions { + reverse?: boolean; + iterations?: number; + duration?: number; +} + +const Marquee = ({ + reverse, + iterations = 1, + duration, + children, +}: PropsWithChildren) => { + const keys = Array.from(Array(iterations).keys()); + + return ( +
    + + + +
    + ); +}; + +export default Marquee; diff --git a/app/(pages)/(index-page)/_components/Sponsors/_components/Sponsors/SponsorsCarousel.tsx b/app/(pages)/(index-page)/_components/Sponsors/_components/Sponsors/SponsorsCarousel.tsx index b95c309..c029a6e 100644 --- a/app/(pages)/(index-page)/_components/Sponsors/_components/Sponsors/SponsorsCarousel.tsx +++ b/app/(pages)/(index-page)/_components/Sponsors/_components/Sponsors/SponsorsCarousel.tsx @@ -5,20 +5,24 @@ import styles from './SponsorsCarousel.module.scss'; // Row 1: tier 1 sponsors import csDepartment from 'public/index/Sponsors/cs.png'; import asucd from 'public/index/Sponsors/asucd.png'; -// import anthropic from 'public/index/Sponsors/anthropic.png'; +import anthropic from 'public/index/Sponsors/anthropic.png'; import ucDavis from 'public/index/Sponsors/ucDavis.png'; // Row 2: tier 2 sponsors // import pepsi from 'public/index/Sponsors/pepsi.png'; -// import cfc from 'public/index/Sponsors/cfc.jpg'; +import cfc from 'public/index/Sponsors/cfc.jpg'; // import ucdLS from 'public/index/Sponsors/ls.png'; import datalab from 'public/index/Sponsors/datalab.png'; import cerebras from 'public/index/Sponsors/cerebras.png'; import msba from 'public/index/Sponsors/MSBA.png'; +import freepik from 'public/index/Sponsors/freepik.png'; +import emojis from 'public/index/Sponsors/emojis.png'; +import letta from 'public/index/Sponsors/letta.png'; // Row 3: IPO Sponsors import govops from 'public/index/Sponsors/IPOs/govops.png'; import yolonami from 'public/index/Sponsors/IPOs/yoloNAMI.png'; +import fourthAndHope from 'public/index/Sponsors/IPOs/fourthAndHope.png'; export default function SponsorsCarousel() { return ( @@ -39,11 +43,11 @@ export default function SponsorsCarousel() { url="https://asucd.ucdavis.edu/" alt="ASUCD Logo" /> - {/* */} + /> @@ -58,12 +62,12 @@ export default function SponsorsCarousel() { url="https://gsm.ucdavis.edu/master-science-business-analytics-msba" alt="MSBA Logo" /> - {/* - + + + - + + ); diff --git a/app/(pages)/(index-page)/page.tsx b/app/(pages)/(index-page)/page.tsx index 63e6eba..df3ab35 100644 --- a/app/(pages)/(index-page)/page.tsx +++ b/app/(pages)/(index-page)/page.tsx @@ -9,6 +9,7 @@ import styles from './page.module.scss'; import FAQ from './_components/FAQ/FAQ'; import Underwater from '../_components/Underwater/Underwater'; import BigWave from './_components/BigWave/BigWave'; +import Crowdfund from './_components/Crowdfund/Crowdfund'; export default function Home() { return ( @@ -29,6 +30,7 @@ export default function Home() {
    +
    diff --git a/public/index/Sponsors/IPOs/fourthAndHope.png b/public/index/Sponsors/IPOs/fourthAndHope.png new file mode 100644 index 0000000..baebf5d Binary files /dev/null and b/public/index/Sponsors/IPOs/fourthAndHope.png differ diff --git a/public/index/Sponsors/emojis.png b/public/index/Sponsors/emojis.png new file mode 100644 index 0000000..f521180 Binary files /dev/null and b/public/index/Sponsors/emojis.png differ diff --git a/public/index/Sponsors/freepik.png b/public/index/Sponsors/freepik.png new file mode 100644 index 0000000..4b8c8cf Binary files /dev/null and b/public/index/Sponsors/freepik.png differ diff --git a/public/index/Sponsors/letta.png b/public/index/Sponsors/letta.png new file mode 100644 index 0000000..39d5be4 Binary files /dev/null and b/public/index/Sponsors/letta.png differ