Menu

Data Storytelling with Vox-Style Charts

Vox video essays are famous for their clean, compelling data visualizations. They turn boring spreadsheets into stories.

Today, we’re releasing a new set of Astro components inspired by that style. We’ll cover Line Charts, Stacked Bar Charts, and Pie Charts, all with built-in “draw” animations that trigger when you scroll.

The “Vox” Aesthetic

What makes a chart look like it belongs in a Vox video?

  1. Direct Labeling: Instead of a messy legend, labels are placed right next to the data.
  2. Clean Typography: Simple, bold sans-serif fonts (like Franklin Gothic).
  3. Story-First: Highlighting the important trend, not just showing all data equally.
  4. Motion: Lines draw themselves, bars grow from nothing.

1. The Container

First, we need a consistent wrapper for titles and sources.

<VoxContainer 
  title="The Rise of Remote Work" 
  subtitle="Percentage of employees working from home, 2019-2023" 
  source="Bureau of Labor Statistics"
>
  ...Chart Goes Here...
</VoxContainer>

2. Line Charts

The VoxLineChart component handles multiple series, auto-draw animations, and direct labels.

Example: Tech Growth

Notice how the lines “draw” themselves when you scroll down.

Tech Giants Market Cap

Growth in Trillions of USD

0 1 2 2 3 2019 2020 2021 2022 2023 Apple Msft
Source: Yahoo Finance

3. Stacked Bar Charts

Perfect for showing parts of a whole changing over time. We support both vertical and horizontal orientations.

Vertical Stack

Browser Market Share

Global usage across platforms

0 28 55 83 110 2021 2022 2023
Chrome
Safari
Edge
Others
Source: StatCounter

Horizontal Bar (Comparison)

Simple comparison charts work great horizontally.

Most Popular Programming Languages

Based on Stack Overflow Survey 2023

0 18 36 54 72 JavaScript 65 Python 45 TypeScript 35 Java 30

4. Pie Charts

Use these sparingly, but when you do, make them count with clean legends and smooth entry animations.

Project Time Allocation

Where do we actually spend our time?

Coding 30.0%
Meetings 25.0%
Debugging 35.0%
Coffee 10.0%

5. Dark Mode Support

All components automatically adapt to dark mode, switching axes and text colors to be legible against dark backgrounds, just like Vox’s “Dark Room” style graphics.

Dark Mode Example

This container forces dark theme for demonstration

0 17 33 50 66 A B C D Trend

Implementation Details

We created a new folder src/components/vox/ to house these specialized components.

The Line Chart uses SVG stroke-dashoffset for that “drawing” effect. The Bar Chart uses CSS transform: scaleY() for the growing effect. The Pie Chart calculates SVG paths for arcs and scales them in.

Every component accepts a trigger="visible" prop, which uses IntersectionObserver to wait until the user scrolls the chart into view before starting the animation.

Go ahead, scroll up and down and watch them re-animate (on refresh) or just enjoy the smooth entrance!