# Attribute

> An abstract datatype for specifying an attributed string attribute.

- Source: https://titaniumsdk.com/docs/sdk/13.4.0/Attribute
- Titanium SDK version: 13.4.0
- Kind: pseudo
- Platforms: Android, iPhone, iPad, macOS
- Since: Titanium SDK 3.6.0

Attributes are added to the [Titanium.UI.AttributedString](https://titaniumsdk.com/docs/sdk/Titanium.UI.AttributedString.md) object to create
styled text. The attribute is a JavaScript Object containing three properties:
`type`, `value` and `range`.

## Properties

### range

- Type: Array<Number>
- Platforms: Android, iPhone, iPad, macOS

Attribute range.

This specifies the range of text to apply the property to, as an array of two numbers: `[from, length]`.

### type

- Type: Number
- Platforms: Android, iPhone, iPad, macOS

Attribute to apply to the text.

On Android, only the following constants are supported
Titanium.UI.ATTRIBUTE_FONT, Titanium.UI.ATTRIBUTE_FOREGROUND_COLOR,
Titanium.UI.ATTRIBUTE_BACKGROUND_COLOR, Titanium.UI.ATTRIBUTE_STRIKETHROUGH_STYLE,
Titanium.UI.ATTRIBUTE_UNDERLINES_STYLE, Titanium.UI.ATTRIBUTE_LINK, 
Titanium.UI.ATTRIBUTE_UNDERLINE_COLOR

ON iOS, Titanium.UI.ATTRIBUTE_LINK only supported on [Titanium.UI.TextArea](https://titaniumsdk.com/docs/sdk/Titanium.UI.TextArea.md), with
editable set to false and autoLink enabled.

Accepts: `Titanium.UI.ATTRIBUTE_BACKGROUND_COLOR`, `Titanium.UI.ATTRIBUTE_BASELINE_OFFSET`, `Titanium.UI.ATTRIBUTE_EXPANSION`, `Titanium.UI.ATTRIBUTE_FONT`, `Titanium.UI.ATTRIBUTE_FOREGROUND_COLOR`, `Titanium.UI.ATTRIBUTE_KERN`, `Titanium.UI.ATTRIBUTE_LIGATURE`, `Titanium.UI.ATTRIBUTE_LINE_BREAK`, `Titanium.UI.ATTRIBUTE_LINK`, `Titanium.UI.ATTRIBUTE_OBLIQUENESS`, `Titanium.UI.ATTRIBUTE_SHADOW`, `Titanium.UI.ATTRIBUTE_STRIKETHROUGH_COLOR`, `Titanium.UI.ATTRIBUTE_STRIKETHROUGH_STYLE`, `Titanium.UI.ATTRIBUTE_STROKE_COLOR`, `Titanium.UI.ATTRIBUTE_STROKE_WIDTH`, `Titanium.UI.ATTRIBUTE_TEXT_EFFECT`, `Titanium.UI.ATTRIBUTE_UNDERLINES_STYLE`, `Titanium.UI.ATTRIBUTE_UNDERLINE_COLOR`, `Titanium.UI.ATTRIBUTE_WRITING_DIRECTION`

### value

- Type: String | Number | Titanium.UI.Color | Object | ParagraphAttribute
- Platforms: Android, iPhone, iPad, macOS

Attribute value.

The `value` parameter depends on the `type` parameter. For example, to
use the foreground color on the text you would use [Titanium.UI.ATTRIBUTE_FOREGROUND_COLOR](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_FOREGROUND_COLOR)
for the `type` and a color value for the `value`:
``` js
{
    type: Titanium.UI.ATTRIBUTE_FOREGROUND_COLOR,
    value: '#DDD',
    range: [0, 100]
}
```

On iOS, if you use [Titanium.UI.ATTRIBUTE_UNDERLINES_STYLE](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINES_STYLE) or [Titanium.UI.ATTRIBUTE_STRIKETHROUGH_STYLE](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_STRIKETHROUGH_STYLE),
you must use one or more of these constants:

  * [Titanium.UI.ATTRIBUTE_UNDERLINE_STYLE_NONE](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINE_STYLE_NONE)
  * [Titanium.UI.ATTRIBUTE_UNDERLINE_STYLE_SINGLE](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINE_STYLE_SINGLE)
  * [Titanium.UI.ATTRIBUTE_UNDERLINE_STYLE_THICK](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINE_STYLE_THICK)
  * [Titanium.UI.ATTRIBUTE_UNDERLINE_STYLE_DOUBLE](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINE_STYLE_DOUBLE)
  * [Titanium.UI.ATTRIBUTE_UNDERLINE_PATTERN_SOLID](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINE_PATTERN_SOLID)
  * [Titanium.UI.ATTRIBUTE_UNDERLINE_PATTERN_DOT](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINE_PATTERN_DOT)
  * [Titanium.UI.ATTRIBUTE_UNDERLINE_PATTERN_DASH](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINE_PATTERN_DASH)
  * [Titanium.UI.ATTRIBUTE_UNDERLINE_PATTERN_DASH_DOT](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINE_PATTERN_DASH_DOT)
  * [Titanium.UI.ATTRIBUTE_UNDERLINE_PATTERN_DASH_DOT_DOT](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINE_PATTERN_DASH_DOT_DOT)
  * [Titanium.UI.ATTRIBUTE_UNDERLINE_BY_WORD](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_UNDERLINE_BY_WORD)

These can be combined:
``` js
{
    type: Titanium.UI.ATTRIBUTE_UNDERLINES_STYLE,
    value: Titanium.UI.ATTRIBUTE_UNDERLINE_STYLE_SINGLE | Titanium.UI.ATTRIBUTE_UNDERLINE_PATTERN_DASH,
    range: [0, 100]
}
```

On iOS, if you use the [Titanium.UI.ATTRIBUTE_WRITING_DIRECTION](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_WRITING_DIRECTION), you must use one or more of
these constants:

  * [Titanium.UI.ATTRIBUTE_WRITING_DIRECTION_EMBEDDING](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_WRITING_DIRECTION_EMBEDDING)
  * [Titanium.UI.ATTRIBUTE_WRITING_DIRECTION_OVERRIDE](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_WRITING_DIRECTION_OVERRIDE)
  * [Titanium.UI.ATTRIBUTE_WRITING_DIRECTION_NATURAL](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_WRITING_DIRECTION_NATURAL)
  * [Titanium.UI.ATTRIBUTE_WRITING_DIRECTION_LEFT_TO_RIGHT](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_WRITING_DIRECTION_LEFT_TO_RIGHT)
  * [Titanium.UI.ATTRIBUTE_WRITING_DIRECTION_RIGHT_TO_LEFT](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_WRITING_DIRECTION_RIGHT_TO_LEFT)

These can also be combined the same way as the underline styles.

On iOS, if you use the [Titanium.UI.ATTRIBUTE_SHADOW](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_SHADOW), the `value` must be a JavaScript object containing
any of the `offset`, `blurRadius` or `color` properties:
``` js
{
    offset: {
        width: 10,
        height: 10
    },
    blurRadius: 10,
    color: 'red'
}
```

On iOS, if you use the [Titanium.UI.ATTRIBUTE_PARAGRAPH_STYLE](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_PARAGRAPH_STYLE), the `value` must be ParagraphAttribute. 
E.g:
``` js
{
    minimumLineHeight: 10.0,
    tailIndent: 5,
    lineBreakMode: Titanium.UI.ATTRIBUTE_LINE_BREAK_BY_WORD_WRAPPING
}
```

On iOS, if you use the [Titanium.UI.ATTRIBUTE_TEXT_EFFECT](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_TEXT_EFFECT), you must use the [Titanium.UI.ATTRIBUTE_LETTERPRESS_STYLE](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_LETTERPRESS_STYLE) constant.

On iOS, if you use the [Titanium.UI.ATTRIBUTE_LINE_BREAK](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_LINE_BREAK), you must use one of
these constants:

  * [Titanium.UI.ATTRIBUTE_LINE_BREAK_BY_WORD_WRAPPING](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_LINE_BREAK_BY_WORD_WRAPPING)
  * [Titanium.UI.ATTRIBUTE_LINE_BREAK_BY_CHAR_WRAPPING](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_LINE_BREAK_BY_CHAR_WRAPPING)
  * [Titanium.UI.ATTRIBUTE_LINE_BREAK_BY_CLIPPING](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_LINE_BREAK_BY_CLIPPING)
  * [Titanium.UI.ATTRIBUTE_LINE_BREAK_BY_TRUNCATING_HEAD](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_LINE_BREAK_BY_TRUNCATING_HEAD)
  * [Titanium.UI.ATTRIBUTE_LINE_BREAK_BY_TRUNCATING_TAIL](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_LINE_BREAK_BY_TRUNCATING_TAIL)
  * [Titanium.UI.ATTRIBUTE_LINE_BREAK_BY_TRUNCATING_MIDDLE](https://titaniumsdk.com/docs/sdk/Titanium.UI.md#ATTRIBUTE_LINE_BREAK_BY_TRUNCATING_MIDDLE)

These can also be combined the same way as the underline styles.

Accepts: `Titanium.UI.ATTRIBUTE_LETTERPRESS_STYLE`, `Titanium.UI.ATTRIBUTE_UNDERLINE_STYLE_DOUBLE`, `Titanium.UI.ATTRIBUTE_UNDERLINE_STYLE_NONE`, `Titanium.UI.ATTRIBUTE_UNDERLINE_STYLE_SINGLE`, `Titanium.UI.ATTRIBUTE_UNDERLINE_STYLE_THICK`, `Titanium.UI.ATTRIBUTE_WRITING_DIRECTION_EMBEDDING`, `Titanium.UI.ATTRIBUTE_WRITING_DIRECTION_LEFT_TO_RIGHT`, `Titanium.UI.ATTRIBUTE_WRITING_DIRECTION_NATURAL`, `Titanium.UI.ATTRIBUTE_WRITING_DIRECTION_OVERRIDE`, `Titanium.UI.ATTRIBUTE_WRITING_DIRECTION_RIGHT_TO_LEFT`

---

- This corpus documents Titanium SDK 13.4.1. Anything here that does not name a version describes 13.4.1.
- Titanium is maintained by TiDev. The Appcelerator toolchain is retired: there is no `appc` CLI, no Appcelerator Studio and no hosted build service. The supported CLI is `titanium` on npm, invoked as `ti`.

