Skip to main content

sdvplot-js

Team logos, colours and playing surfaces for Observable Plot and D3

  • sdvplot
  • sporty
  • sdvtables
  • Node
  • ci
  • release
  • docs
  • Lifecycle: experimental
  • License
  • Contributors
  • Twitter Follow

Install

pnpm add @sportsdataverse/sdvplot @sportsdataverse/sporty @sportsdataverse/sdvtables @observablehq/plot

The chart libraries are optional peers: install the one you draw with. Getting started lists every entry point; the gallery shows every example, each run in CI before it is published.

What's covered​

28 leagues and 5,879 teams in sdvplot; 9 sports and 53 league surfaces (plus custom dimensions) in sporty.

Leagues and resources (sdvplot)​

Teams per league with each resource. Browse them in the Logos by league and Team colours notebooks.

LeagueTeamsColoursLogosWordmarksAliasesHeadshots
Football
nfl NFL32323232509 (9 id systems)ESPNgsis
cfb College football687687687none10,221 (8 id systems)ESPN
ufl UFL111111none95 (5 id systems)none
xfl XFL111111none64 (4 id systems)none
usfl USFL999none27 (3 id systems)none
aaf Alliance of American Football888none32 (4 id systems)none
Basketball
nba NBA303030none477 (9 id systems)ESPNleague ids
wnba WNBA151515none215 (8 id systems)ESPNleague ids
nbagl NBA G League323232none224 (5 id systems)none
mbb Men's college basketball366366366none3,614 (6 id systems)ESPN
wbb Women's college basketball364364364none3,615 (6 id systems)ESPN
Baseball and softball
mlb MLB30303030696 (10 id systems)ESPNleague ids
milb Minor League Baseball2862862861661,747 (4 id systems)none
ncaa_baseball College baseball414414414none2,665 (5 id systems)none
ncaa_softball College softball415415415none2,649 (5 id systems)none
Hockey
nhl NHL323232none506 (8 id systems)ESPNleague ids
pwhl PWHL121212none48 (4 id systems)none
ahl AHL616161none244 (4 id systems)none
echl ECHL595959none236 (4 id systems)none
ohl OHL272727none108 (4 id systems)none
whl WHL232323none92 (4 id systems)none
qmjhl QMJHL303030none120 (4 id systems)none
ushl USHL171717none68 (4 id systems)none
phf Premier Hockey Federation888127 (3 id systems)none
ncaa_mhockey Men's college hockey110110108none658 (5 id systems)none
ncaa_whockey Women's college hockey484847none288 (5 id systems)none
Soccer
soccer Soccer clubs2,6312,6312,631none7,893 (3 id systems)none
Cricket
cricket Cricket teams111111111none488 (4 id systems)none

Playing surfaces (sporty)​

Every sport surface() draws and the leagues it knows; custom takes your own dimensions. See the surfaces guide and the Playing surfaces notebook.

  • Baseball
    • custom
    • little league
    • milb
    • mlb
    • ncaa
    • nfhs
    • pony
  • Basketball
    • custom
    • fiba
    • nba
    • nba g league
    • ncaa
    • nfhs
    • wnba
  • Curling
    • curling canada
    • custom
    • wcf
  • Football
    • cfl
    • custom
    • ncaa
    • nfhs11
    • nfhs6
    • nfhs8
    • nfhs9
    • nfl
  • Hockey
    • ahl
    • custom
    • echl
    • iihf
    • ncaa
    • nhl
    • nwhl
    • ohl
    • phf
    • pwhl
    • qmjhl
    • ushl
  • Lacrosse
    • custom
    • ncaam
    • ncaaw
    • nll
    • pll
    • usam
    • usaw
    • world lacrosse
  • Soccer
    • custom
    • epl
    • fifa
    • mls
    • ncaa
    • nwsl
  • Tennis
    • atp
    • custom
    • ita
    • itf
    • ncaa
    • usta
    • wta
  • Volleyball
    • custom
    • fivb
    • ncaa
    • usa volleyball

Data sources and provenance​

Team index
Curated in sdvplot (Python, MIT) and bundled here, one chunk per league: index 1c025b69f8cf. Nothing is downloaded to resolve a team.
Logos and wordmarks
The SportsDataverse logo archive: content-addressed files on sdv.nyc3.cdn.digitaloceanspaces.com, manifest of 2026-10-06. Marks by source: espn 41,203 · hockeytech 1,251 · mlbstatic 972 · nhl 367 · ncaa.com 124 · nflverse 70 · cricinfo 64 · fox 14 · shiftstats 9 · aaf-strip-crop 8 · nwhl.co 6 · wayback 1.
Team colours
Teams by colour source: espn 4,183 · logo 1,662 · nflverse 32 · fallback 2.
Headshots
ESPN's image CDN by athlete id (cfb, mbb, mlb, nba, nfl, nhl, wbb, wnba); the leagues' own CDNs by league player id (mlb, nba, nhl, wnba); NFL gsis ids through nflverse's players table. URLs only: no image is bundled.
nflverse
The gsis map, the NFL colours and the nflverse aliases derive from nflverse-data, licensed CC BY 4.0 (see NOTICE).
Surface dimensions
Ported from sportyR (Ross Drucker) and sportypy, distributed under MIT by agreement of the SportsDataverse maintainers.

Any identifier

An abbreviation, an ESPN id, a full name or a relocated franchise's old code: resolve() turns it into one stable team id, season-aware, and never guesses.

Logos, wordmarks, headshots

Marks for every era from the SportsDataverse logo archive, and player headshots by ESPN or league id.

Team colours

teamColors(), palette() and matchup colours that keep two teams apart, with WCAG contrast helpers.

Playing surfaces

Courts, rinks, fields and pitches from sporty, in SVG, canvas, Observable Plot or D3.

Tables

sdvtables: a plain-data spec with logo, colour and bar cells, themes, and HTML, React or PNG output.

Your chart library

Observable Plot, D3 and React, plus adapters for Plotly, Vega-Lite, ECharts and Chart.js. Node and SSR too.