Grid

The Grid UI component is used to layout content in a matrix format consisting of rows and columns.

Preview

Grid&GridItem.jpg

Code example

render('Checkout::Dynamic::Render', (root) => {
return <>
<Grid
columns={[100, 'fill', '20%']}
rows={['auto', 100, 'auto']}
spacing="loose"
padding="loose"
>
<GridItem columnSpan={3}>
<View> Grid: </View>
</GridItem>
<View border="base" padding="base">
100 / 100
</View>
<View border="base" padding="base">
fill / 100
</View>
<View border="base" padding="base">
20% / 100
</View>
<GridItem columnSpan={2}>
<View border="base" padding="base">
100 + fill / auto
</View>
</GridItem>
<View border="base" padding="base">
20% / auto
</View>
</Grid>
</>;
});

GridProps

tip

Optional properties are marked with a ?. Properties without a ? are required.

columns?

MaybeResponsiveConditionalStyle<GridItemSize[] | GridItemSize>

The size of each column in the grid layout.


rows?

MaybeResponsiveConditionalStyle<GridItemSize[] | GridItemSize>

The size of each row in the grid layout.


spacing?

MaybeResponsiveConditionalStyle<Spacing | [Spacing, Spacing]>

The space between child elements.
When two values are provided, the first value is the row spacing and the second value is the column spacing.


border?

MaybeResponsiveConditionalStyle<MaybeShorthandProperty<BorderStyle>>

The border style. This property can be defined using one, two, or four values:

  • One Value: Applies the specified style uniformly to all four borders.
  • Two Values: The first value sets the style for the vertical borders (top and bottom), and the second value sets the style for the horizontal borders (left and right).
  • Four Values: Each value corresponds to an individual border in the following order: top, right, bottom, and left.

cornerRadius?

MaybeResponsiveConditionalStyle<MaybeShorthandProperty<CornerRadius>>

The corner radius size.


padding?

MaybeResponsiveConditionalStyle<MaybeShorthandProperty<Spacing>>

Configures the inner padding.


overflow?

hidden visible Default: visible

Configures whether to show or hide overflowing content.

  • hidden: Hides overflow.
  • visible: Shows overflow.

inlineAlignment?

MaybeResponsiveConditionalStyle<'start' | 'center' | 'end'>

Alignment along the horizontal axis.


blockAlignment?

MaybeResponsiveConditionalStyle<'start' | 'center' | 'end'|'baseline'>

Alignment along the vertical axis.


Type descriptions

GridItemSize

auto fill number ${number}fr ${number}%
  • auto: Expands based on the content and does not proactively fill the remaining space.
  • ${number}fr: Distributes the remaining space equally, where number indicates the share of space.
  • fill: Fills the space like 1fr but can shrink to 0 when the content is too long to prevent overflow.
  • number: Allocates content space according to the specified value. For example, setting 30 will occupy 30px.
  • ${number}%: Occupies content space as a percentage according to the configuration. For example, setting 30% will take up 30% of the content space.

Spacing

none base extraTight tight loose extraLoose

BorderStyle

base dotted none

CornerRadius

base small large fullyRounded none

MaybeResponsiveConditionalStyle

T | ConditionalStyle<T, ViewportSizeCondition>
  • Example of a plain value: base
  • Example of a conditional value: { defaultValue: 'tight', conditionals: [{ conditions: { viewportInlineSize: { min: 'medium' } }, value: 'loose' }] }

ConditionalStyle

{ defaultValue?: T; conditionals: ConditionalValue<T, Conditions>[] }

ConditionalValue

{ conditions: Conditions; value: T }

Conditions

AtLeastOne<ViewportSizeCondition>

ViewportSizeCondition

{ viewportInlineSize: { min: T } }

AtLeastOne

Partial<T> & U[keyof U]

ViewportInlineSize

extraSmall small medium large

Refer to Viewport breakpoints.


MaybeShorthandProperty

T | ShorthandProperty<T>

ShorthandProperty

[T, T] [T, T, T, T]

Was this article helpful to you?