Skip to content

Layout and general blocks

Three general-purpose blocks. They know nothing about products, which is what makes them useful for the bits of a buy column no product-specific block covers.

A container that lays its child blocks out in one direction, with one alignment and one padding value. The only block in Signal that nests other blocks.

SettingTypeDefaultWhat it does
Layout directionSelectgroup--verticalgroup--horizontal lays children in a row, spaced apart and vertically centred; group--vertical stacks them
AlignmentSelectflex-startflex-start (left), center, flex-end (right). Only shown — and only applies — when the direction is vertical
PaddingRange 0–200 px, step 20Horizontal padding when the direction is horizontal; vertical padding when it’s vertical

It accepts @theme blocks, so it can hold any block in the theme — including another group.

Two presets appear in the Add block picker under a Layout category:

  • Column — vertical, left-aligned, no padding
  • Row — horizontal, no padding

Putting two things on one line. The buy column is a single stack by default, so a row is the only way to sit a share row beside a perk, or two short text blocks side by side.

Every setting deliberately applies to one dimension only. There’s no separate horizontal and vertical padding, no cross-axis alignment — the block is a wrapper, not a layout engine, and keeping it that way is what stops the editor sidebar turning into a CSS panel.

A plain text block — a heading, a sub-heading, or a line of body copy.

SettingTypeDefaultWhat it does
TextTextTextThe content
Text styleSelecttext--titletext--title (2rem bold), text--subtitle (1.5rem), text--normal (inherits)
AlignmentText alignmentleftLeft, centre or right

Use it for copy that belongs to the page rather than to the product — a run note, a dispatch date, a line about the fabric that isn’t in any metafield. It has a preset, so it’s one of the quickest blocks to add.

The escape hatch. Anywhere a block can go, this can go instead.

SettingTypeDefaultWhat it does
LiquidLiquid(empty)Liquid and HTML, rendered in place

It renders nothing when empty, so an unconfigured block leaves no trace.

  • An app gives you an embed snippet but no app block.
  • You need a metafield Signal doesn’t surface — a care label, a fabric composition table, a made-in badge.
  • A one-off note on a single product that no setting covers.

Because it’s a liquid setting you have access to the normal product objects, including product, collections, cart and settings.

For app code that needs a full-width home of its own rather than a slot in the buy column, Signal also ships an Apps section — a section whose only job is to hold app blocks on any template. Prefer that over pasting an app’s embed snippet here.