feat(about): real avatar + Recent releases section linking to /v2 and /v2-5

- Replace the "DMC" initials placeholder with the GitHub avatar
  (https://avatars.githubusercontent.com/u/47928504?v=4). The CSS for
  .about-creator-avatar already had the rounded frame; just swapped to
  object-fit: cover so the <img> fills the circle correctly, plus a
  subtle ring + drop shadow.
- Add a "Recent releases" section between the Creator block and the
  personal-story quote, with two cards:
    - Velxio 2.5 (Latest) → /v2-5  (ngspice-WASM analog co-simulation)
    - Velxio 2.0          → /v2
  Each card has a tagline + 2-3 line blurb. The 2.5 card gets a blue
  border + "Latest" tag so it reads as the current launch. About now
  surfaces both release pages, which previously were only linked from
  the Circuit/Electronics/SPICE simulator pages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
David Montero Crespo 2026-05-08 11:20:38 -03:00
parent c20a7498fc
commit ebde9cc8da
2 changed files with 124 additions and 8 deletions

View File

@ -169,14 +169,14 @@
width: 120px;
height: 120px;
border-radius: 50%;
/* Background only shows while the image is loading. */
background: linear-gradient(135deg, #0071e3 0%, #005bb5 100%);
display: flex;
align-items: center;
justify-content: center;
font-size: 36px;
font-weight: 700;
color: #fff;
letter-spacing: 1px;
/* When rendered as <img>: fill the circle, no distortion. */
object-fit: cover;
display: block;
/* Subtle ring + shadow so it reads as an avatar even on dark sections. */
border: 2px solid rgba(255, 255, 255, 0.08);
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}
.about-creator-name {
@ -490,3 +490,81 @@ a.about-press-badge:hover {
justify-content: center;
}
}
/* ── Releases section ────────────────────────────── */
.about-releases {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
gap: 20px;
margin-top: 8px;
}
.about-release-card {
display: flex;
flex-direction: column;
gap: 10px;
padding: 24px 26px;
background: #1a1a1a;
border: 1px solid #2a2a2a;
border-radius: 12px;
text-decoration: none;
color: inherit;
transition: border-color 0.15s, transform 0.15s, box-shadow 0.15s;
position: relative;
}
.about-release-card:hover {
border-color: #3a3a3a;
transform: translateY(-2px);
box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}
.about-release-card-latest {
border-color: #0071e3;
background: linear-gradient(135deg, rgba(0, 113, 227, 0.06), #1a1a1a 60%);
}
.about-release-card-latest:hover {
border-color: #2a90ff;
}
.about-release-tag {
position: absolute;
top: 14px;
right: 14px;
font-size: 10px;
font-weight: 700;
letter-spacing: 0.6px;
text-transform: uppercase;
color: #fff;
background: #0071e3;
padding: 3px 8px;
border-radius: 4px;
}
.about-release-card h3 {
font-size: 22px;
font-weight: 700;
color: #fff;
margin: 0;
}
.about-release-tagline {
font-size: 14px;
color: #aaa;
margin: 0;
}
.about-release-blurb {
font-size: 14px;
color: #888;
line-height: 1.55;
margin: 0;
}
.about-release-link {
font-size: 13px;
font-weight: 500;
color: #4ea1ff;
margin-top: 4px;
}

View File

@ -247,7 +247,15 @@ export const AboutPage: React.FC = () => {
<h2 className="about-heading">The Creator</h2>
<div className="about-creator">
<div className="about-creator-photo">
<div className="about-creator-avatar">DMC</div>
<img
className="about-creator-avatar"
src="https://avatars.githubusercontent.com/u/47928504?v=4"
alt="David Montero Crespo"
width={120}
height={120}
loading="lazy"
referrerPolicy="no-referrer"
/>
</div>
<div className="about-creator-info">
<h3 className="about-creator-name">David Montero Crespo</h3>
@ -333,6 +341,36 @@ export const AboutPage: React.FC = () => {
</div>
</section>
{/* Releases */}
<section className="about-section">
<div className="about-container">
<h2 className="about-heading">Recent releases</h2>
<div className="about-releases">
<Link to="/v2-5" className="about-release-card about-release-card-latest">
<span className="about-release-tag">Latest</span>
<h3>Velxio 2.5</h3>
<p className="about-release-tagline">Arduino meets SPICE in your browser</p>
<p className="about-release-blurb">
Real-time analog circuit simulation via ngspice-WASM, wired to Arduino, ESP32 and
Raspberry Pi Pico. 100+ SPICE-accurate components, live ammeters and voltmeters,
40 new analog/hybrid examples co-simulated with your firmware.
</p>
<span className="about-release-link">Read the launch notes </span>
</Link>
<Link to="/v2" className="about-release-card">
<h3>Velxio 2.0</h3>
<p className="about-release-tagline">Multi-board canvas, ESP32, Raspberry Pi 3</p>
<p className="about-release-blurb">
Full QEMU-driven ESP32 emulation with WiFi/BLE, Raspberry Pi 3B Linux, MicroPython
support across Pico/ESP32, custom WASM chips, and a redesigned canvas with
multi-board co-simulation.
</p>
<span className="about-release-link">Read the launch notes </span>
</Link>
</div>
</div>
</section>
{/* Personal story quote */}
<section className="about-section">
<div className="about-container">