SCSS Grid Mixins for IE11

One of the caveats of IE11 is that it does not support autoplacement. This is a tricky thing to polyfill, though there are solutions out that may way work for you. I recommend CSS Grid in IE by Daniel Tonon for some great information about IE11 and grid.

Grid

@mixin grid() {
  display: grid;
  display: -ms-grid;
}

Column properties

@mixin grid-column($column) {
  grid-column: $column;
  -ms-grid-column: $column;
}
@mixin grid-template-columns($val) {
  grid-template-columns: $val;
  -ms-grid-columns: $val;
}
@mixin grid-template-columns-repeat($columns, $width) {
  grid-template-columns: repeat($columns, $width);
  -ms-grid-columns: unquote("(" + $width + ")[" + $columns + "]");
}
@mixin grid-column-span($start, $end) {
  grid-column: unquote($start + "/" + $end);
  -ms-grid-column: $start;
  -ms-grid-column-span: $end - 1;
}

Row properties

@mixin grid-row($row) {
  grid-row: $row;
  -ms-grid-row: $row;
}
@mixin grid-template-rows($val) {
  grid-template-rows: $val;
  -ms-grid-rows: $val;
}
@mixin grid-template-rows-repeat($rows, $width) {
  grid-template-rows: repeat($rows, $width);
  -ms-grid-rows: unquote("(" + $width + ")[" + $rows + "]");
}
@mixin grid-row-span($start, $end) {
  grid-row: unquote($start + "/" + $end);
  -ms-grid-row: $start;
  -ms-grid-row-span: $end - 1;
}

Alignment properties

@mixin justify-self($position) {
  justify-self: $position;
  -ms-grid-column-align: $position;
}