final merge pull request #8 from ieeeucsd/firebase

bring main up to firebase
This commit is contained in:
Raymond Wang 2022-10-26 09:11:30 -07:00 committed by GitHub
commit f268e0fa6a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
79 changed files with 586 additions and 580 deletions

View file

@ -29,17 +29,17 @@ export const EVENTS: unknown[] = [];
export const SOCIALS = [
{
icon: "img/disc.svg",
icon: "/assets/img/disc.svg",
url: "https://discord.gg/XxfjqZSjca",
message: "Join our server",
},
{
icon: "img/fab.svg",
icon: "/assets/img/fab.svg",
url: "https://www.facebook.com/ieeeucsd",
message: "ieeeucsd",
},
{
icon: "img/inst.svg",
icon: "/assets/img/inst.svg",
url: "https://www.instagram.com/ieee.ucsd",
message: "@ieeeucsd",
},
@ -47,7 +47,7 @@ export const SOCIALS = [
export const EMAIL = [
{
icon: "img/email.svg",
icon: "/assets/img/email.svg",
url: "mailto:ieee@eng.ucsd.edu",
message: "ieee@eng.ucsd.edu",
},
@ -55,7 +55,7 @@ export const EMAIL = [
export const EMAIL_WHITE = [
{
icon: "img/email_white.svg",
icon: "/assets/img/email_white.svg",
url: "mailto:ieee@eng.ucsd.edu",
message: "ieee@eng.ucsd.edu",
},
@ -63,17 +63,17 @@ export const EMAIL_WHITE = [
export const SOCIALS_WHITE = [
{
icon: "img/disc_white.svg",
icon: "/assets/img/disc_white.svg",
url: "https://discord.gg/XxfjqZSjca",
message: "Join our server",
},
{
icon: "img/fab_white.svg",
icon: "/assets/img/fab_white.svg",
url: "https://www.facebook.com/ieeeucsd",
message: "ieeeucsd",
},
{
icon: "img/inst_white.svg",
icon: "/assets/img/inst_white.svg",
url: "https://www.instagram.com/ieee.ucsd",
message: "@ieeeucsd",
},
@ -83,157 +83,157 @@ export const OFFICERS = [
{
name: "Darin Tsui",
position: "Chair",
photo: "img/officers/darin.jpg",
photo: "/assets/img/officers/darin.jpg",
email: "email@ucsd.edu",
},
{
name: "Brigette Hacia",
position: "Vice Chair Internal",
photo: "img/officers/brigette.jpg",
photo: "/assets/img/officers/brigette.jpg",
email: "email@ucsd.edu",
},
{
name: "Tasnia Jamal",
position: "Vice Chair Events",
photo: "img/officers/tasnia.jpg",
photo: "/assets/img/officers/tasnia.jpg",
email: "email@ucsd.edu",
},
{
name: "Kevin Chang",
position: "Vice Chair Projects",
photo: "img/officers/kevin.jpg",
photo: "/assets/img/officers/kevin.jpg",
email: "email@ucsd.edu",
},
{
name: "Arjun Sampath",
position: "Vice Chair Finance",
photo: "img/officers/arjun.jpg",
photo: "/assets/img/officers/arjun.jpg",
email: "email@ucsd.edu",
},
{
name: "Niklas Chang",
position: "Events Coordinator",
photo: "img/officers/niklas.jpg",
photo: "/assets/img/officers/niklas.jpg",
email: "email@ucsd.edu",
},
{
name: "Tien Vu",
position: "Vice Chair External",
photo: "img/officers/tien.jpg",
photo: "/assets/img/officers/tien.jpg",
email: "email@ucsd.edu",
},
{
name: "Derek Nguyen",
position: "Project Space Chair",
photo: "img/officers/derek.jpg",
photo: "/assets/img/officers/derek.jpg",
email: "email@ucsd.edu",
},
{
name: "Rafaella Gomes",
position: "Robocup Chair",
photo: "img/officers/rafaella.jpg",
photo: "/assets/img/officers/rafaella.jpg",
email: "email@ucsd.edu",
},
{
name: "Yash Puneet",
position: "Robocup Chair",
photo: "img/officers/yash.jpg",
photo: "/assets/img/officers/yash.jpg",
email: "email@ucsd.edu",
},
{
name: "Matthew Mikhailov",
position: "Supercomputing Chair",
photo: "img/officers/matthew.jpg",
photo: "/assets/img/officers/matthew.jpg",
email: "email@ucsd.edu",
},
{
name: "Josh Lapidario",
position: "Quarterly Projects Chair",
photo: "img/officers/josh.jpg",
photo: "/assets/img/officers/josh.jpg",
email: "email@ucsd.edu",
},
{
name: "Sanh Nguyen",
position: "Quarterly Projects Chair",
photo: "img/officers/sanh.jpg",
photo: "/assets/img/officers/sanh.jpg",
email: "email@ucsd.edu",
},
{
name: "Vuong Bui",
position: "Professional Chair",
photo: "img/officers/vuong.jpg",
photo: "/assets/img/officers/vuong.jpg",
email: "email@ucsd.edu",
},
{
name: "Jason Liang",
position: "Professional Chair",
photo: "img/officers/jason.jpg",
photo: "/assets/img/officers/jason.jpg",
email: "email@ucsd.edu",
},
{
name: "Mohak Vaswani",
position: "Technical Chair",
photo: "img/officers/mohak.jpg",
photo: "/assets/img/officers/mohak.jpg",
email: "email@ucsd.edu",
},
{
name: "Yusuf Morsi",
position: "Technical Chair",
photo: "img/officers/yusuf.jpg",
photo: "/assets/img/officers/yusuf.jpg",
email: "email@ucsd.edu",
},
{
name: "Shaun Garcia",
position: "Technical Chair",
photo: "img/officers/shaun.jpg",
photo: "/assets/img/officers/shaun.jpg",
email: "email@ucsd.edu",
},
{
name: "Dennis Liang",
position: "Outreach Chair",
photo: "img/officers/dennis.jpg",
photo: "/assets/img/officers/dennis.jpg",
email: "email@ucsd.edu",
},
{
name: "Daniel Chen",
position: "Outreach Chair",
photo: "img/officers/daniel.jpg",
photo: "/assets/img/officers/daniel.jpg",
email: "email@ucsd.edu",
},
{
name: "Parisa Shahabi",
position: "Social Chair",
photo: "img/officers/parisa.jpg",
photo: "/assets/img/officers/parisa.jpg",
email: "email@ucsd.edu",
},
{
name: "Matthew Yik",
position: "Social Chair",
photo: "img/officers/temp.png",
photo: "/assets/img/officers/temp.png",
email: "email@ucsd.edu",
},
{
name: "Jiliana Tiu",
position: "Webmaster",
photo: "img/officers/jiliana.jpg",
photo: "/assets/img/officers/jiliana.jpg",
email: "email@ucsd.edu",
},
{
name: "Raymond Wang",
position: "Webmaster",
photo: "img/officers/raymond.jpg",
photo: "/assets/img/officers/raymond.jpg",
email: "raymond@ucsd.edu",
},
{
name: "Sankalp Kaushik",
position: "PR Chair - Media",
photo: "img/officers/sankalp.jpg",
photo: "/assets/img/officers/sankalp.jpg",
email: "email@ucsd.edu",
},
{
name: "Stephanie Xu",
position: "PR Chair - Graphics",
photo: "img/officers/stephanie.jpg",
photo: "/assets/img/officers/stephanie.jpg",
email: "email@ucsd.edu",
},
];

View file

@ -0,0 +1,443 @@
/* Global CSS Properties */
:root {
--main: #00629b;
--accent: #ffcd00;
--secondary: #ffffff;
--dark: #2a1a4e;
}
* {
scrollbar-width: auto;
scrollbar-color: var(--main) transparent;
}
*::-webkit-scrollbar {
width: 0.6em;
height: 0.6em;
}
*::-webkit-scrollbar-track {
background: var(--main);
}
*::-webkit-scrollbar-thumb {
background-color: var(--secondary);
}
html {
font-family: "Roboto", sans-serif;
font-weight: bold;
}
body {
margin: 0;
}
a {
text-decoration: none;
color: var(--main);
}
a:hover {
text-decoration: underline;
}
#root {
display: flex;
flex-direction: column;
}
.topbar {
display: flex;
flex-direction: row;
justify-content: space-between;
color: var(--main);
background-color: var(--secondary);
padding: 0.5em;
align-items: center;
}
.topbar.burger-bar {
flex-direction: column;
position: relative;
}
.topbar.burger-bar > .img-cont {
align-self: flex-start;
display: flex;
justify-content: space-between;
width: 100%;
align-items: center;
}
.img-cont img {
width: 22em;
}
.burger {
font-size: 2.8em;
font-weight: normal;
user-select: none;
cursor: pointer;
margin-right: 0.3em;
}
.link-items.burger-time {
flex-direction: column;
position: absolute;
background-color: var(--secondary);
width: 10em;
box-shadow: rgba(0, 0, 0, 0.3) 4px 4px 3px 0px;
right: 0;
margin-top: 0.36em;
}
.link-items.burger-time > a {
margin: 0;
padding: 0.4em 0.75em;
}
.link-items.burger-time > a:hover {
background-color: rgba(0, 0, 0, 0.1);
}
.navlink {
font-size: 1.1em;
margin: 0.75em;
}
.splash {
background-color: var(--main);
background-blend-mode: overlay;
border-radius: 0 0 50% 50% / 4rem;
background-position: center;
height: 35em;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-repeat: no-repeat;
background-size: cover;
}
.call-to-action {
font-size: 3.2em;
width: 11em;
color: var(--secondary);
text-align: center;
font-family: "Montserrat";
}
.splash-socials {
margin-top: 2em;
}
.splash-socials > a {
margin-left: 1.5em;
margin-right: 1.5em;
}
.splash-socials img {
width: 4.7em;
}
.default-section {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
color: var(--main);
background-color: var(--secondary);
padding-top: 2em;
padding-bottom: 2em;
}
.section-title {
font-size: 3em;
margin-top: 0.8em;
margin-bottom: 0.8em;
}
.default-section > p,
.project-space > p {
font-size: 1.8em;
width: 22em;
color: var(--dark);
text-align: center;
}
.project-space > p {
color: var(--secondary);
}
.default-section > p:first-child {
margin-top: 0;
}
.project-space {
border-radius: 50% 50% 0 0 / 4rem;
background-color: var(--main);
background-blend-mode: overlay;
background-image: url("../img/backgrounds/ps.webp");
height: 40em;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-repeat: no-repeat;
background-size: cover;
}
.project-space a {
color: var(--accent);
}
.ps-title {
font-size: 3em;
color: white;
margin-bottom: 1em;
}
.visit-us {
font-size: 2em;
margin-bottom: 2em;
}
.ex-link {
color: var(--accent);
font-size: 2em;
margin-bottom: 2em;
}
.involved {
border-radius: 50% 50% 0 0 / 4rem;
transform: translateY(-4rem);
}
.cards {
display: flex;
justify-content: space-around;
flex-wrap: wrap;
}
.involve-card {
padding: 1.75em 2.5em;
border: var(--main) solid 0.37em;
border-radius: 1.5em;
color: var(--main);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
margin: 1em;
}
.involve-title {
font-size: 3em;
color: var(--main);
margin-bottom: 0.5em;
}
.involve-card > img {
width: 20em;
margin-bottom: 1em;
border-radius: 0.2em;
}
.links {
font-size: 1.5em;
}
.social-card {
display: flex;
align-items: center;
padding: 1em;
width: 25em;
}
.social-card > img {
width: 4.7em;
}
.social-message {
font-size: 2em;
padding: 0.5em;
}
.join-scls,
.footer-scls {
display: flex;
flex-direction: row;
max-width: 55em;
justify-content: space-around;
flex-wrap: wrap;
margin-left: 5em;
}
.carousel-item {
display: flex;
flex-direction: column;
align-items: center;
padding: 1.5em;
border: 0.35em solid var(--main);
border-radius: 1em;
margin: 1em;
}
.carousel-item > img {
width: 18.7em;
border-radius: 0.2em;
}
.carousel-name {
font-size: 2em;
padding-top: 0.25em;
}
.carousel-pos {
font-style: italic;
font-weight: normal;
font-size: 1.25em;
}
.carousel-email {
margin-top: 0.5em;
}
.carousel-page {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.carousel {
display: flex;
align-items: center;
justify-content: center;
}
.carousel-left {
margin-left: 2em;
transform: scaleX(-1);
}
.carousel-right,
.carousel-left {
cursor: pointer;
width: 4em;
}
.carousel-right {
margin-right: 2em;
}
.contact {
border-radius: 0 0 50% 50% / 4rem;
transform: translateY(4rem);
}
.footer {
background-color: var(--main);
padding-top: 7em;
display: flex;
justify-content: space-between;
align-items: start;
padding-left: 2em;
padding-right: 2em;
}
.footer a {
color: white;
}
.footer-scls {
max-width: 30em;
font-size: 0.6em;
margin-bottom: 2em;
}
.footer-scls img {
width: 4.7em;
}
.footer > img {
width: 30em;
}
/* Responsive queries go here */
@media screen and (max-width: 700px) {
html {
font-size: 0.85em;
}
}
@media screen and (max-width: 650px) {
html {
font-size: 0.8em;
}
.footer > img {
width: 15em;
}
}
@media screen and (max-width: 540px) {
html {
font-size: 0.6em;
}
.footer > img {
display: none;
}
}
@media screen and (max-width: 420px) {
html {
font-size: 0.5em;
}
}
@media screen and (max-width: 320px) {
html {
font-size: 0.45em;
}
}
#cal {
border: solid 1px #777;
width: 800px;
height: 600px;
}
#calendar {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
color: var(--main);
padding-top: 2em;
padding-bottom: 2em;
}
iframe {
width: 80vw;
height: 600px;
max-width: 1000px;
}
.project-desc {
display: flex;
justify-content: center;
column-gap: 10em;
vertical-align: middle;
flex-wrap: wrap;
padding: 2em;
align-items: center;
}
.project-desc img {
border-radius: 0.2em;
width: 100%;
max-width: 600px;
max-height: 400px;
}

View file

Before

Width:  |  Height:  |  Size: 492 B

After

Width:  |  Height:  |  Size: 492 B

View file

Before

Width:  |  Height:  |  Size: 107 KiB

After

Width:  |  Height:  |  Size: 107 KiB

View file

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 58 KiB

View file

Before

Width:  |  Height:  |  Size: 275 KiB

After

Width:  |  Height:  |  Size: 275 KiB

View file

Before

Width:  |  Height:  |  Size: 73 KiB

After

Width:  |  Height:  |  Size: 73 KiB

View file

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

View file

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 40 KiB

View file

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

View file

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 121 KiB

View file

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

View file

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 129 KiB

View file

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

View file

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View file

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 115 KiB

View file

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

View file

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

Before

Width:  |  Height:  |  Size: 899 B

After

Width:  |  Height:  |  Size: 899 B

View file

Before

Width:  |  Height:  |  Size: 897 B

After

Width:  |  Height:  |  Size: 897 B

View file

Before

Width:  |  Height:  |  Size: 511 B

After

Width:  |  Height:  |  Size: 511 B

View file

Before

Width:  |  Height:  |  Size: 509 B

After

Width:  |  Height:  |  Size: 509 B

View file

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View file

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View file

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 78 KiB

View file

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

View file

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View file

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View file

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View file

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

Before

Width:  |  Height:  |  Size: 104 KiB

After

Width:  |  Height:  |  Size: 104 KiB

View file

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View file

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View file

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View file

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View file

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

View file

Before

Width:  |  Height:  |  Size: 60 KiB

After

Width:  |  Height:  |  Size: 60 KiB

View file

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 55 KiB

View file

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View file

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 57 KiB

View file

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

View file

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

View file

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

View file

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View file

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View file

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View file

@ -22,7 +22,7 @@ class Main extends React.Component {
<Splash
cta="The backbone of IEEE. Come help make a difference!"
delay={2000}
backgrounds={["img/backgrounds/committee.webp"]}
backgrounds={["/assets/img/backgrounds/committee.webp"]}
></Splash>
<DefaultSection
title="Join us!"
@ -34,27 +34,27 @@ class Main extends React.Component {
<div className="cards">
<InvolveBox
boxTitle=""
image="img/committees/technical.webp"
image="/assets/img/committees/technical.webp"
description="Technical Committee"
></InvolveBox>
<InvolveBox
boxTitle=""
image="img/committees/social.webp"
image="/assets/img/committees/social.webp"
description="Social Committee"
></InvolveBox>
<InvolveBox
boxTitle=""
image="img/committees/professional.webp"
image="/assets/img/committees/professional.webp"
description="Professional Committee"
></InvolveBox>
<InvolveBox
boxTitle=""
image="img/committees/pr.webp"
image="/assets/img/committees/pr.webp"
description="PR Committee"
></InvolveBox>
<InvolveBox
boxTitle=""
image="img/committees/outreach.webp"
image="/assets/img/committees/outreach.webp"
description="Outreach Committee"
></InvolveBox>
</div>

View file

@ -43,7 +43,7 @@ export default class Carousel extends Component<CarouselProps, CarouselState> {
<div className="carousel">
<img
className="carousel-left"
src="img/arrow.svg"
src="/assets/img/arrow.svg"
style={
this.state.page === 0 ? { visibility: "hidden" } : {}
}
@ -60,7 +60,7 @@ export default class Carousel extends Component<CarouselProps, CarouselState> {
</div>
<img
className="carousel-right"
src="img/arrow.svg"
src="/assets/img/arrow.svg"
style={
this.state.page === arr.length - 1
? { visibility: "hidden" }

View file

@ -12,7 +12,7 @@ export default class Footer extends Component {
public render() {
return (
<div className="footer">
<img src="img/logo_white.svg"></img>
<img src="/assets/img/logo_white.svg"></img>
<div className="footer-scls">
{[...EMAIL_WHITE, ...SOCIALS_WHITE].map((n) => (
<SocialCard

View file

@ -44,7 +44,7 @@ export default class TopBar extends React.Component<TopBarProps, TopBarState> {
>
<div className="img-cont">
<a href="/">
<img src="img/logo.svg"></img>
<img src="/assets/img/logo.svg"></img>
</a>
<div
className="burger"

View file

@ -1,440 +0,0 @@
/* Global CSS Properties */
:root {
--main: #00629b;
--accent: #ffcd00;
--secondary: #ffffff;
--dark: #2a1a4e;
}
* {
scrollbar-width: auto;
scrollbar-color: var(--main) transparent;
}
*::-webkit-scrollbar {
width: 0.6em;
height: 0.6em;
}
*::-webkit-scrollbar-track {
background: var(--main);
}
*::-webkit-scrollbar-thumb {
background-color: var(--secondary);
}
html {
font-family: "Roboto", sans-serif;
font-weight: bold;
}
body {
margin: 0;
}
a {
text-decoration: none;
color: var(--main);
}
a:hover {
text-decoration: underline;
}
#root {
display: flex;
flex-direction: column;
}
.topbar {
display: flex;
flex-direction: row;
justify-content: space-between;
color: var(--main);
background-color: var(--secondary);
padding: 0.5em;
align-items: center;
}
.topbar.burger-bar {
flex-direction: column;
position: relative;
}
.topbar.burger-bar>.img-cont {
align-self: flex-start;
display: flex;
justify-content: space-between;
width: 100%;
align-items: center;
}
.img-cont img {
width: 22em;
}
.burger {
font-size: 2.8em;
font-weight: normal;
user-select: none;
cursor: pointer;
margin-right: 0.3em;
}
.link-items.burger-time {
flex-direction: column;
position: absolute;
background-color: var(--secondary);
width: 10em;
box-shadow: rgba(0, 0, 0, 0.3) 4px 4px 3px 0px;
right: 0;
margin-top: 0.36em;
}
.link-items.burger-time>a {
margin: 0;
padding: 0.4em 0.75em;
}
.link-items.burger-time>a:hover {
background-color: rgba(0, 0, 0, 0.1);
}
.navlink {
font-size: 1.1em;
margin: 0.75em;
}
.splash {
background-color: var(--main);
background-blend-mode: overlay;
border-radius: 0 0 50% 50% / 4rem;
background-position: center;
height: 35em;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-repeat: no-repeat;
background-size: cover;
}
.call-to-action {
font-size: 3.2em;
width: 11em;
color: var(--secondary);
text-align: center;
font-family: "Montserrat";
}
.splash-socials {
margin-top: 2em;
}
.splash-socials>a {
margin-left: 1.5em;
margin-right: 1.5em;
}
.splash-socials img {
width: 4.7em;
}
.default-section {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
color: var(--main);
background-color: var(--secondary);
padding-top: 2em;
padding-bottom: 2em;
}
.section-title {
font-size: 3em;
margin-top: 0.8em;
margin-bottom: 0.8em;
}
.default-section>p,
.project-space>p {
font-size: 1.8em;
width: 22em;
color: var(--dark);
text-align: center;
}
.project-space>p {
color: var(--secondary);
}
.default-section>p:first-child {
margin-top: 0;
}
.project-space {
border-radius: 50% 50% 0 0 / 4rem;
background-color: var(--main);
background-blend-mode: overlay;
background-image: url("../img/backgrounds/ps.webp");
height: 40em;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
background-repeat: no-repeat;
background-size: cover;
}
.project-space a {
color: var(--accent);
}
.ps-title {
font-size: 3em;
color: white;
margin-bottom: 1em;
}
.visit-us {
font-size: 2em;
margin-bottom: 2em;
}
.ex-link {
color: var(--accent);
font-size: 2em;
margin-bottom: 2em;
}
.involved {
border-radius: 50% 50% 0 0 / 4rem;
transform: translateY(-4rem);
}
.cards {
display: flex;
justify-content: space-around;
flex-wrap: wrap;
}
.involve-card {
padding: 1.75em 2.5em;
border: var(--main) solid 0.37em;
border-radius: 1.5em;
color: var(--main);
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
margin: 1em;
}
.involve-title {
font-size: 3em;
color: var(--main);
margin-bottom: 0.5em;
}
.involve-card>img {
width: 20em;
margin-bottom: 1em;
border-radius: 0.2em;
}
.links {
font-size: 1.5em;
}
.social-card {
display: flex;
align-items: center;
padding: 1em;
width: 25em;
}
.social-card>img {
width: 4.7em;
}
.social-message {
font-size: 2em;
padding: 0.5em;
}
.join-scls,
.footer-scls {
display: flex;
flex-direction: row;
max-width: 55em;
justify-content: space-around;
flex-wrap: wrap;
margin-left: 5em;
}
.carousel-item {
display: flex;
flex-direction: column;
align-items: center;
padding: 1.5em;
border: 0.35em solid var(--main);
border-radius: 1em;
margin: 1em;
}
.carousel-item>img {
width: 18.7em;
border-radius: 0.2em;
}
.carousel-name {
font-size: 2em;
padding-top: 0.25em;
}
.carousel-pos {
font-style: italic;
font-weight: normal;
font-size: 1.25em;
}
.carousel-email {
margin-top: 0.5em;
}
.carousel-page {
display: flex;
flex-wrap: wrap;
justify-content: center;
}
.carousel {
display: flex;
align-items: center;
justify-content: center;
}
.carousel-left {
margin-left: 2em;
transform: scaleX(-1);
}
.carousel-right,
.carousel-left {
cursor: pointer;
width: 4em;
}
.carousel-right {
margin-right: 2em;
}
.contact {
border-radius: 0 0 50% 50% / 4rem;
transform: translateY(4rem);
}
.footer {
background-color: var(--main);
padding-top: 7em;
display: flex;
justify-content: space-between;
align-items: start;
padding-left: 2em;
padding-right: 2em;
}
.footer a {
color: white;
}
.footer-scls {
max-width: 30em;
font-size: 0.6em;
margin-bottom: 2em;
}
.footer-scls img {
width: 4.7em;
}
.footer>img {
width: 30em;
}
/* Responsive queries go here */
@media screen and (max-width: 700px) {
html {
font-size: 0.85em;
}
}
@media screen and (max-width: 650px) {
html {
font-size: 0.8em;
}
.footer>img {
width: 15em;
}
}
@media screen and (max-width: 540px) {
html {
font-size: 0.6em;
}
.footer>img {
display: none;
}
}
@media screen and (max-width: 420px) {
html {
font-size: 0.5em;
}
}
@media screen and (max-width: 320px) {
html {
font-size: 0.45em;
}
}
#cal {
border: solid 1px #777;
width: 800px;
height: 600px;
}
#calendar {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
color: var(--main);
padding-top: 2em;
padding-bottom: 2em;
}
iframe {
width: 80vw;
height: 600px;
max-width: 1000px;
}
.project-desc {
display: flex;
justify-content: center;
column-gap: 10em;
vertical-align: middle;
flex-wrap: wrap;
}
.project-desc img {
width: 30em;
padding-top: 3em;
padding-bottom: 3em;
}

View file

@ -20,7 +20,7 @@ class Main extends React.Component {
<Splash
cta="Come out to our events!"
delay={2000}
backgrounds={["img/backgrounds/fa21social.webp"]}
backgrounds={["/assets/img/backgrounds/fa21social.webp"]}
></Splash>
<DefaultSection title="Events">

View file

Before

Width:  |  Height:  |  Size: 361 KiB

After

Width:  |  Height:  |  Size: 361 KiB

View file

@ -22,7 +22,7 @@ class Main extends React.Component {
<Splash
cta="Join the 2nd largest IEEE student branch in the US!"
delay={2000}
backgrounds={["img/backgrounds/fa21qp.webp"]}
backgrounds={["/assets/img/backgrounds/fa21qp.webp"]}
></Splash>
<div id="about-us">
<DefaultSection
@ -61,17 +61,17 @@ class Main extends React.Component {
<div className="cards">
<InvolveBox
boxTitle="Events"
image="img/backgrounds/fa21social.webp"
image="/assets/img/backgrounds/fa21social.webp"
description="Meet fellow IEEE members!"
></InvolveBox>
<InvolveBox
boxTitle="Projects"
image="img/backgrounds/robofest.webp"
image="/assets/img/backgrounds/robofest.webp"
description="Learn new skills!"
></InvolveBox>
<InvolveBox
boxTitle="Committees"
image="img/backgrounds/gbm.webp"
image="/assets/img/backgrounds/gbm.webp"
description="Build our amazing community!"
></InvolveBox>
</div>

View file

@ -21,7 +21,7 @@ class Main extends React.Component {
<Splash
cta="Gain hands-on experience to make your resume stand out! No experience required!"
delay={2000}
backgrounds={["img/backgrounds/robocar.webp"]}
backgrounds={["/assets/img/backgrounds/robocar.webp"]}
></Splash>
@ -33,7 +33,7 @@ class Main extends React.Component {
]}
>
</DefaultSection>
<img src="img/backgrounds/micromouse.webp"></img>
<img src="/assets/img/backgrounds/micromouse.webp"></img>
</div>
<div className="project-desc">
@ -44,7 +44,7 @@ class Main extends React.Component {
]}
>
</DefaultSection>
<img src="img/backgrounds/sp22qp.webp"></img>
<img src="/assets/img/backgrounds/sp22qp.webp"></img>
</div>
<div id="contact-us">

View file

@ -11,6 +11,7 @@ interface Website {
jsfile: string;
cssfile: string;
themecolor: string;
path?: string;
}
const APP = express();
@ -23,32 +24,33 @@ const WEBSITES = [
sitename: "index",
title: "IEEE at UCSD",
description: "",
jsfile: "js/index.js",
cssfile: "css/styles.css",
jsfile: "/assets/js/index.js",
cssfile: "/assets/css/styles.css",
themecolor: "",
path: "/",
},
{
sitename: "events",
title: "IEEE at UCSD",
description: "",
jsfile: "js/events.js",
cssfile: "css/styles.css",
jsfile: "/assets/js/events.js",
cssfile: "/assets/css/styles.css",
themecolor: "",
},
{
sitename: "projects",
title: "IEEE at UCSD",
description: "",
jsfile: "js/projects.js",
cssfile: "css/styles.css",
jsfile: "/assets/js/projects.js",
cssfile: "/assets/css/styles.css",
themecolor: "",
},
{
sitename: "committees",
title: "IEEE at UCSD",
description: "",
jsfile: "js/committees.js",
cssfile: "css/styles.css",
jsfile: "/assets/js/committees.js",
cssfile: "/assets/css/styles.css",
themecolor: "",
},
] as Website[];
@ -83,9 +85,8 @@ APP.get("/committees", (req: Request, res: Response) => {
respond(res, "committees");
});
/**
* Utility functions for above methods
*/
// Utility functions for above methods
function respond(res: Response, filename: string) {
res.set({
"Content-Type": "text/html",
@ -107,8 +108,19 @@ function generateFilePages() {
let site: Website;
for (site of WEBSITES) {
const html = generatePage(site.sitename);
fs.mkdirSync(
path.join(__dirname, "../public/", site.path ?? site.sitename),
{
recursive: true,
}
);
fs.writeFileSync(
path.join(__dirname, "../public/", `${site.sitename}.html`),
path.join(
__dirname,
"../public/",
site.path ?? site.sitename,
"/index.html"
),
html
);
}

View file

@ -2,14 +2,12 @@
<html lang="en">
<head>
<title>$TITLE</title>
<link rel="stylesheet" type="text/css" href="css/fonts.css" media="screen">
<link rel="stylesheet" type="text/css" href="/assets/css/fonts.css" media="screen">
<link rel="stylesheet" type="text/css" href="$CSSFILE" media="screen">
<link rel="icon" href="img/favicon.ico" type="image/x-icon">
<link rel="icon" href="favicon.ico" type="image/x-icon">
<meta name="viewport" content="height=device-height, width=device-width, initial-scale=1">
<meta name="description" content="$DESCRIPTION">
<meta name="theme-color" content="$THEMECOLOR">
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-85129590-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
@ -18,6 +16,7 @@
gtag('config', 'UA-85129590-1');
</script>
<title>$TITLE</title>
</head>
<body>

View file

@ -9,7 +9,7 @@ module.exports = {
entry: loadEntries("./src/public"),
output: {
path: path.resolve(__dirname, "build/public"),
filename: "./js/[name].js",
filename: "./assets/js/[name].js",
},
mode: "production",
module: {
@ -35,19 +35,11 @@ module.exports = {
new CopyPlugin({
patterns: [
{
// Copy utility files
from: "./src/util",
to: "../util",
globOptions: {
ignore: ["**/*.ts", "**/*.tsx"],
},
},
{
// Copy public files
from: "./src/public",
to: "./",
globOptions: {
ignore: ["**/*.ts", "**/*.tsx"],
// Copy non-ts, non-tsx files
from: "./src",
to: "../",
filter: (resourcePath) => {
return !resourcePath.match(/\.(tsx|ts)?$/);
},
},
],