Add flair badge gamification system with custom SVG badges

- Create 12 Office Space themed SVG badges (extraction, basement, printer,
  coffee, tps, bobs, memo, oface, stapler, conclusions, spreadsheet, flair-badge)
- Implement FlairBadge.astro component with localStorage persistence
- Add 15-second timer per page to earn flair
- Create floating counter, modal flair board, toast notifications
- Override Starlight Footer to inject flair system globally
- Add name capture dialog on first flair earned

Features:
- Badges glow golden when earned, grayscale when locked
- Progress persists across browser sessions
- Stan quote: "We need to talk about your document processing..."
This commit is contained in:
Ryan Malloy 2026-01-11 14:24:39 -07:00
parent 32b41f79d9
commit 5ae7040496
28 changed files with 1410 additions and 11 deletions

17
public/flair/bobs.svg Normal file
View file

@ -0,0 +1,17 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" fill="none">
<!-- "The Bobs Approved" - Business tie with checkmark -->
<!-- Shirt collar -->
<path d="M8 6 L24 16 L40 6" stroke="#e2e8f0" stroke-width="4" fill="none"/>
<!-- Tie knot -->
<polygon points="20,14 28,14 26,20 22,20" fill="#1e40af"/>
<!-- Tie body -->
<polygon points="22,20 26,20 28,42 24,46 20,42" fill="#1e40af"/>
<!-- Diagonal stripes on tie -->
<path d="M22 24 L26 22" stroke="#3b82f6" stroke-width="1.5"/>
<path d="M21 28 L27 25" stroke="#3b82f6" stroke-width="1.5"/>
<path d="M21 32 L27 29" stroke="#3b82f6" stroke-width="1.5"/>
<path d="M21 36 L27 33" stroke="#3b82f6" stroke-width="1.5"/>
<!-- Checkmark badge -->
<circle cx="36" cy="12" r="8" fill="#16a34a"/>
<path d="M32 12 L35 15 L40 9" stroke="white" stroke-width="2.5" fill="none" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 905 B