major updates
This commit is contained in:
@@ -14,14 +14,22 @@
|
||||
<link href="/css/project.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="/css/imageLeftProject.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="/css/imageRightProject.css" rel="stylesheet" type="text/css"/>
|
||||
<link href="/css/footer.css" rel="stylesheet" type="text/css"/>
|
||||
</head>
|
||||
<body>
|
||||
<div id="Header">
|
||||
<a class="headerOption" onclick="showClickedContents('projects')">./ Projects</a>
|
||||
<a class="headerOption" onclick="showClickedContents('contact')">./ Contact me</a>
|
||||
</div>
|
||||
|
||||
<div id="WelcomeMessage"></div>
|
||||
|
||||
<div id="ProjectsBox">
|
||||
<a id="ChessProject" class="projectContainer" target="_blank" href="https://github.com/JoshHeaps/OnlineChess">
|
||||
<div id="ChessProject" class="projectContainer">
|
||||
<div class="displayBox diagonal-section-left">
|
||||
<img id="ChessImage" class="projectImage projectImageLeft" src="/images/Chess.jpg" title="Chessboard"/>
|
||||
<a target="_blank" href="https://github.com/JoshHeaps/OnlineChess">
|
||||
<img id="ChessImage" class="projectImage projectImageLeft" src="/images/Chess.jpg" title="Chessboard"/>
|
||||
</a>
|
||||
</div>
|
||||
<div id="ChessText" class="projectTextRight">
|
||||
<h2 id="ChessTitle" class="projectHeaderRight projectHeader">Chess</h2>
|
||||
@@ -29,9 +37,9 @@
|
||||
As someone who loves chess, I wanted to create a chess game that I could play with my friends and family. This project is a work in progress, as currently it can only be played locally. It was built in C# on .NET 8.0, using winforms, because I like a challenge. I plan to add online multiplayer functionality in the future.
|
||||
</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<a id="CompilerProject" class="projectContainer" target="_blank" href="https://github.com/JoshHeaps/CILCompiler">
|
||||
<div id="CompilerProject" class="projectContainer">
|
||||
<div id="CompilerText" class="projectTextLeft">
|
||||
<h2 id="CompilerTitle" class="projectHeaderLeft projectHeader">Compiler</h2>
|
||||
<p id="CompilerDescription" class="projectDescriptionLeft projectDescription">
|
||||
@@ -39,8 +47,32 @@
|
||||
</p>
|
||||
</div>
|
||||
<div class="displayBox diagonal-section-right">
|
||||
<img id="CompilerImage" class="projectImage projectImageRight" src="/images/CompilerDemo.png" title="Compiler Input and Output"/>
|
||||
<a target="_blank" href="https://github.com/JoshHeaps/CILCompiler">
|
||||
<img id="CompilerImage" class="projectImage projectImageRight" src="/images/CompilerDemo.png" title="Compiler Input and Output"/>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div id="Contacts">
|
||||
<a id="GithubLink" class="social-link" href="https://github.com/JoshHeaps" target="_blank">
|
||||
<svg viewBox="0 0 16 16" class="social-icon">
|
||||
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
<a id="LinkedinLink" class="social-link" href="https://www.linkedin.com/in/josh-heaps/" target="_blank">
|
||||
<svg viewBox="0 0 24 24" class="social-icon">
|
||||
<path d="M20.5 2h-17A1.5 1.5 0 002 3.5v17A1.5 1.5 0 003.5 22h17a1.5 1.5 0 001.5-1.5v-17A1.5 1.5 0 0020.5 2zM8 19H5v-9h3zM6.5 8.25A1.75 1.75 0 118.3 6.5a1.78 1.78 0 01-1.8 1.75zM19 19h-3v-4.74c0-1.42-.6-1.93-1.38-1.93A1.74 1.74 0 0013 14.19a.66.66 0 000 .14V19h-3v-9h2.9v1.3a3.11 3.11 0 012.7-1.4c1.55 0 3.36.86 3.36 3.66z"></path>
|
||||
</svg>
|
||||
</a>
|
||||
<a id="GmailLink" class="social-link" href="mailto:[email protected]">
|
||||
<svg viewBox="52 42 88 66" class="social-icon">
|
||||
<path d="M58 108h14V74L52 59v43c0 3.32 2.69 6 6 6" />
|
||||
<path d="M120 108h14c3.32 0 6-2.69 6-6V59l-20 15" />
|
||||
<path d="M120 48v26l20-15v-8c0-7.42-8.47-11.65-14.4-7.2" />
|
||||
<path d="M72 74V48l24 18 24-18v26L96 92" />
|
||||
<path d="M52 51v8l20 15V48l-5.6-4.2c-5.94-4.45-14.4-.22-14.4 7.2" />
|
||||
</svg>
|
||||
</a>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#Contacts {
|
||||
margin-top: 20vw;
|
||||
}
|
||||
|
||||
.social-icon {
|
||||
height: auto;
|
||||
width: 3.5vw;
|
||||
margin-bottom: 5vw;
|
||||
margin-left: 3vw;
|
||||
fill: rgb(212, 212, 212);
|
||||
transition: fill 0.5s;
|
||||
}
|
||||
|
||||
.social-icon:hover {
|
||||
fill: white;
|
||||
transition: fill 0.5s;
|
||||
}
|
||||
@@ -2,12 +2,18 @@
|
||||
position: absolute;
|
||||
clip-path: polygon(0 0, 85vw 0, 60vw 100%, 0 100%);
|
||||
background-color: rgb(104, 255, 0, 0.39);
|
||||
transition: clip-path 0.5s ease;
|
||||
}
|
||||
|
||||
.diagonal-section-left:has(.projectImage:hover) {
|
||||
clip-path: polygon(0 0, 87vw 0, 58vw 100%, 0 100%);
|
||||
transition: clip-path 0.5s ease;
|
||||
}
|
||||
|
||||
.projectImageLeft {
|
||||
width: 33vw;
|
||||
height: auto;
|
||||
padding: 3vw;
|
||||
margin: 3vw;
|
||||
}
|
||||
|
||||
.projectTextRight {
|
||||
|
||||
@@ -2,12 +2,18 @@
|
||||
position: absolute;
|
||||
clip-path: polygon(40vw 0, 100% 0, 100% 100%, 15vw 100%);
|
||||
background-color: rgb(104, 255, 0, 0.39);
|
||||
transition: clip-path 0.5s ease;
|
||||
}
|
||||
|
||||
.diagonal-section-right:has(.projectImage:hover) {
|
||||
clip-path: polygon(42vw 0, 100% 0, 100% 100%, 13vw 100%);
|
||||
transition: clip-path 0.5s ease;
|
||||
}
|
||||
|
||||
.projectImageRight {
|
||||
width: 33vw;
|
||||
height: auto;
|
||||
padding: 3vw;
|
||||
margin: 3vw;
|
||||
float: right;
|
||||
}
|
||||
|
||||
@@ -20,7 +26,7 @@
|
||||
margin: 0;
|
||||
color: rgb(212, 212, 212);
|
||||
font-size: 4vw;
|
||||
padding-left: 10vw;
|
||||
margin-left: 10vw;
|
||||
}
|
||||
|
||||
.projectDescriptionLeft {
|
||||
@@ -28,5 +34,5 @@
|
||||
color: rgb(212, 212, 212);
|
||||
font-size: 2vw;
|
||||
width: 40vw;
|
||||
padding-left: 10vw;
|
||||
margin-left: 10vw;
|
||||
}
|
||||
|
||||
@@ -15,6 +15,15 @@
|
||||
height: auto;
|
||||
}
|
||||
|
||||
a {
|
||||
a.projectContainer {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.projectImage {
|
||||
transition: width 0.5s ease;
|
||||
}
|
||||
|
||||
.projectImage:hover {
|
||||
width: 40vw;
|
||||
transition: width 0.5s ease;
|
||||
}
|
||||
@@ -3,14 +3,32 @@
|
||||
background-color: #2b2c30;
|
||||
color: #09ff00;
|
||||
overflow-x: hidden;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
#Header {
|
||||
margin-top: 2vw;
|
||||
}
|
||||
|
||||
.headerOption {
|
||||
font: bold 2vw arial;
|
||||
display: inline;
|
||||
margin-left: 10vw;
|
||||
cursor: pointer;
|
||||
transition: color 0.5s ease, font 0.5s ease;
|
||||
}
|
||||
|
||||
.headerOption:hover {
|
||||
font: bold 2.3vw arial;
|
||||
transition: color 0.5s ease, font 0.5s ease;
|
||||
}
|
||||
|
||||
#WelcomeMessage {
|
||||
font: 3vw arial;
|
||||
width: auto;
|
||||
height: 40vw;
|
||||
padding-top: 20vw;
|
||||
text-align: center;
|
||||
margin-top: 15vw;
|
||||
text-align: left;
|
||||
padding-left: 10vw;
|
||||
padding-right: 10vw;
|
||||
}
|
||||
@@ -9,18 +9,52 @@
|
||||
simulateTyping(element, content);
|
||||
}
|
||||
|
||||
function simulateTyping(element, text) {
|
||||
let index = 0;
|
||||
let speed = 50;
|
||||
let currentText = "";
|
||||
let intervalId;
|
||||
let index = 0;
|
||||
const punctuation = ['.', '!', '?'];
|
||||
|
||||
const interval = setInterval(() => {
|
||||
let currentText = "";
|
||||
|
||||
function changeIntervalTime(element, text) {
|
||||
if (punctuation.includes(text.charAt(index))) {
|
||||
clearInterval(intervalId);
|
||||
simulateTyping(element, text, 200);
|
||||
}
|
||||
else {
|
||||
clearInterval(intervalId);
|
||||
simulateTyping(element, text);
|
||||
}
|
||||
}
|
||||
|
||||
function simulateTyping(element, text, speed = 50) {
|
||||
intervalId = setInterval(() => {
|
||||
if (index < text.length) {
|
||||
currentText += text.charAt(index);
|
||||
changeIntervalTime(element, text);
|
||||
index++;
|
||||
element.textContent = currentText;
|
||||
} else {
|
||||
clearInterval(interval);
|
||||
clearInterval(intervalId);
|
||||
}
|
||||
}, speed);
|
||||
}
|
||||
|
||||
function showClickedContents(option) {
|
||||
if (option === 'projects') {
|
||||
document.querySelector("#ChessProject > div.diagonal-section-left").scrollIntoView({
|
||||
behavior: "smooth",
|
||||
block: "center",
|
||||
inline: "nearest"
|
||||
});
|
||||
}
|
||||
else if (option === 'contact') {
|
||||
navigator.clipboard.writeText('435-890-2957').then(() => {
|
||||
console.log('copied');
|
||||
});
|
||||
document.querySelector("#Contacts").scrollIntoView({
|
||||
behavior: "smooth",
|
||||
block: "start",
|
||||
inline: "nearest"
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user