# MapLibre GL JS v6.0.0 - Product: MapLibre GL JS (https://whatsnew.fyi/product/maplibre-gl-js) - Vendor: MapLibre - Date: 2026-07-22 - Version: v6.0.0 - Original notes: https://github.com/maplibre/maplibre-gl-js/releases/tag/v6.0.0 - Permalink: https://whatsnew.fyi/product/maplibre-gl-js/releases/v6.0.0 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **removed** — Switch to an ESM-only distribution; UMD bundles (maplibre-gl.js, maplibre-gl-csp.js) are no longer published - **changed** — Interpolate light position in spherical coordinates instead of cartesian coordinates to maintain radial distance during transitions - **changed** — styleimagemissing is now a notify-only event; use Map.setMissingStyleImageResolver to supply images via an async-capable function instead - **changed** — Map now composes a Camera instead of extending it; Map extends Evented directly and forwards the camera API - **removed** — Remove the internal map.transform property; use map's public API instead - **removed** — Remove internal transform.getMatrixForModel helper - **changed** — All map events are now real classes instantiated when fired - **changed** — Rename BoxZoom handler from MapLibreZoomEvent to MapBoxZoomEvent - **added** — Add rollstart, roll, rollend, and style.load (as MapStyleLoadEvent) events to MapEventType - **added** — Add event classes and type-map for Marker, Popup, GeolocateControl, and FullscreenControl - **removed** — Remove MapDataEvent; data, dataloading, and dataabort events are now MapSourceDataEvent or MapStyleDataEvent - **added** — Add MapMovementEvent as the type for all camera-transition events (move, zoom, rotate, pitch, roll, drag and their start/end variants) - **changed** — Make Evented generic over an event-type map and abstract so subclasses get strongly-typed on/once/off - **changed** — Update maplibre-gl-style-spec to version 25, which throws an error with warning severity instead of silently failing on legacy expressions - **changed** — Change pragma mapbox to pragma maplibre in shader code - **changed** — Change zoomLevelsToOverscale default value to 4 to support better handling of high level zoom with dense labels - **removed** — Remove the second parameter (waitForCompletion) from GeoJSONSource.setData and remove its return value of this - **changed** — Update TypeScript target to ES2022 for smaller bundles and improved runtime performance - **removed** — Remove WebGL (v1) support; WebGL2 is now required - **added** — Add ability to listen to webgl errors via .on('error') event The following incorporates all the pre-releases for version 6 changes. Check-out our [migration guide from v5 to v6](./docs/guides/v5-to-v6-migration-guide.md) for more information. ###### ✨ Features and improvements - ⚠️ Switch to an ESM-only distribution (`maplibre-gl.mjs`). The UMD bundles (`maplibre-gl.js`, `maplibre-gl-csp.js`) are no longer published. The CSP-specific bundle is also dropped: the ESM build loads its worker as a real URL, so `worker-src blob:` is no longer required. Consumers using `