Appearances
The appearances layer property defines sets of appearance objects used to quickly change the visual styling of a layer based on a condition. Each appearance object can specify a set of paint and layout property values, allowing for dynamic styling of layers based on application state or user interactions.
{
"id": "some-layer",
"type": "symbol",
...
"appearances": [
{
"name": "selected",
"condition": ["feature-state", "select"],
"properties": {
"icon-image": ["image", "poi", {"params": {"fill": "red"}}],
"icon-size": 1.3
}
},
{
"name": "invisible",
"condition": ["feature-state", "invisible"],
"properties": {
"icon-opacity": 0
}
}
]
}
Paint and Layout properties compatible with appearances
icon-image
Name of image in sprite to use for drawing an image background.
| SDK Support | Mapbox GL JS | Android SDK | iOS SDK |
|---|---|---|---|
basic functionality | >= 0.10.0 | >= 2.0.1 | >= 2.0.0 |
data-driven styling | >= 0.35.0 | >= 5.1.0 | >= 3.6.0 |
icon-offset
[0,0]. Requires icon-image. Supports interpolateexpressions. Works with appearances. Offset distance of icon from its anchor. Positive values indicate right and down, while negative values indicate left and up. Each component is multiplied by the value of icon-size to obtain the final offset in pixels. When combined with icon-rotate the offset will be as if the rotated direction was up.
| SDK Support | Mapbox GL JS | Android SDK | iOS SDK |
|---|---|---|---|
basic functionality | >= 0.10.0 | >= 2.0.1 | >= 2.0.0 |
data-driven styling | >= 0.29.0 | >= 5.0.0 | >= 3.5.0 |
icon-rotate
0. Requires icon-image. Supports interpolateexpressions. Works with appearances. Rotates the icon clockwise.
| SDK Support | Mapbox GL JS | Android SDK | iOS SDK |
|---|---|---|---|
basic functionality | >= 0.10.0 | >= 2.0.1 | >= 2.0.0 |
data-driven styling | >= 0.21.0 | >= 5.0.0 | >= 3.5.0 |
icon-size
0. Units in factor of the original icon size. Defaults to 1. Requires icon-image. Supports interpolateexpressions. Works with appearances. Scales the original size of the icon by the provided factor. The new pixel size of the image will be the original pixel size multiplied by icon-size. 1 is the original size; 3 triples the size of the image.
| SDK Support | Mapbox GL JS | Android SDK | iOS SDK |
|---|---|---|---|
basic functionality | >= 0.10.0 | >= 2.0.1 | >= 2.0.0 |
data-driven styling | >= 0.35.0 | >= 5.1.0 | >= 3.6.0 |