milligram/src/_Grid.sass

158 lines
2.8 KiB
Sass
Raw Normal View History

2015-12-26 01:57:14 +00:00
// Grid
//
2016-01-30 05:25:57 +00:00
// .container is main centered wrapper with a max width of 112.0rem (1120px)
2015-12-26 01:57:14 +00:00
.container
margin: 0 auto
max-width: 112.0rem
padding: 0 2.0rem
position: relative
width: 100%
// Using flexbox for the grid, inspired by Philip Walton:
// http://philipwalton.github.io/solved-by-flexbox/demos/grids/
// By default each .column within a .row will evenly take up
// available width, and the height of each .column with take
2016-07-03 21:54:08 +00:00
// up the height of the tallest .column in the same .row
2015-12-26 01:57:14 +00:00
.row
display: flex
flex-direction: column
padding: 0
width: 100%
&.row-no-padding
2015-12-26 01:57:14 +00:00
padding: 0
&> .column
padding: 0
2016-08-01 06:04:03 +00:00
&.row-wrap
2015-12-26 01:57:14 +00:00
flex-wrap: wrap
// Vertically Align Columns
// .row-* vertically aligns every .col in the .row
&.row-top
2015-12-26 01:57:14 +00:00
align-items: flex-start
&.row-bottom
2015-12-26 01:57:14 +00:00
align-items: flex-end
&.row-center
2015-12-26 01:57:14 +00:00
align-items: center
&.row-stretch
2015-12-26 01:57:14 +00:00
align-items: stretch
&.row-baseline
2015-12-26 01:57:14 +00:00
align-items: baseline
.column
display: block
flex: 1
margin-left: 0
max-width: 100%
width: 100%
// Column Offsets
&.column-offset-10
margin-left: 10%
&.column-offset-20
margin-left: 20%
&.column-offset-25
margin-left: 25%
&.column-offset-33,
&.column-offset-34
margin-left: 33.3333%
&.column-offset-50
margin-left: 50%
&.column-offset-66,
&.column-offset-67
margin-left: 66.6666%
&.column-offset-75
margin-left: 75%
&.column-offset-80
margin-left: 80%
&.column-offset-90
margin-left: 90%
// Explicit Column Percent Sizes
// By default each grid column will evenly distribute
// across the grid. However, you can specify individual
// columns to take up a certain size of the available area
&.column-10
flex: 0 0 10%
max-width: 10%
&.column-20
flex: 0 0 20%
max-width: 20%
&.column-25
flex: 0 0 25%
max-width: 25%
&.column-33,
&.column-34
flex: 0 0 33.3333%
max-width: 33.3333%
&.column-40
flex: 0 0 40%
max-width: 40%
&.column-50
flex: 0 0 50%
max-width: 50%
&.column-60
flex: 0 0 60%
max-width: 60%
2016-08-01 06:04:03 +00:00
&.column-66,
&.column-67
2015-12-26 01:57:14 +00:00
flex: 0 0 66.6666%
max-width: 66.6666%
&.column-75
flex: 0 0 75%
max-width: 75%
&.column-80
flex: 0 0 80%
max-width: 80%
&.column-90
flex: 0 0 90%
max-width: 90%
2016-09-10 00:53:14 +00:00
// .column-* vertically aligns an individual .column
.column-top
align-self: flex-start
.column-bottom
align-self: flex-end
.column-center
align-self: center
2015-12-26 01:57:14 +00:00
// Larger than mobile screen
2016-09-10 05:26:01 +00:00
@media (min-width: 40.0rem) // Safari desktop has a bug using `rem`, but Safari mobile works
2015-12-26 01:57:14 +00:00
.row
flex-direction: row
margin-left: -1.0rem
width: calc(100% + 2.0rem)
.column
margin-bottom: inherit
padding: 0 1.0rem