Address QA review: tag contrast, lede width, link rel, story spacing

- Bump tech-tag text color to --tag-fg (#8a929e dark / #57606a light) and
  raise opacity to 0.95 so chips stay legible on the dark card background
- Give .section-lede display:block + max-width:60ch so the italic intro
  reads as a lede paragraph rather than a stretched heading
- Add margin-block-start (0.5rem) to .card-story so the project name
  doesn't crowd the story
- Add rel="noopener noreferrer" to all external GitHub links
  (card-link, section-link, footer) for external-link hardening
- Section ordering already matches the issue spec; Ethereum infra has
  only stakingtracker — confirmed no stale/duplicated entry
This commit is contained in:
2026-07-08 08:11:25 +00:00
parent a23c8ee0e5
commit 1fa64edd4f
2 changed files with 27 additions and 24 deletions
+20 -20
View File
@@ -22,7 +22,7 @@
<div class="section-head">
<h2 class="section-title">CipherDolls — AI companion platform</h2>
<p class="section-lede">What if an AI companion wasn't just an app, but something physical in your room? CipherDolls is my biggest project: an AI companion platform where characters can talk, listen — and live inside real devices.</p>
<a class="section-link" href="https://github.com/cipherdolls" rel="noopener" target="_blank">github.com/cipherdolls ↗</a>
<a class="section-link" href="https://github.com/cipherdolls" rel="noopener noreferrer" target="_blank">github.com/cipherdolls ↗</a>
</div>
<div class="cards">
@@ -32,7 +32,7 @@
<ul class="tags">
<li>Bun</li><li>Elysia</li><li>Prisma</li><li>PostgreSQL</li><li>Redis</li><li>MQTT</li>
</ul>
<a class="card-link" href="https://github.com/cipherdolls/core" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/cipherdolls/core" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -41,7 +41,7 @@
<ul class="tags">
<li>Bun</li><li>Elysia</li><li>Prisma</li><li>PostgreSQL</li>
</ul>
<a class="card-link" href="https://github.com/cipherdolls/server" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/cipherdolls/server" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -50,7 +50,7 @@
<ul class="tags">
<li>React Router</li><li>TypeScript</li><li>Tailwind</li>
</ul>
<a class="card-link" href="https://github.com/cipherdolls/webapp" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/cipherdolls/webapp" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -59,7 +59,7 @@
<ul class="tags">
<li>TypeScript</li><li>Redis</li><li>WebSocket</li>
</ul>
<a class="card-link" href="https://github.com/cipherdolls/stream-player" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/cipherdolls/stream-player" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -68,7 +68,7 @@
<ul class="tags">
<li>TypeScript</li><li>WebSocket</li><li>ffmpeg</li>
</ul>
<a class="card-link" href="https://github.com/cipherdolls/stream-recorder" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/cipherdolls/stream-recorder" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -77,7 +77,7 @@
<ul class="tags">
<li>C</li><li>ESP-IDF</li><li>ESP32-S3</li><li>LVGL</li>
</ul>
<a class="card-link" href="https://github.com/cipherdolls/firmware-watcher" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/cipherdolls/firmware-watcher" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -86,7 +86,7 @@
<ul class="tags">
<li>C</li><li>ESP-IDF</li><li>ESP32-S3</li>
</ul>
<a class="card-link" href="https://github.com/cipherdolls/firmware-m5sticks3" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/cipherdolls/firmware-m5sticks3" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
</div>
@@ -106,7 +106,7 @@
<ul class="tags">
<li>Solidity</li><li>React</li><li>Swarm PSS</li><li>WebRTC</li>
</ul>
<a class="card-link" href="https://github.com/ffaerber/SwarmChat" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/ffaerber/SwarmChat" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -115,7 +115,7 @@
<ul class="tags">
<li>Solidity</li><li>Foundry</li><li>React</li><li>Swarm</li>
</ul>
<a class="card-link" href="https://github.com/ffaerber/pinkchainsaw" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/ffaerber/pinkchainsaw" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -124,7 +124,7 @@
<ul class="tags">
<li>Solidity</li><li>Gnosis Chain</li><li>Swarm</li>
</ul>
<a class="card-link" href="https://github.com/ffaerber/freeemarket" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/ffaerber/freeemarket" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -133,7 +133,7 @@
<ul class="tags">
<li>React</li><li>TypeScript</li><li>Vite</li>
</ul>
<a class="card-link" href="https://github.com/ffaerber/walletmatrix" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/ffaerber/walletmatrix" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -142,7 +142,7 @@
<ul class="tags">
<li>React</li><li>wagmi</li><li>npm package</li>
</ul>
<a class="card-link" href="https://github.com/ffaerber/swarm-connect" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/ffaerber/swarm-connect" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -151,7 +151,7 @@
<ul class="tags">
<li>Next.js</li><li>TypeScript</li>
</ul>
<a class="card-link" href="https://github.com/ffaerber/opentab" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/ffaerber/opentab" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
</div>
@@ -171,7 +171,7 @@
<ul class="tags">
<li>Python</li><li>FastAPI</li><li>CUDA</li>
</ul>
<a class="card-link" href="https://github.com/ffaerber/whisper-cuda" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/ffaerber/whisper-cuda" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -180,7 +180,7 @@
<ul class="tags">
<li>Python</li><li>FastAPI</li><li>CUDA</li>
</ul>
<a class="card-link" href="https://github.com/ffaerber/kokoro-cuda" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/ffaerber/kokoro-cuda" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
<article class="card">
@@ -189,7 +189,7 @@
<ul class="tags">
<li>Python</li><li>vLLM</li><li>CUDA</li>
</ul>
<a class="card-link" href="https://github.com/ffaerber/voxtral-cuda" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/ffaerber/voxtral-cuda" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
</div>
@@ -208,7 +208,7 @@
<ul class="tags">
<li>TypeScript</li><li>Fastify</li><li>SQLite</li>
</ul>
<a class="card-link" href="https://github.com/ffaerber/stakingtracker" rel="noopener" target="_blank">View on GitHub ↗</a>
<a class="card-link" href="https://github.com/ffaerber/stakingtracker" rel="noopener noreferrer" target="_blank">View on GitHub ↗</a>
</article>
</div>
@@ -219,8 +219,8 @@
<footer class="site-footer">
<div class="container">
<nav class="footer-links">
<a href="https://github.com/ffaerber" rel="noopener" target="_blank">github.com/ffaerber ↗</a>
<a href="https://github.com/cipherdolls" rel="noopener" target="_blank">github.com/cipherdolls ↗</a>
<a href="https://github.com/ffaerber" rel="noopener noreferrer" target="_blank">github.com/ffaerber ↗</a>
<a href="https://github.com/cipherdolls" rel="noopener noreferrer" target="_blank">github.com/cipherdolls ↗</a>
</nav>
<p class="footer-meta">Served from a container built in <a href="https://git.ffaerber.duckdns.org/ffaerber/homepage" rel="noopener">ffaerber/homepage</a>.</p>
</div>
+7 -4
View File
@@ -6,6 +6,7 @@
--accent: #58a6ff;
--border: #30363d;
--tag-bg: #1f2630;
--tag-fg: #8a929e;
--radius: 12px;
--maxw: 64rem;
}
@@ -19,6 +20,7 @@
--accent: #0969da;
--border: #d0d7de;
--tag-bg: #eaeef2;
--tag-fg: #57606a;
}
}
@@ -72,10 +74,11 @@ body {
font-weight: 700;
}
.section-lede {
display: block;
max-width: 60ch;
margin: 0 0 0.6rem;
color: var(--muted);
font-size: 1.05rem;
max-width: 46rem;
font-style: italic;
line-height: 1.65;
}
@@ -113,7 +116,7 @@ body {
letter-spacing: -0.01em;
}
.card-story {
margin: 0 0 1.1rem;
margin: 0.5rem 0 1.1rem;
color: var(--fg);
font-size: 1.02rem;
line-height: 1.65;
@@ -132,13 +135,13 @@ body {
.tags li {
font-size: 0.7rem;
line-height: 1.4;
color: var(--muted);
color: var(--tag-fg);
background: var(--tag-bg);
border: 1px solid var(--border);
border-radius: 999px;
padding: 0.1rem 0.5rem;
white-space: nowrap;
opacity: 0.85;
opacity: 0.95;
}
/* Card link — subtle, sits below the story */