# Styling your layers

## Work with expressions

In the Maps SDK, you can specify the value for any layout property, paint property, or filter as an expression. Expressions define how one or more feature property value or the current zoom level are combined using logical, mathematical, string, or color operations to produce the appropriate style property value or filter decision.

A **property expression** is any expression defined using a reference to feature property data. Property expressions allow the appearance of a feature to change with its properties. They can be used to visually differentiate types of features within the same layer or create data visualizations.

A **camera expression** is any expression defined using `['zoom']`

. Such expressions allow the appearance of a layer to change with the map’s zoom level. Zoom expressions can be used to create the illusion of depth and control data density.

There are countless ways to apply property expressions to your application, including:

**Data-driven styling**: Specify style rules based on one or more data attribute.**Arithmetic**: Do arithmetic on source data, for example performing calculations to convert units.**Conditional logic**: Use if-then logic, for example to decide exactly what text to display for a label based on which properties are available in the feature or even the length of the name.**String manipulation**: Take control over label text with things like uppercase, lowercase, and title case transforms without having to edit, re-prepare and re-upload your data.

An expression defines a formula for computing the value of the property using the operators described in this section.

### Syntax

The Maps SDK expressions follow this format:

`[expression_name, argument_0, argument_1, ...]`

The `expression_name`

is the **expression operator**, for example, you would use `product`

to multiply two arguments or `switchCase`

to create conditional logic.

The **arguments** are either *literal* (numbers, strings, or boolean values) or else themselves expressions. The number of arguments varies based on the expression.

Here's one example using an expression to calculate an arithmetic expression (π * 3^{2}):

`[`

"product",

["pi"],

["^", 3, 2]

]

This example uses the `product`

operator to multiply two arguments. The first argument is `pi`

, which is an expression that returns the mathematical constant pi. The second argument is another expression: a `^`

(power) expression with two arguments of its own. It will return 3^{2}, and the result will be multiplied by π.

### Expression types

**Mathematical operators**for performing arithmetic and other operations on numeric values**Logical operators**for manipulating boolean values and making conditional decisions**String operators**for manipulating strings**Data operators**for providing access to the properties of source features**Camera operators**for providing access to the parameters defining the current map view