diff --git a/package.json b/package.json index ee34480..47667ca 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "@types/react": "^17.0.0", "@types/react-animate-on-scroll": "^2.1.2", "@types/react-dom": "^17.0.0", + "@types/react-modal": "^3.13.1", "@types/react-router-dom": "^5.3.3", "@types/react-slick": "^0.23.4", "@types/react-syntax-highlighter": "^13.5.2", @@ -24,6 +25,7 @@ "react-bootstrap": "^1.6.1", "react-dom": "^17.0.2", "react-markdown": "^8.0.3", + "react-modal": "^3.16.1", "react-responsive-carousel": "^3.2.23", "react-router-dom": "^6.3.0", "react-scripts": "4.0.3", diff --git a/src/components/blog-card/BlogCard.css b/src/components/blog-card/BlogCard.css index 896a903..3e3b47a 100644 --- a/src/components/blog-card/BlogCard.css +++ b/src/components/blog-card/BlogCard.css @@ -24,7 +24,7 @@ } .blog-card-int { - border-radius: 10px; + border-radius: 7px; background-color: #1a1a1e; transition: 1s; } diff --git a/src/components/hobbies/Hobbies.tsx b/src/components/hobbies/Hobbies.tsx index fcc078c..9dac0e5 100644 --- a/src/components/hobbies/Hobbies.tsx +++ b/src/components/hobbies/Hobbies.tsx @@ -9,36 +9,13 @@ export default function Hobbies () { const [cur, setCur] = useState(1); return (
-
-
-

Hobbies

+ +
+ {AllHobbies.map((hobby) => )}
-
-

Other Hobbies

-

{cur}/{AllHobbies.length}

- {setCur(e+1)}} indicators={false} wrap={false}> - {AllHobbies.map((hobby, i) => - - - - )} - - -
-
) } diff --git a/src/components/navbar/Navbar.tsx b/src/components/navbar/Navbar.tsx index ed9f914..f7a6bd0 100644 --- a/src/components/navbar/Navbar.tsx +++ b/src/components/navbar/Navbar.tsx @@ -6,7 +6,7 @@ export default function Navbar() { const location = useLocation(); return ( -
+
Home diff --git a/src/components/project-card/ProjectCard.css b/src/components/project-card/ProjectCard.css new file mode 100644 index 0000000..0a1fe1e --- /dev/null +++ b/src/components/project-card/ProjectCard.css @@ -0,0 +1,171 @@ +.project-card { + + padding: 3px; +} + +.project-card-int { + background-color: #222; + padding: 2px; + background-size: cover; + background-position: center; + transition: .5s; + border-radius: 10px; +} + +.project-card-int:hover { + transform: translateY(-5px); + transition: .5s; + cursor: pointer; +} + +.project-card-modal { + background-color: #000000; + color: #FFFFFF; + width: 100vmin; + height: max-content; + position: absolute; + + left: 50%; + top: 50%; + -webkit-transform: translate(-50%, -50%); + transform: translate(-50%, -50%); + + outline: none; + padding: 5vmin; +} + +.ReactModal__Overlay { + background-color: rgba(20,20,20,.8) !important; + backdrop-filter: blur(5px); +} + +.back-button { + color: #2F74C0; +} + +.back-button:hover { + cursor: pointer; +} + +.lang-card { + border-radius: 5px; + font-family: monospace; + background-color: #00AA00; +} + +.lang-card-modal { + border-radius: 5px; + font-family: monospace; + align-content: center; + justify-content: center; + display: flex; + margin: 2px; + width: max-content; + padding-left: 10px; + padding-right: 10px; + background-color: #00AA00; +} + +.kubernetes { + background-color: #326ce5; +} + +.c\# { + background-color: #800080FF; +} + +.html { + background-color: #e34c26; +} + +.react { + background-color: #61DAFB; +} + +.typescript { + background-color: #2F74C0; +} + +.bootstrap { + background-color: #7952B3; +} + +.nws { + background-color: #DB4437; +} + +.docker { + background-color: #2496ED; +} + +.dotnet { + background-color: #5C2D91; +} + +.nosql { + background-color: #4EA94B; +} + +.nginx { + background-color: #269539; +} + +.react-native { + background-color: #61DBFB; +} + +.cloudflare { + background-color: #F38020; +} + +.html { + background-color: #E44D26; +} + +.javascript { + background-color: #b9a617; +} + +.css { + background-color: #1572B6; +} + +.xenhtml { + background-color: #3A6A81; +} + +.xeninfo { + background-color: #3E4E57; +} + +.java { + background-color: #007396; +} + +.apple-script { + background-color: #D9D9D9; +} + +.spotify { + background-color: #1DB954; +} + +.nodejs { + background-color: #339933; +} + +.rancher { + background-color: #0075A8; +} + +.azure-devops { + background-color: #0078D7; +} + +.mongodb { + background-color: #47A248; +} + +.mssql { + background-color: #CC2927; +} diff --git a/src/components/project-card/ProjectCard.tsx b/src/components/project-card/ProjectCard.tsx new file mode 100644 index 0000000..0913df3 --- /dev/null +++ b/src/components/project-card/ProjectCard.tsx @@ -0,0 +1,44 @@ +import React, {useState} from "react"; +import "./ProjectCard.css"; +import ProjectCardProps from "../../types/ProjectCardProps"; +import Modal from "react-modal"; + +export default function ProjectCard(props: {info: ProjectCardProps}) { + const [isModalOpen, setModalOpen] = useState(false); + + return ( +
+
{setModalOpen(true)}}> +

{props.info.title}

+

{props.info.shortDescription}

+
+
+ {props.info.techUsed.slice(0, 3).map(s => +
+
+

{s}

+
+
+ )} +
+
+
+ +

{setModalOpen(false)}}>Back

+

{props.info.title}

+ {props.info.linkTitle} +

{props.info.description}

+

All technologies used:

+
+ {props.info.techUsed.map(s => +
+
+

{s}

+
+
+ )} +
+
+
+ ); +} diff --git a/src/components/projects/Projects.tsx b/src/components/projects/Projects.tsx index de52921..1e5deb5 100644 --- a/src/components/projects/Projects.tsx +++ b/src/components/projects/Projects.tsx @@ -3,6 +3,7 @@ import InfoCard from "../info-card/InfoCard"; import React, {useState} from "react"; import {AllHobbies} from "../../static/data/Hobbies"; import {Carousel} from "react-bootstrap"; +import ProjectCard from "../project-card/ProjectCard"; export default function Projects() { const [cur, setCur] = useState(1); @@ -19,28 +20,14 @@ export default function Projects() { alignItems: "center" }}> -
+

Projects

-

(writing code is my biggest hobby)

-
- {AllProjects.map((project) => )} +

Click to learn more about each project

+
+ {AllProjects.map((project) => )}
More on GitHub
-
-

Projects

-

{cur}/{AllProjects.length}

- {setCur(e+1)}} indicators={false} wrap={false}> - {AllProjects.map((project, i) => - - - - )} - - -
) diff --git a/src/pages/SingleBlog.tsx b/src/pages/SingleBlog.tsx index fdbf601..f9f57a9 100644 --- a/src/pages/SingleBlog.tsx +++ b/src/pages/SingleBlog.tsx @@ -26,12 +26,36 @@ function SingleBlog() { }) return ( -
+

{AllBlogs[blogId].title}

{AllBlogs[blogId].date.toLocaleDateString()}

Back

-
+
+ + ) : ( + + {children} + + ) + } + }} + > + {blog} + +
+