Classes, data attributes and custom properties

Use these names in a stylesheet. Start your selectors at .tiptap.

Classes

ClassElement
tiptap-chartThe root of a chart in the editor, with role="figure" and an aria-label from the description or the title
tiptap-chart-viewportAround the canvas. You scroll inside it while the chart is zoomed in
tiptap-chart-zoom-boxBetween the viewport and the canvas. Takes the room of the zoomed chart
tiptap-chart-canvasThe area the chart takes in the text
tiptap-chart-stageThe element the Renderer draws into. Scaled down when minRenderWidth applies
tiptap-chart-captionBelow the chart: the description, while the spec has caption: true
tiptap-chart-text-inputThe field that a double click opens over a text of the chart, to rename it (Editing text in a chart)
tiptap-chart-attributionBelow the chart: the link that the Renderer's rules ask for. hidden while there is none (Rules of your Renderer)
tiptap-chart-errorThe message shown when drawing failed
tiptap-chart-unavailableWhat unavailable returns, shown when no Renderer here draws the chart
tiptap-diagram-inputThe Quick Input, where you type the Chart syntax
tiptap-diagram-input-placeholderIn the Quick Input, below a first line that names the type: the example rows of the placeholder option, until you type a row
tiptap-chart-resize-handleA handle that resizes the chart, with resizable. Shown while the chart is selected

Data attributes

On a chart

On .tiptap-chart:

AttributeValues
data-tt-chart-typeThe chart's spec.type: line, bar, radar, sankey … or a type you registered
data-tt-chart-rendererThe id of the Renderer that draws it
data-tt-chart-stateidle, empty, loading, ready, unavailable, error
data-tt-chart-sourcenone, linked, detached
data-tt-chart-readonlyPresent while the data is read-only
data-tt-chart-legendtop, right, bottom, left, none
data-tt-chart-selectedPresent while the chart is selected
data-tt-chart-zoomfit, or the zoom factor, such as 1.5 (setZoom)
data-tt-chart-maximizedPresent while the chart is laid over the window (setMaximized)
data-tt-chart-borderPresent while the spec has border: true
data-tt-chart-hiddenPresent while only the table the chart follows is shown. The chart is not displayed
data-tt-chart-panningPresent while you drag the zoomed chart (setPan)
data-tt-chart-sizedPresent while the spec has a size
data-tt-chart-alignleft or right for a chart with a size that is not centered (setDiagramAlign)
data-tt-chart-resizingPresent while you drag a handle

On a resize handle

ElementAttributeValues
.tiptap-chart-resize-handledata-tt-chart-resizeleft, right, bottom, bottom-left, bottom-right

On the Quick Input

On .tiptap-diagram-input:

AttributeValues
data-tt-diagram-input-typeThe chart type the Quick Input becomes
data-tt-chart-delimitercomma, semicolon, pipe, tab, none: the delimiter that splits what you typed, set with setDiagramInputDelimiter or detected
data-tt-chart-placeholderWhile the Quick Input is empty: the text of the placeholder option, shown by ::before

In the HTML output and on other nodes

AttributeElement
data-tt-chart-specThe Chart Spec as JSON, on figure[data-type="chart"]
data-tt-chart-linkThe Data Source as JSON, on figure[data-type="chart"]
data-tt-chart-synced-atWhen the data was last read from its Data Source, as an ISO time, on figure[data-type="chart"]
data-tt-chart-rendererThe chosen Renderer, on figure[data-type="chart"]
data-tt-chart-delimiterThe delimiter the data was typed with, on figure[data-type="chart"]
data-tt-diagram-inputOn a table used as a chart's input
data-tt-chart-table-idOn a table that a chart follows
data-tt-chart-image-sourceOn an image made from a chart with keepData
data-tt-attributionOn the <a> in an exported SVG of a chart or a diagram, when its Renderer asks for an attribution link

Custom properties

Chart

