mirror of
https://github.com/asimonson1125/asimonson1125.github.io.git
synced 2026-09-22 11:35:33 -05:00
local review resolutions, no content change
This commit is contained in:
@@ -2008,3 +2008,28 @@ tr {
|
||||
from { background-position: 200% 0; }
|
||||
to { background-position: -200% 0; }
|
||||
}
|
||||
|
||||
/* Skip-to-content link (accessible navigation) */
|
||||
.skip-link {
|
||||
position: fixed;
|
||||
top: -100%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
z-index: 10000;
|
||||
background: #000;
|
||||
color: #fff;
|
||||
padding: 0.75rem 1.5rem;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
border: 2px solid currentColor;
|
||||
border-radius: 0 0 4px 4px;
|
||||
white-space: nowrap;
|
||||
transition: top 0.15s ease;
|
||||
}
|
||||
|
||||
.skip-link:focus {
|
||||
top: 0;
|
||||
outline: 2px solid #4E9A26;
|
||||
outline-offset: 0;
|
||||
}
|
||||
|
||||
@@ -2,13 +2,17 @@ function toggleMenu(collapse) {
|
||||
if (window.innerWidth < 1400) {
|
||||
const menu = document.querySelector(".navControl");
|
||||
const bar = document.querySelector(".header");
|
||||
const btn = document.getElementById("menu");
|
||||
const isCollapsed = !menu.style.maxHeight || menu.style.maxHeight === "0px";
|
||||
|
||||
if (isCollapsed && !collapse) {
|
||||
menu.style.maxHeight = `${menu.scrollHeight + 10}px`;
|
||||
bar.style.borderBottomWidth = "0px";
|
||||
if (btn) btn.setAttribute("aria-expanded", "true");
|
||||
} else {
|
||||
menu.style.maxHeight = "0px";
|
||||
bar.style.borderBottomWidth = "3px";
|
||||
if (btn) btn.setAttribute("aria-expanded", "false");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -98,10 +102,14 @@ function activeSkill(obj) {
|
||||
let skill = obj.closest(".skill");
|
||||
if (skill.classList.contains("activeSkill")) {
|
||||
skill.classList.remove("activeSkill");
|
||||
const btn = obj.closest('.skillname') || obj.querySelector?.('.skillname') || obj;
|
||||
if (btn && btn.setAttribute) btn.setAttribute("aria-expanded", "false");
|
||||
return;
|
||||
}
|
||||
while (skill) {
|
||||
skill.classList.add("activeSkill");
|
||||
const nameEl = skill.querySelector?.(':scope > .skillname') || skill.querySelector('.skillname');
|
||||
if (nameEl) nameEl.setAttribute("aria-expanded", "true");
|
||||
skill = skill.parentElement.closest(".skill");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,16 +1,10 @@
|
||||
{
|
||||
"home": {
|
||||
"template": "home.html",
|
||||
"title": "Andrew Simonson - Portfolio Home",
|
||||
"description": "Andrew Simonson's Digital Portfolio home",
|
||||
"title": "Andrew Simonson - Data Scientist & Researcher",
|
||||
"description": "Andrew Simonson - Data Scientist at Ecolab, graduate student at RIT. Projects, research papers, and more.",
|
||||
"canonical": "/"
|
||||
},
|
||||
"about": {
|
||||
"template": "about.html",
|
||||
"title": "Andrew Simonson - About",
|
||||
"description": "About Andrew Simonson — career and education timeline",
|
||||
"canonical": "/about"
|
||||
},
|
||||
"status": {
|
||||
"template": "status.html",
|
||||
"title":"Andrew Simonson - Status Page",
|
||||
@@ -19,8 +13,8 @@
|
||||
},
|
||||
"projects": {
|
||||
"template": "projects.html",
|
||||
"title": "Andrew Simonson - Projects",
|
||||
"description": "Recent projects by Andrew Simonson on his lovely portfolio website :)",
|
||||
"title": "Projects & Research - Andrew Simonson",
|
||||
"description": "Data science projects, geospatial analysis, research papers, and software experiments by Andrew Simonson.",
|
||||
"canonical": "/projects"
|
||||
},
|
||||
"books": {
|
||||
@@ -37,8 +31,8 @@
|
||||
},
|
||||
"certificates": {
|
||||
"template": "certs.html",
|
||||
"title": "Certificates and Awards",
|
||||
"description": "Certificates and Awards Listing",
|
||||
"title": "Certifications & Awards - Andrew Simonson",
|
||||
"description": "Data science, DevOps, and entrepreneurship certifications earned by Andrew Simonson.",
|
||||
"canonical": "/certs"
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user