2022-01-05 09:44:20 -08:00
|
|
|
|
// Grid | milligram.io | MIT License
|
|
|
|
|
// ––––––––––––––––––––––––––––––––––––––––––––––––––
|
|
|
|
|
|
|
|
|
|
// .container is main centered wrapper with a max width of 112.0rem (1120px)
|
|
|
|
|
.container {
|
|
|
|
|
position: relative;
|
|
|
|
|
width: 100%;
|
|
|
|
|
max-width: 112.0rem;
|
|
|
|
|
margin: 0 auto;
|
|
|
|
|
padding: 0 2.0rem;
|
|
|
|
|
}
|
|
|
|
|
// Using flexbox for the grid, inspired by Philip Walton:
|
|
|
|
|
// http://philipwalton.github.io/solved-by-flexbox/demos/grids/
|
2022-01-05 19:14:34 -08:00
|
|
|
|
// By default each .col within a .row will evenly take up
|
|
|
|
|
// available width, and the height of each .col with take
|
|
|
|
|
// up the height of the tallest .col in the same .row
|
2022-01-05 09:44:20 -08:00
|
|
|
|
.row {
|
|
|
|
|
display: flex;
|
2022-01-05 19:14:34 -08:00
|
|
|
|
flex-direction: col;
|
2022-01-05 09:44:20 -08:00
|
|
|
|
width: 100%;
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
|
|
|
|
&.row-no-padding {
|
|
|
|
|
padding: 0;
|
|
|
|
|
|
2022-01-05 19:14:34 -08:00
|
|
|
|
& > .col {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
padding: 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
&.row-wrap {
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
// Vertically Align cols
|
2022-01-05 09:44:20 -08:00
|
|
|
|
// .row-* vertically aligns every .col in the .row
|
|
|
|
|
&.row-top {
|
|
|
|
|
align-items: flex-start;
|
|
|
|
|
}
|
|
|
|
|
&.row-bottom {
|
|
|
|
|
align-items: flex-end;
|
|
|
|
|
}
|
|
|
|
|
&.row-center {
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
|
|
|
|
&.row-stretch {
|
|
|
|
|
align-items: stretch;
|
|
|
|
|
}
|
|
|
|
|
&.row-baseline {
|
|
|
|
|
align-items: baseline;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
.col {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
display: block;
|
|
|
|
|
// IE 11 required specifying the flex-basis otherwise it breaks mobile
|
|
|
|
|
flex: 1 1 auto;
|
|
|
|
|
width: 100%;
|
|
|
|
|
max-width: 100%;
|
|
|
|
|
margin-left: 0;
|
|
|
|
|
|
2022-01-05 19:14:34 -08:00
|
|
|
|
// col Offsets
|
|
|
|
|
&.col-offset-10 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 10%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-offset-20 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 20%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-offset-25 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 25%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-offset-33 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 33.3333%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-offset-40 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 40%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-offset-50 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 50%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-offset-60 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 60%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-offset-66 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 66.6666%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-offset-75 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 75%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-offset-80 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 80%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-offset-90 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-left: 90%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
// Explicit col Percent Sizes
|
|
|
|
|
// By default each grid col will evenly distribute
|
2022-01-05 09:44:20 -08:00
|
|
|
|
// across the grid. However, you can specify individual
|
2022-01-05 19:14:34 -08:00
|
|
|
|
// cols to take up a certain size of the available area
|
|
|
|
|
&.col-10 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 10%;
|
|
|
|
|
max-width: 10%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-20 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 20%;
|
|
|
|
|
max-width: 20%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-25 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 25%;
|
|
|
|
|
max-width: 25%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-33 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 33.3333%;
|
|
|
|
|
max-width: 33.3333%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-40 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 40%;
|
|
|
|
|
max-width: 40%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-50 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 50%;
|
|
|
|
|
max-width: 50%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-60 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 60%;
|
|
|
|
|
max-width: 60%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-66 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 66.6666%;
|
|
|
|
|
max-width: 66.6666%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-75 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 75%;
|
|
|
|
|
max-width: 75%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-80 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 80%;
|
|
|
|
|
max-width: 80%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
&.col-90 {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
flex: 0 0 90%;
|
|
|
|
|
max-width: 90%;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
// .col-* vertically aligns an individual .col
|
|
|
|
|
.col-top {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
align-self: flex-start;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
.col-bottom {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
align-self: flex-end;
|
|
|
|
|
}
|
2022-01-05 19:14:34 -08:00
|
|
|
|
.col-center {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
align-self: center;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// Larger than mobile screen
|
|
|
|
|
// Safari desktop has a bug using `rem`, but Safari mobile works
|
|
|
|
|
@media (min-width: 40.0rem) {
|
|
|
|
|
.row {
|
|
|
|
|
flex-direction: row;
|
|
|
|
|
width: calc(100% + 2.0rem);
|
|
|
|
|
margin-left: -1.0rem;
|
|
|
|
|
|
2022-01-05 19:14:34 -08:00
|
|
|
|
.col {
|
2022-01-05 09:44:20 -08:00
|
|
|
|
margin-bottom: inherit;
|
|
|
|
|
padding: 0 1.0rem;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
};
|