at-import / griddle

Simple set of abstractions for CSS Grid
MIT License
6 stars 2 forks source link

GRIDdle Build Status

                          (    (         
                          )\ ) )\   (   
   ____ ____  ___ ____   (()/(((_) ))\  
  / ___|  _ \|_ _|  _ \   ((_))_  /((_) 
 | |  _| |_) || || | | |  _| || |(_))   
 | |_| |  _ < | || |_| |/ _` || |/ -_)  
  \____|_| \_\___|____/ \__,_||_|\___|  

A simple set of helpers for working with CSS Grid.

Getting Started

GRIDdle is not a Grid Framework for CSS Grids. Rather, it's a set of helpers for writing sets of common CSS Grid properties together, in language that is likely to be more familiar to those who have used tools like Susy, Singularity, Foundation, or Bootstrap. There is no magic, just CSS Grids, so be sure you have brushed up on the docs and take a look at CSS Trick's Complete Guide to Grid before using.

Installation

GRIDdle is distributed as an NPM Module optimized for use with Eyeglass (if you're using it). To install, run the following:

$ npm install sass-griddle --save-dev

Then, in your Sass, import GRIDdle:

@import 'griddle'; // Or path to _griddle.scss if not using Eyeglass

Usage

Grid Setup Helpers

grid($grid, $gap) / columns($grid, $gap) [mixin]

Mixins to define grid columns.

Sample Input

.container {
  @include grid(100px 1fr 2fr, 1em); // @include columns
}

Sample Output

.container {
  display: grid;
  grid-gap: 1em;
  grid-template-columns: 100px 1fr 2fr;
}

vertical-grid($grid, $gap) / rows($grid, $gap) [mixin]

Mixins to define grid rows.

Sample Input

.container {
  @include vertical-grid(2fr 1fr 2fr, 1em); // @include rows
}

Sample Output

.container {
  display: grid;
  grid-row-gap: 1em;
  grid-template-rows: 2fr 1fr 2fr;
}

Span Helpers

span($span, [$start]) / column-span($span, [$start]) [mixin]

A mixin to span a number of columns.

Sample Input

.item {
  @include span(3, 1); // @include column-span
}
.item-2 {
  @include span(4); // @include column-span
}

Sample Output

.item {
  grid-column: 1 / span 3;
}
.item-2 {
  grid-column: span 4;
}

vertical-span($span, [$start]) / row-span($span, [$start]) [mixin]

Mixins to span a number of rows.

Sample Input

.item {
  @include vertical-span(1, 2); // @include row-span
}
.item-2 {
  @include vertical-span(5); // @include row-span
}

Sample Output

.item {
  grid-row: 2 / span 1;
}
.item-2 {
  grid-row: span 5;
}