- The OSM tiles are raster which are rendered at discrete zoom levels, but the GL interface allows for smooth scrolling. The result might be slightly blurry tiles and may not be as crisp as viewing them in Leaflet.
- The original example was for adding a WMS layer. So any external TMS/WMS layer should work by swapping the tile url in the code. See https://wiki.openstreetmap.org/wiki/Tile_servers for options.
- The color transition of the tiles from b&w was achieved using the raster-saturation property and zoom functions. Not sure if this is practically useful, but definitely avoids needing to render separate b&w tiles.
- An alternative to using Mapbox GL JS for viewing the OSM tiles in GL is to use OpenLayers