New content, dark theme, mobile

This commit is contained in:
Hamza Nasher-Alneam 2024-06-02 22:41:27 -04:00
parent c8835bc274
commit 0002a9ea6e
3 changed files with 464 additions and 168 deletions

View file

@ -1,140 +1,208 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<link href="https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,300;0,400;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,600;1,700;1,800;1,900&amp;display=swap" rel="stylesheet">
<link rel="shortcut icon" href="assets/not_sure.jpg" type="image/x-icon"/>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.4.1/css/all.css">
<script src="scripts/main.js" charset="utf-8" defer></script>
<link rel="stylesheet" href="styles/styles.css">
<title>⭐ Hamza Nasher-Alneam ⭐</title>
</head>
<body>
<!-- Move to different parts -->
<div class="progress-parent">
<div class="progress">
<span id="meetIndicator" onclick="goToSection('meet')"></span>
<span id="vegetable-dashIndicator" onclick="goToSection('vegetable-dash')"></span>
<span id="gold-rushIndicator" onclick="goToSection('gold-rush')"></span>
<span id="coming-soonIndicator" onclick="goToSection('coming-soon')"></span>
<head>
<meta charset="utf-8">
<link
href="https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,300;0,400;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,600;1,700;1,800;1,900&amp;display=swap"
rel="stylesheet">
<link rel="shortcut icon" href="assets/not_sure.jpg" type="image/x-icon" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css">
<script src="scripts/main.js" charset="utf-8" defer></script>
<link rel="stylesheet" href="styles/styles.css">
<title>⭐ Hamza Nasher-Alneam ⭐</title>
</head>
<body>
<!-- Move to different parts -->
<div class="progress-parent">
<div class="progress">
<span onmouseover="info(this)" data-info="About" id="meetIndicator" onclick="goToSection('meet')"></span>
<span onmouseover="info(this)" data-info="Leadership" id="leadershipIndicator"
onclick="goToSection('leadership')"></span>
<span onmouseover="info(this)" data-info="Skills" id="skillsIndicator" onclick="goToSection('skills')"></span>
<span onmouseover="info(this)" data-info="Clubs" id="clubsIndicator" onclick="goToSection('clubs')"></span>
<span onmouseover="info(this)" data-info="Achievements" id="achievementsIndicator"
onclick="goToSection('achievements')"></span>
<span onmouseover="info(this)" data-info="Work" id="workIndicator" onclick="goToSection('work')"></span>
<span onmouseover="info(this)" data-info="Volunteering" id="volunteeringIndicator"
onclick="goToSection('volunteering')"></span>
<span onmouseover="info(this)" data-info="Contact" id="contactIndicator"
onclick="goToSection('contact')"></span>
</div>
</div>
<!-- Landing -->
<div class="block landing" id="meet">
<div class="section-head">
<h1 class="hi">
I'm Hamza Nasher-Alneam
</h1>
</div>
<div class="section-text">
<div class="about-me">
<h1>About me</h1>
<p>I'm a high school student in the United States with a passion for learning and an interest in programming
and computer systems.</p>
</div>
</div>
</div>
<!-- Landing -->
<div class="block landing" id="meet">
<div class="section-head">
<!-- Leadership -->
<div class="block" id="leadership">
<div class="section-text">
<div class="about-me">
<h1>Leadership</h1>
<p>I co-founded the Game Dev Club with some friends at school to create a space at my school for people
interested in
computers and software development. It is also an officially registered <a
href="https://hackclub.com/">Hack Club</a>, which gives the club support and
opportunities. In the first year, we already have 9 members who meet weekly both inside and outside of school to show off their work and give presentations about topics like creating engaging games and versioning code with Git.</p>
</div>
</div>
<div class="section-head">
<div>
<h1 class="hi">
I'm Hamza Nasher-Alneam
Leadership
</h1>
</div>
<div class="section-text">
<div class="about-me">
<h1>About me</h1>
<p>I'm a high school student in the United States. When I have time, I like to do programming, which has been mostly full
stack web dev. Now, I'm learning Kotlin for Android development, trying out Godot for the school Game Dev Club, and
writing C++ code for the school robotics team. Currently using the Fedora KDE Spin.</p>
</div>
<!-- <img class="section-image" src="https://broadneckrobotics.github.io/images/2023-2024/working.jpg"
alt="Robotics image"> -->
</div>
</div>
</div>
<!-- Vegetable Dash -->
<div class="block" id="vegetable-dash">
<div class="section-text">
<div class="about-me">
<h1>Broadneck Robotics</h1>
<p>Vex robotics! I've done some of that. I've written code and other things about whatever</p>
</div>
</div>
<div class="section-head">
<div>
<h1 class="hi">
Robotics
</h1>
<img class="section-image" src="https://broadneckrobotics.github.io/images/2023-2024/working.jpg" alt="Robotics image">
</div>
</div>
</div>
<!-- Game dev club -->
<div class="block" id="gold-rush">
<div class="section-head">
<div>
<h1 class="hi">
Game Dev Club
</h1>
<img class="section-image" src="https://hnasheralneam.github.io/gamedevclub/assets/title-box.png" alt="Game Dev Club logo">
</div>
</div>
<div class="section-text">
<div class="about-me">
<h1>Game Dev Club</h1>
<p>Godot! and no more unity. Gdscipt is basically python, ewwww we don't like python, none of us.</p>
</div>
</div>
</div>
<!-- Gold Rush -->
<div class="block" id="gold-rush">
<div class="text">
<br>
<h1>achievements</h1>
<p class="about-gold gold-text">About gold rush</p>
</div>
</div>
<!-- Coming soon -->
<div class="block" id="coming-soon">
<div class="section-head">
<div>
<h1 class="hi">
Coming soon!
</h1>
<div>
<br><br>
<p>Email | <a href="mailto:hnasheralneam@gmail.com">hnasheralneam@gmail.com</a></p>
<p>GitHub | <a href="https://github.com/hnasheralneam/">@hnasheralneam</a></p>
<p>Developer website | <a href="https://hnasheralneam.github.io/">hnasheralneam.github.io</a></p>
</div>
</div>
</div>
<div class="section-text">
<div class="about-me">
<h1>You won't find me at</h1>
<p>Places you won't find me at</p>
<br>
<hr class="hr">
<br>
<div class="will-not-find-me-at">
<a class="nothing-link" href="https://www.reddit.com/"><i class="fab fa-reddit"></i></a>
<a class="nothing-link" href="https://www.twitch.tv/"><i class="fab fa-twitch"></i></a>
<a class="nothing-link" href="https://dribbble.com/"><i class="fab fa-dribbble"></i></a>
<a class="nothing-link" href="https://www.squarespace.com/"><i class="fab fa-squarespace"></i></a>
</div>
<h1>You will find me at</h1>
<p>Places you will find me at</p>
<br>
<hr class="hr">
<br>
<div class="will-not-find-me-at">
<a class="nothing-link" href="https://github.com/hamza-314"><i class="fab fa-github"></i></a>
<a class="nothing-link" href="https://stackoverflow.com/users/14818357/hamza"><i class="fab fa-stack-overflow"></i></a>
<a class="nothing-link" href="https://codepen.io/hamza-314"><i class="fab fa-codepen"></i></a>
</div>
</div>
</div>
</div>
<!-- Coming Soon -->
<div class="block" id="coming-soon">
<div class="text">
<br><br>
<h1>
Coming soon
<!-- Skills -->
<div class="block" id="skills">
<div class="section-head">
<div>
<h1 class="hi">
Skills
</h1>
<div>
words
<!-- <img class="section-image" src="https://hnasheralneam.github.io/gamedevclub/assets/title-box.png"
alt="Game Dev Club logo"> -->
</div>
</div>
<div class="section-text">
<div class="about-me">
<h1>Skills</h1>
<p>I have worked primarily with JavaScript and Node.js to create full-stack web apps, but I am also
comfortable in several other languages, including Python and Java. I use Linux for my daily work, but also use OpenSuse on a server.</p>
</div>
</div>
</div>
<!-- Clubs -->
<div class="block" id="clubs">
<div class="section-text">
<div class="about-me">
<h1>Clubs</h1>
<p>I am a member of the Broadneck Robotics Club, where I write code for my team and help other teams with code. Throughout the 2023-2024 season, we participated in multiple local competitions, learning from our losses to improve our robot. Our efforts paid off near the end of the season, when we made it into the VEX Robotics state competition.</p>
</div>
</div>
<div class="section-head">
<div>
<h1 class="hi">
Clubs
</h1>
<!-- <img class="section-image" src="https://broadneckrobotics.github.io/images/2023-2024/working.jpg"
alt="Robotics image"> -->
</div>
</div>
</div>
<!-- Achievements -->
<div class="block" id="achievements">
<div class="section-head">
<div>
<h1 class="hi">
Achievements
</h1>
<!-- <img class="section-image" src="https://hnasheralneam.github.io/gamedevclub/assets/title-box.png"
alt="Game Dev Club logo"> -->
</div>
</div>
<div class="section-text">
<div class="about-me">
<h1>Achievements</h1>
<p>In 2023, a friend and I competed in the <a href="https://magicinc.org/announcing-winners-of-ctf-14">MAGIC CTF cybersecurity competition</a>, facing off against teenage programmers from across the country, and winning third place.<p>
<p>In February of 2024, a friend and I competed in the STEP challenge by MAGIC, creating and developing a
developer profile application, which won the technology and best overall awards for 500 dollars.</p>
</div>
</div>
</div>
<!-- Work -->
<div class="block" id="work">
<div class="section-text">
<div class="about-me">
<h1>Work</h1>
<p>I've created multiple open source projects, which, while not actively maintained, have taught me a lot of
programming
skills, as well as how to create and manage a project.</p>
</div>
</div>
<div class="section-head">
<div>
<h1 class="hi">
Work
</h1>
<!-- <img class="section-image" src="https://broadneckrobotics.github.io/images/2023-2024/working.jpg"
alt="Robotics image"> -->
</div>
</div>
</div>
<!-- Volunteering -->
<div class="block" id="volunteering">
<div class="section-head">
<div>
<h1 class="hi">
Volunteering
</h1>
<!-- <img class="section-image" src="https://broadneckrobotics.github.io/images/2023-2024/working.jpg"
alt="Robotics image"> -->
</div>
</div>
<div class="section-text">
<div class="about-me">
<h1>Volunteering</h1>
<p>Throughout my 9th grade summer, I volunteered at <a href="https://www.ecoffshoots.org/">ECO City
Farms</a>, a nonprofit farm in Prince George's County that sells affordable fresh vegetables in food
deserts.</p>
</div>
</div>
</div>
<!-- Contact -->
<div class="block" id="contact">
<div class="section-text">
<div class="about-me">
<h1>You can find me at</h1>
<div class="will-not-find-me-at">
<a class="nothing-link" href="https://github.com/hnasheralneam"><i class="fa-brands fa-github"></i></a>
<a class="nothing-link" href="mailto:hnasheralneam@gmail.com"><i class="fa-brands fa-google"></i></a>
<a class="nothing-link" href="http://hnasheralneam.onthewifi.com:3000"><i
class="fa-solid fa-code-branch"></i></a>
</div>
</div>
</div>
</body>
<div class="section-head">
<div>
<h1 class="hi">
Contact!
</h1>
<div class="contact">
<p>Email | <a class="fancy-underline" href="mailto:hnasheralneam@gmail.com">hnasheralneam@gmail.com</a></p>
<p>GitHub | <a class="fancy-underline" href="https://github.com/hnasheralneam/">@hnasheralneam</a></p>
<p>Developer website | <a class="fancy-underline" href="https://hnasheralneam.github.io/">hnasheralneam.github.io</a></p>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View file

