Rising Tide Docs
For ArtistsDrawing a Template

The Markers

Every marker you can place in a Rising Tide template - text slots, the content region, stacked lines, and the layers the protocol injects.

Four kinds of marker. You will use the first two on every template and may never need the other two.

Text slots

Tag any <text> element with data-slot and the protocol replaces its contents.

<text data-slot="title"
      x="350" y="170"
      font-family="Georgia, serif" font-size="36" font-weight="600"
      text-anchor="middle" fill="#28251e">Title goes here</text>

Everything about how it looks is read off the element you drew. Position, size, family, weight, alignment, colour - the protocol takes all of it from your markup. There is no separate place to configure typography, and nothing overrides your choices.

The placeholder text you type inside the element is for your eye only. It is replaced at render time and never appears anywhere.

SlotWhat lands there
titlethe piece's title
authorwho made it
editionNumberthe numbered copy - #0042
line1, line2, line3, ...the lines of a short-form piece, one per slot

A haiku uses line1 through line3. A tanka uses five. Short forms use numbered line slots because each line is placed exactly where you drew it; long-form pieces use the content region below instead.

The content region

For anything long enough to need wrapping - an open letter, an open-format page - draw one box and let the protocol flow the text into it.

<foreignObject data-slot="content" x="100" y="280" width="500" height="820">
  <div xmlns="http://www.w3.org/1999/xhtml"
       style="font-family: Georgia, serif; font-size: 18px; line-height: 30px; color: #28251e;">
    Placeholder for your own eye.
  </div>
</foreignObject>

The box comes from the four attributes. The type comes from the div style inside it.

Write the line height in pixels. line-height: 30px, never line-height: 1.65. A bare ratio is rejected outright rather than guessed at, and that refusal is deliberate - a ratio that quietly resolved to a default is how a file can look correct in your editor and set wrong in every render.

Only one content region per file. If you draw two, only one of them is used.

Stacked lines

When several numbered line slots belong together as a block - the lines of a poem - tag them with the same data-flow-group and they lay out in the order they appear in your file.

<text data-slot="line1" data-flow-group="poem" ...>first line</text>
<text data-slot="line2" data-flow-group="poem" ...>second line</text>
<text data-slot="line3" data-flow-group="poem" ...>third line</text>

Without the group, each line sits exactly at the y you gave it - which is what you want when the design places them deliberately. With the group, they stack, which is what you want when the number of lines can vary.

Injected layers

Three markers tag a place rather than a piece of text. You draw the space; the protocol puts something into it.

MarkerWhat arrives
data-slot="stickerLayer"a sticker, if the creator applied one
data-slot="qrCodeSvg"a QR code, on ticket templates
data-slot="bracketGrid"the tournament grid, on bracket templates

These carry no text and no typography. Put the marker on a group or a rectangle at the position and size you want the layer to occupy.

What is not a marker

data-slot is the whole vocabulary. There is no way to declare a variable, run a condition, or loop over anything - a template is a drawing with named holes in it, not a program. If your design needs something the markers above cannot express, tell us rather than working around it.