What kind of map?
Abstract/geometric representation of data.
D3 will provide the most flexibility & can use existing tools for color scales/interactivity/etc.
A different library will be necessary. Depending on needs raster or vector tiles.
https://d3-graph-gallery.com/graph/choropleth_basic.html
https://d3-graph-gallery.com/graph/backgroundmap_changeprojection.html
Demo/Tutorial: https://leafletjs.com/examples/choropleth/
Instead of starting with a blank slate, it can be helpful to have a base map, but a base map is often comprised of many feature layers:
Drawing all of these layers adds up.
An innovation that made web mapping scalable in the mid-2000s was pre-rendering base layers into image tiles.
Instead of images, data is sent as images.
Blog Post from today on OSM switch to Vector tiles: https://tech.marksblogg.com/osm-mvt-vector-tiles.html
Raster Tiles w/ Vector Layer on Top
https://leafletjs.com/reference.html
(Has plugins to use Vector Tiles via MapLibreGL)
Vector-tile based library. Community fork of MapboxGL.
Mapbox is an innovator in the space, but also quite expensive.
MaplibreGL/MapboxGL are mostly compatible.
Leaflet/MapLibre offer a simple API for adding pop-ups to features.
Reminder: hover/pop-up alone is not enough interactivity for final product.
Leaflet & MapLibre examples