Skip to main content
Form templates use a small, fixed set of components. The keyword components bind to the document type’s keywords; the layout components are the ones Caseflow templates use too. Anything else — Caseflow’s EditableField, RelationPicker, object searches, action strings — is not available in a form template, and the lint reports it. Write components as tags: <KeywordField name="Site" />, or <CollapsibleSection title="Visit">…</CollapsibleSection> for components with children. Use className for Tailwind classes on a component and class on plain HTML. style attributes are not supported.

Binding a keyword

Every keyword component names its keyword in one of two ways: Exactly one of the two is required. A keyword that is not assigned to the document type is reported by the lint and rendered as unknown. The keyword type decides the input — text, number, date picker, value list — the template does not choose it.

KeywordField

An input for one keyword. In preview templates it renders read-only. A required keyword shows the required marker and blocks saving while empty. A keyword hidden by configuration, or by a conditional rule for the current values, is not rendered at all. Inside a KeywordGroup, the field binds to the keyword of that row.

KeywordValue

Read-only display of one keyword’s formatted value, with an optional label. Several values are shown comma-separated. For a value inside running text — a heading, a sentence, an attribute — use the {{Keyword}} placeholder instead; see the render scope.

KeywordGroup

Scopes its children to a keyword group. For a multi-instance group it repeats the children once per row, with add and remove controls in create and update templates; for a single-instance group it renders the one row.
To lay rows out yourself in a preview template, iterate the group in the scope instead:

SaveButton

Saves the form: creates the document in a create template, saves the keywords in an update template. Not rendered in preview templates. Put exactly one in each create and update template. The button carries the save-time behaviour: it asks for a comment when the document type requires one, and asks before storing a document whose keywords match existing documents.

DateDisplay

Formats a stored date for the reader.

MessageCard

A card for a message with author and timestamp — useful for remarks, comments or notes captured in a keyword.

CollapsibleSection

An expandable section with a title.

Tabs and Tab

A tabbed container whose children are Tab components.

Administration

Permissions, what users need, and how form documents behave across the product.

Templates and syntax

The shared template engine: conditionals, loops and expressions.