Skip to content
Map Styles

Map Styles

A map style is a JSON document that defines the visual appearance of a Vector Tiles map: colors, fonts, layer visibility, and labels. Pass a style URL to a MapLibre-compatible library, and it fetches the style and the tiles it references automatically. No API key is required.

Standard Map Styles

The default styles show place labels in the local language of the area shown. When a place name uses a non-Latin script (for example Cyrillic, Arabic, or Chinese characters), the label gets a second line with a Latin-script name, if one is available.

The community service serves the standard Maptoolkit vector basemap in several styles. Pass any of these style URLs to a MapLibre-compatible library. No API key is required.

StyleStyle URL
Summer (default)https://styles.maptoolkit.org/summer.json
Winterhttps://styles.maptoolkit.org/winter.json
Streethttps://styles.maptoolkit.org/street.json
Lighthttps://styles.maptoolkit.org/light.json
Darkhttps://styles.maptoolkit.org/dark.json
Cyclinghttps://styles.maptoolkit.org/cycling.json
Hikinghttps://styles.maptoolkit.org/hiking.json

Language Versions

A language version shows labels in one specific language instead of the local language. If a place name has no translation into that language, the label falls back to the local name.

Language versions show a single label per place, either the translation or the local name. They do not add the Latin-script subtitle used by the default styles.

Build the URL by adding a language code to the style name:

https://styles.maptoolkit.org/<style>-<language>.json

For example:

https://styles.maptoolkit.org/summer-en.json
https://styles.maptoolkit.org/hiking-ja.json

Maptoolkit supports these 13 languages:

CodeLanguageCodeLanguage
arArabichuHungarian
csCzechitItalian
deGermanjaJapanese
enEnglishkoKorean
esSpanishplPolish
frFrenchzhChinese
hiHindi
Arabic is written right to left. MapLibre GL JS handles it on its own from version 6.9.0 on. Below that version, labels appear with unconnected letters in the wrong order until you register the RTL text plugin — see Change the Map Language for the line it takes. This also affects the default styles wherever they show Arabic names.

3D Styles

Every style has a -3d variant that ships terrain already configured. See 3D Buildings and Terrain for the elevation source, the language limitation and what each library supports.

Customize a Map Style

Use MapMaker to customize a map style in your browser. Pick a style from the Current Style switcher, then edit colors, labels, terrain, and more. Changes update live on the map.

MapMaker offers three editing modes:

  • Easy Mode — Sliders, color pickers, and switches for the most common changes: colors, label density, terrain, and feature groups like roads, water, buildings, and POIs. Safe defaults make this the best starting point.
  • Photo-to-Map — Upload a photo or logo, and MapMaker generates a color palette from it. Use this to match a map’s colors to a brand image or mood board.
  • Expert Mode — Direct access to the underlying MapLibre style.json, with live validation. Click a feature on the map to see which layer renders it and jump straight to that layer. Errors show inline and block saving until you fix them. Use the Maptoolkit Vector Tile Schema Reference and the MapLibre Style Spec to make beautiful styles.

When you are done, click “Export Style” to download the resolved style.json. This export is a static snapshot: unlike styles hosted on styles.maptoolkit.org, it does not receive future updates, and you are responsible for hosting it yourself.

Pass the URL to your custom style to MapLibre to use it:

const map = new maplibregl.Map({
  ...
  style: 'https://my-website.com/style.json', // 👈 Your downloaded style.json!
  ...
});

Minimum SDK Requirements

What a style needs depends on the layer types it uses:

SDK SupportMapLibre GL JSMapLibre Native AndroidMapLibre Native iOS
Basic functionality4.2.011.4.06.6.0
color-relief layer5.6.013.0.06.24.0

Every style except Street and Light carries a color-relief layer, so in practice those need the second row. Street and Light run on the basic minimums.

Older clients typically ignore an unsupported layer type instead of throwing an error, so check your SDK version first if elevation shading doesn’t appear.