PropertyDefault
--tt-chart-padding12px
--tt-chart-border1px solid transparent
--tt-chart-radius8px
--tt-chart-backgroundtransparent. A spec's background sets it on that chart
--tt-chart-border-color#d4d4d8, the frame of a chart with border: true
--tt-chart-border-width1px
--tt-chart-caption-color#71717a
--tt-chart-caption-size0.875em
--tt-chart-caption-aligncenter
--tt-chart-text-input-border1px solid #6a00f5, around the field for a chart's text
--tt-chart-text-input-backgroundCanvas
--tt-chart-attribution-color#71717a
--tt-chart-attribution-size0.75em
--tt-chart-aspect-ratio16 / 9. A chart with a size sets it to its ratio
--tt-chart-max-height480px. Not applied to a chart with a size
--tt-chart-widthSet on a chart with a size: its share of the width of the editor's text, such as 50%
--tt-chart-handle-color#6a00f5, the fill of a resize handle
--tt-chart-handle-border#ffffff
--tt-chart-handle-radius4px
--tt-chart-selected-outline2px solid #6a00f5
--tt-chart-loading-opacity0.5
--tt-chart-error-color#e5484d
--tt-chart-unavailable-color#71717a
--tt-chart-maximized-inset0: the distance of a maximized chart from the edges of the window, as for inset
--tt-chart-maximized-z-index50
--tt-chart-maximized-background--tt-chart-background, or Canvas when that is unset
  • A maximized chart is position: fixed.
  • If an ancestor of the editor sets transform, filter or contain, a maximized chart is placed relative to that ancestor instead of the window.

Drawing

Every Renderer reads these properties when it draws a chart.

PropertyDefault
--tt-chart-series-1 … --tt-chart-series-8#6a00f5, #00a3a3, #f59e0b, #e5484d, #3b82f6, #16a34a, #d946ef, #64748b
--tt-chart-axis-color#9ca3af
--tt-chart-grid-color#e5e7eb
--tt-chart-label-color#4b5563
--tt-chart-title-color#111827
--tt-chart-font-familyArial, Helvetica, "Liberation Sans", sans-serif
--tt-chart-font-size12px
--tt-chart-title-size16px
--tt-chart-title-weight600
--tt-chart-legend-gap16px
--tt-chart-legend-marker-size10px
  • Sizes are pixels, written with or without px. Other units are not converted.
  • A palette in the Chart Spec overrides the series colors for that chart. The series colors are the colors of the data series, such as the bars or lines.

Fonts in exports and Word

  • An exported image can only use fonts installed on the machine that exports it.
  • A web font that the page loaded is not available to an exported image.
  • A native Word chart names a single typeface. It is the first family of --tt-chart-font-family that Word ships with (WORD_FONTS), a generic family as its Word counterpart, or fallbackFont ('Arial').
  • wordFontFor(fontFamily) tells you whether Word will draw a different typeface than the page.

Quick Input

PropertyDefault
--tt-diagram-input-radius8px
--tt-diagram-input-background#f4f4f5
--tt-diagram-input-colorinherit
--tt-diagram-input-font-familyui-monospace, monospace
--tt-diagram-input-delimiter-color#6a00f5
--tt-diagram-input-placeholder-color#a1a1aa
--tt-diagram-input-placeholder-linesSet on an empty Quick Input to the number of lines of its placeholder
--tt-diagram-input-cell-background#f4f4f5

Highlighted source

Source text is colored in the Quick Input, in a Mermaid diagram's code view, and in any element with the class tiptap-diagram-source, such as a source editor of your own. The option sourceHighlighting turns the colors off in the Quick Input and the code view only, not in your own element.

ClassPartColor propertyLight default
tiptap-diagram-source-keywordThe diagram or chart type, statement words--tt-diagram-source-keyword#1e40af
tiptap-diagram-source-labelLabels in shapes, quotes and the first column--tt-diagram-source-label#3f6212
tiptap-diagram-source-numberNumbers--tt-diagram-source-number#7c2d12
tiptap-diagram-source-operatorArrows, delimiters, brackets, colons--tt-diagram-source-operator#52525b
tiptap-diagram-source-commentComments (%%)--tt-diagram-source-comment#4b4b53
  • The dark value of each color is derived as for every default color. Each has a contrast of 4.5:1 or more against the input background in both schemes.
  • To make one part colorless, set its property to inherit.

Diagrams

A diagram (the flowDiagram node, see Diagrams) follows the same pattern with its own names.

Diagram classes

ClassElement
tiptap-flow-diagramThe root of a diagram in the editor, with role="figure" and an aria-label from the description or the title
tiptap-flow-diagram-viewportAround the canvas. You scroll inside it while the diagram is zoomed in
tiptap-flow-diagram-zoom-boxBetween the viewport and the canvas. Takes the room of the zoomed diagram
tiptap-flow-diagram-canvasHolds the drawn diagram as an <img>
tiptap-flow-diagram-codeThe source text, shown instead of the drawn diagram while the view is code
tiptap-flow-diagram-captionBelow the diagram: the title
tiptap-flow-diagram-attributionBelow the diagram: the link that the Diagram Renderer's rules ask for. hidden while there is none
tiptap-flow-diagram-errorThe message shown when drawing failed
tiptap-flow-diagram-unavailableWhat unavailable returns, shown when no Renderer here draws the diagram
tiptap-flow-diagram-resize-handleA handle that resizes the diagram, with resizable. Shown while the diagram is selected
tiptap-flow-diagram-label-inputThe field that a double click opens over a text in a Mermaid diagram of any kind, to edit it. Not in draw.io or BPMN (Editing in the diagram)

