Layout primitive that arranges child content into a fixed number of equal-width columns using the normative Layout DSL spacing scale.
Install @wyrd-company/react or the Flutter package and use it directly —
your DESIGN.md does the styling.
catalog/contracts/grid.ymlsource of truth · verbatim
$schema: https://thewyrdingway.dev/schemas/component-contract.schema.ymlcontractVersion: 0.1.0identity:name: Gridtag: wyrd-gridpackage: wyrd.component.gridtitle: Gridsummary: Layout primitive that arranges child content into a fixed number of equal-width columns using the normative Layout DSL spacing scale.relationships:related-to: - layout-dsl - puck-layout-authoring - flexiblebox - quality-parity-and-gatesclassification:category: layoutcomposition: single-slotinteractive: falsetarget-strategy:react: requiredflutter: requiredsurface:properties: - name: columnstype:kind: integerminimum: 1maximum: 12required: trueserializable: truesummary: Fixed number of equal-width columns. - name: gaptype:kind: integerminimum: 0maximum: 8required: falsedefault: 0serializable: truesummary: Space between grid cells as an index into the normative Layout DSL spacing scale.slots: - name: contentcontent: truerequired: truecardinality: one-or-manyaccepts: - component - contentsummary: Child layout nodes arranged row-major into the grid.events: []states: []parts: - name: rootsummary: CSS grid layout root.slots: - contentmessages: []obligations:accessibility:role: nonekeyboard: []semantics: - Preserves child order and semantics without adding interactive behavior.behavior:model: statelessinteractions: []hostEffects: []conditions: - rtl - density-compact - text-expansion - safe-areasdui:status: serializableserializableProperties: - columns - gapserializableSlots: - contenteventBindings: []notes: Grid lowers to the Layout DSL Grid node during Puck-to-SDUI normalisation.examples: - name: two-columnstate: defaultproperties:columns: 2gap: 2slots:content: Foundations | Components | Patterns | Tooling - name: three-column-gapstate: defaultproperties:columns: 3gap: 4slots:content: Design | Build | Validate | Document | Publish | Observe - name: twelve-columnstate: defaultproperties:columns: 12gap: 1slots:content: "1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12"overrides:react:slots:content: childrenflutter:slots:content: child
01
Examples
Generated from the contract's examples block.
Previews are the published @wyrd-company/react component, themed by the
brand's role tokens — flip the site's light/dark toggle and they follow.