Get Involved Page! #76
Merged
dora
merged 14 commits from feat/get-involved-page
into main
2 years ago
@ -0,0 +1,21 @@ |
||||
.header { |
||||
color: var(--blue-2); |
||||
font-weight: 600; |
||||
font-size: calc(36rem / 16); |
||||
margin-bottom: calc(12rem / 16); |
||||
} |
||||
|
||||
.socialLinks { |
||||
margin: calc(36rem / 16) 0; |
||||
line-height: 0; |
||||
} |
||||
|
||||
@media only screen and (max-width: calc(768rem / 16)) { |
||||
.header { |
||||
font-size: calc(24rem / 16); |
||||
} |
||||
|
||||
.socialLinks { |
||||
margin: 1rem 0; |
||||
} |
||||
} |
@ -0,0 +1,25 @@ |
||||
import React from "react"; |
||||
import styles from "./ConnectWithUs.module.css"; |
||||
import { SocialLinks } from "./SocialLinks"; |
||||
import { Link } from "./Link"; |
||||
|
||||
export function ConnectWithUs() { |
||||
return ( |
||||
<section> |
||||
<h1 className={styles.header}>Connect with us!</h1> |
||||
<p> |
||||
Drop by any of our social media outlets to learn more about us, keep |
||||
up-to-date with our upcoming events, or to chat with our members! |
||||
</p> |
||||
|
||||
<div className={styles.socialLinks}> |
||||
<SocialLinks color="gradient" size="big" /> |
||||
</div> |
||||
|
||||
{/* TODO: fix feedback form link */} |
||||
<p> |
||||
Send feedback through our <Link href="#">Feedback Form</Link> |
||||
</p> |
||||
</section> |
||||
); |
||||
} |
@ -0,0 +1,25 @@ |
||||
.container form { |
||||
box-sizing: border-box; |
||||
} |
||||
|
||||
.header { |
||||
color: var(--blue-2); |
||||
a3thakra marked this conversation as resolved
|
||||
font-weight: 600; |
||||
font-size: calc(36rem / 16); |
||||
margin-bottom: calc(12rem / 16); |
||||
} |
||||
|
||||
.button { |
||||
margin-top: calc(34rem / 16); |
||||
display: block; |
||||
} |
||||
|
||||
@media only screen and (max-width: calc(768rem / 16)) { |
||||
.header { |
||||
font-size: calc(24rem / 16); |
||||
} |
||||
|
||||
.button { |
||||
a3thakra marked this conversation as resolved
|
||||
margin-top: calc(20rem / 16); |
||||
} |
||||
} |
@ -0,0 +1,19 @@ |
||||
import React from "react"; |
||||
import styles from "./EmailSignup.module.css"; |
||||
import { Button } from "./Button"; |
||||
import { Input } from "./Input"; |
||||
|
||||
export function EmailSignup() { |
||||
return ( |
||||
<section className={styles.container}> |
||||
<h1 className={styles.header}>Join Our Mailing List!</h1> |
||||
<form className={styles.form} action=""> |
||||
<Input type="text" placeholder="Full Name*" required /> |
||||
<Input type="email" placeholder="Email*" required /> |
||||
<Button type="submit" className={styles.button}> |
||||
Subscribe |
||||
</Button> |
||||
</form> |
||||
</section> |
||||
); |
||||
} |
@ -0,0 +1,37 @@ |
||||
.input { |
||||
display: block; |
||||
width: 100%; |
||||
margin: calc(21rem / 16) 0; |
||||
padding: calc(10rem / 16) calc(32rem / 16); |
||||
|
||||
box-sizing: border-box; |
||||
border: 0; |
||||
border-radius: calc(20rem / 16); |
||||
|
||||
background-color: var(--grey-1-24); |
||||
font-size: calc(18rem / 16); |
||||
line-height: calc(30rem / 16); |
||||
color: var(--grey-3); |
||||
} |
||||
|
||||
.input::placeholder { |
||||
color: var(--grey-2); |
||||
font-weight: 700; |
||||
} |
||||
|
||||
.input:is(:active, :hover, :focus) { |
||||
box-sizing: border-box; |
||||
border: calc(3rem / 16) solid var(--blue-1); |
||||
border-radius: calc(20rem / 16); |
||||
outline: none; |
||||
padding: calc(7rem / 16) calc(28rem / 16); |
||||
} |
||||
|
||||
/* TODO: make this only happen if the form is clicked on? */ |
||||
/* .form input:invalid { |
||||
box-sizing: border-box; |
||||
border: calc(3rem / 16) solid var(--red); |
||||
border-radius: calc(20rem / 16); |
||||
outline: none; |
||||
padding: calc(7rem / 16) calc(28rem / 16); |
||||
} */ |
@ -0,0 +1,8 @@ |
||||
import React, { InputHTMLAttributes } from "react"; |
||||
import styles from "./Input.module.css"; |
||||
|
||||
export function Input(props: InputHTMLAttributes<HTMLInputElement>) { |
||||
return ( |
||||
<input {...props} className={`${styles.input} ${props.className ?? ""}`} /> |
||||
); |
||||
} |
@ -1 +0,0 @@ |
||||
# Get Involved page |
@ -0,0 +1,112 @@ |
||||
.headerContainer { |
||||
display: flex; |
||||
flex-direction: row; |
||||
border-bottom: calc(1rem / 16) solid var(--purple-2); |
||||
} |
||||
|
||||
.headerText h1 { |
||||
color: var(--purple-2); |
||||
margin: 0 0 calc(8rem / 16) 0; |
||||
} |
||||
|
||||
.headerText p { |
||||
color: var(--black); |
||||
margin: 0 0 calc(22rem / 16) 0; |
||||
} |
||||
|
||||
.codey { |
||||
align-self: flex-end; |
||||
} |
||||
|
||||
.content { |
||||
margin-top: calc(32rem / 16); |
||||
} |
||||
|
||||
.content h2 { |
||||
font-weight: 600; |
||||
color: var(--blue-2); |
||||
margin-top: calc(30rem / 16); |
||||
} |
||||
|
||||
.content h3 { |
||||
font-weight: 600; |
||||
color: var(--purple-2); |
||||
margin-top: calc(30rem / 16); |
||||
margin-bottom: 1rem; |
||||
} |
||||
|
||||
.content h4 { |
||||
margin-bottom: 0; |
||||
} |
||||
|
||||
.content h4 + * { |
||||
margin-top: calc(8rem / 16); |
||||
} |
||||
|
||||
.content strong { |
||||
font-weight: 600; |
||||
} |
||||
.content details > * { |
||||
padding-left: 1rem; |
||||
} |
||||
|
||||
.content details > summary { |
||||
padding-left: 0; |
||||
} |
||||
|
||||
.content details ol { |
||||
padding-left: 2rem; |
||||
} |
||||
|
||||
.connectWithUs { |
||||
margin-bottom: calc(21rem / 16); |
||||
} |
||||
|
||||
.emailSignup { |
||||
margin-bottom: calc(58rem / 16); |
||||
} |
||||
|
||||
.pageContainer { |
||||
margin-top: calc(50rem / 16); |
||||
} |
||||
|
||||
@media only screen and (max-width: calc(768rem / 16)) { |
||||
.headerContainer { |
||||
display: flex; |
||||
flex-direction: column-reverse; |
||||
align-content: center; |
||||
border-bottom: none; |
||||
} |
||||
|
||||
.headerText { |
||||
margin-top: calc(6rem / 16); |
||||
text-align: center; |
||||
} |
||||
|
||||
.headerText h1 { |
||||
color: var(--purple-2); |
||||
font-size: calc(24rem / 16); |
||||
margin-bottom: (12rem / 16); |
||||
} |
||||
|
||||
.headerText p { |
||||
margin: 0; |
||||
} |
||||
|
||||
.codey { |
||||
align-self: center; |
||||
height: calc(62rem / 16); |
||||
} |
||||
|
||||
.content h2 { |
||||
font-size: calc(24rem / 16); |
||||
} |
||||
|
||||
.connectWithUs { |
||||
margin-bottom: calc(46rem / 16); |
||||
} |
||||
|
||||
.emailSignup { |
||||
margin-bottom: calc(104rem / 16); |
||||
} |
||||
} |
@ -0,0 +1,32 @@ |
||||
import React from "react"; |
||||
import { Image } from "../components/Image"; |
||||
import { ConnectWithUs } from "../components/ConnectWithUs"; |
||||
import { EmailSignup } from "../components/EmailSignup"; |
||||
import Content from "../content/get-involved.mdx"; |
||||
import styles from "./get-involved.module.css"; |
||||
|
||||
export default function GetInvolved() { |
||||
return ( |
||||
<div className={styles.pageContainer}> |
||||
<div className={styles.headerContainer}> |
||||
<div className={styles.headerText}> |
||||
<h1>Get Involved!</h1> |
||||
<p> |
||||
If you’re interested in helping out with CS Club, don’t hesitate to |
||||
get in touch with us! |
||||
</p> |
||||
</div> |
||||
<Image src="images/get-involved/codey.svg" className={styles.codey} /> |
||||
</div> |
||||
<main className={styles.content}> |
||||
<Content /> |
||||
</main> |
||||
<div className={styles.connectWithUs}> |
||||
<ConnectWithUs /> |
||||
</div> |
||||
<div className={styles.emailSignup}> |
||||
<EmailSignup /> |
||||
</div> |
||||
</div> |
||||
); |
||||
} |
After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB |
Loading…
Reference in new issue
add a padding to the container instead