Skip to main content

Column

Overview

The Column component provides a single responsive grid column using Bulma's flexbox-based column system. It supports all Bulma column size modifiers, responsive sizes and offsets, color/background helpers, "narrow" behavior, and utility/HTML props. Use together with Columns for powerful, declarative layouts.


Import

import { Column } from '@allxsmith/bestax-bulma';

Props

PropTypeDescription
classNamestringAdditional CSS classes for the column.
textColor'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'black-bis' | 'black-ter' | 'grey-darker' | 'grey-dark' | 'grey' | 'grey-light' | 'grey-lighter' | 'white' | 'light' | 'dark' | 'inherit' | 'current'Text color.
color'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger'Bulma color modifier for the column.
bgColor'primary' | 'link' | 'info' | 'success' | 'warning' | 'danger' | 'black' | 'black-bis' | 'black-ter' | 'grey-darker' | 'grey-dark' | 'grey' | 'grey-light' | 'grey-lighter' | 'white' | 'light' | 'dark' | 'inherit' | 'current'Background color.
sizenumber | 'full' | 'half' | 'one-third' | 'two-thirds' | 'one-quarter' | ...Column size (see Bulma docs).
sizeMobileas aboveSize for mobile breakpoint.
sizeTabletas aboveSize for tablet breakpoint.
sizeDesktopas aboveSize for desktop breakpoint.
sizeWidescreenas aboveSize for widescreen breakpoint.
sizeFullhdas aboveSize for fullhd breakpoint.
offsetas aboveOffset for column.
offsetMobileas aboveOffset for mobile.
offsetTabletas aboveOffset for tablet.
offsetDesktopas aboveOffset for desktop.
offsetWidescreenas aboveOffset for widescreen.
offsetFullhdas aboveOffset for fullhd.
isNarrowbooleanColumn is only as wide as its content.
isNarrowMobilebooleanNarrow on mobile.
isNarrowTabletbooleanNarrow on tablet.
isNarrowTouchbooleanNarrow on touch devices.
isNarrowDesktopbooleanNarrow on desktop.
isNarrowWidescreenbooleanNarrow on widescreen.
isNarrowFullhdbooleanNarrow on fullhd.
childrenReact.ReactNodeChildren to render inside the column.
...All Bulma helper and HTML props(See Helper Props)

Usage

Basic Columns Example

import { Columns, Column } from '@allxsmith/bestax-bulma';
import { Notification } from '@allxsmith/bestax-bulma/elements/Notification';

<Columns>
<Column>
<Notification color="primary">First column</Notification>
</Column>
<Column>
<Notification color="info">Second column</Notification>
</Column>
<Column>
<Notification color="link">Third column</Notification>
</Column>
<Column>
<Notification color="warning">Fourth column</Notification>
</Column>
</Columns>;

Column Sizes

<Columns>
<Column size="four-fifths">
<Notification color="primary">is-four-fifths</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
</Columns>

<Columns>
<Column size="three-quarters">
<Notification color="primary">is-three-quarters</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
</Columns>

<Columns>
<Column size="two-thirds">
<Notification color="primary">is-two-thirds</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
</Columns>

<Columns>
<Column size="three-fifths">
<Notification color="primary">is-three-fifths</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
</Columns>

<Columns>
<Column size="half">
<Notification color="primary">is-half</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
</Columns>

<Columns>
<Column size="two-fifths">
<Notification color="primary">is-two-fifths</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
</Columns>

<Columns>
<Column size="one-third">
<Notification color="primary">is-one-third</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
</Columns>

<Columns>
<Column size="one-quarter">
<Notification color="primary">is-one-quarter</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
</Columns>

<Columns>
<Column size="one-fifth">
<Notification color="primary">is-one-fifth</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
</Columns>

12 Column System

{
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12].map(num => (
<Columns key={num}>
<Column size={num}>
<Notification color="primary">is-{num}</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
<Column>
<Notification color="primary">Auto</Notification>
</Column>
</Columns>
));
}

Responsive Column Sizes

<Columns isMobile>
<Column
sizeMobile="three-quarters"
sizeTablet="two-thirds"
sizeDesktop="half"
sizeWidescreen="one-third"
sizeFullhd="one-quarter"
>
<Notification color="primary">
<code>sizeMobile="three-quarters"</code>
<br />
<code>sizeTablet="two-thirds"</code>
<br />
<code>sizeDesktop="half"</code>
<br />
<code>sizeWidescreen="one-third"</code>
<br />
<code>sizeFullhd="one-quarter"</code>
</Notification>
</Column>
<Column>
<Notification color="primary">2</Notification>
</Column>
<Column>
<Notification color="primary">3</Notification>
</Column>
<Column>
<Notification color="primary">4</Notification>
</Column>
<Column>
<Notification color="primary">5</Notification>
</Column>
</Columns>

Offsets

<Columns isMobile>
<Column size="half" offset="one-quarter">
<Notification color="primary">
is-half is-offset-one-quarter
</Notification>
</Column>
</Columns>
<Columns isMobile>
<Column size="three-fifths" offset="one-fifth">
<Notification color="primary">
is-three-fifths is-offset-one-fifth
</Notification>
</Column>
</Columns>
<Columns isMobile>
<Column size={4} offset={8}>
<Notification color="primary">is-4 is-offset-8</Notification>
</Column>
</Columns>
<Columns isMobile>
<Column size={11} offset={1}>
<Notification color="primary">is-11 is-offset-1</Notification>
</Column>
</Columns>

Narrow Columns

<Columns>
<Column isNarrow>
<Notification color="primary" style={{ width: 180 }}>
<span style={{ fontWeight: 'bold' }}>Narrow column</span>
<br />
<span>This column is only as wide as it needs to be, 180px wide.</span>
</Notification>
</Column>
<Column>
<Notification color="primary">
<span style={{ fontWeight: 'bold' }}>Flexible column</span>
<br />
<span>This column will take up the remaining space available.</span>
</Notification>
</Column>
</Columns>

Notes

  • Use the Columns component as a parent for Column children for proper row-column behavior.
  • All column, offset, and narrow props support responsive variants.
  • Combine with Bulma helper props for utility-first styling.
  • All standard <div> HTML props are supported.

See Also