Diagram data attributes

On .tiptap-flow-diagram:

AttributeValues
data-tt-flow-diagram-formatmermaid, drawio, bpmn, or the id of a format that a Diagram Renderer of your own draws
data-tt-flow-diagram-kindA Mermaid kind such as flowchart, or unknown, for example for draw.io and BPMN
data-tt-flow-diagram-viewdiagram or code
data-tt-flow-diagram-stateidle (the code view), empty, loading, ready, unavailable, error
data-tt-flow-diagram-rendererThe id of the Diagram Renderer that draws it
data-tt-flow-diagram-selectedPresent while the diagram is selected
data-tt-flow-diagram-zoomfit, or the zoom factor, such as 1.5 (setZoom)
data-tt-flow-diagram-maximizedPresent while the diagram is laid over the window (setMaximized)
data-tt-flow-diagram-panningPresent while you drag the zoomed diagram (setPan)
data-tt-flow-diagram-sizedPresent while the diagram has a size
data-tt-flow-diagram-alignleft or right for a diagram with a size that is not centered (setDiagramAlign)
data-tt-flow-diagram-resizingPresent while you drag a handle

On .tiptap-flow-diagram-resize-handle:

AttributeValues
data-tt-flow-diagram-resizeleft, right, bottom, bottom-left, bottom-right

In HTML, on figure[data-type="flow-diagram"]:

AttributeValue
data-tt-flow-diagram-formatThe format
data-tt-flow-diagram-descriptionThe description
data-tt-flow-diagram-viewcode, while the source is shown
data-tt-flow-diagram-optionsThe options as JSON

Diagram custom properties

PropertyDefault
--tt-flow-diagram-padding12px
--tt-flow-diagram-border1px solid transparent
--tt-flow-diagram-radius8px
--tt-flow-diagram-max-height640px, the tallest a diagram is drawn at its width. Not applied to a diagram with a size
--tt-flow-diagram-widthSet on a diagram with a size: its share of the width of the editor's text
--tt-flow-diagram-aspect-ratioSet on a diagram with a size: its ratio. The drawn diagram fits into an area of that aspect ratio
--tt-flow-diagram-handle-color#6a00f5, the fill of a resize handle
--tt-flow-diagram-handle-border#ffffff
--tt-flow-diagram-handle-radius4px
--tt-flow-diagram-code-radius8px
--tt-flow-diagram-code-background#f4f4f5
--tt-flow-diagram-code-colorinherit
--tt-flow-diagram-code-font-familyui-monospace, monospace
--tt-flow-diagram-empty-text"Empty diagram", a CSS string shown while the source is empty
--tt-flow-diagram-caption-color#71717a
--tt-flow-diagram-caption-size0.875em
--tt-flow-diagram-caption-aligncenter
--tt-flow-diagram-attribution-color#71717a
--tt-flow-diagram-attribution-size0.75em
--tt-flow-diagram-loading-opacity0.5
--tt-flow-diagram-error-color#e5484d
--tt-flow-diagram-unavailable-color#71717a
--tt-flow-diagram-selected-outline2px solid #6a00f5
--tt-flow-diagram-label-input-border1px solid #6a00f5, around the field for a diagram's text
--tt-flow-diagram-label-input-backgroundCanvas

A maximized diagram uses --tt-chart-maximized-inset, --tt-chart-maximized-z-index and --tt-chart-maximized-background. So charts and diagrams leave the same room around them.

Diagram drawing

The Diagram Renderer reads these properties when it draws a diagram. An export reads them too.

PropertyDefault
--tt-flow-diagram-backgroundtransparent
--tt-flow-diagram-node-color#f4eeff, the fill of a node
--tt-flow-diagram-node-border-color#6a00f5
--tt-flow-diagram-text-color#18181b
--tt-flow-diagram-line-color#52525b, edges and arrows
--tt-flow-diagram-group-color#fafafa, the fill of a subgraph or lane
--tt-flow-diagram-note-color#fff8db
--tt-flow-diagram-font-familyArial, Helvetica, "Liberation Sans", sans-serif
--tt-flow-diagram-font-size14px. Pixels only