Experimental: work in progress with no guarantees of API stabilityThe datagrid column span feature allows you to create cells that span multiple columns in a datagrid. To create a cell that spans multiple columns, set the aria-colspan attribute to indicate the number of columns spanned by the cell, to set the position and span of the cell. Certain features are not supported for column span such as column resizing, and column reordering.
Column Span
Column 0Column 1Column 2Column 3Cell 0-0Cell 0-1Cell 0-2Cell 0-3Cell 1-0Cell 1-2Cell 1-3Cell 2-0Cell 2-1Cell 3-0Cell 3-1Cell 3-2Cell 3-3
code
<script type="module">
import '@blueprintui/grid/include/core.js';
import '@blueprintui/grid/include/keynav.js';
import '@blueprintui/grid/include/column-span.js';
</script>
<bp-grid aria-label="column span demo" column-style="border" row-style="border">
<bp-grid-header>
<bp-grid-column>Column 0</bp-grid-column>
<bp-grid-column>Column 1</bp-grid-column>
<bp-grid-column>Column 2</bp-grid-column>
<bp-grid-column>Column 3</bp-grid-column>
</bp-grid-header>
<bp-grid-row>
<bp-grid-cell>Cell 0-0</bp-grid-cell>
<bp-grid-cell>Cell 0-1</bp-grid-cell>
<bp-grid-cell>Cell 0-2</bp-grid-cell>
<bp-grid-cell>Cell 0-3</bp-grid-cell>
</bp-grid-row>
<bp-grid-row>
<bp-grid-cell aria-colspan="2">Cell 1-0</bp-grid-cell>
<bp-grid-cell>Cell 1-2</bp-grid-cell>
<bp-grid-cell>Cell 1-3</bp-grid-cell>
</bp-grid-row>
<bp-grid-row>
<bp-grid-cell>Cell 2-0</bp-grid-cell>
<bp-grid-cell aria-colspan="3">Cell 2-1</bp-grid-cell>
</bp-grid-row>
<bp-grid-row>
<bp-grid-cell>Cell 3-0</bp-grid-cell>
<bp-grid-cell>Cell 3-1</bp-grid-cell>
<bp-grid-cell>Cell 3-2</bp-grid-cell>
<bp-grid-cell>Cell 3-3</bp-grid-cell>
</bp-grid-row>
</bp-grid>
Install
NPM
import '@blueprintui/grid/include/core.js';
import '@blueprintui/grid/include/keynav.js';
import '@blueprintui/grid/include/column-span.js';
CDN
<script type="module">
import 'https://cdn.jsdelivr.net/npm/@blueprintui/grid/include/core.js/+esm';
import 'https://cdn.jsdelivr.net/npm/@blueprintui/grid/include/keynav.js/+esm';
import 'https://cdn.jsdelivr.net/npm/@blueprintui/grid/include/column-span.js/+esm';
</script>
Accessibility
- Use the aria-colspan attribute on the
<bp-grid-cell> element within the <bp-grid-row> to indicate the number of columns spanned by the cell.
bp-grid-column
Properties
| Name | Types | Description |
|---|
width | string | control width of grid column via numeric or CSS value types |
position | 'sticky' | 'fixed' | position individual column relative to the grid scroll container |
alignment | 'start' | 'center' | 'end' | align column content and corresponding column cells |
role | string | |
ariaSort | string | |
Attributes
| Name | Types | Description |
|---|
width | string | control width of grid column via numeric or CSS value types |
position | 'sticky' | 'fixed' | position individual column relative to the grid scroll container |
alignment | 'start' | 'center' | 'end' | align column content and corresponding column cells |
CSS Properties
| Name | Types | Description |
|---|
--min-height | | |
--min-width | | |
--justify-content | | |
--padding-block | | |
--padding-inline | | |
--background | | |
--font-size | | |
--color | | |
--border-width | | |
Slots
| Name | Types | Description |
|---|
default | | column content |
bp-grid
Properties
| Name | Types | Description |
|---|
i18n | | set default aria/i18n strings |
height | string | max height for grid container |
columnLayout | 'fixed' | 'flex' | column layout determines initial column width calculation |
rowStyle | Permutations< 'hover' | 'stripe' | 'border' > | determines the visual style for rows |
columnStyle | Permutations<'hover' | 'border'> | determines the visual style for columns |
selectable | 'multi' | 'single' | null | initializes grid to appropriate aria/a11y settings for selections |
scrollLock | boolean | disables scroll container |
layer | 'flat' | 'container' | determines the visual layer style (container vs flat for nesting) |
rangeSelection | boolean | enables range selection |
grid | HTMLElement[][] | |
columns | BpGridColumn[] | |
cells | BpGridCell[] | |
rows | BpGridRow[] | |
role | string | |
Attributes
| Name | Types | Description |
|---|
i18n | | set default aria/i18n strings |
height | string | max height for grid container |
column-layout | 'fixed' | 'flex' | column layout determines initial column width calculation |
row-style | Permutations< 'hover' | 'stripe' | 'border' > | determines the visual style for rows |
column-style | Permutations<'hover' | 'border'> | determines the visual style for columns |
selectable | 'multi' | 'single' | null | initializes grid to appropriate aria/a11y settings for selections |
scroll-lock | boolean | disables scroll container |
layer | 'flat' | 'container' | determines the visual layer style (container vs flat for nesting) |
range-selection | boolean | enables range selection |
CSS Properties
| Name | Types | Description |
|---|
--background | | |
--body-height | | |
--column-height | | |
--row-height | | |
--scroll-padding-top | | |
--row-content-visibility | | |
--border-width | | |
bp-grid-row
Properties
| Name | Types | Description |
|---|
selected | boolean | selected visual state |
position | 'fixed' | 'sticky' | '' | position individual row relative to the grid scroll container |
role | string | |
Attributes
| Name | Types | Description |
|---|
selected | boolean | selected visual state |
position | 'fixed' | 'sticky' | '' | position individual row relative to the grid scroll container |
CSS Properties
| Name | Types | Description |
|---|
--border-top | | |
--border-bottom | | |
--background | | |
--min-height | | |
--border-width | | |
--border-color | | |
bp-grid-cell
Properties
| Name | Types | Description |
|---|
role | string | |
CSS Properties
| Name | Types | Description |
|---|
--border-right | | |
--border-left | | |
--min-height | | |
--min-width | | |
--font-size | | |
--justify-content | | |
--padding-block | | |
--padding-inline-start | | |
--padding-inline-end | | |
--color | | |
--border-width | | |
Slots
| Name | Types | Description |
|---|
default | | cell content |