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 (
+
+
+
+
+ );
+}
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 (
+
+
+
+
+
+ );
+};
+
+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 (
+
+
+ {keys.map((idx) => (
+ {children}
+ ))}
+
+
+ {keys.map((idx) => (
+ {children}
+ ))}
+
+
+ {keys.map((idx) => (
+ {children}
+ ))}
+
+
+ );
+};
+
+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"
/>
- {/* */}
+ />
-