Accent Fields

Text

The single-line string family — one stored contract, three variants that differ only in what the boundary promises.


The single-line string family. One stored contract — a string, one line, no markup — and three variants that differ only in what the write boundary promises about the value:

Variant The contract adds Reach for it when
Text input nothing — the base field names, taglines, labels, anything short and free
Email a valid address, by the HTML standard's own rule the value will sit in a mailto: or a send list
URL parses as http(s), by the platform's parser the value will be printed into an href

The variants are validation, not storage: all three store the same string, read the same way in templates and the API, and a text input can become an email field later by adding the rule — existing values are simply judged by it from then on. That is the data type vs editor split's quieter sibling: format is part of the contract axis too, and it composes onto the base field instead of forking it.

Paragraphs are not in this family. The moment line breaks are content, you want long text — a different data type, not a variant of this one.