project updates and blog

This commit is contained in:
Nicholas Orlowsky 2023-03-20 18:06:26 -05:00
parent 261a4fcacd
commit dec88e2842
12 changed files with 344 additions and 76 deletions

View file

@ -24,7 +24,7 @@
}
.blog-card-int {
border-radius: 10px;
border-radius: 7px;
background-color: #1a1a1e;
transition: 1s;
}

View file

@ -9,36 +9,13 @@ export default function Hobbies () {
const [cur, setCur] = useState(1);
return (
<div className={"child"} style={{minHeight: "100vh"}}>
<div style={{
display: "flex",
justifyContent: "center",
flexDirection: "column",
width: "96vw",
height: "100vh",
minHeight: "100vh",
alignContent: "center",
alignItems: "center"
}}>
<div className={"d-md-block d-none"}>
<h1>Hobbies</h1>
<div>
{AllHobbies.map((hobby) => <InfoCard style={{textAlign: "left", maxWidth: "50vmax", margin: 50}}
info={hobby}/>)}
</div>
<div className={"align-content-center d-md-none"}>
<h1 className={"mb-4"}>Other Hobbies</h1>
<p>{cur}/{AllHobbies.length}</p>
<Carousel controls={false} interval={null} onSlide={(e)=>{setCur(e+1)}} indicators={false} wrap={false}>
{AllHobbies.map((hobby, i) =>
<Carousel.Item>
<InfoCard style={{textAlign: "left", maxWidth: "50vmax", margin: 50}}
info={hobby}/>
</Carousel.Item>
)}
</Carousel>
</div>
</div>
</div>
)
}

View file

@ -6,7 +6,7 @@ export default function Navbar() {
const location = useLocation();
return (
<div style={{maxWidth:"100%", marginTop: 10}} className={"d-flex justify-content-center align-items-center " + (location.pathname === "/" ? "fade-down-d3s" : "")} >
<div style={{maxWidth:"100%", marginTop: 10, maxHeight: "5vh"}} className={"d-flex justify-content-center align-items-center " + (location.pathname === "/" ? "fade-down-d3s" : "")} >
<div className={"d-flex flex-row justify-content-around"} style={{width: 700}}>
<div className={"d-flex flex-column justify-content-center align-items-center"}>
<Link to={"/home"} className={"mb-0 no-blue-link"}>Home</Link>

View file

@ -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;
}

View file

@ -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 (
<div className={"project-card col-md-4 p-2"}>
<div className={"project-card-int pb-2"} style={{backgroundImage: "linear-gradient(to bottom, rgba(0, 0, 0, .60) 50%, rgba(0, 0, 0, 0.75) 100%), url(\""+props.info.imageUrl+"\")"}} onClick={()=>{setModalOpen(true)}}>
<h3>{props.info.title}</h3>
<p>{props.info.shortDescription}</p>
<div>
<div className={"row"} style={{fontFamily: "monospace"}}>
{props.info.techUsed.slice(0, 3).map(s =>
<div className={"col-md-4 col-12 mt-2"}>
<div className={"lang-card "+s.toLowerCase().replace(" ", "")}>
<p style={{fontSize: 16, margin: 0}}>{s}</p>
</div>
</div>
)}
</div>
</div>
</div>
<Modal className={"project-card-modal"} isOpen={isModalOpen}>
<p className={"back-button"} onClick={()=>{setModalOpen(false)}}>Back</p>
<h1>{props.info.title}</h1>
<a href={props.info.link}>{props.info.linkTitle}</a>
<p>{props.info.description}</p>
<h3>All technologies used:</h3>
<div className={"d-flex flex-wrap mw-100"}>
{props.info.techUsed.map(s =>
<div className={""}>
<div className={"lang-card-modal "+s.toLowerCase().replace(" ", "")}>
<p style={{fontSize: 16, margin: 0}}>{s}</p>
</div>
</div>
)}
</div>
</Modal>
</div>
);
}

View file

@ -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"
}}>
<div className={"align-content-center d-md-block d-none"}>
<div className={"align-content-center"}>
<h1>Projects</h1>
<p>(writing code is my biggest hobby)</p>
<div className={"row m-0"} style={{justifyContent: "center", padding: 20}}>
{AllProjects.map((project) => <InfoCard className={"col-md-6"} style={{textAlign: "left",marginTop: 35, paddingLeft: 20, paddingRight: 20}}
info={project}/>)}
<p>Click to learn more about each project</p>
<div className={"row m-0"} style={{justifyContent: "center", padding: 50}}>
{AllProjects.map((project) => <ProjectCard info={project}/>)}
</div>
<a href={"https://github.com/nickorlow"}>More on GitHub</a>
</div>
<div className={"align-content-center d-md-none"}>
<h1 className={"mb-4"}>Projects</h1>
<p>{cur}/{AllProjects.length}</p>
<Carousel controls={false} interval={null} onSlide={(e)=>{setCur(e+1)}} indicators={false} wrap={false}>
{AllProjects.map((project, i) =>
<Carousel.Item>
<InfoCard className={"col-md-6"} style={{textAlign: "left",marginTop: 35, paddingLeft: 20, paddingRight: 20}}
info={project}/>
</Carousel.Item>
)}
</Carousel>
</div>
</div>
</div>
)