---
title: "SymbolLayerSpecification | JavaScript maps SDK"
description: "Documentation for MapTiler SDK"
---

> For AI agents: a documentation index is available at [/llms.txt](https://docs.maptiler.com/llms.txt). Markdown versions of all pages are available by appending .md to any URL.

# Type Alias SymbolLayerSpecification

type SymbolLayerSpecification \= {  
    [filter](#filter)?: [FilterSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/FilterSpecification/);  
    [id](#id): string;  
    [layout](#layout)?: {  
        "icon-allow-overlap"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
        "icon-anchor"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
            | "center"  
            | "left"  
            | "right"  
            | "top"  
            | "bottom"  
            | "top-left"  
            | "top-right"  
            | "bottom-left"  
            | "bottom-right",  
        \>;  
        "icon-ignore-placement"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
        "icon-image"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
            [ResolvedImageSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ResolvedImageSpecification/),  
        \>;  
        "icon-keep-upright"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
        "icon-offset"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<\[number, number\]\>;  
        "icon-optional"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
        "icon-overlap"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            "never"  
            | "always"  
            | "cooperative",  
        \>;  
        "icon-padding"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
            [PaddingSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingSpecification/),  
        \>;  
        "icon-pitch-alignment"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            "map"  
            | "viewport"  
            | "auto",  
        \>;  
        "icon-rotate"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "icon-rotation-alignment"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            "map"  
            | "viewport"  
            | "auto",  
        \>;  
        "icon-size"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "icon-text-fit"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            "none"  
            | "width"  
            | "height"  
            | "both",  
        \>;  
        "icon-text-fit-padding"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            \[number, number, number, number\],  
        \>;  
        "symbol-avoid-edges"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
        "symbol-placement"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            "point"  
            | "line"  
            | "line-center",  
        \>;  
        "symbol-sort-key"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "symbol-spacing"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>;  
        "symbol-z-order"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            "auto"  
            | "viewport-y"  
            | "source",  
        \>;  
        "text-allow-overlap"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
        "text-anchor"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
            | "center"  
            | "left"  
            | "right"  
            | "top"  
            | "bottom"  
            | "top-left"  
            | "top-right"  
            | "bottom-left"  
            | "bottom-right",  
        \>;  
        "text-field"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
            [FormattedSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/FormattedSpecification/),  
        \>;  
        "text-font"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<string\[\]\>;  
        "text-ignore-placement"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
        "text-justify"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
            "auto"  
            | "left"  
            | "center"  
            | "right",  
        \>;  
        "text-keep-upright"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
        "text-letter-spacing"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "text-line-height"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>;  
        "text-max-angle"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>;  
        "text-max-width"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "text-offset"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<\[number, number\]\>;  
        "text-optional"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
        "text-overlap"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            "never"  
            | "always"  
            | "cooperative",  
        \>;  
        "text-padding"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>;  
        "text-pitch-alignment"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            "map"  
            | "viewport"  
            | "auto",  
        \>;  
        "text-radial-offset"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "text-rotate"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "text-rotation-alignment"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            "map"  
            | "viewport"  
            | "viewport-glyph"  
            | "auto",  
        \>;  
        "text-size"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "text-transform"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
            "none"  
            | "uppercase"  
            | "lowercase",  
        \>;  
        "text-variable-anchor"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            (  
                | "center"  
                | "left"  
                | "right"  
                | "top"  
                | "bottom"  
                | "top-left"  
                | "top-right"  
                | "bottom-left"  
                | "bottom-right"  
            )\[\],  
        \>;  
        "text-variable-anchor-offset"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
            [VariableAnchorOffsetCollectionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VariableAnchorOffsetCollectionSpecification/),  
        \>;  
        "text-writing-mode"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
            ("horizontal" | "vertical")\[\],  
        \>;  
        visibility?: [VisibilitySpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VisibilitySpecification/);  
    };  
    [maxzoom](#maxzoom)?: number;  
    [metadata](#metadata)?: unknown;  
    [minzoom](#minzoom)?: number;  
    [paint](#paint)?: {  
        "icon-color"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/)\>;  
        "icon-color-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "icon-halo-blur"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "icon-halo-blur-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "icon-halo-color"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
            [ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/),  
        \>;  
        "icon-halo-color-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "icon-halo-width"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "icon-halo-width-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "icon-opacity"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "icon-opacity-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "icon-translate"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<\[number, number\]\>;  
        "icon-translate-anchor"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"map" | "viewport"\>;  
        "icon-translate-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "text-color"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/)\>;  
        "text-color-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "text-halo-blur"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "text-halo-blur-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "text-halo-color"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
            [ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/),  
        \>;  
        "text-halo-color-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "text-halo-width"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "text-halo-width-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "text-opacity"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
        "text-opacity-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
        "text-translate"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<\[number, number\]\>;  
        "text-translate-anchor"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"map" | "viewport"\>;  
        "text-translate-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    };  
    [source](#source): string;  
    ["source-layer"](#source-layer)?: string;  
    [type](#type): "symbol";  
}

##### Index

### Properties[](#properties)

[filter?](#filter) [id](#id) [layout?](#layout) [maxzoom?](#maxzoom) [metadata?](#metadata) [minzoom?](#minzoom) [paint?](#paint) [source](#source) [source-layer?](#source-layer) [type](#type)

## Properties[](#properties-1)

### `Optional`filter[](#filter)

filter?: [FilterSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/FilterSpecification/)

A expression specifying conditions on source features. Only features that match the filter are displayed. Zoom expressions in filters are only evaluated at integer zoom levels. The `feature-state` expression is not supported in filter expressions.

### id[](#id)

id: string

Unique layer name.

### `Optional`layout[](#layout)

layout?: {  
    "icon-allow-overlap"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
    "icon-anchor"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        | "center"  
        | "left"  
        | "right"  
        | "top"  
        | "bottom"  
        | "top-left"  
        | "top-right"  
        | "bottom-left"  
        | "bottom-right",  
    \>;  
    "icon-ignore-placement"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
    "icon-image"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        [ResolvedImageSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ResolvedImageSpecification/),  
    \>;  
    "icon-keep-upright"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
    "icon-offset"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<\[number, number\]\>;  
    "icon-optional"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
    "icon-overlap"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        "never"  
        | "always"  
        | "cooperative",  
    \>;  
    "icon-padding"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[PaddingSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingSpecification/)\>;  
    "icon-pitch-alignment"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        "map"  
        | "viewport"  
        | "auto",  
    \>;  
    "icon-rotate"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "icon-rotation-alignment"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        "map"  
        | "viewport"  
        | "auto",  
    \>;  
    "icon-size"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "icon-text-fit"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        "none"  
        | "width"  
        | "height"  
        | "both",  
    \>;  
    "icon-text-fit-padding"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        \[number, number, number, number\],  
    \>;  
    "symbol-avoid-edges"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
    "symbol-placement"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        "point"  
        | "line"  
        | "line-center",  
    \>;  
    "symbol-sort-key"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "symbol-spacing"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>;  
    "symbol-z-order"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        "auto"  
        | "viewport-y"  
        | "source",  
    \>;  
    "text-allow-overlap"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
    "text-anchor"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        | "center"  
        | "left"  
        | "right"  
        | "top"  
        | "bottom"  
        | "top-left"  
        | "top-right"  
        | "bottom-left"  
        | "bottom-right",  
    \>;  
    "text-field"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[FormattedSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/FormattedSpecification/)\>;  
    "text-font"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<string\[\]\>;  
    "text-ignore-placement"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
    "text-justify"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        "auto"  
        | "left"  
        | "center"  
        | "right",  
    \>;  
    "text-keep-upright"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
    "text-letter-spacing"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "text-line-height"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>;  
    "text-max-angle"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>;  
    "text-max-width"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "text-offset"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<\[number, number\]\>;  
    "text-optional"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>;  
    "text-overlap"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        "never"  
        | "always"  
        | "cooperative",  
    \>;  
    "text-padding"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>;  
    "text-pitch-alignment"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        "map"  
        | "viewport"  
        | "auto",  
    \>;  
    "text-radial-offset"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "text-rotate"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "text-rotation-alignment"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        "map"  
        | "viewport"  
        | "viewport-glyph"  
        | "auto",  
    \>;  
    "text-size"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "text-transform"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        "none"  
        | "uppercase"  
        | "lowercase",  
    \>;  
    "text-variable-anchor"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        (  
            | "center"  
            | "left"  
            | "right"  
            | "top"  
            | "bottom"  
            | "top-left"  
            | "top-right"  
            | "bottom-left"  
            | "bottom-right"  
        )\[\],  
    \>;  
    "text-variable-anchor-offset"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        [VariableAnchorOffsetCollectionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VariableAnchorOffsetCollectionSpecification/),  
    \>;  
    "text-writing-mode"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        ("horizontal" | "vertical")\[\],  
    \>;  
    visibility?: [VisibilitySpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VisibilitySpecification/);  
}

Layout properties for the layer.

#### Type Declaration

-   ##### `Optional`icon-allow-overlap?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>
    
    If true, the icon will be visible even if it collides with other previously drawn symbols.
    
-   ##### `Optional`icon-anchor?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        | "center"  
        | "left"  
        | "right"  
        | "top"  
        | "bottom"  
        | "top-left"  
        | "top-right"  
        | "bottom-left"  
        | "bottom-right",  
    \>
    
    Part of the icon placed closest to the anchor.
    
    #### Default[](#default)
    
    ```typescript
    "center"
    ```
    
-   ##### `Optional`icon-ignore-placement?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>
    
    If true, other symbols can be visible even if they collide with the icon.
    
-   ##### `Optional`icon-image?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[ResolvedImageSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ResolvedImageSpecification/)\>
    
    Name of image in sprite to use for drawing an image background.
    
-   ##### `Optional`icon-keep-upright?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>
    
    If true, the icon may be flipped to prevent it from being rendered upside-down.
    
-   ##### `Optional`icon-offset?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<\[number, number\]\>
    
    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.
    
    #### Default[](#default-1)
    
    ```json
    [0, 0]
    ```
    
-   ##### `Optional`icon-optional?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>
    
    If true, text will display without their corresponding icons when the icon collides with other symbols and the text does not.
    
-   ##### `Optional`icon-overlap?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"never" | "always" | "cooperative"\>
    
    Allows for control over whether to show an icon when it overlaps other symbols on the map. If `icon-overlap` is not set, `icon-allow-overlap` is used instead.
    
-   ##### `Optional`icon-padding?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[PaddingSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PaddingSpecification/)\>
    
    Size of additional area round the icon bounding box used for detecting symbol collisions.
    
    #### Default[](#default-2)
    
    ```json
    [2]
    ```
    
-   ##### `Optional`icon-pitch-alignment?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"map" | "viewport" | "auto"\>
    
    Orientation of icon when map is pitched.
    
    #### Default[](#default-3)
    
    ```typescript
    "auto"
    ```
    
-   ##### `Optional`icon-rotate?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    Rotates the icon clockwise.
    
-   ##### `Optional`icon-rotation-alignment?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"map" | "viewport" | "auto"\>
    
    In combination with `symbol-placement`, determines the rotation behavior of icons.
    
    #### Default[](#default-4)
    
    ```typescript
    "auto"
    ```
    
-   ##### `Optional`icon-size?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    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.
    
    #### Default[](#default-5)
    
    ```typescript
    1
    ```
    
-   ##### `Optional`icon-text-fit?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"none" | "width" | "height" | "both"\>
    
    Scales the icon to fit around the associated text.
    
    #### Default[](#default-6)
    
    ```typescript
    "none"
    ```
    
-   ##### `Optional`icon-text-fit-padding?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<\[number, number, number, number\]\>
    
    Size of the additional area added to dimensions determined by `icon-text-fit`, in clockwise order: top, right, bottom, left.
    
    #### Default[](#default-7)
    
    ```json
    [0, 0, 0, 0]
    ```
    
-   ##### `Optional`symbol-avoid-edges?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>
    
    If true, the symbols will not cross tile edges to avoid mutual collisions. Recommended in layers that don't have enough padding in the vector tile to prevent collisions, or if it is a point symbol layer placed after a line symbol layer. When using a client that supports global collision detection, like MapLibre GL JS version 0.42.0 or greater, enabling this property is not needed to prevent clipped labels at tile boundaries.
    
-   ##### `Optional`symbol-placement?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"point" | "line" | "line-center"\>
    
    Label placement relative to its geometry.
    
    #### Default[](#default-8)
    
    ```typescript
    "point"
    ```
    
-   ##### `Optional`symbol-sort-key?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    Sorts features in ascending order based on this value. Features with lower sort keys are drawn and placed first. When `icon-allow-overlap` or `text-allow-overlap` is `false`, features with a lower sort key will have priority during placement. When `icon-allow-overlap` or `text-allow-overlap` is set to `true`, features with a higher sort key will overlap over features with a lower sort key.
    
-   ##### `Optional`symbol-spacing?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>
    
    Distance between two symbol anchors.
    
    #### Default[](#default-9)
    
    ```typescript
    250
    ```
    
-   ##### `Optional`symbol-z-order?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"auto" | "viewport-y" | "source"\>
    
    Determines whether overlapping symbols in the same layer are rendered in the order that they appear in the data source or by their y-position relative to the viewport. To control the order and prioritization of symbols otherwise, use `symbol-sort-key`.
    
    #### Default[](#default-10)
    
    ```typescript
    "auto"
    ```
    
-   ##### `Optional`text-allow-overlap?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>
    
    If true, the text will be visible even if it collides with other previously drawn symbols.
    
-   ##### `Optional`text-anchor?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        | "center"  
        | "left"  
        | "right"  
        | "top"  
        | "bottom"  
        | "top-left"  
        | "top-right"  
        | "bottom-left"  
        | "bottom-right",  
    \>
    
    Part of the text placed closest to the anchor.
    
    #### Default[](#default-11)
    
    ```typescript
    "center"
    ```
    
-   ##### `Optional`text-field?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[FormattedSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/FormattedSpecification/)\>
    
    Value to use for a text label. If a plain `string` is provided, it will be treated as a `formatted` with default/inherited formatting options.
    
-   ##### `Optional`text-font?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<string\[\]\>
    
    Fonts to use for displaying text. If the `glyphs` root property is specified, this array is joined together and interpreted as a font stack name. Otherwise, it is interpreted as a cascading fallback list of local font names.
    
    #### Default[](#default-12)
    
    ```json
    ["Open Sans Regular", "Arial Unicode MS Regular"]
    ```
    
-   ##### `Optional`text-ignore-placement?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>
    
    If true, other symbols can be visible even if they collide with the text.
    
-   ##### `Optional`text-justify?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<"auto" | "left" | "center" | "right"\>
    
    Text justification options.
    
    #### Default[](#default-13)
    
    ```typescript
    "center"
    ```
    
-   ##### `Optional`text-keep-upright?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>
    
    If true, the text may be flipped vertically to prevent it from being rendered upside-down.
    
    #### Default[](#default-14)
    
    ```typescript
    true
    ```
    
-   ##### `Optional`text-letter-spacing?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    Text tracking amount.
    
-   ##### `Optional`text-line-height?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>
    
    Text leading value for multi-line text.
    
    #### Default[](#default-15)
    
    ```typescript
    1.2
    ```
    
-   ##### `Optional`text-max-angle?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>
    
    Maximum angle change between adjacent characters.
    
    #### Default[](#default-16)
    
    ```typescript
    45
    ```
    
-   ##### `Optional`text-max-width?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    The maximum line width for text wrapping.
    
    #### Default[](#default-17)
    
    ```typescript
    10
    ```
    
-   ##### `Optional`text-offset?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<\[number, number\]\>
    
    Offset distance of text from its anchor. Positive values indicate right and down, while negative values indicate left and up. If used with text-variable-anchor, input values will be taken as absolute values. Offsets along the x- and y-axis will be applied automatically based on the anchor position.
    
    #### Default[](#default-18)
    
    ```json
    [0, 0]
    ```
    
-   ##### `Optional`text-optional?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<boolean\>
    
    If true, icons will display without their corresponding text when the text collides with other symbols and the icon does not.
    
-   ##### `Optional`text-overlap?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"never" | "always" | "cooperative"\>
    
    Allows for control over whether to show symbol text when it overlaps other symbols on the map. If `text-overlap` is not set, `text-allow-overlap` is used instead
    
-   ##### `Optional`text-padding?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<number\>
    
    Size of the additional area around the text bounding box used for detecting symbol collisions.
    
    #### Default[](#default-19)
    
    ```typescript
    2
    ```
    
-   ##### `Optional`text-pitch-alignment?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"map" | "viewport" | "auto"\>
    
    Orientation of text when map is pitched.
    
    #### Default[](#default-20)
    
    ```typescript
    "auto"
    ```
    
-   ##### `Optional`text-radial-offset?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    Radial offset of text, in the direction of the symbol's anchor. Useful in combination with `text-variable-anchor`, which defaults to using the two-dimensional `text-offset` if present.
    
-   ##### `Optional`text-rotate?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    Rotates the text clockwise.
    
-   ##### `Optional`text-rotation-alignment?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"map" | "viewport" | "viewport-glyph" | "auto"\>
    
    In combination with `symbol-placement`, determines the rotation behavior of the individual glyphs forming the text.
    
    #### Default[](#default-21)
    
    ```typescript
    "auto"
    ```
    
-   ##### `Optional`text-size?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    Font size.
    
    #### Default[](#default-22)
    
    ```typescript
    16
    ```
    
-   ##### `Optional`text-transform?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<"none" | "uppercase" | "lowercase"\>
    
    Specifies how to capitalize text, similar to the CSS `text-transform` property.
    
    #### Default[](#default-23)
    
    ```typescript
    "none"
    ```
    
-   ##### `Optional`text-variable-anchor?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<  
        (  
            | "center"  
            | "left"  
            | "right"  
            | "top"  
            | "bottom"  
            | "top-left"  
            | "top-right"  
            | "bottom-left"  
            | "bottom-right"  
        )\[\],  
    \>
    
    To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations: the renderer will attempt to place the label at each location, in order, before moving onto the next label. Use `text-justify: auto` to choose justification based on anchor position. To apply an offset, use the `text-radial-offset` or the two-dimensional `text-offset`.
    
    #### Example[](#example)
    
    ```json
    ["center", "left", "right"]
    ```
    
-   ##### `Optional`text-variable-anchor-offset?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        [VariableAnchorOffsetCollectionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VariableAnchorOffsetCollectionSpecification/),  
    \>
    
    To increase the chance of placing high-priority labels on the map, you can provide an array of `text-anchor` locations, each paired with an offset value. The renderer will attempt to place the label at each location, in order, before moving on to the next location+offset. Use `text-justify: auto` to choose justification based on anchor position.
    
    The length of the array must be even, and must alternate between enum and point entries. i.e., each anchor location must be accompanied by a point, and that point defines the offset when the corresponding anchor location is used. Positive offset values indicate right and down, while negative values indicate left and up. Anchor locations may repeat, allowing the renderer to try multiple offsets to try and place a label using the same anchor.
    
    When present, this property takes precedence over `text-anchor`, `text-variable-anchor`, `text-offset`, and `text-radial-offset`.
    
    ```json
    { "text-variable-anchor-offset": ["top", [0, 4], "left", [3,0], "bottom", [1, 1]] }
    ```
    
    When the renderer chooses the `top` anchor, `[0, 4]` will be used for `text-offset`; the text will be shifted down by 4 ems.
    
    When the renderer chooses the `left` anchor, `[3, 0]` will be used for `text-offset`; the text will be shifted right by 3 ems.
    
    #### Example[](#example-1)
    
    ```json
    ["top", [0, 4], "left", [3, 0], "bottom", [1, 1]]
    ```
    
-   ##### `Optional`text-writing-mode?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<("horizontal" | "vertical")\[\]\>
    
    The property allows control over a symbol's orientation. Note that the property values act as a hint, so that a symbol whose language doesn’t support the provided orientation will be laid out in its natural orientation. Example: English point symbol will be rendered horizontally even if array value contains single 'vertical' enum value. The order of elements in an array define priority order for the placement of an orientation variant.
    
-   ##### `Optional`visibility?: [VisibilitySpecification](https://docs.maptiler.com/sdk-js/api-reference/types/VisibilitySpecification/)
    
    Whether this layer is displayed.
    
    #### Default[](#default-24)
    
    ```typescript
    "visible"
    ```
    

### `Optional`maxzoom[](#maxzoom)

maxzoom?: number

The maximum zoom level for the layer. At zoom levels equal to or greater than the maxzoom, the layer will be hidden.

### `Optional`metadata[](#metadata)

metadata?: unknown

Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'maplibre:'.

#### Example[](#example-2)

```json
{"source:comment": "Hydrology FCCODE 460 - Narrow wash"}
```

### `Optional`minzoom[](#minzoom)

minzoom?: number

The minimum zoom level for the layer. At zoom levels less than the minzoom, the layer will be hidden.

### `Optional`paint[](#paint)

paint?: {  
    "icon-color"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/)\>;  
    "icon-color-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "icon-halo-blur"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "icon-halo-blur-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "icon-halo-color"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        [ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/),  
    \>;  
    "icon-halo-color-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "icon-halo-width"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "icon-halo-width-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "icon-opacity"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "icon-opacity-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "icon-translate"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<\[number, number\]\>;  
    "icon-translate-anchor"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"map" | "viewport"\>;  
    "icon-translate-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "text-color"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/)\>;  
    "text-color-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "text-halo-blur"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "text-halo-blur-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "text-halo-color"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<  
        [ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/),  
    \>;  
    "text-halo-color-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "text-halo-width"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "text-halo-width-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "text-opacity"?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>;  
    "text-opacity-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
    "text-translate"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<\[number, number\]\>;  
    "text-translate-anchor"?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"map" | "viewport"\>;  
    "text-translate-transition"?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/);  
}

Default paint properties for this layer.

#### Type Declaration

-   ##### `Optional`icon-color?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/)\>
    
    The color of the icon. This can only be used with SDF icons.
    
    #### Default[](#default-25)
    
    ```typescript
    "#000000"
    ```
    
-   ##### `Optional`icon-color-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`icon-halo-blur?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    Fade out the halo towards the outside.
    
-   ##### `Optional`icon-halo-blur-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`icon-halo-color?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/)\>
    
    The color of the icon's halo. Icon halos can only be used with SDF icons.
    
    #### Default[](#default-26)
    
    ```typescript
    "rgba(0, 0, 0, 0)"
    ```
    
-   ##### `Optional`icon-halo-color-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`icon-halo-width?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    Distance of halo to the icon outline.
    
    The unit is in pixels only for SDF sprites that were created with a blur radius of 8, multiplied by the display density. I.e., the radius needs to be 16 for `@2x` sprites, etc.
    
-   ##### `Optional`icon-halo-width-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`icon-opacity?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    The opacity at which the icon will be drawn.
    
    #### Default[](#default-27)
    
    ```typescript
    1
    ```
    
-   ##### `Optional`icon-opacity-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`icon-translate?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<\[number, number\]\>
    
    Distance that the icon's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.
    
    #### Default[](#default-28)
    
    ```json
    [0, 0]
    ```
    
-   ##### `Optional`icon-translate-anchor?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"map" | "viewport"\>
    
    Controls the frame of reference for `icon-translate`.
    
    #### Default[](#default-29)
    
    ```typescript
    "map"
    ```
    
-   ##### `Optional`icon-translate-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`text-color?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/)\>
    
    The color with which the text will be drawn.
    
    #### Default[](#default-30)
    
    ```typescript
    "#000000"
    ```
    
-   ##### `Optional`text-color-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`text-halo-blur?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    The halo's fadeout distance towards the outside.
    
-   ##### `Optional`text-halo-blur-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`text-halo-color?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<[ColorSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/ColorSpecification/)\>
    
    The color of the text's halo, which helps it stand out from backgrounds.
    
    #### Default[](#default-31)
    
    ```typescript
    "rgba(0, 0, 0, 0)"
    ```
    
-   ##### `Optional`text-halo-color-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`text-halo-width?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    Distance of halo to the font outline. Max text halo width is 1/4 of the font-size.
    
-   ##### `Optional`text-halo-width-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`text-opacity?: [DataDrivenPropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/DataDrivenPropertyValueSpecification/)<number\>
    
    The opacity at which the text will be drawn.
    
    #### Default[](#default-32)
    
    ```typescript
    1
    ```
    
-   ##### `Optional`text-opacity-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    
-   ##### `Optional`text-translate?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<\[number, number\]\>
    
    Distance that the text's anchor is moved from its original placement. Positive values indicate right and down, while negative values indicate left and up.
    
    #### Default[](#default-33)
    
    ```json
    [0, 0]
    ```
    
-   ##### `Optional`text-translate-anchor?: [PropertyValueSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/PropertyValueSpecification/)<"map" | "viewport"\>
    
    Controls the frame of reference for `text-translate`.
    
    #### Default[](#default-34)
    
    ```typescript
    "map"
    ```
    
-   ##### `Optional`text-translate-transition?: [TransitionSpecification](https://docs.maptiler.com/sdk-js/api-reference/types/TransitionSpecification/)
    

### source[](#source)

source: string

Name of a source description to be used for this layer. Required for all layer types except `background`.

### `Optional`source-layer[](#source-layer)

"source-layer"?: string

Layer to use from a vector tile source. Required for vector tile sources; prohibited for all other source types, including GeoJSON sources.

### type[](#type)

type: "symbol"
