Skip to content
mason

Field Kinds

Each field in a brick has a kind that determines how authors enter its value and how it renders.

Kind Stores Settings
Text string placeholder, max length
Textarea string placeholder, rows, max length
Rich text formatted HTML toolbar preset (Basic / Standard / Full)
Number number min, max, step
URL string placeholder, max length
Email string placeholder, max length
Toggle on / off
Select one value options
Multi-select list of values options
Radio one value options
Checkboxes list of values options
Button group one value options
Color hex color allowed (any / swatches), default color, swatches
Range / slider number min, max, step
Date date
Link URL + text + target
Grid rows columns (see Grid)
Relationship related entries channels, min, max
Listing (channel query) live loop of channel entries channel, limit, offset, order by, sort, link prefix, filter field
File / Asset file reference directory, allowed types (all / images)
Entry entry reference — (legacy single-ID input; prefer Relationship)

Options

Applies to:

  • Select
  • Multi-select
  • Radio
  • Checkboxes
  • Button group

There are two modes, toggled in the field's settings.

Simple List

A comma-separated list where the value and label are the same:

info, warning, success

Value / Label

A stored value plus a friendlier author-facing label per row, similar to EE's value/label pairs.

The front-end tag outputs the stored value:

{brick:field}

Color

  • Allowed — choose Any color for a free picker or Swatches only to restrict authors to a fixed palette.
  • Default color — used when the author leaves the field empty. The default is also applied at render time.
  • Swatches — the palette shown when using Swatches mode.

Rich Text

The toolbar setting determines how many formatting tools authors receive.

  • Basic — bold, italic, link.
  • Standard — adds underline, strikethrough, headings (H2/H3), bullet lists and numbered lists.
  • Full — adds inline code, H4, text alignment (left/center/right), blockquote, horizontal rule, subscript/superscript, text color, highlight, and per-block class/style tools.

Per-Block Class & Style

Available with the Full toolbar.

The .class and style tools apply a freeform CSS class or inline style to the block containing the cursor — a <p>, heading, quote, or list.

For example:

<p class="lead" style="color:#e00">

An inline style on the element itself reliably overrides theme rules that a class on a wrapping element can't out-specify.

Leave the prompt empty to clear the value.

File

  • Directory — restrict uploads/selection to one upload destination, or choose Any directory.
  • Allowed — choose All file types or Images only.

Listing (Channel Query)

Turns a field into a live loop of channel entries, resolved at render time.

This allows a brick to list real content — such as a portfolio grid, blog list, or category index — that a static template couldn't produce on its own.

It renders as a loop, exactly like Grid and Relationship.

  • Channel — which channel to list.
  • Limit / Offset — how many entries to return and where to start.
  • Order by — entry date, title, URL title, or edit date.
  • Sort — ascending or descending.
  • Link prefix — builds each row's URL as <prefix>/<url_title>.

For example:

/work → /work/my-project

Filter Field

Filter field is optional.

Specify a relationship field's short name on the listed channel, for example:

portfolio_categories

Setting this gives authors a category picker on the brick itself, so the same listing brick can be dropped on several pages and pointed at a different category each time.

Leave it blank and the listing always shows everything.

When a filter field is set, the brick shows a Filter control next to the listing summary.

The picker searches only the channel that relationship field points at, so authors see categories rather than every entry on the site.

Choosing one narrows that instance of the listing. Clearing it returns to listing all entries.

Each choice shows how many entries it would actually return. A choice with no matching entries is flagged, so an empty listing is visible as a filter with nothing behind it rather than looking like a broken brick.

The count stays on the chip after choosing.

If a category reads 0 entries, nothing in the listed channel is related to it through the filter field. The listing will render empty. That's the filter working, not a fault.

Each returned row exposes:

  • id
  • title
  • url_title
  • url
  • formatted date
  • every custom field on the entry by its short name

File fields resolve to a URL.

See Templating → Listing.

Per-Field Settings

Every field, regardless of kind, also has the following settings.

Width

Controls how wide the field sits within the brick:

  • 25%
  • 50%
  • 75%
  • 100%

The setting uses a four-bar selector and defaults to 100%.

Narrower fields tile side by side.

Make Conditional

Show the field only when other fields in the same brick meet conditions you define:

show this field if all / any of these are true

This mirrors ExpressionEngine's conditional fields.

Hidden fields keep any stored value but render nothing.

Tab

Controls which of the brick's tabs the field appears under.

See Creating Bricks.

Grid

A Grid field holds any number of rows.

Each row is built from columns — smaller fields you define on the brick.

Defining Columns

When you set a field's kind to Grid, a column editor appears.

Add a column for each cell with:

  • Label
  • Short name
  • Kind
  • Kind-specific options

Columns support the full range of field kinds, including:

  • Text
  • Select
  • Toggle
  • Number
  • Relationship
  • File
  • Grid

A column can itself be a Grid, allowing nesting up to two levels deep:

Section → Rows → Items

Authoring

Authors get an Add row button.

Each row can be:

  • Reordered by dragging the grip.
  • Moved up or down.
  • Duplicated.
  • Deleted.

Output

Loop the rows in your template. See Templating.

The row count is available as:

{brick:<short_name>:count}