Color palettes for 276 professional sports teams across 11 leagues, as named character vectors of hex colors and as ggplot2 colour and fill scales.
| Function | League | Teams |
|---|---|---|
soccer.colors() |
All six soccer leagues below, in one namespace | 135 |
epl.colors() |
English Premier League (2026-27), plus every club from colorr 1.0.1 | 29 |
mlb.colors() |
Major League Baseball (2026) | 30 |
nba.colors() |
National Basketball Association (2026-27), plus the Seattle SuperSonics | 31 |
wnba.colors() |
Women’s National Basketball Association (2026) | 15 |
nfl.colors() |
National Football League (2026) | 32 |
nhl.colors() |
National Hockey League (2026-27), plus the Arizona Coyotes | 33 |
soccer.colors() covers the Premier League (29), LaLiga
(20), Serie A (20), the Bundesliga (18), Ligue 1 (18) and Major League
Soccer (30).
library(colorr)
nba.colors("bucks")
#> Good Land Green Cream City Cream Great Lakes Blue Black
#> "#00471B" "#EEE1C6" "#0077C0" "#000000"
soccer.colors("bayern_munich")
#> Blue Red
#> "#0066B2" "#DC052D"Use colorr.leagues() and colorr.teams() to
see what’s available, and colorr.colors() when the league
is itself a variable.
colorr.teams("wnba")
lengths(colorr.teams())
colorr.colors("nhl", "kraken")Every league has scale_colour_*(),
scale_color_*() and scale_fill_*()
constructors.
library(ggplot2)
ggplot(mtcars, aes(factor(cyl), mpg, fill = factor(cyl))) +
geom_boxplot() +
scale_fill_nba("bucks")
# continuous scales interpolate through the team's colors
ggplot(mtcars, aes(wt, mpg, colour = hp)) +
geom_point(size = 3) +
scale_colour_wnba("liberty", discrete = FALSE)colorr.pal() returns the underlying palette function if
you’d rather build the scale yourself.
pal <- colorr.pal("nfl", "lions")
pal(3)
pal(9) # interpolated past the team's own colorsEvery palette function takes legacy = TRUE, which
returns the palette that shipped with colorr 1.0.1 rather than the
current one, so figures made with older versions still reproduce.
epl.colors("man_united")
#> Red Yellow
#> "#DA291C" "#FBE122"
epl.colors("man_united", legacy = TRUE)
#> Red Yellow Orange Dark Orange Black
#> "#D81A23" "#F3CA07" "#F4A614" "#EF8221" "#131313"Teams that have been renamed since 1.0.1 still answer to their old
names: mlb.colors("indians") returns the Guardians palette,
and nfl.colors("redskins") returns the Commanders
palette.
The latest stable version can be installed from CRAN.
install.packages("colorr")The latest development version on GitHub can be installed using remotes.
if (!require("remotes")) install.packages("remotes")
remotes::install_github("lobsterbush/colorr")Please use the issue tracker for problems, questions, or feature requests. If you would rather email, you can contact Charles Crabtree.
If you would like to contribute to the package, that is great! I welcome pull requests and new developers.
tests/testthat checks that every palette is a valid,
deduplicated, named hex vector, that every team name from colorr 1.0.1
still resolves, and that the ggplot2 scales build.
devtools::test()Some of the code from the functions comes from Karl W. Broman’s
broman::brocolors.
Team colors come mostly from Team Color Codes. Clubs that site
hasn’t caught up with, mostly those promoted into a top flight for
2026-27 and the newest expansion franchises, come from BrandColorCode, FootyLogos, encycolorpedia, Wikipedia’s
Module:Sports color, or the clubs’ own brand assets.
data-raw/provenance.json records the source for every team,
and data-raw/README.md documents the pipeline.
Also, thanks to Hadley Wickham for his excellent book, R Packages.