diff --git a/src/public/Config.ts b/src/public/Config.ts index ad0838d..a80bf00 100644 --- a/src/public/Config.ts +++ b/src/public/Config.ts @@ -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", }, ]; diff --git a/src/public/css/fonts.css b/src/public/assets/css/fonts.css similarity index 96% rename from src/public/css/fonts.css rename to src/public/assets/css/fonts.css index 42d73fc..0fb4c95 100644 --- a/src/public/css/fonts.css +++ b/src/public/assets/css/fonts.css @@ -1,59 +1,59 @@ -/* roboto-regular - latin */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 400; - src: local(''), - url('../fonts/roboto-v29-latin-regular.woff2') format('woff2'), - /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('../fonts/roboto-v29-latin-regular.woff') format('woff'); - /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* roboto-italic - latin */ -@font-face { - font-family: 'Roboto'; - font-style: italic; - font-weight: 400; - src: local(''), - url('../fonts/roboto-v29-latin-italic.woff2') format('woff2'), - /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('../fonts/roboto-v29-latin-italic.woff') format('woff'); - /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* roboto-700 - latin */ -@font-face { - font-family: 'Roboto'; - font-style: normal; - font-weight: 700; - src: local(''), - url('../fonts/roboto-v29-latin-700.woff2') format('woff2'), - /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('../fonts/roboto-v29-latin-700.woff') format('woff'); - /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* montserrat-regular - latin */ -@font-face { - font-family: 'Montserrat'; - font-style: normal; - font-weight: 400; - src: local(''), - url('../fonts/montserrat-v23-latin-regular.woff2') format('woff2'), - /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('../fonts/montserrat-v23-latin-regular.woff') format('woff'); - /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* montserrat-700 - latin */ -@font-face { - font-family: 'Montserrat'; - font-style: normal; - font-weight: 700; - src: local(''), - url('../fonts/montserrat-v23-latin-700.woff2') format('woff2'), - /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('../fonts/montserrat-v23-latin-700.woff') format('woff'); - /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +/* roboto-regular - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 400; + src: local(''), + url('../fonts/roboto-v29-latin-regular.woff2') format('woff2'), + /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/roboto-v29-latin-regular.woff') format('woff'); + /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} + +/* roboto-italic - latin */ +@font-face { + font-family: 'Roboto'; + font-style: italic; + font-weight: 400; + src: local(''), + url('../fonts/roboto-v29-latin-italic.woff2') format('woff2'), + /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/roboto-v29-latin-italic.woff') format('woff'); + /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} + +/* roboto-700 - latin */ +@font-face { + font-family: 'Roboto'; + font-style: normal; + font-weight: 700; + src: local(''), + url('../fonts/roboto-v29-latin-700.woff2') format('woff2'), + /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/roboto-v29-latin-700.woff') format('woff'); + /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} + +/* montserrat-regular - latin */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 400; + src: local(''), + url('../fonts/montserrat-v23-latin-regular.woff2') format('woff2'), + /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/montserrat-v23-latin-regular.woff') format('woff'); + /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ +} + +/* montserrat-700 - latin */ +@font-face { + font-family: 'Montserrat'; + font-style: normal; + font-weight: 700; + src: local(''), + url('../fonts/montserrat-v23-latin-700.woff2') format('woff2'), + /* Chrome 26+, Opera 23+, Firefox 39+ */ + url('../fonts/montserrat-v23-latin-700.woff') format('woff'); + /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ } \ No newline at end of file diff --git a/src/public/assets/css/styles.css b/src/public/assets/css/styles.css new file mode 100644 index 0000000..d9c4995 --- /dev/null +++ b/src/public/assets/css/styles.css @@ -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; +} diff --git a/src/public/fonts/montserrat-v23-latin-700.woff b/src/public/assets/fonts/montserrat-v23-latin-700.woff similarity index 100% rename from src/public/fonts/montserrat-v23-latin-700.woff rename to src/public/assets/fonts/montserrat-v23-latin-700.woff diff --git a/src/public/fonts/montserrat-v23-latin-700.woff2 b/src/public/assets/fonts/montserrat-v23-latin-700.woff2 similarity index 100% rename from src/public/fonts/montserrat-v23-latin-700.woff2 rename to src/public/assets/fonts/montserrat-v23-latin-700.woff2 diff --git a/src/public/fonts/montserrat-v23-latin-regular.woff b/src/public/assets/fonts/montserrat-v23-latin-regular.woff similarity index 100% rename from src/public/fonts/montserrat-v23-latin-regular.woff rename to src/public/assets/fonts/montserrat-v23-latin-regular.woff diff --git a/src/public/fonts/montserrat-v23-latin-regular.woff2 b/src/public/assets/fonts/montserrat-v23-latin-regular.woff2 similarity index 100% rename from src/public/fonts/montserrat-v23-latin-regular.woff2 rename to src/public/assets/fonts/montserrat-v23-latin-regular.woff2 diff --git a/src/public/fonts/roboto-v29-latin-700.woff b/src/public/assets/fonts/roboto-v29-latin-700.woff similarity index 100% rename from src/public/fonts/roboto-v29-latin-700.woff rename to src/public/assets/fonts/roboto-v29-latin-700.woff diff --git a/src/public/fonts/roboto-v29-latin-700.woff2 b/src/public/assets/fonts/roboto-v29-latin-700.woff2 similarity index 100% rename from src/public/fonts/roboto-v29-latin-700.woff2 rename to src/public/assets/fonts/roboto-v29-latin-700.woff2 diff --git a/src/public/fonts/roboto-v29-latin-italic.woff b/src/public/assets/fonts/roboto-v29-latin-italic.woff similarity index 100% rename from src/public/fonts/roboto-v29-latin-italic.woff rename to src/public/assets/fonts/roboto-v29-latin-italic.woff diff --git a/src/public/fonts/roboto-v29-latin-italic.woff2 b/src/public/assets/fonts/roboto-v29-latin-italic.woff2 similarity index 100% rename from src/public/fonts/roboto-v29-latin-italic.woff2 rename to src/public/assets/fonts/roboto-v29-latin-italic.woff2 diff --git a/src/public/fonts/roboto-v29-latin-regular.woff b/src/public/assets/fonts/roboto-v29-latin-regular.woff similarity index 100% rename from src/public/fonts/roboto-v29-latin-regular.woff rename to src/public/assets/fonts/roboto-v29-latin-regular.woff diff --git a/src/public/fonts/roboto-v29-latin-regular.woff2 b/src/public/assets/fonts/roboto-v29-latin-regular.woff2 similarity index 100% rename from src/public/fonts/roboto-v29-latin-regular.woff2 rename to src/public/assets/fonts/roboto-v29-latin-regular.woff2 diff --git a/src/public/img/.DS_Store b/src/public/assets/img/.DS_Store similarity index 100% rename from src/public/img/.DS_Store rename to src/public/assets/img/.DS_Store diff --git a/src/public/img/arrow.svg b/src/public/assets/img/arrow.svg similarity index 100% rename from src/public/img/arrow.svg rename to src/public/assets/img/arrow.svg diff --git a/src/public/img/backgrounds/committee.webp b/src/public/assets/img/backgrounds/committee.webp similarity index 100% rename from src/public/img/backgrounds/committee.webp rename to src/public/assets/img/backgrounds/committee.webp diff --git a/src/public/img/backgrounds/fa21qp.webp b/src/public/assets/img/backgrounds/fa21qp.webp similarity index 100% rename from src/public/img/backgrounds/fa21qp.webp rename to src/public/assets/img/backgrounds/fa21qp.webp diff --git a/src/public/img/backgrounds/fa21social.webp b/src/public/assets/img/backgrounds/fa21social.webp similarity index 100% rename from src/public/img/backgrounds/fa21social.webp rename to src/public/assets/img/backgrounds/fa21social.webp diff --git a/src/public/img/backgrounds/gbm.webp b/src/public/assets/img/backgrounds/gbm.webp similarity index 100% rename from src/public/img/backgrounds/gbm.webp rename to src/public/assets/img/backgrounds/gbm.webp diff --git a/src/public/img/backgrounds/micromouse.webp b/src/public/assets/img/backgrounds/micromouse.webp similarity index 100% rename from src/public/img/backgrounds/micromouse.webp rename to src/public/assets/img/backgrounds/micromouse.webp diff --git a/src/public/img/backgrounds/ps.webp b/src/public/assets/img/backgrounds/ps.webp similarity index 100% rename from src/public/img/backgrounds/ps.webp rename to src/public/assets/img/backgrounds/ps.webp diff --git a/src/public/img/backgrounds/robocar.webp b/src/public/assets/img/backgrounds/robocar.webp similarity index 100% rename from src/public/img/backgrounds/robocar.webp rename to src/public/assets/img/backgrounds/robocar.webp diff --git a/src/public/img/backgrounds/robofest.webp b/src/public/assets/img/backgrounds/robofest.webp similarity index 100% rename from src/public/img/backgrounds/robofest.webp rename to src/public/assets/img/backgrounds/robofest.webp diff --git a/src/public/img/backgrounds/sp22qp.webp b/src/public/assets/img/backgrounds/sp22qp.webp similarity index 100% rename from src/public/img/backgrounds/sp22qp.webp rename to src/public/assets/img/backgrounds/sp22qp.webp diff --git a/src/public/img/committees/outreach.webp b/src/public/assets/img/committees/outreach.webp similarity index 100% rename from src/public/img/committees/outreach.webp rename to src/public/assets/img/committees/outreach.webp diff --git a/src/public/img/committees/pr.webp b/src/public/assets/img/committees/pr.webp similarity index 100% rename from src/public/img/committees/pr.webp rename to src/public/assets/img/committees/pr.webp diff --git a/src/public/img/committees/professional.webp b/src/public/assets/img/committees/professional.webp similarity index 100% rename from src/public/img/committees/professional.webp rename to src/public/assets/img/committees/professional.webp diff --git a/src/public/img/committees/social.webp b/src/public/assets/img/committees/social.webp similarity index 100% rename from src/public/img/committees/social.webp rename to src/public/assets/img/committees/social.webp diff --git a/src/public/img/committees/technical.webp b/src/public/assets/img/committees/technical.webp similarity index 100% rename from src/public/img/committees/technical.webp rename to src/public/assets/img/committees/technical.webp diff --git a/src/public/img/disc.svg b/src/public/assets/img/disc.svg similarity index 100% rename from src/public/img/disc.svg rename to src/public/assets/img/disc.svg diff --git a/src/public/img/disc_white.svg b/src/public/assets/img/disc_white.svg similarity index 100% rename from src/public/img/disc_white.svg rename to src/public/assets/img/disc_white.svg diff --git a/src/public/img/email.svg b/src/public/assets/img/email.svg similarity index 100% rename from src/public/img/email.svg rename to src/public/assets/img/email.svg diff --git a/src/public/img/email_white.svg b/src/public/assets/img/email_white.svg similarity index 100% rename from src/public/img/email_white.svg rename to src/public/assets/img/email_white.svg diff --git a/src/public/img/fab.svg b/src/public/assets/img/fab.svg similarity index 100% rename from src/public/img/fab.svg rename to src/public/assets/img/fab.svg diff --git a/src/public/img/fab_white.svg b/src/public/assets/img/fab_white.svg similarity index 100% rename from src/public/img/fab_white.svg rename to src/public/assets/img/fab_white.svg diff --git a/src/public/img/inst.svg b/src/public/assets/img/inst.svg similarity index 100% rename from src/public/img/inst.svg rename to src/public/assets/img/inst.svg diff --git a/src/public/img/inst_white.svg b/src/public/assets/img/inst_white.svg similarity index 100% rename from src/public/img/inst_white.svg rename to src/public/assets/img/inst_white.svg diff --git a/src/public/img/logo.svg b/src/public/assets/img/logo.svg similarity index 100% rename from src/public/img/logo.svg rename to src/public/assets/img/logo.svg diff --git a/src/public/img/logo_white.svg b/src/public/assets/img/logo_white.svg similarity index 100% rename from src/public/img/logo_white.svg rename to src/public/assets/img/logo_white.svg diff --git a/src/public/img/officers/.DS_Store b/src/public/assets/img/officers/.DS_Store similarity index 100% rename from src/public/img/officers/.DS_Store rename to src/public/assets/img/officers/.DS_Store diff --git a/src/public/img/officers/abby.jpg b/src/public/assets/img/officers/abby.jpg similarity index 100% rename from src/public/img/officers/abby.jpg rename to src/public/assets/img/officers/abby.jpg diff --git a/src/public/img/officers/arjun.jpg b/src/public/assets/img/officers/arjun.jpg similarity index 100% rename from src/public/img/officers/arjun.jpg rename to src/public/assets/img/officers/arjun.jpg diff --git a/src/public/img/officers/brigette.jpg b/src/public/assets/img/officers/brigette.jpg similarity index 100% rename from src/public/img/officers/brigette.jpg rename to src/public/assets/img/officers/brigette.jpg diff --git a/src/public/img/officers/daniel.jpg b/src/public/assets/img/officers/daniel.jpg similarity index 100% rename from src/public/img/officers/daniel.jpg rename to src/public/assets/img/officers/daniel.jpg diff --git a/src/public/img/officers/darin.jpg b/src/public/assets/img/officers/darin.jpg similarity index 100% rename from src/public/img/officers/darin.jpg rename to src/public/assets/img/officers/darin.jpg diff --git a/src/public/img/officers/dennis.jpg b/src/public/assets/img/officers/dennis.jpg similarity index 100% rename from src/public/img/officers/dennis.jpg rename to src/public/assets/img/officers/dennis.jpg diff --git a/src/public/img/officers/derek.jpg b/src/public/assets/img/officers/derek.jpg similarity index 100% rename from src/public/img/officers/derek.jpg rename to src/public/assets/img/officers/derek.jpg diff --git a/src/public/img/officers/jason.jpg b/src/public/assets/img/officers/jason.jpg similarity index 100% rename from src/public/img/officers/jason.jpg rename to src/public/assets/img/officers/jason.jpg diff --git a/src/public/img/officers/jiliana.jpg b/src/public/assets/img/officers/jiliana.jpg similarity index 100% rename from src/public/img/officers/jiliana.jpg rename to src/public/assets/img/officers/jiliana.jpg diff --git a/src/public/img/officers/josh.jpg b/src/public/assets/img/officers/josh.jpg similarity index 100% rename from src/public/img/officers/josh.jpg rename to src/public/assets/img/officers/josh.jpg diff --git a/src/public/img/officers/kevin.jpg b/src/public/assets/img/officers/kevin.jpg similarity index 100% rename from src/public/img/officers/kevin.jpg rename to src/public/assets/img/officers/kevin.jpg diff --git a/src/public/img/officers/matthew.jpg b/src/public/assets/img/officers/matthew.jpg similarity index 100% rename from src/public/img/officers/matthew.jpg rename to src/public/assets/img/officers/matthew.jpg diff --git a/src/public/img/officers/mohak.jpg b/src/public/assets/img/officers/mohak.jpg similarity index 100% rename from src/public/img/officers/mohak.jpg rename to src/public/assets/img/officers/mohak.jpg diff --git a/src/public/img/officers/niklas.jpg b/src/public/assets/img/officers/niklas.jpg similarity index 100% rename from src/public/img/officers/niklas.jpg rename to src/public/assets/img/officers/niklas.jpg diff --git a/src/public/img/officers/parisa.jpg b/src/public/assets/img/officers/parisa.jpg similarity index 100% rename from src/public/img/officers/parisa.jpg rename to src/public/assets/img/officers/parisa.jpg diff --git a/src/public/img/officers/rafaella.jpg b/src/public/assets/img/officers/rafaella.jpg similarity index 100% rename from src/public/img/officers/rafaella.jpg rename to src/public/assets/img/officers/rafaella.jpg diff --git a/src/public/img/officers/raymond.jpg b/src/public/assets/img/officers/raymond.jpg similarity index 100% rename from src/public/img/officers/raymond.jpg rename to src/public/assets/img/officers/raymond.jpg diff --git a/src/public/img/officers/sanh.jpg b/src/public/assets/img/officers/sanh.jpg similarity index 100% rename from src/public/img/officers/sanh.jpg rename to src/public/assets/img/officers/sanh.jpg diff --git a/src/public/img/officers/sankalp.jpg b/src/public/assets/img/officers/sankalp.jpg similarity index 100% rename from src/public/img/officers/sankalp.jpg rename to src/public/assets/img/officers/sankalp.jpg diff --git a/src/public/img/officers/shaun.jpg b/src/public/assets/img/officers/shaun.jpg similarity index 100% rename from src/public/img/officers/shaun.jpg rename to src/public/assets/img/officers/shaun.jpg diff --git a/src/public/img/officers/stephanie.jpg b/src/public/assets/img/officers/stephanie.jpg similarity index 100% rename from src/public/img/officers/stephanie.jpg rename to src/public/assets/img/officers/stephanie.jpg diff --git a/src/public/img/officers/tasnia.jpg b/src/public/assets/img/officers/tasnia.jpg similarity index 100% rename from src/public/img/officers/tasnia.jpg rename to src/public/assets/img/officers/tasnia.jpg diff --git a/src/public/img/officers/temp.png b/src/public/assets/img/officers/temp.png similarity index 100% rename from src/public/img/officers/temp.png rename to src/public/assets/img/officers/temp.png diff --git a/src/public/img/officers/tien.jpg b/src/public/assets/img/officers/tien.jpg similarity index 100% rename from src/public/img/officers/tien.jpg rename to src/public/assets/img/officers/tien.jpg diff --git a/src/public/img/officers/vuong.jpg b/src/public/assets/img/officers/vuong.jpg similarity index 100% rename from src/public/img/officers/vuong.jpg rename to src/public/assets/img/officers/vuong.jpg diff --git a/src/public/img/officers/yash.jpg b/src/public/assets/img/officers/yash.jpg similarity index 100% rename from src/public/img/officers/yash.jpg rename to src/public/assets/img/officers/yash.jpg diff --git a/src/public/img/officers/yusuf.jpg b/src/public/assets/img/officers/yusuf.jpg similarity index 100% rename from src/public/img/officers/yusuf.jpg rename to src/public/assets/img/officers/yusuf.jpg diff --git a/src/public/committees.tsx b/src/public/committees.tsx index 7f3f43c..69c841a 100644 --- a/src/public/committees.tsx +++ b/src/public/committees.tsx @@ -22,7 +22,7 @@ class Main extends React.Component { diff --git a/src/public/components/Carousel.tsx b/src/public/components/Carousel.tsx index 6bc67ea..5648432 100644 --- a/src/public/components/Carousel.tsx +++ b/src/public/components/Carousel.tsx @@ -43,7 +43,7 @@ export default class Carousel extends Component {
{
- +
{[...EMAIL_WHITE, ...SOCIALS_WHITE].map((n) => ( { >
- +
.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; -} \ No newline at end of file diff --git a/src/public/events.tsx b/src/public/events.tsx index e0faa32..ccb2522 100644 --- a/src/public/events.tsx +++ b/src/public/events.tsx @@ -20,7 +20,7 @@ class Main extends React.Component { diff --git a/src/public/img/favicon.ico b/src/public/favicon.ico similarity index 100% rename from src/public/img/favicon.ico rename to src/public/favicon.ico diff --git a/src/public/index.tsx b/src/public/index.tsx index 05ee1a5..121f053 100644 --- a/src/public/index.tsx +++ b/src/public/index.tsx @@ -22,7 +22,7 @@ class Main extends React.Component {
diff --git a/src/public/projects.tsx b/src/public/projects.tsx index 90bfc3f..6dcf2c6 100644 --- a/src/public/projects.tsx +++ b/src/public/projects.tsx @@ -21,7 +21,7 @@ class Main extends React.Component { @@ -33,7 +33,7 @@ class Main extends React.Component { ]} >
- +
@@ -44,7 +44,7 @@ class Main extends React.Component { ]} > - +
diff --git a/src/util/index.ts b/src/util/index.ts index c9e069b..fdfc5c3 100644 --- a/src/util/index.ts +++ b/src/util/index.ts @@ -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 ); } diff --git a/src/util/template.html b/src/util/template.html index a085c71..7c9d486 100644 --- a/src/util/template.html +++ b/src/util/template.html @@ -2,14 +2,12 @@ - $TITLE - + - + - + $TITLE diff --git a/webpack.config.js b/webpack.config.js index fe8d48e..cfeceaa 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -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)?$/); }, }, ],