Layout fields shape how entries are edited in the dashboard. They do not introduce new primitive data types — instead they compose other fields into repeating lists, nested objects, multi-tab layouts, and structured SEO blocks. Every layout field is accessed through theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/alineacms/alinea/llms.txt
Use this file to discover all available pages before exploring further.
Field namespace.
Importing Field
Field.list
Field.list creates a repeating list of rows where each row is an instance of one of the types you define in the schema option. Editors can add, reorder, and remove rows directly in the dashboard. The stored value is an array; each row carries an auto-assigned _id, _type, and fractional _index key for stable ordering.
Defining a list field
Pre-populating with an initial value
List field with initial rows
Programmatic editing with Edit.list
UseEdit.list when creating or updating entries programmatically (for example, in a seed script or migration):
Edit.list usage
A
Record<string, Type> defining the allowed row types. Each key is the _type discriminant stored with each row. At least one type must be provided.Pre-populated rows for new entries. Each element must include a
_type key matching one of the schema type names.Instructional text below the field label.
Compact, borderless rendering of the list field.
Fractional form width (0–1).
Hides the list from the dashboard.
A custom validation function run against the full row array.
Field.object
Field.object groups a set of fields into a single nested object. The stored value is a plain object whose shape matches the fields you define. Unlike Field.list, an object field always contains exactly one instance of its fields — no repeating rows.
Defining an object field
entry.pricing is typed as { amount: number | null; currency: 'usd' | 'eur' | 'gbp'; showSalePrice: boolean }.
A
Record<string, Field> defining the nested fields. The result type is inferred from these definitions.Instructional text below the label.
Fractional form width (0–1).
Renders the object fields without extra chrome.
Field.tabs
Field.tabs groups fields into tab panels in the dashboard. You pass a list of Field.tab(...) definitions; the resulting section is spread into the parent fields object with the ... spread operator.
Using Field.tabs
Field.tab is an alias for Config.type — it accepts the same label string and { fields } object. Field.tabs is variadic and accepts any number of tab definitions.
Field.metadata
Field.metadata is a pre-built structured field that covers the most common SEO metadata fields. It renders a composite panel with title, description, and Open Graph image and text. The stored value implements the Metadata interface.
Using Field.metadata
Metadata type:
Metadata type shape
Field label shown in the dashboard. Defaults to
"Metadata".Key of another field in the same type to use as the default metadata title.
Key of another field in the same type to use as the default metadata description.
Key of another field in the same type to use as the default Open Graph image.
Full layout example
Combined layout fields