Basic Column Layout
To create a column layout, wrap your.column elements inside a .columns container:
Column Sizes
Bulma provides several ways to specify column widths:Numeric Sizes (12-column grid)
Use.is-1 through .is-12 to specify column width based on a 12-column grid:
Fractional Sizes
Use semantic fraction classes for more readable code:Available Fraction Sizes
- Halves:
.is-half(50%) - Thirds:
.is-one-third(33.33%),.is-two-thirds(66.67%) - Quarters:
.is-one-quarter(25%),.is-three-quarters(75%) - Fifths:
.is-one-fifth(20%),.is-two-fifths(40%),.is-three-fifths(60%),.is-four-fifths(80%)
Narrow Columns
Use.is-narrow to make a column only as wide as its content:
Full Width Columns
Use.is-full to make a column take the entire row width:
Responsive Column Sizes
Make columns responsive by adding breakpoint suffixes:Breakpoint Suffixes
-mobile: up to 768px-tablet: 769px and up-touch: up to 1023px-desktop: 1024px and up-widescreen: 1216px and up-fullhd: 1408px and up
Example: Different Sizes per Breakpoint
Column Offsets
Push columns to the right using offset classes:Available Offset Classes
- Numeric:
.is-offset-1through.is-offset-12 - Fractional:
.is-offset-one-quarter,.is-offset-one-third,.is-offset-half,.is-offset-two-thirds,.is-offset-three-quarters - Fifths:
.is-offset-one-fifth,.is-offset-two-fifths,.is-offset-three-fifths,.is-offset-four-fifths
Column Gap
Control the spacing between columns using gap modifiers.Default Gap
The default gap is0.75rem (12px).
Custom Gap Sizes
Use.is-0 through .is-8 to adjust the gap:
n × 0.25rem:
.is-0: 0rem.is-1: 0.25rem.is-2: 0.5rem.is-3: 0.75rem (default).is-4: 1rem.is-5: 1.25rem.is-6: 1.5rem.is-7: 1.75rem.is-8: 2rem
Gapless Columns
Remove all gaps with.is-gapless:
Responsive Gap Sizes
Apply different gaps at different breakpoints:Multiline Columns
By default, columns stay on one line. Use.is-multiline to allow wrapping:
Column Alignment
Vertical Centering
Center columns vertically with.is-vcentered:
Horizontal Centering
Center columns horizontally with.is-centered:
Responsive Behavior
Mobile Columns
By default, columns stack vertically on mobile. Use.is-mobile to keep them horizontal:
Desktop-Only Columns
Use.is-desktop to display columns only on desktop screens:
Nested Columns
You can nest columns to create complex layouts:Practical Examples
Two-Column Layout
Three-Column Layout with Header
Responsive Card Grid
CSS Variables
Customize the column gap using CSS variables:Best Practices
When to use columns vs. grid
When to use columns vs. grid
Use columns when you need:
- Simple multi-column layouts
- Flexbox-based flexibility
- Precise control over individual column widths
- Support for older browsers
- Automatic responsive layouts
- Equal-width columns without manual sizing
- CSS Grid features like auto-fit and minmax
Responsive design tips
Responsive design tips
- Always test layouts on mobile first
- Use
.is-mobileonly when necessary - Combine fraction sizes with responsive suffixes for clarity
- Use multiline for wrapping layouts instead of manual rows
Performance considerations
Performance considerations
- Avoid deeply nested columns when possible
- Use gap modifiers instead of custom margin/padding
- Prefer semantic fraction classes over numeric for readability
Related Components
- Smart Grid - CSS Grid-based responsive layouts
- Container - Centered container with max-width
- Level - Horizontal layout for navbars and footers