@ -15,3 +15,28 @@ function goToSection(page) {
if (document.querySelector("span.active")) document.querySelector("span.active").classList.remove("active");
indicator.classList.add("active")
}
// Hover
let dynamHov;
let theme = "light";
setupDynamHov();
function setupDynamHov() {
dynamHov = document.createElement("SPAN");
document.body.appendChild(dynamHov);
if (theme === "dark") { dynamHov.classList.add("dynamicHover"); }
else { dynamHov.classList.add("dynamicHoverDark"); }
}
function info(THIS) {
dynamHov.innerHTML = THIS.dataset.info;
dynamHov.style.opacity = "1";
THIS.onmouseleave = () => { dynamHov.style.opacity = "0"; }
}
document.addEventListener("mousemove", (event) => {
dynamHov.style.left = (event.clientX + 18) + "px";
dynamHov.style.top = (event.clientY - 5) + "px";
});

View file

@ -2,7 +2,14 @@
Main
==================================================*/
body, html {
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}
body,
html {
overflow: hidden;
scroll-behavior: smooth;
}
@ -19,10 +26,6 @@ Common Classes
grid-template-columns: 50% 50%;
}
.block:nth-child(2n) {
background-color: #fff;
}
.section-head {
background-color: #f5f5f5;
}
@ -50,42 +53,52 @@ Progress
.progress-parent {
position: fixed;
top: 0;
bottom: 0;
left: 0;
bottom: 0;
right: 0;
display: flex;
justify-content: center;
align-items: center;
padding-left: 10px;
padding-bottom: 10px;
z-index: 100;
}
.progress {
background-color: #e4e4e4;
border-radius: 14px;
background-color: #e2e2e2;
border-radius: 1em 1em 0 0;
list-style-type: none;
padding: 0 8px;
padding: 6px 8px 2px 8px;
transform: translate(0, 10px);
transition: .1s;
box-shadow: 0 0 2px #ddd;
}
.progress-parent:hover .progress {
transform: translate(0, 0);
box-shadow: 0 1px 4px #bbb;
border-radius: 1em;
}
.progress span {
display: block;
display: inline-block;
position: relative;
height: 25px;
width: 25px;
border-radius: 50%;
background-color: #fff;
color: #f9f9f9;
margin: 9px 0;
transition: 0.1s;
box-shadow: inset 1px 1px 5px #ddd,
0 0 1px #bbb;
0 0 1px #bbb;
}
.progress span.active {
background-color: #262626;
}
.progress span:hover { transform: scale(1.2); }
.progress span:hover {
transform: scale(1.2);
}
/*==================================================
@ -103,14 +116,19 @@ Landing
margin: 0 auto;
}
.block:hover .hi {
color: #f9f9f9;
font-size: 280%;
background-color: #262626;
border-radius: 2%;
@media only screen and (min-width: 700px) {
.block:hover .hi {
color: #f9f9f9;
font-size: 280%;
background-color: #262626;
border-radius: 2%;
}
}
.hi:before, .hi:after {
.hi:before,
.hi:after {
content: "";
position: absolute;
height: 50px;
@ -121,8 +139,13 @@ Landing
opacity: 0;
}
.hi:before { left: -50px; }
.hi:after { right: -50px; }
.hi:before {
left: -50px;
}
.hi:after {
right: -50px;
}
.block:hover .hi:before {
left: 50%;
@ -137,9 +160,17 @@ Landing
}
@keyframes hi-opacity {
0% { opacity: 0; }
50% { opacity: 1; }
100% { opacity: 0; }
0% {
opacity: 0;
}
50% {
opacity: 1;
}
100% {
opacity: 0;
}
}
@ -181,27 +212,27 @@ Links
==========================================================*/
a {
color: lightblue;
color: #27c878;
}
.fancy-underline {
text-decoration: none;
position: relative;
}
.no-link:after {
display: none;
}
a:after {
.fancy-underline:after {
content: "";
display: block;
height: 1.5px;
left: 50%;
position: absolute;
background: lightblue;
transition: all .5s;
background: #27c878;
transition: all .2s;
width: 0;
}
a:hover:after {
.fancy-underline:hover:after {
width: 100%;
left: 0;
}
@ -211,10 +242,17 @@ a:hover:after {
Personal
==================================================*/
.will-not-find-me-at { font-family: Nunito; }
.find-me { margin: 50px 50px 0 50px; }
.will-not-find-me-at {
font-family: Nunito;
}
.nothing-link:after { display: none; }
.find-me {
margin: 50px 50px 0 50px;
}
.nothing-link:after {
display: none;
}
.will-not-find-me-at {
display: flex;
@ -227,11 +265,11 @@ Personal
.will-not-find-me-at a {
width: 90px;
height: 90px;
background-color: #f1f1f1;
background-color: #fafafa;
margin: 10px;
border-radius: 30%;
color: #10ac84;
box-shadow: 0 5px 15px -5px #00000070;
color: #27c878;
box-shadow: 0 5px 15px -5px #00000050;
position: relative;
overflow: hidden;
transition: all 0.2s;
@ -249,4 +287,169 @@ i {
color: whitesmoke;
}
.will-not-find-me-at a:hover { background-color: #262626; }
.will-not-find-me-at a:hover {
background-color: #27c878;
}
.contact {
margin-top: 4em;
}
.contact p {
font-size: 120%;
margin: .4em 0;
padding: 0;
font-family: monospace;
}
/*==================================================
Hover
==================================================*/
.dynamicHover,
.dynamicHoverDark {
position: fixed;
z-index: 10000;
padding: .4vh .8vw;
font-family: "Nunito";
border-radius: 1vh;
font-size: 2.6vh;
transition: opacity .1s;
opacity: 0;
}
.dynamicHover {
background-color: #e9e9e9;
color: #2b2b2b;
}
.dynamicHoverDark {
background-color: #2b2b2b;
color: #e9e9e9;
}
/*==================================================
Dark
==================================================*/
@media (prefers-color-scheme: dark) {
.section-head {
background-color: #000;
color: #aaa;
}
.section-text {
background-color: #222;
color: #e9e9e9;
}
.progress {
background-color: #333;
box-shadow: 0 0 2px #555;
}
.progress-parent:hover .progress {
box-shadow: 0 1px 4px #555;
}
.progress span {
background-color: #222;
color: #e9e9e9;
box-shadow: inset 1px 1px 5px #111,
0 0 1px #000;
}
.progress span.active {
background-color: #666;
}
.will-not-find-me-at a {
background-color: #333;
}
.dynamicHoverDark {
background-color: #e9e9e9;
color: #2b2b2b;
}
}
/*==================================================
Mobile
==================================================*/
@media only screen and (max-width: 700px) {
.block {
grid-template-columns: 100%;
grid-template-rows: auto auto;
height: 90vh;
}
.section-head {
height: 20vh;
overflow: scroll;
}
.section-text {
height: 70vh;
overflow: scroll;
font-size: 105%;
}
.section-text .about-me {
margin: 0 10px;
}
#contact {
background-color: #000;
}
#contact .hi {
padding: 0;
margin-bottom: 10px;
}
#contact .section-head {
height: 30vh;
}
#contact .section-text {
height: 30vh;
}
.contact {
margin-top: 0;
}
.hi::after,
.hi::before {
all: unset;
}
.progress {
height: 10vh;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: 15px 0;
overflow: scroll;
}
.progress span {
height: 50px;
width: 50px;
margin: 0 .3em;
}
.progress-parent:hover .progress {
transform: translate(0, 10px);
}
.about-me {
transform: translateY(2px);
opacity: 1;
}
}