Mapbox Standard Style
- Highly performant
- Landmark 3D Buildings
- Dynamic Lighting Capabilities
- Expertly-designed aesthetic
The Mapbox Standard Style is a modern, continuously improving map style designed to reduce configuration complexity while delivering high-quality map visualizations. This guide covers its features, configuration options, and limitations.
Mapbox Standard introduces a simpler, more dynamic approach to map styling, and is designed to be a versatile basemap for a wide range of applications with less complexity than classic styles.
- Less configuration: Many elements are preset, reducing manual setup.
- Automatically evolving: Style updates from Mapbox improve visual quality and performance without requiring manual intervention from developers and designers.
You can interact with the embedded Mapbox GL JS map below to explore the Mapbox Standard style. Use the buttons in the top left to dynamically change the lighting conditions and see how the map responds.
The Mapbox Standard Style is the default style used in all Mapbox map rendering SDKs and libraries. To use Mapbox Standard, install the latest map renderer for your platform:
Get Started
Mapbox Standard is referenced via its style URL:
mapbox://styles/mapbox/standard
You can use this style URL to create a new map instance in your application. The code snippets below show how to create a new map using the Mapbox Standard style in various platforms.
const map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/standard',
});
import com.mapbox.maps.MapView
import com.mapbox.maps.MapboxMap
import com.mapbox.maps.Style
// Initialize MapView
mapView = findViewById(R.id.mapView)
mapboxMap = mapView.getMapboxMap()
// Set a custom style URL
val styleUrl = "mapbox://styles/mapbox/standard"
mapboxMap.loadStyleUri(styleUrl) { style ->
// Style is loaded, you can now add layers, sources, etc.
}
import UIKit
import MapboxMaps
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let mapView = MapView(frame: view.bounds)
mapView.mapboxMap.mapStyle = MapStyle(uri: StyleURI(rawValue: "mapbox://styles/mapbox/standard"))
mapView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
view.addSubview(mapView)
}
}
Mapbox Standard Satellite
Mapbox Standard Satellite is a variant of the Mapbox Standard style that uses satellite imagery as its base layer. It provides a realistic view of the world while retaining the same dynamic lighting and 3D features as the standard style.
The style URL for Mapbox Standard Satellite is:
mapbox://styles/mapbox/standard-satellite
3D Environment
Mapbox Standard provides a rich 3D environment that brings maps to life with enhanced realism. The 3D environment includes:
- Buildings – Extruded with detailed lighting effects.
- Landmarks – Iconic structures, buildings, and monuments are displayed as vibrant 3D models.
- Trees – 3D tree models with realistic scaling.
- Terrain – Elevation data to create natural landscapes.
- Elevated Structures – Bridges, overpasses, and other elevated elements.
- Lights – Adds depth and realism to scenes, simulating dawn, daytime, dusk, or night.
Lighting
Mapbox Standard includes ambient and directional lighting to create natural-looking environments. You can specify a light preset (see Configuration) to change the lighting conditions of the map. Any custom layers you add to Mapbox Standard will need additional configuration to work with the map's lighting.
Emissive Strength & Custom Layers
To work well with the default lighting, custom layers added to the map require an emissive-strength
configuration. Emissive-strength allows you to adjust color vibrancy, making elements glow more or less in the 3D lighting environment.
For example, when adding a custom fill
layer, the fill-emissive-strength
property should be defined:
{
"id": "custom-fill",
"type": "fill",
"source": "custom-source",
"paint": {
"fill-color": "#ff0000",
"fill-opacity": 0.5,
"fill-emissive-strength": 0.5
}
}
Learn more in the Getting started with Mapbox Standard in Studio Tutorial, which shows how to set emissive strength on a custom circle layer.
Configuration
Mapbox Standard includes several configuration options for tailoring the style to your needs. See Mapbox GL JS Style Guide for more details.
You can set these options in the consuming style when importing Mapbox Standard, or at runtime.
For full details on the configuration options, see the Mapbox Standard API reference.
Setting configuration options during import
When Mapbox Standard is imported into a custom style, you can set configuration options using the config
property.
For example, the following style JSON shows how to set the lightPreset
configuration option to dusk
when importing the Mapbox Standard style:
{
"version": 8,
"sources": {
...
},
"layers": [
...
],
"imports": [
{
"id": "basemap",
"url": "mapbox://styles/mapbox/standard",
"config": {
"lightPreset": "dusk",
}
}
]
}
Setting configuration options at runtime
You can also set configuration options at runtime using the Mapbox Maps SDK or library for your platform.
For example, the following code snippets show how to set the lightPreset
configuration option to dusk
when loading the Mapbox Standard style in various platforms.
map.setConfigProperty('basemap', 'lightPreset', 'dusk');
mapboxMap.loadStyle(Style.STANDARD) { style ->
style.setStyleImportConfigProperty(styleImportId, "lightPreset", Value.valueOf("dusk"))
}
setStyleImportConfigProperties()
Light Presets
You can set the lightPreset
option to one of four predefined lighting conditions for different environments: dawn
day
dusk
, or night
.
See the interactive preview at the beginning of this guide to see how the lighting conditions affect the map.
Label Visibility
A selected set of map labels can be toggled on or off to improve map readability or for replacement with custom data. These include:
- Place Labels - Set
showPlaceLabels
to toggle visibility of all place names, including cities, towns, and other locations. - Point of Interest Labels - Set
showPointofInterestLabels
to toggle visibility of all points of interest, including text labels and icons. - Road Labels - Set
showRoadLabels
to toggle visibility of all road labels, including road shield symbols.
Feature Visibility
You can toggle the visibility of specific map features to customize the map display. These include:
- Pedestrian Roads - Set
showPedestrianRoads
to toggle visibility of all pedestrian roads, paths or trails. - 3d Objects - Set
show3dObjects
to toggle visibility of all 3d objects, including buildings, landmarks, trees, etc.
Theming
Mapbox Standard includes three predefined color themes to change the look and feel of the map. You can also create custom themes to match your brand or application design.
Predefined themes
Set the theme
property to one of the following values to apply a predefined theme:
Theme ID | Image |
---|---|
default | |
faded | |
monochrome |
Custom themes
To use a custom theme, set the theme
property to custom, and provide a base64-encoded lookup table (LUT) image as the theme-data
property.
This image shows a scene in Mapbox Standard with a custom theme applied:
Fonts
By setting the font
property, you can choose from a list of over 20 predefined fonts to customize the text appearance on the map.
Road Colors
Mapbox Standard includes three configuration properties for road colors, colorMotorways
, colorTrunks
, and colorRoads
. These allow for customizing the appearance of different road types.
Feature State Colors
The place labels featureset includes built-in feature states for coloring highlighted and selected features. You can configure both colors by setting colorPlaceLabelHighlight
and colorPlaceLabelSelect
properties.
Interactions with Featuresets
Mapbox Standard includes several predefined featuresets, groups of layers that you can use for common interactions. These featuresets include:
- Points of Interest - Restaurants, businesses, parks, and other points of interest.
- Place Labels - Text labels for cities, towns, and other locations.
Each includes feature state styling, allowing you to quickly change the color and/or visibility of features in the featureset based on user interactions.
For example, you can the highlight
feature state on the place-labels
featureset on click:
// Add a click interaction to `place-labels` featureset.
map.addInteraction('place-labels-click-interaction', {
type: 'click',
target: {featuresetId: 'place-labels', importId: 'basemap'},
handler: (e) => {
// The properties defined in the selectors `properties` objects.
console.log("Place label clicked", e.feature.properties.name, e.feature.properties.group)
map.setFeatureState(e.feature, {highlight: true});
}
});
// Add a click interaction to `place-labels` featureset.
mapboxMap.addInteraction(
ClickInteraction.featureset(id = "place-labels", importId = "basemap") { feature, context ->
val name = feature.properties.getString("name")
val group = feature.properties.getString("group")
// Log the clicked place label information
println("Place label clicked: $name, $group")
// Highlight the clicked feature
mapboxMap.setFeatureState(
featuresetFeature = feature,
state = mapOf("highlight" to true)
)
true // Stops propagation
}
)
// Add a click interaction to `place-labels` featureset.
mapView.mapboxMap.addInteraction(TapInteraction(.featureset("place-labels", importId: "basemap")) { [weak mapView] feature, context in
if let name = feature.properties["name"] as? String,
let group = feature.properties["group"] as? String {
print("Place label clicked: \(name), \(group)")
}
// Highlight the clicked feature
mapView?.mapboxMap.setFeatureState(feature, state: ["highlight": true])
return true // Stops propagation
})
Style Imports
Style Imports can be used to add the contents of other styles to the current style. Instead of copying the individual layers, only the other style URL is referenced, so that the imported style is always the most recent version. Mapbox Standard can be imported into your styles in this way, allowing you to combine it with your own custom sources and layers.
The following style JSON shows an example of how to combine Mapbox Standard with a separate style using the imports
property:
{
"version": 8,
"sources": {
...
},
"layers": [
...
],
"imports": [
{
"id": "basemap",
"url": "mapbox://styles/mapbox/standard",
"config": {
"lightPreset": "night",
}
}
]
}
The easiest way to extend Mapbox Standard is to use the Mapbox Studio Style Editor. You can create a new style with Mapbox Standard as an import, and then add your own custom sources and layers.
Slots
Mapbox standard includes top
, middle
, and bottom
slots, allowing you to add custom layers in specific locations in the layer stack. If a slot is specified when adding a layer, it will be added to top of the stack (above all other layers in the map). See the API reference for more details.
You can specify a slot
in a layer's JSON configuration:
{
"id": "my-layer",
"source": "my-source",
"type": "fill",
"slot": "middle",
"paint": {
...
}
}
Clip Layers
Clip layers allow for hiding all features from another layer that intersect with a specified geometry. You can extend Mapbox Standard with custom clip layers to create unique visual effects.
Common uses of clip layers in Mapbox Standard include:
- Hide POIs – Remove specific points of interest from the map.
- Hide 3D Models - Remove a Mapbox 3D building model and replace it with a custom model.
- Mask Areas – Create custom shapes to mask out parts of the map.
Language Support
Mapbox Standard does not include any special considerations for language support. You can specify both language
and worldview
when creating a new map, and Mapbox Standard will display labels relevant to the current language and worldview if they are available in the underlying data sources.
Refer to the documentation for the Mapbox mapping SDKs and libraries for more information on setting the language and worldview for your map:
Continuous Improvements
Our expert cartographers and engineers are continuously improving the Standard style. These improvements are automatically applied to your maps without requiring manual style updates. To take advantage of the latest features, use the latest version of the Mapbox Maps SDK or library for your platform.
New features of the Mapbox Standard style may require the latest version of the Mapbox Maps SDK or library for your platform. Check the changelogs for details.
Limitations
Mapbox Standard introduces some restrictions compared to classic Mapbox Styles.
- No
queryRenderedFeatures
support – Users cannot dynamically query rendered map features. - Limited user interaction – You can only change what is explicitly allowed by the style.
- Cannot filter certain layers (e.g., POIs).
Mapbox Standard optimizes rendering and usability, but reduces customization options and complexity as compared to Classic Styles.
Additional Resources
See the following resources for more information on Mapbox Standard:
- Mapbox Standard API Reference
- Mapbox Blog Post: Introducing Mapbox Standard
- Mapbox Blog Post: Streamline map development with the Mapbox basemap
- Mapbox Studio - Use the Mapbox Studio Style Editor to create custom styles with Mapbox Standard as an import.