Add /congressional-app-challenge landing page (#1361)

* Create congressional-app-challenge

* Rename congressional-app-challenge to congressional-app-challenge.js

let me be smart this time and add .js

* Update congressional-app-challenge.js

setting up the page and adding the first two containers!

* Update congressional-app-challenge.js

small edits

* responsive styling

responsive styling mainly with the images

* did step 1 and 2 sections

* added made with <3 note

* minor ui updates

* content updates

* updates

* added past winner cards to prep for carousel and ysws buttons

* quick button ui update

* refactor past winner cards for carousel

* did grant section, organized code, added graphics

* Made winners carousel

* updated zoom card ui and tweaked carousel a bit

* Added seamless scrolling to cac carousel

* Fixed carousel so scrolling moves cards one by one

* updates

---------

Co-authored-by: Sophia E <sophialuvv2@gmail.com>
Co-authored-by: phthallo <annabelquach13@gmail.com>
Co-authored-by: Annabel Q <84078890+phthallo@users.noreply.github.com>
Co-authored-by: Kyra Ezikeuzor <kyraezikeuzor@gmail.com>
This commit is contained in:
zach latta 2024-09-04 10:20:32 -04:00 committed by GitHub
parent 942f26b77e
commit ab363f1032
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 20122 additions and 1800 deletions

View file

@ -0,0 +1,21 @@
import { Box, Text, Image, Link } from 'theme-ui'
export default function Carousel({
title,
user,
description,
link,
img
}){
return (
<Box id={user} sx={{width:['65%', '80%'], m:'3', display:'flex', flexDirection:'column', justifyContent:'center', alignItems:'center'}}>
<Image src={img} sx={{ borderRadius: '10px 10px 0 0', width: '100%', height: ['12em', '15em']}}></Image>
<Box sx={{alignItems:'left', textAlign:'left', display:'flex', flexDirection:'column', background:'white', color:'black', p:'2', borderRadius: '0 0 10px 10px', marginBottom: '2', padding: '3', height: '8em'}}>
<Link href = {link} target="_blank" rel="noopener">
<Text as="h3" sx={{}}>{title}</Text>
</Link>
<Text as="i" sx={{}}>{description}</Text>
</Box>
</Box>
)
}

View file

@ -0,0 +1,212 @@
import React, { useRef, useEffect } from 'react';
import CarouselCards from './carousel-cards';
const Carousel = ({ cards }) => {
const scrollContainerRef = useRef(null);
const cardsPerView = 1; // Number of cards that can be seen at once
const cardWidth = 400; // Width of each card in pixels
const scrollAmount = cardWidth; // Total scroll width for each move
const totalCards = cards.length;
// Made another set of cards to do infinite scrolling
const infiniteCards = [...cards, ...cards, ...cards]; // Repeat the cards 3x for non-choppy scrolling
// Fixes scroll position to the middle set the mount for non-choppy scrolling
useEffect(() => {
if (scrollContainerRef.current) {
const initialScroll = totalCards * cardWidth; // Scroll to the start of the second set of items
scrollContainerRef.current.scrollLeft = initialScroll;
}
}, [totalCards, cardWidth]);
const moveCarousel = (direction) => {
if (scrollContainerRef.current) {
const scrollValue = direction * scrollAmount;
scrollContainerRef.current.scrollBy({
left: scrollValue,
behavior: 'smooth', // Smooth scrolling effect
});
}
};
const handleScroll = () => {
if (scrollContainerRef.current) {
const { scrollLeft, scrollWidth } = scrollContainerRef.current;
const maxScrollLeft = scrollWidth - scrollContainerRef.current.clientWidth;
// Reset to the middle set of cards if we've scrolled to either end
if (scrollLeft === 0) {
scrollContainerRef.current.scrollLeft = totalCards * cardWidth; // Reset to the end of the second set
} else if (scrollLeft >= maxScrollLeft) {
scrollContainerRef.current.scrollLeft = totalCards * cardWidth - scrollAmount; // Reset to the start of the second set
}
}
};
return (
<div
style={{
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
width: '100%',
height: '100%',
position: 'relative',
overflow: 'hidden', // Hide overflow content
}}
>
<button
onClick={() => moveCarousel(-1)}
style={{
position: 'absolute',
left: '10px',
background: 'transparent',
border: 'none',
fontSize: '24px',
cursor: 'pointer',
color: 'white',
zIndex: 1,
}}
>
&#10094;
</button>
<div
ref={scrollContainerRef}
onScroll={handleScroll}
style={{
display: 'flex',
width: '70%',
overflowX: 'hidden', // Hide overflow content
}}
>
{infiniteCards.map((item, index) => (
<div
key={index}
style={{
width: `${cardWidth}px`, // Set width for each card
flex: '0 0 auto', // Prevent cards from shrinking
marginRight: '2px', // Spacing between cards
}}
>
<CarouselCards {...item} />
</div>
))}
</div>
<button
onClick={() => moveCarousel(1)}
style={{
position: 'absolute',
right: '10px',
background: 'transparent',
border: 'none',
fontSize: '24px',
cursor: 'pointer',
color: 'white',
zIndex: 1,
}}
>
&#10095;
</button>
</div>
);
};
/*
const Carousel = ({ cards }) => {
const scrollContainerRef = useRef(null);
const cardsPerView = 1; // Number of cards visible at once
const cardWidth = 400; // Width of each card in pixels
const scrollAmount = cardsPerView * cardWidth; // Total scroll width for each move
const moveCarousel = (direction) => {
if (scrollContainerRef.current) {
const scrollValue = direction * scrollAmount;
scrollContainerRef.current.scrollBy({
left: scrollValue,
behavior: 'smooth', // Smooth scrolling effect
});
}
};
return (
<div
style={{
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
width: '100%',
height: '100%',
position: 'relative',
overflow: 'hidden', // Hide overflow content
}}
>
<button
onClick={() => moveCarousel(-1)}
style={{
position: 'absolute',
left: '10px',
background: 'transparent',
border: 'none',
fontSize: '24px',
cursor: 'pointer',
color: 'white',
zIndex: 1,
}}
>
&#10094;
</button>
<div
ref={scrollContainerRef}
style={{
display: 'flex',
margin: '0',
width: '70%',
overflowX: 'hidden', // Hide overflow content
}}
>
{cards.map((item, index) => (
<div
key={index}
style={{
width: `${cardWidth}px`, // Set width for each card
flex: '0 0 auto', // Prevent cards from shrinking
marginRight: '2px', // Spacing between cards
}}
>
<CarouselCards {...item} />
</div>
))}
</div>
<button
onClick={() => moveCarousel(1)}
style={{
position: 'absolute',
right: '10px',
background: 'transparent',
border: 'none',
fontSize: '24px',
cursor: 'pointer',
color: 'white',
zIndex: 1,
}}
>
&#10095;
</button>
</div>
);
};
*/
export default Carousel;
/*export default function Carousel({ cards }) {
return (
<Grid id="winners" gap={2} columns={[1, null, 3]} sx={{m:'2', justifyContent:'center', alignItems:'center', justifyItems:'center'}}>
{cards.map((card, idx) => (
<CarouselCards key={idx} {...card} />
))}
</Grid>
)
}*/

View file

@ -0,0 +1,51 @@
[
{
"title": "Starfly (Andrea, 16)",
"user": "Andrea",
"description": "Starfly bridges the gap between gender and racial profiles in astronomy and STEM.",
"link": "https://www.congressionalappchallenge.us/23-CA38/",
"img": "https://cloud-dcu6dxu0h-hack-club-bot.vercel.app/3starfly.png"
},
{
"title": "Lexiscan (Clay, 16)",
"user": "Clay",
"description": "Lexiscan is an app that helps people with dyslexia to read by reading text out loud.",
"link": "https://www.congressionalappchallenge.us/23-VT00/",
"img": "https://cloud-dcu6dxu0h-hack-club-bot.vercel.app/2lexiscan.png"
},
{
"title": "DriveSmart (Sahiti, 17)",
"user": "Sahiti",
"description": "Drivesmart helps teen drivers be safe on the roads through ML and moderation.",
"link": "https://www.congressionalappchallenge.us/23-GA06/",
"img": "https://cloud-dcu6dxu0h-hack-club-bot.vercel.app/1drivesmart.png"
},
{
"title": "TrailUS (Alex, 15)",
"user": "Alex",
"description": "TrailUS encourages healthier lifestyles and makes it easy for people to enjoy local trails.",
"link": "https://www.congressionalappchallenge.us/22-TX22/",
"img": "https://cloud-dcu6dxu0h-hack-club-bot.vercel.app/5trailus.png"
},
{
"title": "Dreamer (Samay, 17)",
"user": "Samay",
"description": "Dreamer makes learning more interesting for students with learning disorders.",
"link": "https://www.congressionalappchallenge.us/23-SC05/",
"img": "https://cloud-dcu6dxu0h-hack-club-bot.vercel.app/0dreamer.png"
},
{
"title": "Moment-ly (Zoya, 17)",
"user": "Zoya",
"description": "Moment-ly motivates a female demographic with tools, while promoting wellness.",
"link": "#",
"img": "https://cloud-dcu6dxu0h-hack-club-bot.vercel.app/4momently.png"
},
{
"title": "Progress in Congress (Anish)",
"user": "Anish",
"description": "Helps people stay informed about politics in their area",
"link": "https://www.congressionalappchallenge.us/22-NY18/",
"img": "https://cloud-454mt4dys-hack-club-bot.vercel.app/0image.png"
}
]

17463
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,609 @@
import {
Box,
Button,
Card,
Container,
Grid,
Heading,
Image,
Link,
Text
} from 'theme-ui'
import Meta from '@hackclub/meta'
import Head from 'next/head'
import NextLink from 'next/link'
import Nav from '../components/nav'
import SlideDown from '../components/slide-down'
import FadeIn from '../components/fade-in'
import Icon from '../components/icon'
import Footer from '../components/footer'
import { keyframes } from '@emotion/react'
import Carousel from '../components/congressional-app-challenge/carousel'
const color = '#000000'
function Page({
carouselCards
}) {
return (
<>
<Meta
as={Head}
title="Congressional App Challenge x Hack Club"
description="Landing page about how Hack Club can help students apply to the Congressional App Challenge"
image="https://cloud-r4rrjh2z8-hack-club-bot.vercel.app/52020-07-25_52g0nw40p2b00dh39mt93xq5ubku6yaj.jpeg"
/>
<Nav color={color} light />
<Box id="main">
<Box id="header"
as="header"
sx={{
color: 'text',
pt: [5, null, null, null, 6],
pb: [1, 2, 3, null, 4],
textAlign: 'center'
}}>
<Heading
as="h1"
variant="title"
sx={{
color: 'black',
textShadow: 'text',
width: '90%',
my: [3, 4],
mx: 'auto',
zIndex: 1
}}
>
<Text
as="span"
>
Build a cool project for the{' '}
</Text>
<Text
as="span"
sx={{
color: '#C70000',
}}
>
Congressional App Challenge
</Text>
</Heading>
<Box
id="lines"
sx={{
my: 5,
}}
>
<Box
as="hr"
sx={{
border: 'none',
borderTop: '20px solid',
borderColor: '#C70000',
width: '100%',
}}
/>
<Box
as="hr"
sx={{
border: 'none',
borderTop: '20px solid',
borderColor: '#001D85',
width: '100%',
my: 3,
}}
/>
</Box>
</Box>
<Container
id="about-hack-club"
sx={{
alignItems: 'center',
width: '90%',
display: 'flex',
flexDirection: ['column', 'row']}}>
<Box
sx={{
display: 'flex',
flexDirection: 'column',
alignItems:['center', 'flex-start'],
width: ['100%', '60%']
}}
>
<Text variant="headline" as="h1" >What is Hack Club?</Text>
<Text variant="subtitle" as="p" sx={{ textAlign: ['center', 'left']}}>
Hack Club is a community of thousands of Hack Clubbers who gather online and in person to make things with code.
Whether youre a beginner programmer or have years of experience, theres a place for you at Hack Club.
At Hack Club, you can meet other Hack Clubbers in your community at one of the 400+ Hack Clubs and high school
hackathons or build open-source games and tools together.
</Text>
<a target="_blank" href="https://forms.hackclub.com/t/eLhFehpKG6us">
<Button
sx={{
background:'#001D85',
color:'white',
borderRadius:'10px',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
fontSize:'23px',
margin: '10px 0 10px 0',
fontWeight:'bold'}}>
Get Free Stickers!
</Button>
</a>
</Box>
<Image src="/home/flagship_4.jpg"
sx={{
width: ['80%', '60%', '40%'],
marginTop: ['10px', 'null'],
borderRadius:'10px',
border: '5px solid',
borderColor: '#C70000',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
marginLeft: '10px'}}>
</Image>
</Container>
<Container
id="about-congressional"
sx={{
alignItems: 'center',
width: '90%',
display: 'flex',
marginTop: '4',
flexDirection: ['column', 'row']}}>
<Image src="https://www.congressionalappchallenge.us/wp-content/uploads/2018/08/Congressional-App-Challenge-Coalition-Vertical-2.png"
sx={{
width: ['80%', '60%', '40%'],
marginBottom: ['10px', 'null'],
borderRadius:'10px',
border: '5px solid',
borderColor: '#C70000',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
marginRight: '10px',
order: [1,0],
marginTop: ['10px', 'null']}}>
</Image>
<Box
sx={{
display: 'flex',
flexDirection: 'column',
alignItems:['center', 'flex-end'],
width: ['100%', '60%']
}}
>
<Text variant="headline" as="h1" sx={{textAlign: ['center', 'right']}}>What is the Congressional App Challenge?</Text>
<Text variant="subtitle" as="p" sx={{textAlign: ['center', 'right']}}>
The Congressional App Challenge is a contest where students create their own app,
regardless of their coding experience. In 2022, 35% of participants were beginners.
Youll learn coding skills, showcase your ideas, and access various opportunities.
</Text>
<a target="_blank" href="https://www.congressionalappchallenge.us/">
<Button
sx={{
background:'#001D85',
color:'white',
borderRadius:'10px',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
fontSize:'23px',
margin: '10px 0 10px 0',
fontWeight:'bold'}}>
Learn more here
</Button>
</a>
</Box>
</Container>
<Container id="steps" sx={{alignItems:'center', textAlign:'center', marginTop: '4',width: '90%'}}>
<Text variant="headline" as="h1">
<Text as="span">
How can Hack Club help you make an{' '}
</Text>
<Text
as="span"
sx={{
color: '#C70000',
}}
>
AMAZING{' '}
</Text>
<Text>Project?</Text>
</Text>
<Container id="step1" sx={{alignContent:'center'}}>
<Text as="h2" sx={{color:'#C70000', fontSize:'30px', mt:'2'}}>STEP 1</Text>
<Box
sx={{
alignItems: 'center',
width: '100%',
display: 'flex',
marginTop: '2',
flexDirection: ['column', 'row'],
justifyContent:'center'
}}>
<Text as="p" sx={{width:['100%', '50%'], fontSize:'23px', textAlign:['center','left']}}>Join the Hack Club Slack to get advice from past winners, help with your project, and to join a community of over 35K+ teen coders.</Text>
<a target="_blank" href="https://hackclub.com/slack/">
<Button
sx={{
background:'#001D85',
color:'white',
borderRadius:'10px',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
fontSize:'25px',
marginTop:'5px',
fontWeight:'bold',
ml:'2'}}>
#congressional-app-challenge
</Button>
</a>
</Box>
</Container>
<Container id="step2"
sx={{
background:'#001D85',
width:'100%',
borderRadius: '20px',
color:'white',
p:'2', mt:'5',
alignItems:'center',
display:'flex',
flexDirection:'column'
}}>
<Text as="h2" sx={{fontSize:'30px', mt:'3', color:'#C70000'}}>STEP 2</Text>
<Text as="p" sx={{width: ['90%', '70%'], fontSize:'23px'}}>Join Zoom calls with past Hack Club winners to learn about their projects and to get advice on where to start.</Text>
<Box
sx={{
display:'flex',
flexDirection:['column', 'row'],
m:'2'}}>
<Box
sx={{
display:'flex',
flexDirection:'column'}}>
<Image
src="/home/flagship_4.jpg"
sx={{ borderRadius: '10px', m:'3', wdith:['100%', '50%']}}>
</Image>
<Text as='p' sx={{fontSize:'23px'}}>Clay, 16</Text>
</Box>
<Box
sx={{
display:'flex',
flexDirection:'column'}}>
<Image
src="/home/flagship_4.jpg"
sx={{ borderRadius: '10px', m:'3', wdith:['100%', '50%']}}>
</Image>
<Text as='p' sx={{fontSize:'23px'}}>Sahiti, 17</Text>
</Box>
<Box
sx={{
display:'flex',
flexDirection:'column'}}>
<Image
src="/home/flagship_4.jpg"
sx={{ borderRadius: '10px', m:'3', wdith:['100%', '50%']}}>
</Image>
<Text as='p' sx={{fontSize:'23px'}}>Name, Age</Text>
</Box>
<Box
sx={{
display:'flex',
flexDirection:'column'}}>
<Image
src="/home/flagship_4.jpg"
sx={{ borderRadius: '10px', m:'3', wdith:['100%', '50%']}}>
</Image>
<Text as='p' sx={{fontSize:'23px'}}>Name, Age</Text>
</Box>
</Box>
<Grid
id="zoom-cards"
gap={2}
columns={[1, null, 3]}
sx={{
m:'2',
justifyContent:'center',
alignItems:'center',
justifyItems:'center'}}
>
<Box id="zoom-card" sx={{width:['90%'], m:'3'}}>
<Box
sx={{
alignItems:'center',
textAlign:'center',
display:'flex',
flexDirection:'column',
background:'white',
color:'black',
p:'2',
borderRadius: '10px',
marginBottom: '2',
padding: '3'}}
>
<Text as="h3" sx={{}}>September 10th, 7 PM EST</Text>
<a>
<Button sx={{background:'#001D85', color:'#white', mt:'2', borderRadius:'10px'}}>Add to Calendar</Button>
</a>
</Box>
</Box>
<Box id="zoom-card" sx={{width:['90%'], m:'3'}}>
<Box
sx={{
alignItems:'center',
textAlign:'center',
display:'flex',
flexDirection:'column',
background:'white',
color:'black',
p:'2',
borderRadius: '10px',
marginBottom: '2',
padding: '3'}}
>
<Text as="h3" sx={{}}>September 19th, 8 PM EST</Text>
<a>
<Button sx={{background:'#001D85', color:'#white', mt:'2', borderRadius:'10px'}}>Add to Calendar</Button>
</a>
</Box>
</Box>
<Box id="zoom-card" sx={{width:['90%'], m:'3'}}>
<Box
sx={{
alignItems:'center',
textAlign:'center',
display:'flex',
flexDirection:'column',
background:'white',
color:'black',
p:'2',
borderRadius: '10px',
marginBottom: '2',
padding: '3'}}
>
<Text as="h3" sx={{}}>October 2nd, 7 PM EST</Text>
<a>
<Button sx={{background:'#001D85', color:'#white', mt:'2', borderRadius:'10px'}}>Add to Calendar</Button>
</a>
</Box>
</Box>
</Grid>
</Container>
<Container id='step3'
sx={{
alignItems: 'center',
width: '100%',
display: 'flex',
marginTop: '2',
flexDirection: 'column',
justifyContent:'center'
}}>
<Text as="h2" sx={{color:'#C70000', fontSize:'30px', mt:'3'}}>STEP 3</Text>
<Text as="p" sx={{width: ['90%', '70%'], fontSize:'23px'}}>Submit your project for a grant!</Text>
<Grid
id="grant-drig"
gap={4}
columns={[1, 2]}
gridAutoRows={'1fr'}
sx={{
m:'2',
justifyContent:'center',
alignItems:'center'
}}>
<Box bg="#e9e9e9" sx={{borderRadius:'30px', p:'3', border: '3px solid', borderColor: '#C70000', height:'100%'}}>
<Image
sx={{
width:['100%', '55%']}}
src='https://cloud-d1apz790h-hack-club-bot.vercel.app/0orpheuslaptop.png'
>
</Image>
<Text as='h4' sx={{fontSize:'20px'}}>1. First, Come up with a project idea for the Congressional App Challenge, see project guidelines </Text>
<a href='https://www.congressionalappchallenge.us/students/rules/'>
<Text sx={{fontSize:'20px'}}as='h4'>here.</Text>
</a>
</Box>
<Box
bg="#e9e9e9"
sx={{
borderRadius:'30px',
p:'3', width:'100%',
border: '3px solid',
borderColor: '#C70000',
height:'100%',
display:'flex',
flexDirection:'column',
justifyContent:'center',
alignItems:'center'}}
>
<Box sx={{display:'flex', flexDirection:'column'}}>
<Box sx={{display:'flex', m:'2', justifyContent:'center', alignItems:'center', textAlign:'center'}}>
<a href='https://sprig.hackclub.com/' target="_blank">
<Button
sx={{
color:'#001D85',
background:'white',
border: '3px solid',
borderColor: '#001D85',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
borderRadius:'10px', mr:'2'}}
>Sprig
</Button>
</a>
<Text as='p' sx={{width:'100%'}}>Build a JS game, play it on your own console</Text>
</Box>
<Box sx={{display:'flex', m:'2', justifyContent:'center', alignItems:'center', textAlign:'center'}}>
<a href='https://hackclub.com/bin/' target="_blank">
<Button
sx={{
color:'#001D85',
background:'white',
border: '3px solid',
borderColor: '#001D85',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
width:'100%', borderRadius:'10px', mr:'2'}}
>The Bin
</Button>
</a>
<Text as='p' sx={{width:'100%'}}>Build an online circuit, get the parts for free!</Text>
</Box>
<Box sx={{display:'flex', m:'2', justifyContent:'center', alignItems:'center', textAlign:'center'}}>
<a href='https://hackclub.com/onboard/' target="_blank">
<Button
sx={{
color:'#001D85',
background:'white',
border: '3px solid',
borderColor: '#001D85',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
borderRadius:'10px', mr:'2'}}
>OnBoard
</Button>
</a>
<Text as='p' sx={{width:'100%'}}>Design a PCB, get a $100 gran</Text>
</Box>
<Box sx={{display:'flex', m:'2', justifyContent:'center', alignItems:'center', textAlign:'center'}}>
<a href='https://blot.hackclub.com/' target="_blank">
<Button
sx={{
color:'#001D85',
background:'white',
border: '3px solid',
borderColor: '#001D85',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
borderRadius:'10px', mr:'2'}}
>Blot
</Button>
</a>
<Text as='p' sx={{width:'100%'}}>Write code. Make art. Get a drawing machine.</Text>
</Box>
</Box>
<Text as='h4' sx={{mt:'2', fontSize:'20px'}}>2. Submit your project to one of Hack Club's Hardware You Ship, We Ship.</Text>
</Box>
<Box
bg="#e9e9e9"
sx={{
borderRadius:'30px',
p:'3',
border: '3px solid',
borderColor: '#C70000',
height:'100%'}}
>
<Image
sx={{
width:['100%', '60%']}}
src='https://cloud-he1w40eua-hack-club-bot.vercel.app/0hardware.png'
>
</Image>
<Text as='h4' sx={{fontSize:'20px'}}>3. Receive hardware that helps you complete your project.</Text>
</Box>
<Box
bg="#e9e9e9"
sx={{
borderRadius:'30px',
p:'3',
border: '3px solid',
borderColor: '#C70000',
height:'100%'}}
>
<Image
sx={{
width:['100%', '60%']}}
src='https://cloud-9e2cjx37b-hack-club-bot.vercel.app/0laptop.png'
>
</Image>
<Text as='h4' sx={{fontSize:'20px'}}>4. Submit your project to the Congressional App Challenge.</Text>
</Box>
</Grid>
<Text as="p" sx={{width: ['90%', '70%'], fontSize:'23px', mt:'4'}}>Explore other Hack Club You Ship, We Ship for additional grants</Text>
<Grid
id="ysws"
gap={2}
columns={[1, 3]}
sx={{
justifyContent:'center',
alignItems:'center',
fontSize:'14px',
mt:'3'}}
>
<a href='https://boba.hackclub.com/' target="_blank">
<Button
sx={{
color:'#001D85',
background:'white',
border: '3px solid',
borderColor: '#001D85',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
width:'100%', borderRadius:'10px'}}
>Boba Drops
</Button>
</a>
<a href='https://fraps.hackclub.com/' target="_blank">
<Button
sx={{
color:'#001D85',
background:'white',
border: '3px solid',
borderColor: '#001D85',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
width:'100%',
borderRadius:'10px'}}
>Hackaccino
</Button>
</a>
<a href='https://cider.hackclub.com/' target="_blank">
<Button
sx={{
color:'#001D85',
background:'white',
border: '3px solid',
borderColor: '#001D85',
boxShadow: '0 4px 8px rgba(0, 0, 0, 0.2)',
width:'100%',
borderRadius:'10px'}}
>Cider
</Button>
</a>
</Grid>
</Container>
</Container>
<Container id="past-winners"
sx={{
background:'#001D85',
width:'90%',
borderRadius: '20px',
color:'white',
p:'2', mt:'5',
alignItems:'center',
display:'flex',
flexDirection:'column',
textAlign:'center'
}}>
<Text as="h2" sx={{fontSize:'30px', mt:'3', color:'white'}}>Past Hack Club Winners</Text>
<Carousel cards = {carouselCards} />
</Container>
<Container id="madeby" sx={{mt:'4', mb:'4', textAlign:'center', alignItems:'center'}}>
<Text as="h2" sx={{fontSize:'25px'}}>Made with &lt;3 by Hack Clubbers</Text>
</Container>
</Box>
<Footer light />
</>
)
}
export async function getStaticProps() {
const carouselCards = require('../lib/congressional-carousel.json')
return {
props: {
carouselCards
},
revalidate: 60
}
}
export default Page

3566
yarn.lock

File diff suppressed because it is too large Load diff