Basic Grid (SpanMap)

<PrimerBrandGrid HasOverlay="true">
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span1 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span11 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span2 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span10 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span3 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span9 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span4 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span8 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span5 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span7 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span6 } })" />
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span6 } })" />
</PrimerBrandGrid>

Nested Grids

<PrimerBrandGrid HasOverlay="true">
    <PrimerBrandGridColumn>
        <PrimerBrandGrid HasOverlay="true">
            <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span4 } })" />
            <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span4 } })" />
            <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span4 } })" />
        </PrimerBrandGrid>
    </PrimerBrandGridColumn>
</PrimerBrandGrid>

Responsive Grid

<PrimerBrandGrid HasOverlay="true">
    <PrimerBrandGridColumn SpanMap="@(new Dictionary<BrandBreakpoint, BrandGridColumnSpan> {
        { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span12 },
        { BrandBreakpoint.Small, BrandGridColumnSpan.Span6 },
        { BrandBreakpoint.Medium, BrandGridColumnSpan.Span4 },
        { BrandBreakpoint.Large, BrandGridColumnSpan.Span3 },
        { BrandBreakpoint.XLarge, BrandGridColumnSpan.Span2 }
    })" />
</PrimerBrandGrid>

Offset + Responsive Start

<PrimerBrandGrid HasOverlay="true">
    <PrimerBrandGridColumn SpanMap="@(new() {
        { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span3 }
    })" />
    <PrimerBrandGridColumn SpanMap="@(new() {
            { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span5 }
        })"
                            StartMap="@(new() {
            { BrandBreakpoint.XSmall, BrandGridColumnStart.Start8 }
        })" />
</PrimerBrandGrid>

Full Width

Full width column
<PrimerBrandGrid>
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span12 } })">
        <PrimerBrandText>Full width column</PrimerBrandText>
    </PrimerBrandGridColumn>
</PrimerBrandGrid>

Two Column 6:6 Layout

Column 1
Column 2
<PrimerBrandGrid>
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span6 } })">
        <PrimerBrandBox Background="BrandBoxBackground.Danger">Column 1</PrimerBrandBox>
    </PrimerBrandGridColumn>
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span6 } })">
        <PrimerBrandBox Background="BrandBoxBackground.Danger">Column 2</PrimerBrandBox>
    </PrimerBrandGridColumn>
</PrimerBrandGrid>

Breakpoint + Start (Center Block)

Centered block (md)
<PrimerBrandGrid FullWidth="true" HasOverlay="true">
    <PrimerBrandGridColumn SpanMap="@(new() {
            { BrandBreakpoint.Medium, BrandGridColumnSpan.Span6 }
        })"
                            StartMap="@(new() {
            { BrandBreakpoint.Medium, BrandGridColumnStart.Start4 }
        })">
        <PrimerBrandBox BorderColor="BrandBoxBorderColor.Default" Padding="BrandBoxPadding.Padding16">
            Centered block (md)
        </PrimerBrandBox>
    </PrimerBrandGridColumn>
</PrimerBrandGrid>

1/3 : 2/3 Layout

1/3 Width
2/3 Width
<PrimerBrandGrid>
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span4 } })">
        <PrimerBrandText>1/3 Width</PrimerBrandText>
    </PrimerBrandGridColumn>
    <PrimerBrandGridColumn SpanMap="@(new() { { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span8 } })">
        <PrimerBrandText>2/3 Width</PrimerBrandText>
    </PrimerBrandGridColumn>
</PrimerBrandGrid>

Breakpoint Span Test

XSmall: Full Width
Medium: Half Width
<PrimerBrandGrid>
    <PrimerBrandGridColumn SpanMap="@(new() {
        { BrandBreakpoint.XSmall, BrandGridColumnSpan.Span12 }
    })">
        <PrimerBrandText>XSmall: Full Width</PrimerBrandText>
    </PrimerBrandGridColumn>
    <PrimerBrandGridColumn SpanMap="@(new() {
        { BrandBreakpoint.Medium, BrandGridColumnSpan.Span6 }
    })">
        <PrimerBrandText>Medium: Half Width</PrimerBrandText>
    </PrimerBrandGridColumn>
</PrimerBrandGrid>

PrimerBrandGrid Options

Available options for PrimerBrandGrid component

NameDescriptionDefault ValueCSS Class
ChildContent
Content of the grid
-
-
FullWidth
Stretches grid to 100% width
false
Grid--full-width
HasOverlay
Shows background grid overlay
false
Grid--has-overlay
RowGap
Custom row spacing
null
--brand-Grid-spacing-row
ColumnGap
Custom column spacing
null
--brand-Grid-spacing-column-gap
PaddingInline
Inline padding
null
--brand-Grid-spacing-margin
Style
Inline styles
""
-
ClassName
Additional CSS classes
""
-

PrimerBrandGridColumn Options

Available options for PrimerBrandGridColumn component

NameDescriptionDefault ValueCSS Class
ChildContent
Column content
-
-
SpanMap
Column span per breakpoint
null
Grid__column--[bp]-span-{n}
StartMap
Column offset (start) per breakpoint
null
Grid__column--[bp]-start-{n}
Style
Inline styles
""
-
ClassName
Additional CSS classes
""
-