final merge pull request #8 from ieeeucsd/firebase
bring main up to firebase
|
@ -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",
|
||||
},
|
||||
];
|
||||
|
|
443
src/public/assets/css/styles.css
Normal 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;
|
||||
}
|
Before Width: | Height: | Size: 492 B After Width: | Height: | Size: 492 B |
Before Width: | Height: | Size: 107 KiB After Width: | Height: | Size: 107 KiB |
Before Width: | Height: | Size: 58 KiB After Width: | Height: | Size: 58 KiB |
Before Width: | Height: | Size: 275 KiB After Width: | Height: | Size: 275 KiB |
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 36 KiB |
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 86 KiB After Width: | Height: | Size: 86 KiB |
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 129 KiB After Width: | Height: | Size: 129 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 115 KiB After Width: | Height: | Size: 115 KiB |
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 899 B After Width: | Height: | Size: 899 B |
Before Width: | Height: | Size: 897 B After Width: | Height: | Size: 897 B |
Before Width: | Height: | Size: 511 B After Width: | Height: | Size: 511 B |
Before Width: | Height: | Size: 509 B After Width: | Height: | Size: 509 B |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 33 KiB |
Before Width: | Height: | Size: 60 KiB After Width: | Height: | Size: 60 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 57 KiB |
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
Before Width: | Height: | Size: 6.2 KiB After Width: | Height: | Size: 6.2 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
|
@ -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>
|
||||
|
|
|
@ -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" }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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">
|
||||
|
|
Before Width: | Height: | Size: 361 KiB After Width: | Height: | Size: 361 KiB |
|
@ -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>
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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
|
||||
);
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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)?$/);
|
||||
},
|
||||
},
|
||||
],
|
||||
|
|