and in between they
are blended together.

SDK Support  |  Mapbox GL JS  |  Android SDK  |  iOS SDK   
---|---|---|---  
basic functionality  |  >= 3.0.0  |  >= 11.0.0  |  >= 11.0.0   
data-driven styling  |  >= 3.0.0  |  >= 11.0.0  |  >= 11.0.0   
  
###  icon-keep-upright  â

[ Layout ](/style-spec/reference/layers/#layout-property) property.  Optional
[ boolean ](/style-spec/reference/types/#boolean) .  Defaults to ` false ` .
_Requires_ icon-image  .  _Requires_ icon-rotation-alignment  to be  ` "map" `
.  _Requires_ symbol-placement  to be  ` "line" ` , or ` "line-center" ` .

If true, the icon may be flipped to prevent it from being rendered upside-
down.

SDK Support  |  Mapbox GL JS  |  Android SDK  |  iOS SDK   
---|---|---|---  
basic functionality  |  >= 0.10.0  |  >= 2.0.1  |  >= 2.0.0   
  
###  icon-offset  â

[ Layout ](/style-spec/reference/layers/#layout-property) property.  Optional
[ array ](/style-spec/reference/types/#array) of  [ number  s ](/style-
spec/reference/types/#number) .  Defaults to ` [0,0] ` .  _Requires_ icon-
image  .  Supports  [ smooth-ramp  ` interpolate ` ](/style-
spec/reference/expressions/#interpolate) expressions.

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-opacity  â

[ Paint ](/style-spec/reference/layers/#paint-property) property.  Optional  [
number ](/style-spec/reference/types/#number) between ` 0 ` and ` 1 `
inclusive  .  Defaults to ` 1 ` .  _Requires_ icon-image  .  Supports  _[
combine  ` feature-state ` ](/style-spec/reference/expressions/#feature-state)
_ and [ smooth-ramp  ` interpolate ` ](/style-
spec/reference/expressions/#interpolate) expressions.  opacity
Transitionable.

The opacity at which the icon will be drawn.

SDK Support  |  Mapbox GL JS  |  Android SDK  |  iOS SDK   
---|---|---|---  
basic functionality  |  >= 0.10.0  |  >= 2.0.1  |  >= 2.0.0   
data-driven styling  |  >= 0.33.0  |  >= 5.0.0  |  >= 3.5.0   
  
###  icon-optional  â

[ Layout ](/style-spec/reference/layers/#layout-property) property.  Optional
[ boolean ](/style-spec/reference/types/#boolean) .  Defaults to ` false ` .
_Requires_ icon-image  .  _Requires_ text-field  .

If true, text will display without their corresponding icons when the icon
collides with other symbols and the text does not.

SDK Support  |  Mapbox GL JS  |  Android SDK  |  iOS SDK   
---|---|---|---  
basic functionality  |  >= 0.10.0  |  >= 2.0.1  |  >= 2.0.0   
  
###  icon-padding  â

[ Layout ](/style-spec/reference/layers/#layout-property) property.  Optional
[ number ](/style-spec/reference/types/#number) greater than or equal to ` 0 `
.  Units in  pixels  .  Defaults to ` 2 ` .  _Requires_ icon-image  .
Supports  [ smooth-ramp  ` interpolate ` ](/style-
spec/reference/expressions/#interpolate) expressions.

Size of the additional area around the icon bounding box used for detecting
symbol collisions.

SDK Support  |  Mapbox GL JS  |  Android SDK  |  iOS SDK   
---|---|---|---  
basic functionality  |  >= 0.10.0  |  >= 2.0.1  |  >= 2.0.0   
  
###  icon-pitch-alignment  â

[ Layout ](/style-spec/reference/layers/#layout-property) property.  Optional
[ enum ](/style-spec/reference/types/#enum) .  One of  ` "map" ` , `
"viewport" ` , ` "auto" ` .  Defaults to ` "auto" ` .  _Requires_ icon-image
.

Orientation of icon when map is pitched.

` "map" ` :

    

The icon is aligned to the plane of the map.

` "viewport" ` :

    

The icon is aligned to the plane of the viewport.

` "auto" ` :

    

Automatically matches the value