From OpenStreetMap Wiki
Jump to navigation Jump to search

CartoCSS is a Mapnik stylesheet pre-processor developed by MapBox and inspired by Cascadenik. The reference parser is written in JavaScript and optimized for large stylesheets. CartoCSS stylesheets are used by TileMill but also usable using the carto executable included in the package.

CartoCSS style for Standard tile layer

Main article: Standard tile layer

CartoCSS is used in the rendering process of the "Standard" map tiles of since August 2013. The "openstreetmap-carto" CartoCSS stylesheet is maintained at Bug reports (e.g. rendering problems of specific object classes) can be raised there (needs a login with a account).


CartoCSS stylesheets differ from MapCSS in a number of ways: the most important being that the underlying data representation is not tied to OSM data or any other datasource. They also aim to expose as much Mapnik functionality as possible, be compilable very quickly, and have advanced features like variables, attachments, and filters that can be gradually applied.

Though CartoCSS stylesheets can work with any data structure, an 'OSM' carto stylesheet based off of one schema, like Imposm or HighRoad, can be swapped with another stylesheet based on the same schema.

Mapbox considers Mapbox GL to be replacement of CartoCSS,[1] despite that CartoCSS is still actively maintained by the community.

Converting to Mapnik XML

You can compile a Carto MML file to Mapnik XML by running (if using tilemill)

cd mapbox-tilemill
./bin/carto ./files/<your project>/<your project>.mml > mapnik.xml

This can easily be done without TileMill as well, you just have to have the carto binary installed.

See Also