CodeVetter · Repo Unpack · Feature catalog
d3/d3
User-facing surface area is the bundled D3 API, documented module by module, plus the docs site itself. The sidebar groups thirty modules into Visualization, Animation, Interaction, and Data. Getting started covers Observable, ESM and UMD CDN, npm, React, and Svelte. The homepage adds a shuffled Observable gallery, version and star counts, and an Observable promo. Legacy CDN files for retired modules are still copied into the site but are not part of the v7 barrel.
- The Visualization sidebar covers d3-axis, d3-chord (Chords, Ribbons), d3-color, d3-interpolate (value, color, transform, zoom), d3-contour (polygons, density), d3-delaunay (Delaunay, Voronoi), d3-force (simulation, center, collide, link, many-body, position), d3-geo (paths, azimuthal/conic/cylindrical projections, streams, spherical shapes and math), d3-hierarchy (hierarchy, stratify, tree, cluster, partition, pack, treemap), d3-path, d3-polygon, d3-quadtree, d3-scale (linear through threshold), d3-scale-chromatic (categorical, cyclical, diverging, sequential), d3-selection, and d3-shape (arc, area, curve, line, link, pie, stack, symbol, radial area/line/link).
- Animation pages are d3-ease, d3-timer, and d3-transition (selecting, modifying, timing, control flow). Interaction pages are d3-brush, d3-dispatch, d3-drag, and d3-zoom.
- Data pages are d3-array (add, bin, bisect, blur, group, intern, sets, sort, summarize, ticks, transform), d3-dsv, d3-fetch, d3-format, d3-random, d3-time, and d3-time-format.
- d3-selection documents selecting, modifying attributes/styles/properties/HTML/text, the data join enter/update/exit, events, control flow, local variables, and XML namespaces. docs/what-is-d3.md calls the data join D3's most novel concept and says the library is a suite of 30 discrete modules rather than a chart type system.
- d3-fetch documents promise helpers over the Fetch standard: blob, buffer, csv, dsv, html, image, json, svg, text, tsv, and xml. init is forwarded as RequestInit; csv/dsv/tsv accept an optional row converter; json resolves to undefined on HTTP 204 or 205; html and svg parse fetched text with DOMParser. The page notes this module replaced d3-request.
- Getting started documents five install paths: Observable notebooks (D3 is in the standard library), ESM from https://cdn.jsdelivr.net/npm/d3@7/+esm, UMD from https://cdn.jsdelivr.net/npm/d3@7 which sets a global d3, a local d3.js script, and npm/yarn/pnpm add d3 with import * as d3 from "d3" or named imports or deep imports from a submodule such as d3-array. TypeScript types are delegated to DefinitelyTyped.
- Getting started also shows React and Svelte integration: DOM-free modules (scale, array, shape) can be used declaratively, while selections and axes that mutate the DOM are attached via useEffect refs in React or Svelte bind:this plus reactive statements.
- The home page (docs/index.md, layout home) offers Get started, What is D3?, and an external Examples link, plus feature cards for selections and transitions, scales and axes, shapes, interactions, layouts, geographic maps, array/CSV/time/color utilities, Observable Plot, and Observable.
- ExamplesGrid.vue renders up to 60 Observable gallery thumbnails. It shuffles with d3.shuffler(d3.randomLcg(d3.utcDay())), sizes a hex grid from a ResizeObserver, and shifts the grid on pointermove. Thumbnails load from https://static.observableusercontent.com/thumbnail/${thumbnail}.jpg and link to https://observablehq.com/${path}.
- VersionAndStars.vue shows __APP_VERSION__ linking to GitHub releases and a GitHub star count formatted with d3-format formatPrefix(".1s", 1000), fed by stargazers.data.ts. The star count is hidden below 560px in favor of a GitHub icon link.
- docs/api.md is the API index: a long link catalog of every documented symbol, starting with d3-array's Adder, bin, bisect, blur, group/rollup/index, InternMap/InternSet, set operations, sort, and summary statistics. docs/community.md points support to GitHub Discussions, issues for bugs, Observable, and the Observable code of conduct.
- Interactive doc components beyond the homepage include ExampleBlankChart (a live scaleUtc/scaleLinear/axis chart), WorldMap and UsMap (geoPath plus topojson), PlotRender (Observable Plot inside markdown), ColorRamp/ColorSpan/ColorSwatches, and force, quadtree, chord, curve, ease, and arc examples under docs/components/.
- prebuild.sh still publishes historical bundles that are not in the v7 dependency list, including colorbrewer, d3-collection, d3-geo-projection, d3-hexbin, d3-hsv, highlight, queue, topojson, us-10m, and world-110m/world-50m. Those are CDN compatibility assets, not exports of src/index.js.