@@ -68,4 +68,4 @@ const HomeViewFooter = ({ allParams, isIntro }: Props) => {
);
};
-export default HomeViewFooter;
+export default HVFooter;
diff --git a/src/components/HomeViewHeader.tsx b/src/components/HVHeader.tsx
similarity index 94%
rename from src/components/HomeViewHeader.tsx
rename to src/components/HVHeader.tsx
index 7e422b6..0bd4596 100644
--- a/src/components/HomeViewHeader.tsx
+++ b/src/components/HVHeader.tsx
@@ -2,7 +2,7 @@ import { useContext, useEffect, useReducer, useState } from "react";
import { Link, NavLink, useLocation } from "react-router-dom";
import { animated } from "react-spring";
import AppContext from "../contexts/AppContext";
-import "./styles/HomeViewHeader.css";
+import "./styles/HVHeader.css";
interface Props {
subtitle: string;
@@ -11,13 +11,13 @@ interface Props {
isIntro: boolean;
}
-const HomeViewHeader = ({ subtitle, subEmoji, allParams, isIntro }: Props) => {
+const HVHeader = ({ subtitle, subEmoji, allParams, isIntro }: Props) => {
// GENERAL
const { hueRotation } = useContext(AppContext);
// Some elements in the return will be hidden by media query CSS, to allow UI elements in the header or footer depending on mobile / Desktop. This is why there are some "redundant" elements
return (
-
+
{`${isIntro ? "who is " : ""}`}
@@ -103,4 +103,4 @@ const HomeViewHeader = ({ subtitle, subEmoji, allParams, isIntro }: Props) => {
);
};
-export default HomeViewHeader;
+export default HVHeader;
diff --git a/src/components/HomeView.tsx b/src/components/HomeView.tsx
index 57064e1..e25543a 100644
--- a/src/components/HomeView.tsx
+++ b/src/components/HomeView.tsx
@@ -1,12 +1,12 @@
import "./styles/HomeView.css";
import { useLocation, useNavigate, useParams } from "react-router-dom";
import { useContext, useEffect, useState } from "react";
-import HomeViewHeader from "./HomeViewHeader";
-import HomeViewFooter from "./HomeViewFooter";
+import HVHeader from "./HVHeader";
+import HVFooter from "./HVFooter";
import AppContext from "../contexts/AppContext";
import AppConfig from "../AppConfig.json";
import LandingPage from "./LandingPage";
-import HomeViewContent from "./HomeViewContent";
+import HVContent from "./HVContent";
interface Props {}
@@ -120,14 +120,14 @@ const HomeView = ({}: Props) => {
return (
{isLanding ? : ""}
-
-
-
+
+
);
};
diff --git a/src/components/LandingPageLink.tsx b/src/components/LPLink.tsx
similarity index 92%
rename from src/components/LandingPageLink.tsx
rename to src/components/LPLink.tsx
index 52d90a9..d6ee3bb 100644
--- a/src/components/LandingPageLink.tsx
+++ b/src/components/LPLink.tsx
@@ -2,7 +2,7 @@ import { useContext, useEffect, useRef, useState } from "react";
import { Link } from "react-router-dom";
import { animated, SpringValue, useSpring } from "react-spring";
import AppContext from "../contexts/AppContext";
-import "./styles/LandingPageLink.css";
+import "./styles/LPLink.css";
interface Props {
currentDisplay: string;
@@ -11,12 +11,7 @@ interface Props {
isH1: boolean;
}
-const LandingPageLink = ({
- currentDisplay,
- linkText,
- pathName,
- isH1,
-}: Props) => {
+const LPLink = ({ currentDisplay, linkText, pathName, isH1 }: Props) => {
const { isMobile } = useContext(AppContext);
const opacityRef = useRef(0);
const hoverOn: any = useSpring({
@@ -84,4 +79,4 @@ const LandingPageLink = ({
);
};
-export default LandingPageLink;
+export default LPLink;
diff --git a/src/components/LandingPage.tsx b/src/components/LandingPage.tsx
index 5290032..288d257 100644
--- a/src/components/LandingPage.tsx
+++ b/src/components/LandingPage.tsx
@@ -1,7 +1,7 @@
import { useContext, useEffect, useState } from "react";
import { useLocation, useNavigate } from "react-router-dom";
import "./styles/LandingPage.css";
-import LandingPageLink from "./LandingPageLink";
+import LPLink from "./LPLink";
import { animated, useTransition } from "react-spring";
import pixelBG from "../img/pixelBG_LowRes.png";
import pixelFadeBG from "../img/animated-14fps.png";
@@ -98,7 +98,7 @@ const LandingPage = ({ setIsLanding }: Props) => {
{fadeOut((style: any, item: any) =>
item ? (
- {
""
)
)}
- {/* */}
+ {/* */}
{fadeOut((style: any, item: any) =>
item ? (
-
- {
+ const { hueRotation, hueRotation_Inv } = useContext(AppContext);
+ const introP1 = AppConfig.intro_txt_p1;
+ const introP2 = AppConfig.intro_txt_p2;
+ const introP3 = AppConfig.intro_txt_p3;
+ const introP4 = AppConfig.intro_txt_p4;
+ const introP5 = AppConfig.built_using_txt;
+
+ return (
+
+
+
+
+
+
+
+
+
{introP1}
+
{introP2}
+
{introP3}
+
{introP4}
+
This website built from scratch utilizing:
+
+ {introP5}
+
+
+
+
+ );
+};
+
+export default Introduction;
diff --git a/src/components/projects/MediaMatchup.tsx b/src/components/projects/MediaMatchup.tsx
index 7c40c31..4feee42 100644
--- a/src/components/projects/MediaMatchup.tsx
+++ b/src/components/projects/MediaMatchup.tsx
@@ -1,6 +1,7 @@
import ProjImage from "./ProjImage";
-import mediaMatchupMainAVIF from "../../img/Projects/MediaMatchup/MediaMatchupMain.avif";
-import mediaMatchupMainJPG from "../../img/Projects/MediaMatchup/MediaMatchupMain.jpg";
+// import mediaMatchupMainAVIF from "../../img/Projects/MediaMatchup/MediaMatchupMain.avif";
+// import mediaMatchupMainJPG from "../../img/Projects/MediaMatchup/MediaMatchupMain.jpg";
+import matchupImg from "../../img/Projects/MediaMatchup/ST4vsArt.jpg";
import { animated } from "react-spring";
interface Props {
@@ -29,8 +30,8 @@ const MediaMatchup = ({ isPortfolio }: Props) => {
return (
{
- return (
-
-
-
Hello! I'm Jake
-
- );
-};
-
-export default PersonalIntro;
diff --git a/src/components/projects/ProjDescPortfolio.tsx b/src/components/projects/ProjDescPortfolio.tsx
index c3f04d1..8c8980b 100644
--- a/src/components/projects/ProjDescPortfolio.tsx
+++ b/src/components/projects/ProjDescPortfolio.tsx
@@ -8,10 +8,8 @@ interface Props {
const ProjDescPortfolio = ({ title, desc }: Props) => {
return (
- {title}
-
+ className='ProjDescPortfolio
+ '>
);
};
diff --git a/src/components/projects/ProjImage.css b/src/components/projects/ProjImage.css
index 56875c0..50fe43c 100644
--- a/src/components/projects/ProjImage.css
+++ b/src/components/projects/ProjImage.css
@@ -1,11 +1,21 @@
.ProjImage {
display: flex;
flex-direction: column;
- justify-content: center;
+ justify-content: start;
+ align-items: center;
+ /* height: 50%; */
+ width: 100%;
height: 100%;
- max-width: 100%;
+ margin: 0px;
}
.ProjImage .img-ctr {
- max-width: 100%;
+ max-width: 70%;
+ max-height: 80%;
+}
+
+@media only screen and (min-width: 768px) {
+ .ProjImage {
+ justify-content: center;
+ }
}
diff --git a/src/components/styles/HVContent.css b/src/components/styles/HVContent.css
new file mode 100644
index 0000000..fb04fe0
--- /dev/null
+++ b/src/components/styles/HVContent.css
@@ -0,0 +1,36 @@
+/* - - - - GENERAL - - - -*/
+.HVContent {
+ position: relative;
+ display: flex;
+ width: 100vw;
+ height: 100%;
+ justify-content: center;
+ align-items: center;
+ overflow: hidden;
+}
+
+.HVContent video {
+ height: 100%;
+ object-fit: cover;
+ margin-left: 50%;
+ transform: translateX(-50%);
+ min-width: 100%;
+}
+
+.HVContent img {
+ height: 100%;
+ object-fit: cover;
+ width: 100%;
+}
+
+.HVContent .media-ctr {
+ height: 100%;
+ width: 100%;
+}
+
+/* - - - - MEDIA QUERIES - - - -*/
+@media only screen and (min-width: 768px) {
+ .HVContent video {
+ height: 110%;
+ }
+}
diff --git a/src/components/styles/HomeViewFooter.css b/src/components/styles/HVFooter.css
similarity index 70%
rename from src/components/styles/HomeViewFooter.css
rename to src/components/styles/HVFooter.css
index 50b944b..49d6c73 100644
--- a/src/components/styles/HomeViewFooter.css
+++ b/src/components/styles/HVFooter.css
@@ -1,23 +1,23 @@
/* - - - RESETS - - -*/
-.HomeViewFooter h1,
-.HomeViewFooter h2,
-.HomeViewFooter a,
-.HomeViewFooter p,
-.HomeViewFooter ul,
-.HomeViewFooter li {
+.HVFooter h1,
+.HVFooter h2,
+.HVFooter a,
+.HVFooter p,
+.HVFooter ul,
+.HVFooter li {
margin: 0px;
padding: 0px;
}
/* - - - GENERAL - - -*/
-.HomeViewFooter {
+.HVFooter {
/* Position and Sizing */
position: absolute;
bottom: 5%;
- width: 65vw;
min-width: 235px;
max-width: 375px;
- height: 110px;
+ width: 65vw;
+ height: 100px;
border-radius: 20px;
/* Flex */
display: flex;
@@ -32,19 +32,19 @@
font-size: 16px;
}
-.HomeViewFooter h2 {
+.HVFooter h2 {
font-size: 26px;
font-weight: 400;
}
-.HomeViewFooter .project-nav-ctr {
+.HVFooter .project-nav-ctr {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
-.HomeViewFooter .project-nav {
+.HVFooter .project-nav {
display: flex;
flex: 1;
flex-direction: row;
@@ -52,32 +52,32 @@
margin-bottom: 5px;
}
-.HomeViewFooter .nav-ctr {
+.HVFooter .nav-ctr {
display: flex;
flex: 1;
justify-content: center;
align-items: center;
}
-.HomeViewFooter .nav-ctr a {
+.HVFooter .nav-ctr a {
font-size: 22px;
}
-.HomeViewFooter .nav-ctr ul {
+.HVFooter .nav-ctr ul {
display: flex;
list-style: none;
}
-.HomeViewFooter .nav-ctr ul li {
+.HVFooter .nav-ctr ul li {
margin: 0px 10px;
height: 30px;
}
-.HomeViewFooter .rights-ctr {
+.HVFooter .rights-ctr {
font-size: 10px;
}
-.HomeViewFooter .hidden {
+.HVFooter .hidden {
margin: -3px;
visibility: hidden;
}
@@ -85,7 +85,7 @@
/* - - - MEDIA QUERIES - - -*/
@media only screen and (min-width: 768px) {
- .HomeViewFooter {
+ .HVFooter {
height: 20px;
bottom: 10px;
border: none;
@@ -93,11 +93,11 @@
backdrop-filter: none;
}
- .HomeViewFooter .project-nav-ctr {
+ .HVFooter .project-nav-ctr {
display: none;
}
- .HomeViewFooter .rights-ctr {
+ .HVFooter .rights-ctr {
font-size: 14px;
}
}
diff --git a/src/components/styles/HomeViewHeader.css b/src/components/styles/HVHeader.css
similarity index 67%
rename from src/components/styles/HomeViewHeader.css
rename to src/components/styles/HVHeader.css
index 86403cb..9268075 100644
--- a/src/components/styles/HomeViewHeader.css
+++ b/src/components/styles/HVHeader.css
@@ -1,16 +1,16 @@
/* - - - RESETS - - -*/
-.HomeViewHeader h1,
-.HomeViewHeader h2,
-.HomeViewHeader a,
-.HomeViewHeader p,
-.HomeViewHeader ul,
-.HomeViewHeader li {
+.HVHeader h1,
+.HVHeader h2,
+.HVHeader a,
+.HVHeader p,
+.HVHeader ul,
+.HVHeader li {
margin: 0px;
padding: 0px;
}
/* - - - GENERAL - - -*/
-.HomeViewHeader {
+.HVHeader {
/* Position and Sizing */
width: 100vw;
height: 90px;
@@ -24,31 +24,31 @@
text-decoration: none;
}
-.HomeViewHeader h1 {
+.HVHeader h1 {
margin: 2px 0px;
}
-.HomeViewHeader a {
+.HVHeader a {
color: rgb(58, 58, 58);
}
-.HomeViewHeader .title-ctr {
+.HVHeader .title-ctr {
display: flex;
flex-direction: column;
justify-content: center;
width: 175px;
}
-.HomeViewHeader .project-nav-ctr {
+.HVHeader .project-nav-ctr {
display: none;
}
-.HomeViewHeader .nav-category-ctr {
+.HVHeader .nav-category-ctr {
display: flex;
justify-content: center;
}
-.HomeViewHeader .nav-category-ctr ul {
+.HVHeader .nav-category-ctr ul {
display: flex;
justify-content: center;
align-items: center;
@@ -57,61 +57,61 @@
width: 181px;
}
-.HomeViewHeader .nav-category-ctr ul li {
+.HVHeader .nav-category-ctr ul li {
margin: 0px 10px;
}
-.HomeViewHeader .hidden {
+.HVHeader .hidden {
display: none;
}
/* - - - MEDIA QUERIES - - -*/
@media only screen and (min-width: 768px) {
- .HomeViewHeader {
+ .HVHeader {
justify-content: space-around;
height: 100px;
}
- .HomeViewHeader .title-ctr {
+ .HVHeader .title-ctr {
width: 200px;
}
- .HomeViewHeader .project-nav-ctr {
+ .HVHeader .project-nav-ctr {
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-evenly;
}
- .HomeViewHeader .project-nav {
+ .HVHeader .project-nav {
display: flex;
flex-direction: row;
align-items: center;
margin-top: 5px;
}
- .HomeViewHeader .nav-ctr {
+ .HVHeader .nav-ctr {
display: flex;
justify-content: center;
align-items: center;
margin-bottom: 5px;
}
- .HomeViewHeader .nav-ctr a {
+ .HVHeader .nav-ctr a {
font-size: 20px;
}
- .HomeViewHeader .nav-ctr ul {
+ .HVHeader .nav-ctr ul {
display: flex;
list-style: none;
}
- .HomeViewHeader .nav-ctr ul li {
+ .HVHeader .nav-ctr ul li {
margin: 0px 10px;
height: 30px;
}
- .HomeViewHeader .hidden {
+ .HVHeader .hidden {
display: flex;
visibility: hidden;
width: 181px;
diff --git a/src/components/styles/HomeView.css b/src/components/styles/HomeView.css
index ba6f428..9ddfaae 100644
--- a/src/components/styles/HomeView.css
+++ b/src/components/styles/HomeView.css
@@ -1,8 +1,8 @@
/* - - - - RESETS - - - -*/
-.HomeViewHeader h1,
-.HomeViewHeader h2,
-.HomeViewHeader a,
-.HomeViewHeader p {
+.HVHeader h1,
+.HVHeader h2,
+.HVHeader a,
+.HVHeader p {
margin: 0px;
padding: 0px;
}
@@ -55,6 +55,9 @@
.HomeView .highlighted-link {
color: rgb(0, 175, 166);
+ /* text-shadow: -0.5px -0.5px 0 rgb(250, 250, 250),
+ 0.5px -0.5px 0 rgb(250, 250, 250), -0.5px 0.5px 0 rgb(250, 250, 250),
+ 0.5px 0.5px 0 rgb(250, 250, 250); */
}
.HomeView .emoji {
diff --git a/src/components/styles/HomeViewContent.css b/src/components/styles/HomeViewContent.css
deleted file mode 100644
index 37fdc5c..0000000
--- a/src/components/styles/HomeViewContent.css
+++ /dev/null
@@ -1,59 +0,0 @@
-/* - - - - GENERAL - - - -*/
-.HomeViewContent {
- position: relative;
- display: flex;
- width: 100vw;
- height: 100%;
- justify-content: center;
- align-items: center;
- overflow: hidden;
-}
-
-.HomeViewContent video {
- height: 100%;
- object-fit: cover;
- margin-left: 50%;
- transform: translateX(-50%);
- min-width: 100%;
-}
-
-.HomeViewContent img {
- height: 100%;
- object-fit: cover;
- width: 100%;
-}
-
-.HomeViewContent .media-ctr {
- height: 100%;
- width: 100%;
-}
-
-.HomeViewContent .PersonalIntro {
- display: flex;
- align-items: center;
- justify-content: center;
- box-sizing: border-box;
- margin-bottom: 0%;
- width: 100%;
- height: 100%;
- z-index: 1;
- border: 10px ridge rgba(0, 255, 221, 0.767);
-}
-
-.HomeViewContent .PersonalIntro img {
- min-width: 100px;
- min-height: 100px;
- max-width: 400px;
- max-height: 400px;
- width: 40vw;
- height: auto;
- padding: 3px;
- border: 10px ridge rgba(255, 0, 255, 0.767);
-}
-
-/* - - - - MEDIA QUERIES - - - -*/
-@media only screen and (min-width: 768px) {
- .HomeViewContent video {
- height: 110%;
- }
-}
diff --git a/src/components/styles/LandingPageLink.css b/src/components/styles/LPLink.css
similarity index 100%
rename from src/components/styles/LandingPageLink.css
rename to src/components/styles/LPLink.css
diff --git a/src/contexts/AppContext.ts b/src/contexts/AppContext.ts
index 959786d..dae5ba5 100644
--- a/src/contexts/AppContext.ts
+++ b/src/contexts/AppContext.ts
@@ -5,12 +5,14 @@ import { SpringValue } from "react-spring";
export interface AppContextModel {
isMobile: boolean;
hueRotation: any;
+ hueRotation_Inv: any;
setHueDuration: any;
}
const defaultValue: AppContextModel = {
isMobile: true,
hueRotation: undefined,
+ hueRotation_Inv: undefined,
setHueDuration: undefined,
};
diff --git a/src/contexts/AppContextProvider.tsx b/src/contexts/AppContextProvider.tsx
index f70b377..eff2664 100644
--- a/src/contexts/AppContextProvider.tsx
+++ b/src/contexts/AppContextProvider.tsx
@@ -26,6 +26,16 @@ const AppContextProvider = ({ children }: Props) => {
},
config: { duration: hueDuration, precision: 0.001 },
});
+ const hueRotation_Inv = useSpring({
+ loop: { reverse: true, config: { duration: hueDuration } },
+ to: {
+ filter: "hue-rotate(0deg) saturate(100%) sepia(0%)",
+ },
+ from: {
+ filter: "hue-rotate(130deg) saturate(80%) sepia(30%)",
+ },
+ config: { duration: hueDuration, precision: 0.001 },
+ });
const checkWindowSize = () => {
if (window.matchMedia("(min-width: 768px)").matches && isMobile) {
@@ -42,7 +52,8 @@ const AppContextProvider = ({ children }: Props) => {
});
return (
-
+
{children}
);
diff --git a/src/img/Projects/MediaMatchup/ST4vsArt.jpg b/src/img/Projects/MediaMatchup/ST4vsArt.jpg
new file mode 100644
index 0000000..5825356
Binary files /dev/null and b/src/img/Projects/MediaMatchup/ST4vsArt.jpg differ