FEAT: New 404 page, pages now use jekyll for componentalization.

This commit is contained in:
MajorDroolz
2023-01-03 22:04:28 -05:00
parent c1c1c664a3
commit e264abd558
19 changed files with 326 additions and 182 deletions

30
styles/404.css Normal file
View File

@@ -0,0 +1,30 @@
#notfound {
--color: var(--dark) linear-gradient(#0000, #0003);
flex: 1;
display: flex;
justify-content: center;
align-items: center;
color: white;
flex-direction: column;
gap: 20px;
}
#notfound > * {
max-width: 300px;
}
#text-outer > i {
font-size: 30px;
}
#text-outer {
display: inline-flex;
flex-direction: column;
align-items: center;
font-size: 25px;
}
#text-404 {
font-size: 160px;
line-height: 1;
}

252
styles/default.css Normal file
View File

@@ -0,0 +1,252 @@
html {
scroll-behavior: smooth;
}
body {
display: flex;
flex-direction: column;
min-height: 100vh;
width: min(100vw, 1024px);
box-sizing: border-box;
margin: auto;
}
/*----------------------------------------------------------------------------*/
* {
text-decoration: none;
}
button {
background-color: transparent;
}
.pre {
all: unset;
white-space: pre;
}
.nav-link {
color: var(--color);
text-decoration: none;
font-weight: 900;
font-family: "Open Sans";
}
.shadow {
filter: drop-shadow(0 4px 0 #0004);
}
.icon, .r-icon, .button {
display: inline-flex;
align-items: center;
justify-content: center;
}
.icon::before {
font-family: 'Material Symbols Outlined';
content: attr(data-i);
font-size: 36px;
margin-right: 5px;
}
.r-icon::after {
font-family: 'Material Symbols Outlined';
content: attr(data-i);
margin-left: 5px;
}
h1 {
font-size: 40px;
font-family: "Open Sans";
font-weight: 900;
}
h2 {
font-size: 30px;
font-family: "Open Sans";
font-weight: 900;
}
i {
font-size: 20px;
font-size: "Source Serif Pro";
}
p {
font-size: 20px;
font-family: "Open Sans";
font-weight: 100;
}
.lighter {
background: #fff4;
}
.darker {
background: #0004;
}
hr {
height: 1px;
width: 100%;
}
.button {
color: var(--color);
position: relative;
padding: 10px 30px;
font-size: 20px;
cursor: pointer;
}
.button::before {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
background: var(--color);
opacity: 25%;
content: "";
border-radius: 10px;
}
.width-pad {
width: 100vw;
background-color: var(--color);
padding: 10px 20px;
box-sizing: border-box;
}
.png-icon {
filter: brightness(0) invert(1);
}
/*----------------------------------------------------------------------------*/
#about {
position: relative;
margin: auto;
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-start;
max-width: 1024px;
min-height: 85vh;
color: var(--dark);
box-sizing: border-box;
gap: 30px;
}
#about > * {
max-width: 600px;
}
nav {
display: flex;
flex-wrap: wrap;
width: 100%;
}
#inner-nav {
display: inline-flex;
flex-grow: 1;
gap: 20px;
flex-wrap: wrap;
}
/*----------------------------------------------------------------------------*/
#projects {
margin: 30px auto;
position: relative;
display: flex;
flex-direction: column;
align-items: flex-start;
max-width: 1024px;
min-height: 100vh;
color: white;
box-sizing: border-box;
gap: 30px;
}
#project-list {
overflow: visible;
display: flex;
flex-wrap: wrap;
width: 100%;
gap: 20px;
}
.project-item {
min-width: max(40%, 300px);
flex: 1;
height: 300px;
background-color: var(--color);
border-radius: 10px;
overflow: visible;
display: flex;
flex-direction: column;
}
.project-link {
color: white;
background-color: #0005;
padding: 10px;
border-radius: 0 0 10px 10px;
}
#experience-button {
align-self: center;
}
/*----------------------------------------------------------------------------*/
#menu {
top: 0;
left: 0;
max-width: none;
max-height: none;
position: fixed;
background-color: var(--light);
color: var(--dark);
width: 100vw;
font-size: 25px;
overflow: visible;
}
#menu-top {
display: flex;
align-items: center;
transform: translateY(-1.5px);
}
#menu-inner {
max-width: 1024px;
display: flex;
flex-direction: column;
gap: 30px;
margin: auto;
margin-bottom: 50px;
}
/*----------------------------------------------------------------------------*/
@media (max-width: 464px) {
.nav2, .nav3 {
display: none;
}
}
@media (max-width: 813px) and (min-width: 465px) {
.nav1, .nav3 {
display: none;
}
}
@media (min-width: 814px) {
.nav1, .nav2 {
display: none;
}
}

