The Elegant Selection
Building news graphics and data visualizations for the modern web
Table of Contents
- Introduction
- How to read this book
-
Writing Less JavaScript
-
jQuery in Vanilla JavaScript
Selecting and iterating in the DOM | Events at a distance | A toast to John Resig
-
Scaling time and space
Sparklines from normal data | Timing and easing | The new face of zero and one
-
Combining data with the DOM
Transforming data into HTML | Closures for storage | Cheaper events with lookup tables
-
Client Rects and Scroll Effects
Efficient scroll listeners | get rect | Scrolling sans JS
-
Visualizing with canvas
Rendering basics | Handling events | Coping strategies
-
Media matters
Media tags | Creating player UI | Never use .gif again
-
jQuery in Vanilla JavaScript
-
Fluently speaking CSS and HTML
-
Floats demystified
All about the document flow | Clearing floated elements | Alternatives to float
-
Building stacked charts with flexbox
Assembling our chart | Columns over bars | Weird flex but okay
-
CSS-based scatter plots
How positioning works | Aspect ratio rules | WTF, padding
-
Dot matrix chart via CSS attributes
Tab UI with radio buttons | Attribute selectors | Deep pattern thoughts
-
Visualization as a civil right
Inclusive news design | Accessible by default | Required reading
-
Floats demystified
-
SVG Mechanics and Mysteries
-
Art direction with viewBox
The SVG coordinate system | Setting the camera bounds | Pan, zoom, and draw
-
Generating SVG from code
Creating elements | Nesting SVG | Line charts to scale
-
CSS and SVG, Large and Small
Inline and external media | Small multiples | Style icons
-
Common pitfalls of SVG
Attributes and properties | Scaling and wrapping text | SVG speed traps
-
Art direction with viewBox
-
Performance and other problems
-
Debugging and dev tools
Dev tools starting points | What to look for | Debugging mobile devices
-
FLIP for smooth animations
From A to B | Using FLIP on many elements | Stack of reflow
-
Fixing common slowdowns
The easy stuff | Deferred loading | Shrink your JavaScript
-
Debugging and dev tools