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.
| Slot | What lands there |
|---|---|
title | the piece's title |
subtitle | its subtitle |
author | who made it |
timestamp | the date it was published |
editionNumber | the numbered copy - #0042 |
recipient | the whole salutation of an open letter, including the "Dear" |
line1, line2, line3, ... | the lines of a short-form piece, one per slot |
Which of these a file must carry depends on the kind of piece it is drawn for. A template that misses a required marker is refused when you submit it, with the name of the marker:
| Kind of piece | Required | Optional |
|---|---|---|
| Haiku | title, subtitle, author, line1 to line3, timestamp, editionNumber | stickerLayer |
| Tanka | the haiku set plus line4, line5 | stickerLayer |
| Sonnet | the haiku set plus line4 to line14 | stickerLayer |
| Basic page | author, content, timestamp, editionNumber | title, subtitle, stickerLayer |
| Open letter | recipient, author, content, timestamp, editionNumber | title, subtitle, stickerLayer |
Tickets, brackets and game trophies carry slots of their own (an event name and venue, a tournament and a score, a winner and a pot), and the Studio names any a file is missing.
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.
| Marker | What arrives |
|---|---|
data-slot="stickerLayer" | a sticker, if the creator applied one. An empty group: its transform="translate(x, y)" marks the open paper where a sticker sits well, which is where a new sticker starts. It is a suggested spot, not an origin, and stickers are placed anywhere on the canvas |
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 QR code and tournament grid markers on a group or a rectangle at the position and size you want the layer to occupy. Keep the sticker marker clear of your text and at least 100 pixels from the right and bottom edges.
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.