30-second overview: When an article has numbers, timelines, or comparisons, prose alone makes readers zone out by the third percentage. LagunaBeach.md uses a set of visual modules — rendered as semantic HTML and inline SVG — so humans see a chart while AI crawlers read the same underlying data. This page shows what each module looks like, using real Laguna Beach data.
Why Static Visualizations
Interactive JavaScript charts look impressive but have a fatal flaw: AI crawlers (GPTBot, ClaudeBot, PerplexityBot) don't execute JavaScript. A D3 chart is a blank void to them. Our visualizations use semantic HTML and inline SVG — the data lives in the source code, readable by every crawler in every language.
Available Modules
Big Number (tw-figure)
A single dramatic statistic displayed large. Best for opening a section with a sledgehammer fact.
Stat Group (tw-stat)
Three to four parallel numbers in card layout. Replaces a paragraph stuffed with competing statistics.
Timeline (tw-timeline)
Vertical timeline for chronological sequences. Each entry has a date, event, and optional detail.
Comparison Table (tw-compare)
Side-by-side comparison when two things need contrasting. Better than prose for parallel structure.
| | North Laguna | South Laguna |
|---|---|---|
| Character | Residential, quiet coves | Wilder coastline, tide pools |
| Access | Street-end stairways | Longer trails down bluffs |
| Crowds | Moderate | Light |
| Best for | Sunset watching, snorkeling | Exploring, solitude |Quote Block (tw-quote)
A pull quote with attribution. For real quotes only — verified, traceable to a source.
"We didn't set out to create an art colony. We just wanted to paint where the light was good."
Data Bar (tw-bar)
Horizontal bar chart for comparing magnitudes. Semantic HTML, no JavaScript.
Festival of Arts | 60,000 visitors/year
Sawdust Art Festival | 200,000 visitors/year
Art-A-Fair | 40,000 visitors/year
Pageant of the Masters | 150,000 visitors/yearDesign Principles
- One module per idea. Don't stack three visualizations in a row. Prose → visual → prose → visual.
- Media density band. Target 0.8–1.2 visuals per 1,000 words. Below that is too text-heavy; above is visual clutter.
- Every module must have a source. The last line of the data block names where the numbers came from.
- Semantic over decorative. If the visualization doesn't add understanding that prose can't, delete it.
Full syntax reference: docs/editorial/graph.md