> ## Documentation Index
> Fetch the complete documentation index at: https://docs.graphy.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Content

The `content` section sets the text around the chart — title, subtitle, caption and source attribution. Each text slot has a companion visibility flag, so a value can be kept while hidden.

```tsx theme={null}
config({
  content: {
    title: 'Monthly revenue',
    isTitleVisible: true,
    subtitle: 'By product, 2026',
    isSubtitleVisible: true,
    source: { label: 'Internal data', url: 'https://example.com' },
    isSourceVisible: true,
  },
});
```

## Slots

<ParamField path="title" type="string | RichText">
  The chart's headline text. Pair with `isTitleVisible`.
</ParamField>

<ParamField path="subtitle" type="string | RichText">
  A secondary line under the title. Pair with `isSubtitleVisible`.
</ParamField>

<ParamField path="caption" type="string | RichText">
  A note shown beneath the chart. Pair with `isCaptionVisible`.
</ParamField>

<ParamField path="source" type="{ label?: string; url?: string }">
  Data-source attribution shown under the caption. Pair with `isSourceVisible`.
</ParamField>

Each slot has a matching `isXVisible` boolean (`isTitleVisible`, `isSubtitleVisible`, `isCaptionVisible`, `isSourceVisible`). Setting text alone does not show it — the visibility flag is what renders it.

## Rich text

Any text slot accepts either a plain string or a **rich-text** node (a TipTap-compatible document), which lets you mix colors, weights and headings within a title:

```tsx theme={null}
config({
  content: {
    isTitleVisible: true,
    title: {
      type: 'doc',
      content: [
        {
          type: 'paragraph',
          content: [
            { type: 'text', text: 'Revenue climbed ' },
            {
              type: 'text',
              text: '24%',
              marks: [{ type: 'textStyle', attrs: { color: '#D4594C' } }],
            },
            { type: 'text', text: ' this quarter.' },
          ],
        },
      ],
    },
  },
});
```

Recognised marks include `textStyle` (with `color`, `font`, `fontSize`), plus standard bold/italic/underline. Rich text requires the [TipTap peer packages](/sdk-next/quickstart#1-install-the-packages).

## Related

* [Configuration overview](/sdk-next/config/index) — how `config` composes
* [Headline numbers](/sdk-next/config/headline-numbers) — summary metrics in the header
