# art.cllctv.block.text

> Published by [cllctv.art](https://lexicon.garden/identity/did:plc:gqpqghnqiowg5424adjwmhmg)

✓ This is the authoritative definition for this NSID.

## Description

A text block containing plain text content with optional formatting via facets.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:gqpqghnqiowg5424adjwmhmg/art.cllctv.block.text)
- [Documentation](https://lexicon.garden/lexicon/did:plc:gqpqghnqiowg5424adjwmhmg/art.cllctv.block.text/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:gqpqghnqiowg5424adjwmhmg/art.cllctv.block.text/examples)

## Definitions

### `art.cllctv.block.text#tag`

**Type**: `object`

Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags').

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `tag` | `string` | Yes |  |

### `art.cllctv.block.text#bold`

**Type**: `object`

Facet feature for bold text

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `art.cllctv.block.text#link`

**Type**: `object`

Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `uri` | `string` (uri) | Yes |  |

### `art.cllctv.block.text`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `text` | `string` | Yes | The plain text content |
| `facets` | `array` | No | Facets for text formatting and features |
| `format` | `string` | No |  |
| `indent` | `integer` | No |  |
| `direction` | `string` | No |  |

### `art.cllctv.block.text#facet`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `index` | `ref` → `#byteSlice` | Yes |  |
| `features` | `array` | Yes |  |

### `art.cllctv.block.text#italic`

**Type**: `object`

Facet feature for italic text

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `art.cllctv.block.text#mention`

**Type**: `object`

Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `did` | `string` (did) | Yes |  |

### `art.cllctv.block.text#byteSlice`

**Type**: `object`

Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text.

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `byteEnd` | `integer` | Yes |  |
| `byteStart` | `integer` | Yes |  |

### `art.cllctv.block.text#highlight`

**Type**: `object`

Facet feature for highlighted text

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `art.cllctv.block.text#lineBreak`

**Type**: `object`

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `art.cllctv.block.text#lowercase`

**Type**: `object`

Facet feature for lowercase markup

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `art.cllctv.block.text#subscript`

**Type**: `object`

Facet feature for subscript markup

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `art.cllctv.block.text#underline`

**Type**: `object`

Facet feature for underline markup

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `art.cllctv.block.text#uppercase`

**Type**: `object`

Facet feature for uppercase markup

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `art.cllctv.block.text#capitalize`

**Type**: `object`

Facet feature for capitalize markup

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `art.cllctv.block.text#superscript`

**Type**: `object`

Facet feature for superscript markup

| Property | Type | Required | Description |
|----------|------|----------|-------------|

### `art.cllctv.block.text#strikethrough`

**Type**: `object`

Facet feature for strikethrough markup

| Property | Type | Required | Description |
|----------|------|----------|-------------|

## Raw Schema

```json
{
  "id": "art.cllctv.block.text",
  "defs": {
    "tag": {
      "type": "object",
      "required": [
        "tag"
      ],
      "properties": {
        "tag": {
          "type": "string",
          "maxLength": 640,
          "maxGraphemes": 64
        }
      },
      "description": "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags')."
    },
    "bold": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for bold text"
    },
    "link": {
      "type": "object",
      "required": [
        "uri"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "format": "uri"
        }
      },
      "description": "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL."
    },
    "main": {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "text": {
          "type": "string",
          "description": "The plain text content"
        },
        "facets": {
          "type": "array",
          "items": {
            "ref": "#facet",
            "type": "ref"
          },
          "description": "Facets for text formatting and features"
        },
        "format": {
          "type": "string",
          "knownValues": [
            "left",
            "start",
            "center",
            "right",
            "end",
            "justify"
          ]
        },
        "indent": {
          "type": "integer",
          "minimum": 0
        },
        "direction": {
          "type": "string",
          "knownValues": [
            "ltr",
            "rtl"
          ]
        }
      }
    },
    "facet": {
      "type": "object",
      "required": [
        "index",
        "features"
      ],
      "properties": {
        "index": {
          "ref": "#byteSlice",
          "type": "ref"
        },
        "features": {
          "type": "array",
          "items": {
            "refs": [
              "#mention",
              "#link",
              "#tag",
              "#bold",
              "#italic",
              "#strikethrough",
              "#underline",
              "#subscript",
              "#superscript",
              "#highlight",
              "#lowercase",
              "#uppercase",
              "#capitalize",
              "#lineBreak"
            ],
            "type": "union"
          }
        }
      }
    },
    "italic": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for italic text"
    },
    "mention": {
      "type": "object",
      "required": [
        "did"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did"
        }
      },
      "description": "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID."
    },
    "byteSlice": {
      "type": "object",
      "required": [
        "byteStart",
        "byteEnd"
      ],
      "properties": {
        "byteEnd": {
          "type": "integer",
          "minimum": 0
        },
        "byteStart": {
          "type": "integer",
          "minimum": 0
        }
      },
      "description": "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text."
    },
    "highlight": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for highlighted text"
    },
    "lineBreak": {
      "type": "object",
      "properties": {}
    },
    "lowercase": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for lowercase markup"
    },
    "subscript": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for subscript markup"
    },
    "underline": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for underline markup"
    },
    "uppercase": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for uppercase markup"
    },
    "capitalize": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for capitalize markup"
    },
    "superscript": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for superscript markup"
    },
    "strikethrough": {
      "type": "object",
      "properties": {},
      "description": "Facet feature for strikethrough markup"
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1,
  "description": "A text block containing plain text content with optional formatting via facets."
}
```
