Quote Weave

A typewriter-driven quote reader with a Voronoi thematic atlas, Canvas-rendered share cards, and reduced-motion and screen-reader support.

Quote Weave preview
The reading view types each quote out character by character, with author attribution, a theme tag, and one-tap favorite and share-card actions.
The reading view types each quote out character by character, with author attribution, a theme tag, and one-tap favorite and share-card actions.
The Idea Map runs a build-time embedding pipeline to place all 168 quotes into a Voronoi atlas of five themes. Quotes that sit close together actually share ideas.
The Idea Map runs a build-time embedding pipeline to place all 168 quotes into a Voronoi atlas of five themes. Quotes that sit close together actually share ideas.

About this project

Angular SignalsOnPush ArchitectureAccessibilityReduced MotionCanvas APIWikipedia APIKeyboard Shortcuts
I built Quote Weave as a reading experience for 168 quotes across categories. Quotes type out character by character; you can save favorites locally, pull up a Wikipedia panel on the author, or generate a Canvas-rendered card you can share straight from the reader. The Idea Map runs a build-time embedding pipeline to place every quote into a Voronoi atlas of five themes, so quotes that sit close together actually share ideas. It adapts to prefers-reduced-motion, exposes proper dialog and aria-live semantics for screen readers, and stays stable through rapid navigation.
  • Signal-native architecture: 8 standalone OnPush child components and 7 component-scoped services, zero manual change detection
  • Race protection against rapid navigation: Wikipedia panels and share-card renders cancel in-flight work before starting the next
  • Reduced-motion support: the typewriter renders instantly and particles are disabled at the OS level
  • WCAG-conformant dialog semantics on every modal panel (role, aria-modal, aria-labelledby, sr-only live regions)
  • Pause/resume split by intent: scroll-pause distinct from panel-pause so closing a modal can't override a reader's scroll position
  • Canvas-rendered shareable quote cards with category-aware palette and Web Share API integration
  • Wikipedia author panels with disambiguation, image-domain validation, URL injection guards, and skeleton loading
Quote Weave screenshot 1