bible-strong-avatar-lab/examples/portfolio-gallery/davebot-header.html
David Lafond 883b589a43 Add Davebot cursor-following portfolio header
Rename the portfolio mascot from Bigeye to Davebot and give him the
canonical inverse inks: light mode uses a #262626 body with #d4d4d4
eyes, dark mode mirrors that exactly.

Eyes follow the pointer by translating the two existing eye paths with
one persistent SVG transform each, batched into a single animation
frame. Playback, blinking and body drift stay owned by avatar-web, so
gaze layers on top without resetting the timeline or regenerating paths.

Also fix Prettier violations in earlier portfolio-gallery files.
2026-08-24 22:30:53 -04:00

128 lines
4.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#242424" />
<title>Davebot — pointer-following portfolio guide</title>
</head>
<body>
<main class="comparison" aria-label="Davebot portfolio header in light and dark mode">
<section class="portfolio" data-mode="light" aria-label="Light mode portfolio header">
<nav class="site-nav" aria-label="Light mode primary navigation">
<div class="brand">
<span>David Lafond</span>
<span class="brand-role">Product designer · Architect</span>
</div>
<div class="nav-links" aria-label="Portfolio sections">
<a href="#light-work">Work</a>
<span>Community</span>
<span>Play</span>
<span>About</span>
<span>Resume</span>
</div>
<button class="davebot" type="button" data-davebot>Davebot</button>
</nav>
<div class="davebot-avatar" data-davebot-avatar></div>
<span class="status-dot" aria-hidden="true"></span>
<div class="hero">
<h1>Hi, I’m David ~<br />a product designer who leads creative teams.</h1>
<dl class="timeline">
<div>
<dt>2026</dt>
<dd>Tableau Urban Innovation</dd>
<dd>Senior Designer</dd>
</div>
<div>
<dt>2025</dt>
<dd>Fluid Interfaces</dd>
<dd>Lead Product Designer</dd>
</div>
<div>
<dt>2025</dt>
<dd>Plumba Parking</dd>
<dd>Product Manager</dd>
</div>
<div>
<dt>2024</dt>
<dd>Serendipity City</dd>
<dd>Lead Product Designer</dd>
</div>
<div>
<dt>2023</dt>
<dd>Computational Design Exploratory</dd>
<dd>Lead Product Designer</dd>
</div>
</dl>
</div>
<div class="projects" id="light-work" aria-label="Selected work placeholders">
<div class="project"></div>
<div class="project"></div>
</div>
<p class="mode-caption">Light mode</p>
</section>
<section class="portfolio" data-mode="dark" aria-label="Dark mode portfolio header">
<nav class="site-nav" aria-label="Dark mode primary navigation">
<div class="brand">
<span>David Lafond</span>
<span class="brand-role">Product designer · Architect</span>
</div>
<div class="nav-links" aria-label="Portfolio sections">
<a href="#dark-work">Work</a>
<span>Community</span>
<span>Play</span>
<span>About</span>
<span>Resume</span>
</div>
<button class="davebot" type="button" data-davebot>Davebot</button>
</nav>
<div class="davebot-avatar" data-davebot-avatar></div>
<span class="status-dot" aria-hidden="true"></span>
<div class="hero">
<h1>Hi, I’m David ~<br />a product designer who leads creative teams.</h1>
<dl class="timeline">
<div>
<dt>2026</dt>
<dd>Tableau Urban Innovation</dd>
<dd>Senior Designer</dd>
</div>
<div>
<dt>2025</dt>
<dd>Fluid Interfaces</dd>
<dd>Lead Product Designer</dd>
</div>
<div>
<dt>2025</dt>
<dd>Plumba Parking</dd>
<dd>Product Manager</dd>
</div>
<div>
<dt>2024</dt>
<dd>Serendipity City</dd>
<dd>Lead Product Designer</dd>
</div>
<div>
<dt>2023</dt>
<dd>Computational Design Exploratory</dd>
<dd>Lead Product Designer</dd>
</div>
</dl>
</div>
<div class="projects" id="dark-work" aria-label="Selected work placeholders">
<div class="project"></div>
<div class="project"></div>
</div>
<p class="mode-caption">Dark mode</p>
</section>
</main>
<script type="module" src="/src/davebot-header-main.ts"></script>
</body>
</html>