# Module: ol/style/Text

This documentation is for OpenLayers v10.9.0. The latest is v.

## ol/style/Text

### Classes

Text

### Type Definitions

#### Options{Object}

  ##### Properties:

  Name | Type | Description
  --- | --- | ---
  `font` | string | undefined | Font style as CSS `font` value, see: https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/font. Default is `'10px sans-serif'`
  `maxAngle` | number (defaults to Math.PI/4) | When `placement` is set to `'line'`, allow a maximum angle between adjacent characters. The expected value is in radians, and the default is 45° (`Math.PI / 4`).
  `offsetX` | number (defaults to 0) | Horizontal text offset in pixels. A positive will shift the text right.
  `offsetY` | number (defaults to 0) | Vertical text offset in pixels. A positive will shift the text down.
  `overflow` | boolean (defaults to false) | For polygon labels or when `placement` is set to `'line'`, allow text to exceed the width of the polygon at the label position or the length of the path that it follows.
  `placement` | TextPlacement (defaults to 'point') | Text placement.
  `repeat` | number | undefined | Repeat interval. When set, the text will be repeated at this interval, which specifies the distance between two text anchors in pixels. Only available when `placement` is set to `'line'`. Overrides 'textAlign'.
  `scale` | number | Size | undefined | Scale.
  `rotateWithView` | boolean (defaults to false) | Whether to rotate the text with the view.
  `keepUpright` | boolean (defaults to true) | Whether the text can be rotated 180° to prevent being rendered upside down.
  `rotation` | number (defaults to 0) | Rotation in radians (positive rotation clockwise).
  `text` | string | Array.<string> | undefined | Text content or rich text content. For plain text provide a string, which can contain line breaks (`\n`). For rich text provide an array of text/font tuples. A tuple consists of the text to render and the font to use (or `''` to use the text style's font). A line break has to be a separate tuple (i.e. `'\n', ''`). Example: `['foo', 'bold 10px sans-serif', ' bar', 'italic 10px sans-serif', ' baz', '']` will yield "foo bar baz". Note: Rich text is not supported for `placement: 'line'` or the immediate rendering API.
  `textAlign` | CanvasTextAlign | undefined | Text alignment. Possible values: `'left'`, `'right'`, `'center'`, `'end'` or `'start'`. Default is `'center'` for `placement: 'point'`. For `placement: 'line'`, the default is to let the renderer choose a placement where `maxAngle` is not exceeded.
  `justify` | TextJustify | undefined | Text justification within the text box. If not set, text is justified towards the `textAlign` anchor. Otherwise, use options `'left'`, `'center'`, or `'right'` to justify the text within the text box. Note: `justify` is ignored for immediate rendering and also for `placement: 'line'`.
  `textBaseline` | CanvasTextBaseline (defaults to 'middle') | Text base line. Possible values: `'bottom'`, `'top'`, `'middle'`, `'alphabetic'`, `'hanging'`, `'ideographic'`.
  `fill` | Fill | null | undefined | Fill style. If none is provided, we'll use a dark fill-style (#333). Specify `null` for no fill.
  `stroke` | Stroke | undefined | Stroke style.
  `backgroundFill` | Fill | undefined | Fill style for the text background when `placement` is `'point'`. Default is no fill.
  `backgroundStroke` | Stroke | undefined | Stroke style for the text background when `placement` is `'point'`. Default is no stroke.
  `padding` | Array.<number> (defaults to [0, 0, 0, 0]) | Padding in pixels around the text for decluttering and background. The order of values in the array is `[top, right, bottom, left]`.
  `declutterMode` | DeclutterMode | undefined | Declutter mode: `declutter`, `obstacle`, `none`

#### TextJustify{'left'} {'center'} {'right'}

#### TextPlacement{'point'} {'line'}

  Default text placement is `'point'`. Note that `'line'` requires the underlying geometry to be a `LineString`, `Polygon`, `MultiLineString` or `MultiPolygon`.