NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #4479 most downloaded on npm
a specification for maplibre styles
Last release 19 days ago
15 Sep 2026
Release timing varies
gaps range from 8 days to 2 months
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
92 releases · first in 2021
One column per quarter.
Fix semiliteral parsing in array-valued properties and at operands, and report invalid children at their nested expression locations instead of throwi
semiliteral parsing in array-valued properties and at operands, and report invalid children at their nested expression locations instead of throwing (#1878)setTerrain diff command around the source commands, so terrain is set after its source is added and unset before it is removed (#1879)Tighten the diff command types: DiffCommand is now a discriminated union, so a switch on command narrows args , and the unused legacy class argument w
Allow negative fill-extrusion-base and fill-extrusion-height values, extruding below ground level (e.g. underground floors) ( #1794 ) (by @clement-igo
fill-extrusion-base and fill-extrusion-height values, extruding below ground level (e.g. underground floors) (#1794) (by @clement-igonet)-transition properties on sky the same way light already does, so sky-color-transition and similar keys no longer report as unknown properties (#1867) (by @Yasser-Ameur)Publish the ESM build ( dist/index.mjs , referenced by package.json#module ) as one module per source file instead of a single bundle, so that bundler
Enable data-driven icon-rotation-alignment ( #1836 ) (by @Turbo87 )
Add semiliteral operator for expressions inside arrays and objects ( #951 ) (by @sargunv )
semiliteral operator for expressions inside arrays and objects (#951) (by @sargunv)symbol-height-offset and symbol-height-anchor properties to symbol layers to allow icons and text to be elevated above the ground (#1508) (by @HatulaPro)Fix fill-extrusion-rounded-corner-distance being documented as an paint instead of an layout property as implemnented ( #1784 ) (by @CommanderStorm )
fill-extrusion-rounded-corner-distance being documented as an paint instead of an layout property as implemnented (#1784) (by @CommanderStorm)Add fill-extrusion-rounded-corner-distance ( #1781 , #1782 ) (by @louwers )
global-state (and other value-typed) expressions in projectionDefinition properties such as projection.type (#1772) (by @CommanderStorm)Add v8.json types called StyleSpecificationReference ( #1767 ) (by @HarelM )
Add a severity field to ValidationError . It is only set on non-fatal findings ( "warning" ); an absent severity still means "error" , so existing con
severity field to ValidationError. It is only set on non-fatal findings ("warning"); an absent severity still means "error", so existing consumers are unaffected (#1751) (by @HarelM)severity field to ValidationError and imporve legacy filter recognition (#1752) (by @HarelM)Remove rollup dependencies and a stale replace for jsonlint ( #1749 ) (by @HarelM )
has filter now returns false when a property exists but is set to undefined ( #1712 ) (by @xavierjs )
⚠️ Change legacy filter expression validation to add suggestions on invalid expressions ( #1709 ) (by HarelM )
fill-layer-opacity and line-layer-opacity. (#1699) (by @CommanderStorm)Added {line,fill}-layer-opacity paint property. It applies opacity to the whole layer as a whole layer so overlapping features change in an uniform wa
{line,fill}-layer-opacity paint property. It applies opacity to the whole layer as a whole layer so overlapping features change in an uniform way. (#1650) (by @CommanderStorm)Allow fill-color when fill-pattern is set, for SDF fill pattern colorization (#1683) (by @bradymadden97)
fill-color when fill-pattern is set, for SDF fill pattern colorization (#1683) (by @bradymadden97)Added missing exported types (#1638) (by @scottg521)
Replace rw with node:fs. Resolves #1625 (#1635) (by @birkskyum)
Restore Specification type exports dropped in v24.8.2 (#1627) (by @birkskyum)
Move from rollup->rolldown and ts6->ts7 for builds/typecheck. (#1132) (by birkskyum)
Add AllPaintProperties and AllLayoutProperties typescript definitions (#1579) (by @CommanderStorm)
Enable data driven stylng for line-{cap,round-limit,miter-limit} (#1566) (by @CommanderStorm)
line-{cap,round-limit,miter-limit} (#1566) (by @CommanderStorm)Validate that raster layers do not specify both resampling and raster-resampling paint properties (#1532) (by larsmaxfield)
raster layers do not specify both resampling and raster-resampling paint properties (#1532) (by larsmaxfield)Add split and join expressions (#1518) (by 1ec5)
Add "unit" option to "number-format" (#1335) (by ginnyTheCat)
resampling paint property to raster, hillshade, and color relief layers (#1447) (by larsmaxfield)Consolidate workflows (#1423) (by HarelM)
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.3.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.3.1:
center property is now validated to be a [lon,lat] array (#1372)center property is now validated to be a [lon,lat] array (#1372)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.3.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.3.0:
glyphs property (#1347)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.2.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.2.0:
encoding property to vector source to allow for MapLibre Tile vector sourceshttps://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.1.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.1.1:
line-dasharray (#5812)...) due to esbuild limitations (#1297)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.1.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.1.0:
...) due to esbuild limitations (#1286)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.0.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v24.0.0:
global-state parameter to featureFilter function (#1279)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.3.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.3.0:
global-state to expression from the evaluate function to the constructor (#1267) - you can add an empty object for global state to overcome this.https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.2.3:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.2.3:
global-state expression typing (#1130)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.2.2:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.2.2:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.2.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.2.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.2.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.2.0:
numberArray and colorArray values are non-empty (#1094)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.1.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.1.0:
glyphs is now optional even if a symbol layer specifies text-field; if it is unset, text-font is interpreted as a fallback font list (#1068)hillshade layer now supports multiple methods, and the multidirectional method supports array values for illumination properties (#1088)global-state expression and state root property (#1044).layers array items are objects instead of throwing an error if not (#1026)validate_object crashing when object prototype keys used in style's objects (#1028)validate_color crashing when object prototype keys used as color strings (#1036)to_color) producing invalid colors when object prototype keys used as color strings (#1036)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.0.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v23.0.0:
vertical-align option to format expression (#832)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v22.0.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v22.0.1:
geometry-type expression specification and MapLibre GL JS implementation to the historic behavior of only returning Point, LineString or Polygon, not the Multi... variants of these. This reverts a recent change to the implementation, which was causing issues in a large number of styles.https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v22.0.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v22.0.0:
geomtry-type filter (#924)geomtry-type filter (#924)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v21.2.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v21.2.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v21.1.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v21.1.0:
Add vertical-perspective projection (#890)
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v21.0.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v21.0.0:
centerAltitude property to stylesheet (#851)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.4.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.4.0:
["geometry-type"] with its spec. Now, when applicable, ["geometry-type"] returns values not available while using "$type": "MultiPoint", "MultiLineString", and "MultiPolygon". The behaviour of "$type" has not changed. (#519)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.3.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.3.1:
roll property to stylesheet (#850)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.3.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.3.0:
index-of, length, and slice expression operators count a UTF-16 surrogate pair as a single character. (#779)https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.2.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.2.0:
Projection specifications #687Sky specifications to support atmosphere and other required features #686assert to with in JSON modules. Requires Node.js 18.20.0 or later, and supports Node.js 22.0.0 or later - #675https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.1.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.1.1:
distance expression in web style spec - #642https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.1.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.1.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.0.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v20.0.0:
latest.json to dist folder to allow using the full version of the spec #490https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.3.3:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.3.3:
migrate, validate and format to the exported methods of this package #464operations from the API #460data in the GeoJSONSourceSpecification for TypeScript #463.https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.3.2:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.3.2:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.3.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.3.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.3.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.3.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.2.2:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.2.2:
text-variable-anchor-offset layout property. #112https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.2.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre Style Spec v19.2.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre GL Style Spec v19.2.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre GL Style Spec v19.2.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre GL Style Spec v19.1.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre GL Style Spec v19.1.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre GL Style Spec v19.0.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre GL Style Spec v19.0.1:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre GL Style Spec v19.0.0:
https://github.com/maplibre/maplibre-gl-style-spec Changes since MapLibre GL Style Spec v19.0.0:
Color instances in Color.parse #128Your coding agent can read these notes before it upgrades. Set up the MCP server →