Skip to content

Grid

Sass mixins

MixinCSS properties
griddisplay: grid
grid-cols($num)grid-template-columns: repeat($num, minmax(0, 1fr))
grid-cols-nonegrid-template-columns: none
grid-rows($num)grid-template-rows: repeat($num, minmax(0, 1fr))
grid-rows-nonegrid-template-rows: none
col-span($num)grid-column: span $num / span $num
col-span-fullgrid-column: 1 / -1
row-span($num)grid-row: span $num / span $num
row-span-fullgrid-row: 1 / -1
auto-cols-autogrid-auto-columns: auto
auto-cols-mingrid-auto-columns: min-content
auto-cols-maxgrid-auto-columns: max-content
auto-cols-frgrid-auto-columns: minmax(0, 1fr)
auto-rows-autogrid-auto-rows: auto
auto-rows-mingrid-auto-rows: min-content
auto-rows-maxgrid-auto-rows: max-content
auto-rows-frgrid-auto-rows: minmax(0, 1fr)
grid-flow-rowgrid-auto-flow: row
grid-flow-colgrid-auto-flow: column
grid-flow-densegrid-auto-flow: dense
grid-flow-row-densegrid-auto-flow: row dense
grid-flow-col-densegrid-auto-flow: column dense

Responsive range mixins

Pass a base value followed by named breakpoint overrides, such as crayon.grid-cols-range(1, $md: 2, $lg: 4).

MixinPurpose
grid-cols-range($base, $breakpoints...)Responsive grid columns
grid-rows-range($base, $breakpoints...)Responsive grid rows

Utility classes

Grid Display

ClassProperty
griddisplay: grid

Grid Template Columns

ClassProperty
grid-cols-{n} (1 to 12)grid-template-columns: repeat({n}, minmax(0, 1fr))
grid-cols-nonegrid-template-columns: none

Grid Template Rows

ClassProperty
grid-rows-{n} (1 to 12)grid-template-rows: repeat({n}, minmax(0, 1fr))
grid-rows-nonegrid-template-rows: none

Grid Column Span

ClassProperty
col-span-{n} (1 to 12)grid-column: span {n} / span {n}
col-span-fullgrid-column: 1 / -1

Grid Row Span

ClassProperty
row-span-{n} (1 to 12)grid-row: span {n} / span {n}
row-span-fullgrid-row: 1 / -1

Grid Auto Columns

ClassProperty
auto-cols-autogrid-auto-columns: auto
auto-cols-mingrid-auto-columns: min-content
auto-cols-maxgrid-auto-columns: max-content
auto-cols-frgrid-auto-columns: minmax(0, 1fr)

Grid Auto Rows

ClassProperty
auto-rows-autogrid-auto-rows: auto
auto-rows-mingrid-auto-rows: min-content
auto-rows-maxgrid-auto-rows: max-content
auto-rows-frgrid-auto-rows: minmax(0, 1fr)

Grid Auto Flow

ClassProperty
grid-flow-rowgrid-auto-flow: row
grid-flow-colgrid-auto-flow: column
grid-flow-densegrid-auto-flow: dense
grid-flow-row-densegrid-auto-flow: row dense
grid-flow-col-densegrid-auto-flow: column dense

Grid examples

Sass mixins

html
<style lang="scss">
  @use "crayon-css" as crayon;

  .layout-grid {
    @include crayon.grid;
    @include crayon.grid-cols(3);
    @include crayon.gap(4);

    .wide {
      @include crayon.col-span(2);
    }

    .full-row {
      @include crayon.col-span-full;
    }
  }
</style>

Utility classes

html
<div class="layout-grid grid grid-cols-3 gap-4">
  <div class="wide col-span-2">Wide column</div>
  <div>Narrow column</div>
  <div class="full-row col-span-full">Full width row</div>
</div>

Sass functions

html
<style lang="scss">
  @use "crayon-css" as crayon;

  .layout-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: crayon.size(4);

    .wide {
      grid-column: span 2 / span 2;
    }

    .full-row {
      grid-column: 1 / -1;
    }
  }
</style>

CSS Variables

css
<style>
  .layout-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--size-4);
  }

  .layout-grid .wide {
    grid-column: span 2 / span 2;
  }

  .layout-grid .full-row {
    grid-column: 1 / -1;
  }
</style>