Fix copy, thread count, and the light-theme hardware card.

FAQ data now matches the page, filters announce the active chip, and the mobile menu closes when you click outside it.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-10-18 23:16:54 +02:00
commit a1db8ae3e4
7 changed files with 66 additions and 25 deletions

View file

@ -28,7 +28,7 @@
} }
})(); })();
</script> </script>
<link rel="stylesheet" href="style.css?v=20261023"> <link rel="stylesheet" href="style.css?v=20261027">
</head> </head>
<body> <body>
<a class="skip-link" href="#main">Skip to content</a> <a class="skip-link" href="#main">Skip to content</a>
@ -82,6 +82,6 @@
</div> </div>
</footer> </footer>
<script src="script.js" defer></script> <script src="script.js?v=20261027" defer></script>
</body> </body>
</html> </html>

View file

@ -34,7 +34,7 @@
} }
})(); })();
</script> </script>
<link rel="stylesheet" href="style.css?v=20261023"> <link rel="stylesheet" href="style.css?v=20261027">
<script type="application/ld+json"> <script type="application/ld+json">
{ {
"@context": "https://schema.org", "@context": "https://schema.org",
@ -100,7 +100,7 @@
<li> <li>
<span class="hw-overview-label">Total cores</span> <span class="hw-overview-label">Total cores</span>
<strong>34 cores</strong> <strong>34 cores</strong>
<span class="hw-overview-sub">48 threads across 4 devices</span> <span class="hw-overview-sub">50 threads across 4 devices</span>
</li> </li>
<li> <li>
<span class="hw-overview-label">Combined memory</span> <span class="hw-overview-label">Combined memory</span>
@ -461,6 +461,6 @@
</div> </div>
</footer> </footer>
<script src="script.js?v=20261022" defer></script> <script src="script.js?v=20261027" defer></script>
</body> </body>
</html> </html>

View file

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="cs" xmlns="http://www.w3.org/1999/html"> <html lang="cs">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
@ -34,7 +34,7 @@
} }
})(); })();
</script> </script>
<link rel="stylesheet" href="style.css?v=20261023"> <link rel="stylesheet" href="style.css?v=20261027">
<script type="application/ld+json"> <script type="application/ld+json">
{ {
"@context": "https://schema.org", "@context": "https://schema.org",
@ -73,7 +73,7 @@
"name": "Who are you?", "name": "Who are you?",
"acceptedAnswer": { "acceptedAnswer": {
"@type": "Answer", "@type": "Answer",
"text": "Josef — a 16-year-old student at SSŠVT in the Czech Republic, into graphic design, web development, and home labbing." "text": "Josef — a 16-year-old student at SSŠVT in the Czech Republic, into IT, web development, and home labbing."
} }
}, },
{ {
@ -81,15 +81,15 @@
"name": "Can I get access to your services?", "name": "Can I get access to your services?",
"acceptedAnswer": { "acceptedAnswer": {
"@type": "Answer", "@type": "Answer",
"text": "Most *.skopec.dev services are private. If you know me, ask — otherwise they are not open to the public." "text": "If you want to try one of my services, message skopcaak1 on Instagram or email josef@skopec.dev."
} }
}, },
{ {
"@type": "Question", "@type": "Question",
"name": "Where is the source for this site?", "name": "Is this site open source? Can I see the code?",
"acceptedAnswer": { "acceptedAnswer": {
"@type": "Answer", "@type": "Answer",
"text": "On GitHub: pepaskopec-blip/skopec.dev." "text": "Yes. The source is on GitHub: pepaskopec-blip/skopec.dev."
} }
}, },
{ {
@ -162,15 +162,15 @@
<p class="about-text"> <p class="about-text">
I’m a 16-year-old student from the Czech Republic specializing in graphic design and web development at SSŠVT. I’m a 16-year-old student from the Czech Republic specializing in graphic design and web development at SSŠVT.
I’m a home lab enthusiast and developer — I run Linux on my desktop and my own Proxmox server where I host things like Jellyfin for movies and TV shows, I’m a home lab enthusiast and developer — I run Linux on my desktop and my own Proxmox server where I host things like Jellyfin for movies and TV shows,
Navidrome for music, Ollama for local AI, SearXNG as a search engine, and more. Now I have joined Terra.hackclub, that requires at least 10 hours of human coding or 30 hours of ai coding per week for 3 three months, the final reward for completing this is Framework laptop or iPad, so I want to complete it. Navidrome for music, Ollama for local AI, SearXNG as a search engine, and more. Now I have joined Terra.hackclub, that requires at least 10 hours of human coding or 30 hours of ai coding per week for three months, the final reward for completing this is Framework laptop or iPad, so I want to complete it.
</p> </p>
<p class="about-text"> <p class="about-text">
Outside of screens I train five times a week on a UL / PPL split, and I play airsoft. Outside of screens I train five times a week on a UL / PPL split, and I play airsoft.
</p> </p>
<div class="meta-row"> <div class="meta-row">
<span><strong>School</strong> SSŠVT</span> <span><strong>School</strong> SSŠVT</span>
<span><strong>Focus</strong> Developement, Tinkering &amp; web</span> <span><strong>Focus</strong> Development, Tinkering &amp; web</span>
<span><strong>OS</strong> Linux, MacOS & Android</span> <span><strong>OS</strong> Linux, macOS &amp; Android</span>
<span><strong>Home Lab</strong> Proxmox</span> <span><strong>Home Lab</strong> Proxmox</span>
<span><strong>Gym</strong> 4-5× / week · UL/PPL</span> <span><strong>Gym</strong> 4-5× / week · UL/PPL</span>
<span><strong>Hobby</strong> Airsoft, Gym</span> <span><strong>Hobby</strong> Airsoft, Gym</span>
@ -429,7 +429,7 @@
</details> </details>
<details class="faq-item"> <details class="faq-item">
<summary>Can I get access to your services?</summary> <summary>Can I get access to your services?</summary>
<p>If you want to try one of my services, dm me on ig <a href="https://www.instagram.com/skopcaak1">skopcaak1</a> or email me to <a href="mailto:josef@skopec.dev">josef@skopec.dev</a> .</p> <p>If you want to try one of my services, dm me on ig <a href="https://www.instagram.com/skopcaak1">skopcaak1</a> or email me at <a href="mailto:josef@skopec.dev">josef@skopec.dev</a>.</p>
</details> </details>
<details class="faq-item"> <details class="faq-item">
<summary>Is this site open source? Can I see the code?</summary> <summary>Is this site open source? Can I see the code?</summary>
@ -507,6 +507,6 @@
</div> </div>
</footer> </footer>
<script src="script.js?v=20261022" defer></script> <script src="script.js?v=20261027" defer></script>
</body> </body>
</html> </html>

View file

@ -33,7 +33,7 @@
} }
})(); })();
</script> </script>
<link rel="stylesheet" href="style.css?v=20261023"> <link rel="stylesheet" href="style.css?v=20261027">
<script type="application/ld+json"> <script type="application/ld+json">
{ {
"@context": "https://schema.org", "@context": "https://schema.org",
@ -118,6 +118,6 @@
</div> </div>
</footer> </footer>
<script src="script.js" defer></script> <script src="script.js?v=20261027" defer></script>
</body> </body>
</html> </html>

View file

@ -34,7 +34,7 @@
} }
})(); })();
</script> </script>
<link rel="stylesheet" href="style.css?v=20261026"> <link rel="stylesheet" href="style.css?v=20261027">
<script type="application/ld+json"> <script type="application/ld+json">
{ {
"@context": "https://schema.org", "@context": "https://schema.org",
@ -114,7 +114,7 @@
<h3> <h3>
<a href="https://github.com/pepaskopec-blip/Graduately" target="_blank" rel="noopener noreferrer">Graduately</a> <a href="https://github.com/pepaskopec-blip/Graduately" target="_blank" rel="noopener noreferrer">Graduately</a>
</h3> </h3>
<p>My biggest project yet. It is an educational SwiftUI/ Kotlin app for maturita/graduation preparation — The app is crossplatform and it is available on Mac, iPhone, Android, iPad, Windows and Linux. I am really proud of it.</p> <p>My biggest project yet. It is an educational SwiftUI/ Kotlin app for maturita/graduation preparation — The app is cross-platform and it is available on Mac, iPhone, Android, iPad, Windows and Linux. I am really proud of it.</p>
<ul class="project-pills" aria-label="Platforms and technologies"> <ul class="project-pills" aria-label="Platforms and technologies">
<li>SwiftUI</li> <li>SwiftUI</li>
<li>Kotlin + Compose</li> <li>Kotlin + Compose</li>
@ -338,7 +338,7 @@
<h3> <h3>
<a href="https://terra.hackclub.com" target="_blank" rel="noopener noreferrer">Terra</a> <a href="https://terra.hackclub.com" target="_blank" rel="noopener noreferrer">Terra</a>
</h3> </h3>
<p>Terra is You Ship, We Ship program rub by Hack Club. It combines gamified farming mechanics with real-world software developement, where coding translates into in-game resources to earn a free modular laptop or tablet.</p> <p>Terra is a You Ship, We Ship program run by Hack Club. It combines gamified farming mechanics with real-world software development, where coding translates into in-game resources to earn a free modular laptop or tablet.</p>
<ul class="project-pills" aria-label="Program details"> <ul class="project-pills" aria-label="Program details">
<li>Hack Club</li> <li>Hack Club</li>
<li>10h / 30h weekly</li> <li>10h / 30h weekly</li>
@ -633,6 +633,6 @@
</div> </div>
</footer> </footer>
<script src="script.js?v=20261026" defer></script> <script src="script.js?v=20261027" defer></script>
</body> </body>
</html> </html>

View file

@ -57,6 +57,12 @@
document.addEventListener("keydown", (event) => { document.addEventListener("keydown", (event) => {
if (event.key === "Escape") setOpen(false); if (event.key === "Escape") setOpen(false);
}); });
document.addEventListener("click", (event) => {
if (!nav.classList.contains("is-open")) return;
if (nav.contains(event.target) || toggle.contains(event.target)) return;
setOpen(false);
});
} }
const radar = document.querySelector("[data-radar]"); const radar = document.querySelector("[data-radar]");
@ -157,9 +163,14 @@
const projectCards = document.querySelectorAll(".project-card[data-category]"); const projectCards = document.querySelectorAll(".project-card[data-category]");
if (filterChips.length && projectCards.length) { if (filterChips.length && projectCards.length) {
filterChips.forEach((chip) => { filterChips.forEach((chip) => {
chip.setAttribute("aria-pressed", chip.classList.contains("is-active") ? "true" : "false");
chip.addEventListener("click", () => { chip.addEventListener("click", () => {
const filter = chip.dataset.filter; const filter = chip.dataset.filter;
filterChips.forEach((c) => c.classList.toggle("is-active", c === chip)); filterChips.forEach((c) => {
const on = c === chip;
c.classList.toggle("is-active", on);
c.setAttribute("aria-pressed", on ? "true" : "false");
});
projectCards.forEach((card) => { projectCards.forEach((card) => {
const match = filter === "all" || card.dataset.category === filter; const match = filter === "all" || card.dataset.category === filter;
card.hidden = !match; card.hidden = !match;
@ -172,9 +183,14 @@
const hwCards = document.querySelectorAll(".hw-card[data-hw-category]"); const hwCards = document.querySelectorAll(".hw-card[data-hw-category]");
if (hwChips.length && hwCards.length) { if (hwChips.length && hwCards.length) {
hwChips.forEach((chip) => { hwChips.forEach((chip) => {
chip.setAttribute("aria-pressed", chip.classList.contains("is-active") ? "true" : "false");
chip.addEventListener("click", () => { chip.addEventListener("click", () => {
const filter = chip.dataset.hwFilter; const filter = chip.dataset.hwFilter;
hwChips.forEach((c) => c.classList.toggle("is-active", c === chip)); hwChips.forEach((c) => {
const on = c === chip;
c.classList.toggle("is-active", on);
c.setAttribute("aria-pressed", on ? "true" : "false");
});
hwCards.forEach((card) => { hwCards.forEach((card) => {
const match = filter === "all" || card.dataset.hwCategory === filter; const match = filter === "all" || card.dataset.hwCategory === filter;
card.hidden = !match; card.hidden = !match;

View file

@ -2306,6 +2306,25 @@ a:hover {
.fetch-palette i:nth-child(5) { background: #818cf8; } .fetch-palette i:nth-child(5) { background: #818cf8; }
.fetch-palette i:nth-child(6) { background: #e2e8f0; } .fetch-palette i:nth-child(6) { background: #e2e8f0; }
:root[data-theme="light"] .mock-fetch {
background: #f7f8fa;
box-shadow: 0 14px 30px rgba(17, 21, 28, 0.08);
}
:root[data-theme="light"] .mock-fetch-bar {
color: var(--muted);
background: #eef1f4;
border-bottom-color: var(--line);
}
:root[data-theme="light"] .mock-fetch-body {
color: var(--ink-soft);
}
:root[data-theme="light"] .fetch-palette i:nth-child(6) {
box-shadow: inset 0 0 0 1px rgba(17, 21, 28, 0.28);
}
/* Laptop Apple M5 SoC widget */ /* Laptop Apple M5 SoC widget */
.mock-soc { .mock-soc {
width: 100%; width: 100%;
@ -2432,11 +2451,17 @@ a:hover {
.server-bays { .server-bays {
display: grid; display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-columns: 1fr;
gap: 0.45rem; gap: 0.45rem;
margin-bottom: 0.6rem; margin-bottom: 0.6rem;
} }
@media (min-width: 640px) {
.server-bays {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
.server-bay { .server-bay {
display: flex; display: flex;
flex-direction: column; flex-direction: column;