# work.sequential.richtext.facet

> Annotation of a range of text: a mention, link or hashtag, or a style. Works like app.bsky.richtext.facet, but facets may overlap so styles can nest, e.g. an italic word inside a bold sentence. The text holds no markup, so apps that don't know these facets still show clean text. AppViews ignore features they don't know.

- Kind: object
- Authority: richtext.sequential.work
- Lexicon: 1
- Published by [sequential.work](https://lexicon.garden/identity/did:plc:tndzxgswtjuwylmsa5x3whwa), the NSID's authority

## Links

- [Documentation](https://lexicon.garden/lexicon/did:plc:tndzxgswtjuwylmsa5x3whwa/work.sequential.richtext.facet)
- [Schema JSON](https://lexicon.garden/lexicon/did:plc:tndzxgswtjuwylmsa5x3whwa/work.sequential.richtext.facet/schema.json)
- [Analytics](https://lexicon.garden/lexicon/did:plc:tndzxgswtjuwylmsa5x3whwa/work.sequential.richtext.facet/analytics)

## Object (`work.sequential.richtext.facet`)

Type: object

### Properties

- `features` (array, required): What applies to the range. A range can carry several styles, e.g. bold and italic.
  - `items` (union)
    - One of: `app.bsky.richtext.facet#mention`, `app.bsky.richtext.facet#link`, `app.bsky.richtext.facet#tag`, `#bold`, `#italic`, `#underline`, `#strikethrough`, `#code`, `#spoiler`, `#grawlix`
- `index` (ref, required): The range of text the features apply to, in UTF-8 bytes. AppViews ignore facets whose range runs past the end of the text or splits a character.
  - Reference: `app.bsky.richtext.facet#byteSlice`

## #bold (`work.sequential.richtext.facet#bold`)

Type: object

Strong emphasis.

### Properties


## #code (`work.sequential.richtext.facet#code`)

Type: object

Inline code, shown in a monospace font. Text inside it is shown as-is: AppViews don't create mentions, links or hashtags inside it, ignore any that are there, and ignore other styles inside it.

### Properties


## #grawlix (`work.sequential.richtext.facet#grawlix`)

Type: object

Text covered by a grawlix, a run of symbols like @#$%&!, until the reader chooses to reveal it, mostly for profanity. Mentions, links and hashtags inside it stay covered and can't be followed until it is revealed. Where it can't be covered, like a notification, apps show symbols in its place.

### Properties


## #italic (`work.sequential.richtext.facet#italic`)

Type: object

Emphasis.

### Properties


## #spoiler (`work.sequential.richtext.facet#spoiler`)

Type: object

Text hidden until the reader chooses to reveal it. Mentions, links and hashtags inside it stay hidden and can't be followed until it is revealed.

### Properties


## #strikethrough (`work.sequential.richtext.facet#strikethrough`)

Type: object

Struck-through text.

### Properties


## #underline (`work.sequential.richtext.facet#underline`)

Type: object

Underlined text.

### Properties


## Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "bold": {
      "description": "Strong emphasis.",
      "properties": {},
      "type": "object"
    },
    "code": {
      "description": "Inline code, shown in a monospace font. Text inside it is shown as-is: AppViews don't create mentions, links or hashtags inside it, ignore any that are there, and ignore other styles inside it.",
      "properties": {},
      "type": "object"
    },
    "grawlix": {
      "description": "Text covered by a grawlix, a run of symbols like @#$%&!, until the reader chooses to reveal it, mostly for profanity. Mentions, links and hashtags inside it stay covered and can't be followed until it is revealed. Where it can't be covered, like a notification, apps show symbols in its place.",
      "properties": {},
      "type": "object"
    },
    "italic": {
      "description": "Emphasis.",
      "properties": {},
      "type": "object"
    },
    "main": {
      "description": "Annotation of a range of text: a mention, link or hashtag, or a style. Works like app.bsky.richtext.facet, but facets may overlap so styles can nest, e.g. an italic word inside a bold sentence. The text holds no markup, so apps that don't know these facets still show clean text. AppViews ignore features they don't know.",
      "properties": {
        "features": {
          "description": "What applies to the range. A range can carry several styles, e.g. bold and italic.",
          "items": {
            "refs": [
              "app.bsky.richtext.facet#mention",
              "app.bsky.richtext.facet#link",
              "app.bsky.richtext.facet#tag",
              "#bold",
              "#italic",
              "#underline",
              "#strikethrough",
              "#code",
              "#spoiler",
              "#grawlix"
            ],
            "type": "union"
          },
          "type": "array"
        },
        "index": {
          "description": "The range of text the features apply to, in UTF-8 bytes. AppViews ignore facets whose range runs past the end of the text or splits a character.",
          "ref": "app.bsky.richtext.facet#byteSlice",
          "type": "ref"
        }
      },
      "required": [
        "index",
        "features"
      ],
      "type": "object"
    },
    "spoiler": {
      "description": "Text hidden until the reader chooses to reveal it. Mentions, links and hashtags inside it stay hidden and can't be followed until it is revealed.",
      "properties": {},
      "type": "object"
    },
    "strikethrough": {
      "description": "Struck-through text.",
      "properties": {},
      "type": "object"
    },
    "underline": {
      "description": "Underlined text.",
      "properties": {},
      "type": "object"
    }
  },
  "id": "work.sequential.richtext.facet",
  "lexicon": 1
}
```