12
styles/footer.css Normal file
View File

@@ -0,0 +1,12 @@
footer {
display: flex;
align-items: center;
color: white;
max-width: 1024px;
margin: auto;
gap: 10px;
}
footer::before {
filter: brightness(0.8);
}

67
styles/global.css Normal file
View File

@@ -0,0 +1,67 @@
* {
padding: 0;
border: 0;
margin: 0;
outline: 0;
}
:root {
--light: #FEFADC;
--dark: #504B43;
--red: #EC1B24;
--yellow: #E19200;
--green: #4CB753;
--blue: #2B9EB3;
--timing: cubic-bezier(0.2, 1, 0, 1);
--start-timing: cubic-bezier(0,.5,0,.9);
--grad: linear-gradient(45deg, #F008, #00F8);
--shadow: 0px 10px 50px 0 #0008;
--width: 1024px;
}
.light { --color: var(--light) }
.dark { --color: var(--dark) }
.red { --color: var(--red) }
.yellow { --color: var(--yellow) }
.green { --color: var(--green) }
.blue { --color: var(--blue) }
.white { --color: white }
.flex-space, .flex, br { flex-grow: 1 }
.space { flex: 1000 }
/*----------------------------------------------------------------------------*/
html {
background-color: var(--dark);
}
/*----------------------------------------------------------------------------*/
.back {
position: relative;
padding: 10px 20px;
width: min(100vw, 1024px);
box-sizing: border-box;
}
.back::before {
background: var(--color);
width: 100vw;
height: 100%;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
content: "";
z-index: -1;
}
.dark-back::before {
filter: brightness(0.8);
}
/*----------------------------------------------------------------------------*/

13
styles/header.css Normal file
View File

@@ -0,0 +1,13 @@
header {
position: sticky !important;
top: 0;
z-index: 10000;
display: flex;
gap: 40px;
font-size: 25px;
font-family: "Open Sans";
font-weight: bolder;
color: var(--dark);
align-items: center;
}

383
styles/resume.css Normal file
View File

@@ -0,0 +1,383 @@
/*---- Base ------------------------------------------------------------------*/
:root {
font-family: sans-serif;
--timing: cubic-bezier(.2,1,0,1);
--enter: 2s var(--timing) 0.2s both;
--blue: #3F75A2;
--darkblue: #2E5476;
--grey: #575757;
--link-r: #D13800;
--link-g: #006B00;
--link-b: #006EDB;
}
* {
margin: 0;
padding: 0;
border: 0;
}
html {
font-size: 1vw;
animation: var(--enter) scene-enter;
}
@media print {
html {
font-size: 0.7rem;
}
}
main {
display: contents;
}
/*---- Generic Styles --------------------------------------------------------*/
h1 {
font-size: 3em;
}
h2 {
font-size: 2em;
}
h3 {
font-size: 1.5em;
}
h4 {
font-size: 1.15em;
}
h5 {
font-size: 0.75em;
}
ul {
padding-inline-start: 2em;
margin: 0.5em 0;
list-style-type: '— ';
}
/*---- Navbar ----------------------------------------------------------------*/
.navbar {
position: fixed;
height: 18em;
width: 100%;
left: 0;
z-index: -1;
display: flex;
justify-content: center;
align-items: center;
}
nav.navbar {
top: 0;
}
.resume-header {
position: absolute;
color: white;
filter: opacity(0.5);
font: 800 8em Poppins;
animation: var(--enter) title-enter;
will-change: transform, filter;
user-select: none;
}
footer.navbar {
bottom: 0;
}
.resume-footer {
font: bold 8em monospace;
animation: var(--enter) footer-enter;
will-change: transform, filter;
user-select: none;
display: flex;
justify-content: space-between;
width: 3em;
}
.footer-icon {
text-decoration: none;
opacity: 0.5;
color: white;
font-size: 0.2em;
font-family: Verdana;
font-weight: 600;
display: inline-flex;
flex-direction: column;
align-items: center;
transition: transform 0.3s, opacity 0.3s;
}
.footer-img {
display: inline-block;
font-size: 4em !important;
user-select: none;
filter: brightness(0) invert(1);
width: 1em;
height: 1.2em;
transform: scale(1);
}
.footer-icon:hover {
transform: scale(1.1);
opacity: 1;
}
/*---- Page ------------------------------------------------------------------*/
article {
background: whitesmoke;
border: 2px solid gainsboro;
padding: 3em;
margin: 18em 16em;
border-radius: 1em;
animation: page-enter var(--enter);
will-change: transform, filter;
box-shadow: 0 2.5em 5em 0 #0004,
inset 1.5em 1.5em 5em 2.5em white;
}
body::before {
background: lightsteelblue var(--grad);
width: 100vw;
height: 100vh;
content: "";
display: inline-block;
position: fixed;
top: 0;
left: 0;
z-index: -2;
}
/*---- Header ----------------------------------------------------------------*/
.contact-details {
display: flex;
justify-content: space-between;
font-style: normal;
font-weight: bold;
margin-top: 1em;
}
.contact-detail {
display: flex;
align-items: center;
white-space: nowrap;
}
.email {
color: var(--link-b);
}
.phone {
color: var(--link-r);
}
.location {
color: var(--link-g);
}
/*---- Sectioning ------------------------------------------------------------*/
.topic-title {
padding-bottom: 3px;
border-bottom: 2px solid cornflowerblue;
display: block;
}
.topic {
margin-top: 2em;
page-break-inside: avoid;
}
.topic-icon {
width: 1em;
height: 1em;
display: inline-block;
}
/*---- Experience Title ------------------------------------------------------*/
.experience {
margin-top: 2em;
margin-bottom: 0.5em;
}
.title {
font-weight: bold;
font-family: Verdana;
color: var(--blue);
}
.title > i {
font-weight: normal;
}
.date {
font-style: italic;
}
.place {
font-weight: normal;
display: block;
color: var(--grey);
text-transform: uppercase;
}
/*---- Skill List ------------------------------------------------------------*/
.skill-list {
list-style: none;
padding-inline-start: 0;
}
.skill-list > li {
border: 1px solid gainsboro;
display: inline-flex;
padding: 0.5em 1em;
border-radius: 0.5em;
color: var(--blue);
background: whitesmoke;
font-family: monospace;
white-space: nowrap;
overflow: hidden;
align-items: center;
font-weight: bold;
user-select: none;
margin: 0.5em;
box-shadow: 0 0.25em 0.25em 0 #0004,
inset 0.15em 0.15em 0.5em 0.25em white;
transform: scale(1);
transition: transform var(--timing) 1s;
}
.skill-list > li img {
height: 1.5em;
}
.skill-list > li:hover {
transform: scale(1.1);
}
/*---- Classes List ----------------------------------------------------------*/
.classes-list {
list-style: none;
padding-inline-start: 0;
}
.classes-list > li::before {
content: '— ';
}
.classes-list > li {
width: calc(50% - 3ch);
display: inline-block;
}
/*---- Miscellaneous ---------------------------------------------------------*/
.hflex {
display: flex;
justify-content: space-between;
align-items: center;
}
.icon {
margin-right: 0.5em;
width: 1em;
height: 1em;
user-select: none;
display: inline-block;
}
.freshmanuals {
color: var(--darkblue);
}
/*---- Animations ------------------------------------------------------------*/
@keyframes page-enter {
from {
transform: scale(0.9) translateY(10%);
}
to {
transform: scale(1) translateY(0%);
}
}
@keyframes title-enter {
0% {
transform: scale(2) translateY(-50%);
}
100% {
transform: scale(1) translateY(0%);
}
}
@keyframes footer-enter {
0% {
transform: scale(2) translateY(50%);
}
100% {
transform: scale(1) translateY(0%);
}
}
@keyframes scene-enter {
from {
filter: brightness(0);
}
to {
filter: brightness(1);
}
}
/*---- Print Styles ----------------------------------------------------------*/
@media print {
article {
margin: 0;
border-radius: 0;
border: 0;
padding: 0;
background: white;
box-shadow: none;
}
main {
overflow: auto;
height: auto;
background: white;
box-shadow: none;
}
html, body {
overflow: auto;
background: white;
height: auto;
}
.skill-list > li {
box-shadow: none;
background-color: white;
}
article * {
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
}