From 0002a9ea6ef5b3998f4277ff76ef794a51636a20 Mon Sep 17 00:00:00 2001 From: Hamza Nasher-Alneam Date: Sun, 2 Jun 2024 22:41:27 -0400 Subject: [PATCH] New content, dark theme, mobile --- index.html | 320 ++++++++++++++++++++++++++++------------------ scripts/main.js | 25 ++++ styles/styles.css | 287 +++++++++++++++++++++++++++++++++++------ 3 files changed, 464 insertions(+), 168 deletions(-) diff --git a/index.html b/index.html index 02d0186..9585247 100644 --- a/index.html +++ b/index.html @@ -1,140 +1,208 @@ - - - - - - - - ⭐ Hamza Nasher-Alneam ⭐ - - - -
-
- - - - + + + + + + + + + ⭐ Hamza Nasher-Alneam ⭐ + + + + +
+
+ + + + + + + + +
+
+ + +
+
+

+ I'm Hamza Nasher-Alneam +

+
+
+
+

About me

+

I'm a high school student in the United States with a passion for learning and an interest in programming + and computer systems.

+
- -
-
+ +
+
+
+

Leadership

+

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 Hack Club, 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.

+
+
+
+

- I'm Hamza Nasher-Alneam + Leadership

-
-
-
-

About me

-

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.

-
+
+
- -
-
-
-

Broadneck Robotics

-

Vex robotics! I've done some of that. I've written code and other things about whatever

-
-
-
-
-

- Robotics -

- Robotics image -
-
-
- - -
-
-
-

- Game Dev Club -

- Game Dev Club logo -
-
-
-
-

Game Dev Club

-

Godot! and no more unity. Gdscipt is basically python, ewwww we don't like python, none of us.

-
-
-
- - -
-
-
-

achievements

-

About gold rush

-
-
- - -
-
-
-

- Coming soon! -

-
-

-

Email | hnasheralneam@gmail.com

-

GitHub | @hnasheralneam

-

Developer website | hnasheralneam.github.io

-
-
-
-
-
-

You won't find me at

-

Places you won't find me at

-
-
-
-
- - - - -
-

You will find me at

-

Places you will find me at

-
-
-
-
- - - -
-
-
-
- - -
-
-

-

- Coming soon + +
+
+
+

+ Skills

-
- words + +
+
+
+
+

Skills

+

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.

+
+
+
+ + +
+
+
+

Clubs

+

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.

+
+
+
+
+

+ Clubs +

+ +
+
+
+ + +
+
+
+

+ Achievements +

+ +
+
+
+
+

Achievements

+

In 2023, a friend and I competed in the MAGIC CTF cybersecurity competition, facing off against teenage programmers from across the country, and winning third place.

+

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.

+
+
+
+ + +
+
+
+

Work

+

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.

+
+
+
+
+

+ Work +

+ +
+
+
+ + +
+
+
+

+ Volunteering +

+ +
+
+
+
+

Volunteering

+

Throughout my 9th grade summer, I volunteered at ECO City + Farms, a nonprofit farm in Prince George's County that sells affordable fresh vegetables in food + deserts.

+
+
+
+ + + + + +
+
+
+

You can find me at

+
+ + +
- - +
+
+

+ Contact! +

+
+

Email | hnasheralneam@gmail.com

+

GitHub | @hnasheralneam

+

Developer website | hnasheralneam.github.io

+
+
+
+
+
+ + + \ No newline at end of file diff --git a/scripts/main.js b/scripts/main.js index 708efd1..89f567c 100644 --- a/scripts/main.js +++ b/scripts/main.js @@ -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"; +}); \ No newline at end of file diff --git a/styles/styles.css b/styles/styles.css index fc54dfa..e593793 100644 --- a/styles/styles.css +++ b/styles/styles.css @@ -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; + } +} \ No newline at end of file