a specification for mapbox gl styles

Usage no npm install needed!

<script type="module">
  import mapcatMapcatGlStyleSpec from 'https://cdn.skypack.dev/@mapcat/mapcat-gl-style-spec';


Mapbox GL Spec & Lint

Circle CI

GL style spec, validation, and migration scripts for mapbox-gl-js and mapbox-gl-native.


npm install -g mapbox-gl-style-spec

Provides the utilities:

  • gl-style-migrate
  • gl-style-format
  • gl-style-validate


$ gl-style-validate style.json

Will validate the given style JSON and print errors to stdout. Provide a --json flag to get JSON output.


This repo contains scripts for migrating GL styles of any version to the latest version (currently v8). Migrate a style like this:

$ gl-style-migrate bright-v7.json > bright-v8.json

To migrate a file in place, you can use the sponge utility from the moreutils package:

$ brew install moreutils
$ gl-style-migrate bright.json | sponge bright.json



To run tests:

npm install
npm test

To update test fixtures

UPDATE=true npm test


  • The utility reference page API.md is generated automatically from inline source documentation.
  • The style reference page exists here: docs/_generate/index.html and can be edited directly.

To view the documentation, run

npm start

and open the served page