CSS grid module for Basscss providing responsive float-based grid utilities
npx @tessl/cli install tessl/npm-basscss-grid@2.0.0Basscss Grid is a modular CSS grid system providing float-based layout utilities with a 12-column grid structure. Part of the Basscss ecosystem, it offers responsive breakpoint variants and utility classes for creating flexible, maintainable grid layouts using atomic CSS principles. It works in combination with other Basscss modules for complete layout functionality.
npm install basscss-grid/* Import the complete grid system */
@import "basscss-grid";Or import individual modules:
@import "basscss-grid/lib/grid"; /* Base grid classes */
@import "basscss-grid/lib/sm-grid"; /* Small breakpoint classes */
@import "basscss-grid/lib/md-grid"; /* Medium breakpoint classes */
@import "basscss-grid/lib/lg-grid"; /* Large breakpoint classes */<!-- Basic two-column layout -->
<div class="clearfix">
<div class="col col-6">Column 1</div>
<div class="col col-6">Column 2</div>
</div>
<!-- Responsive layout -->
<div class="clearfix">
<div class="sm-col sm-col-6 md-col-4 lg-col-3">Responsive column</div>
<div class="sm-col sm-col-6 md-col-8 lg-col-9">Main content</div>
</div>
<!-- With gutters using padding utilities -->
<div class="clearfix mxn2">
<div class="col col-6 px2">Column with gutter</div>
<div class="col col-6 px2">Column with gutter</div>
</div>Basscss Grid follows atomic CSS principles with a modular structure:
box-sizing: border-boxCore grid classes for creating columns without breakpoint constraints.
.col {
float: left;
box-sizing: border-box;
}
.col-right {
float: right;
box-sizing: border-box;
}
.col-1 { width: calc(1/12 * 100%); } /* 8.333% */
.col-2 { width: calc(2/12 * 100%); } /* 16.667% */
.col-3 { width: calc(3/12 * 100%); } /* 25% */
.col-4 { width: calc(4/12 * 100%); } /* 33.333% */
.col-5 { width: calc(5/12 * 100%); } /* 41.667% */
.col-6 { width: calc(6/12 * 100%); } /* 50% */
.col-7 { width: calc(7/12 * 100%); } /* 58.333% */
.col-8 { width: calc(8/12 * 100%); } /* 66.667% */
.col-9 { width: calc(9/12 * 100%); } /* 75% */
.col-10 { width: calc(10/12 * 100%); } /* 83.333% */
.col-11 { width: calc(11/12 * 100%); } /* 91.667% */
.col-12 { width: 100%; } /* 100% */Responsive grid classes that activate at the small breakpoint and larger screens.
@media (min-width: 40em) {
.sm-col {
float: left;
box-sizing: border-box;
}
.sm-col-right {
float: right;
box-sizing: border-box;
}
.sm-col-1 { width: calc(1/12 * 100%); }
.sm-col-2 { width: calc(2/12 * 100%); }
.sm-col-3 { width: calc(3/12 * 100%); }
.sm-col-4 { width: calc(4/12 * 100%); }
.sm-col-5 { width: calc(5/12 * 100%); }
.sm-col-6 { width: calc(6/12 * 100%); }
.sm-col-7 { width: calc(7/12 * 100%); }
.sm-col-8 { width: calc(8/12 * 100%); }
.sm-col-9 { width: calc(9/12 * 100%); }
.sm-col-10 { width: calc(10/12 * 100%); }
.sm-col-11 { width: calc(11/12 * 100%); }
.sm-col-12 { width: 100%; }
}Responsive grid classes that activate at the medium breakpoint and larger screens.
@media (min-width: 52em) {
.md-col {
float: left;
box-sizing: border-box;
}
.md-col-right {
float: right;
box-sizing: border-box;
}
.md-col-1 { width: calc(1/12 * 100%); }
.md-col-2 { width: calc(2/12 * 100%); }
.md-col-3 { width: calc(3/12 * 100%); }
.md-col-4 { width: calc(4/12 * 100%); }
.md-col-5 { width: calc(5/12 * 100%); }
.md-col-6 { width: calc(6/12 * 100%); }
.md-col-7 { width: calc(7/12 * 100%); }
.md-col-8 { width: calc(8/12 * 100%); }
.md-col-9 { width: calc(9/12 * 100%); }
.md-col-10 { width: calc(10/12 * 100%); }
.md-col-11 { width: calc(11/12 * 100%); }
.md-col-12 { width: 100%; }
}Responsive grid classes that activate at the large breakpoint and larger screens.
@media (min-width: 64em) {
.lg-col {
float: left;
box-sizing: border-box;
}
.lg-col-right {
float: right;
box-sizing: border-box;
}
.lg-col-1 { width: calc(1/12 * 100%); }
.lg-col-2 { width: calc(2/12 * 100%); }
.lg-col-3 { width: calc(3/12 * 100%); }
.lg-col-4 { width: calc(4/12 * 100%); }
.lg-col-5 { width: calc(5/12 * 100%); }
.lg-col-6 { width: calc(6/12 * 100%); }
.lg-col-7 { width: calc(7/12 * 100%); }
.lg-col-8 { width: calc(8/12 * 100%); }
.lg-col-9 { width: calc(9/12 * 100%); }
.lg-col-10 { width: calc(10/12 * 100%); }
.lg-col-11 { width: calc(11/12 * 100%); }
.lg-col-12 { width: 100%; }
}Breakpoint definitions using PostCSS custom media queries.
@custom-media --breakpoint-sm (min-width: 40em);
@custom-media --breakpoint-md (min-width: 52em);
@custom-media --breakpoint-lg (min-width: 64em);Always use a clearfix container to properly clear floated columns:
<div class="clearfix">
<!-- Grid columns here -->
</div>Use margin and padding utilities for gutters:
<!-- 2-unit gutters -->
<div class="clearfix mxn2">
<div class="col col-6 px2">Content</div>
<div class="col col-6 px2">Content</div>
</div>
<!-- 1-unit gutters -->
<div class="clearfix mxn1">
<div class="col col-6 px1">Content</div>
<div class="col col-6 px1">Content</div>
</div>Combine multiple breakpoint classes for responsive behavior:
<div class="clearfix">
<!-- Mobile: full width, Tablet: half width, Desktop: one-third -->
<div class="sm-col sm-col-6 lg-col-4">Column 1</div>
<div class="sm-col sm-col-6 lg-col-8">Column 2</div>
</div>Nest entire grid structures within columns:
<div class="clearfix mxn2">
<div class="col col-8 px2">
<div class="clearfix mxn2">
<div class="col col-6 px2">Nested</div>
<div class="col col-6 px2">Nested</div>
</div>
</div>
<div class="col col-4 px2">Sidebar</div>
</div>Use .col-right to reverse column order:
<div class="clearfix">
<div class="col-right col-4">Appears on right</div>
<div class="col col-8">Appears on left</div>
</div>Use margin utilities to center columns:
<div class="clearfix">
<div class="col col-8 mx-auto">Centered column</div>
</div>Basscss Grid is designed to work with other Basscss modules and requires external utility classes for complete functionality:
.clearfix class for proper float clearing (from basscss-layout or similar)box-sizing: border-boxNote: While basscss-grid provides the core grid classes, it's typically used as part of the complete Basscss toolkit which includes all necessary utility modules.