<commit_before>*This is an overview of Tangram's styling system. For a complete technical reference of the custom style-creation system, see [styles](../Syntax-Reference/styles.md), and for all the technical details of drawing with those styles, see [draw](../Syntax-Reference/draw.md).*

## draw styles

Draw styles are referenced in two places in the scene file: when defining custom [styles](../Syntax-Reference/styles.md) and again in [draw](../Syntax-Reference/draw.md) groups.

Tangram currently has five built-in _draw styles_: `polygons`, `lines`, `points`, `text`, and `raster`. Each draw style displays data in a different way, and some of them require specific data types and properties.

#### `polygons`
The `polygons` _draw style_ tessellates and extrudes vector shapes into 3D geometry. It requires polygonal data. See [`polygons`](#polygons_1).

#### `lines`
The `lines` _draw style_ can turn either polygonal or line data into lines. See [`lines`](#lines_1).

#### `points`
The `points` _draw style_ draws a filled circle at the location of the data point. It can work with point data, lines, or polygons. Points will "collide" with each other, with only the winner being drawn, determined by the [`priority`](../Syntax-Reference/draw.md#priority) draw parameter.

_[JS only]_ Only points from the same datasource will collide with each other.

Technically, this draw style creates a small quad, which is then colored with a default shader which draws a dot. This behavior can be overridden with either a custom shader or a texture.

See [`points`](#points_1).

#### `text`
The `text` _draw style_ draws text labels at a given point. It can work with point, line, or polygon data. When used with lines, the label will be drawn along the line. When used with polygons, the label will be drawn at the polygon's centroid. Text labels will "collide" with each other, with only the winner being drawn, determined by the [`priority`](../Syntax-Reference/draw.md#priority) draw parameter.

_[JS only]_ Only text elements from the same datasource will collide with each other.

See [`text`](#text_1).
 
#### `raster`
The `raster` _draw style_ draws one tile-sized square per tile and paints it with the appropriate tile from a `Raster` data source. See [`raster`](#raster_1).

## Using Styles

These built-in _draw styles_ are used as the foundation for all custom styling in Tangram. When writing an inline style under a `layer`, they are referenced in _draw groups_, in one of two ways:

A _draw group_ with a custom name may reference a _style_ by name with the `style` parameter:
<commit_msg>fix anchor links<commit_after>*This is an overview of Tangram's styling system. For a complete technical reference of the custom style-creation system, see [styles](../Syntax-Reference/styles.md), and for all the technical details of drawing with those styles, see [draw](../Syntax-Reference/draw.md).*

## draw styles

Draw styles are referenced in two places in the scene file: when defining custom [styles](../Syntax-Reference/styles.md) and again in [draw](../Syntax-Reference/draw.md) groups.

Tangram currently has five built-in _draw styles_: `polygons`, `lines`, `points`, `text`, and `raster`. Each draw style displays data in a different way, and some of them require specific data types and properties.

#### `polygons`
The `polygons` _draw style_ tessellates and extrudes vector shapes into 3D geometry. It requires polygonal data. See [`polygons`](#polygons-1).

#### `lines`
The `lines` _draw style_ can turn either polygonal or line data into lines. See [`lines`](#lines-1).

#### `points`
The `points` _draw style_ draws a filled circle at the location of the data point. It can work with point data, lines, or polygons. Points will "collide" with each other, with only the winner being drawn, determined by the [`priority`](../Syntax-Reference/draw.md#priority) draw parameter.

_[JS only]_ Only points from the same datasource will collide with each other.

Technically, this draw style creates a small quad, which is then colored with a default shader which draws a dot. This behavior can be overridden with either a custom shader or a texture.

See [`points`](#points-1).

#### `text`
The `text` _draw style_ draws text labels at a given point. It can work with point, line, or polygon data. When used with lines, the label will be drawn along the line. When used with polygons, the label will be drawn at the polygon's centroid. Text labels will "collide" with each other, with only the winner being drawn, determined by the [`priority`](../Syntax-Reference/draw.md#priority) draw parameter.

_[JS only]_ Only text elements from the same datasource will collide with each other.

See [`text`](#text-1).
 
#### `raster`
The `raster` _draw style_ draws one tile-sized square per tile and paints it with the appropriate tile from a `Raster` data source. See [`raster`](#raster-1).

## Using Styles

These built-in _draw styles_ are used as the foundation for all custom styling in Tangram. When writing an inline style under a `layer`, they are referenced in _draw groups_, in one of two ways:

A _draw group_ with a custom name may reference a _style_ by name with the `style` parameter:

{'fraction_non_alphanumeric': 0.09038572251007485, 'fraction_numerical': 0.002302820955670697, 'mean_word_length': 4.580299785867238, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2470230', 'n_tokens_mistral': 1437, 'n_tokens_neox': 1372, 'n_words': 746}