Progressive enhancement

Identical <mapml-viewer> markup rendered by the Leaflet build (left) and the MapLibre GL build (right). Each map runs in its own iframe because both engines register the same custom-element names. A more capable engine takes advantage of extra markup; a less capable engine still renders a usable map.

3-D globe view (OSMTILE / Web Mercator)

Both maps declare view="globe" and controlslist="static view" on the same plain OSMTILE layer. MapLibre GL honours the view and static attributes, presenting the map as a frozen 3-D globe with a view and lock control. Leaflet ignores the attribute and controlslist token it does not understand and renders the same content as a flat 2-D map — both engines produce a working map from the identical markup.

Leaflet — flat 2-D map

MapLibre GL JS — enhanced 3-D globe