| rev | line source | 
| bsw/jbe@1309 | 1 /** | 
| bsw/jbe@1309 | 2  * Copyright 2015 Google Inc. All Rights Reserved. | 
| bsw/jbe@1309 | 3  * | 
| bsw/jbe@1309 | 4  * Licensed under the Apache License, Version 2.0 (the "License"); | 
| bsw/jbe@1309 | 5  * you may not use this file except in compliance with the License. | 
| bsw/jbe@1309 | 6  * You may obtain a copy of the License at | 
| bsw/jbe@1309 | 7  * | 
| bsw/jbe@1309 | 8  *      http://www.apache.org/licenses/LICENSE-2.0 | 
| bsw/jbe@1309 | 9  * | 
| bsw/jbe@1309 | 10  * Unless required by applicable law or agreed to in writing, software | 
| bsw/jbe@1309 | 11  * distributed under the License is distributed on an "AS IS" BASIS, | 
| bsw/jbe@1309 | 12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
| bsw/jbe@1309 | 13  * See the License for the specific language governing permissions and | 
| bsw/jbe@1309 | 14  * limitations under the License. | 
| bsw/jbe@1309 | 15  */ | 
| bsw/jbe@1309 | 16 | 
| bsw/jbe@1309 | 17 /* | 
| bsw/jbe@1309 | 18 * NOTE: Some rules here are applied using duplicate selectors. | 
| bsw/jbe@1309 | 19 * This is on purpose to increase their specificity when applied. | 
| bsw/jbe@1309 | 20 * For example: `.mdl-cell--1-col-phone.mdl-cell--1-col-phone` | 
| bsw/jbe@1309 | 21 */ | 
| bsw/jbe@1309 | 22 | 
| bsw/jbe@1309 | 23 @import "../variables"; | 
| bsw/jbe@1309 | 24 | 
| bsw/jbe@1309 | 25 .mdl-grid { | 
| bsw/jbe@1309 | 26   display: flex; | 
| bsw/jbe@1309 | 27   flex-flow: row wrap; | 
| bsw/jbe@1309 | 28   margin: 0 auto 0 auto; | 
| bsw/jbe@1309 | 29   align-items: stretch; | 
| bsw/jbe@1309 | 30 | 
| bsw/jbe@1309 | 31   &.mdl-grid--no-spacing { | 
| bsw/jbe@1309 | 32     padding: 0; | 
| bsw/jbe@1309 | 33   } | 
| bsw/jbe@1309 | 34 } | 
| bsw/jbe@1309 | 35 | 
| bsw/jbe@1309 | 36 .mdl-cell { | 
| bsw/jbe@1309 | 37   box-sizing: border-box; | 
| bsw/jbe@1309 | 38 } | 
| bsw/jbe@1309 | 39 | 
| bsw/jbe@1309 | 40 | 
| bsw/jbe@1309 | 41 .mdl-cell--top { | 
| bsw/jbe@1309 | 42   align-self: flex-start; | 
| bsw/jbe@1309 | 43 } | 
| bsw/jbe@1309 | 44 | 
| bsw/jbe@1309 | 45 .mdl-cell--middle { | 
| bsw/jbe@1309 | 46   align-self: center; | 
| bsw/jbe@1309 | 47 } | 
| bsw/jbe@1309 | 48 | 
| bsw/jbe@1309 | 49 .mdl-cell--bottom { | 
| bsw/jbe@1309 | 50   align-self: flex-end; | 
| bsw/jbe@1309 | 51 } | 
| bsw/jbe@1309 | 52 | 
| bsw/jbe@1309 | 53 .mdl-cell--stretch { | 
| bsw/jbe@1309 | 54   align-self: stretch; | 
| bsw/jbe@1309 | 55 } | 
| bsw/jbe@1309 | 56 | 
| bsw/jbe@1309 | 57 .mdl-grid.mdl-grid--no-spacing > .mdl-cell { | 
| bsw/jbe@1309 | 58   margin: 0; | 
| bsw/jbe@1309 | 59 } | 
| bsw/jbe@1309 | 60 | 
| bsw/jbe@1309 | 61 // Define order override classes. | 
| bsw/jbe@1309 | 62 @for $i from 1 through $grid-max-columns { | 
| bsw/jbe@1309 | 63   .mdl-cell--order-#{$i} { | 
| bsw/jbe@1309 | 64     order: $i; | 
| bsw/jbe@1309 | 65   } | 
| bsw/jbe@1309 | 66 } | 
| bsw/jbe@1309 | 67 | 
| bsw/jbe@1309 | 68 | 
| bsw/jbe@1309 | 69 // Mixins for width calculation. | 
| bsw/jbe@1309 | 70 @mixin partial-size($size, $columns, $gutter) { | 
| bsw/jbe@1309 | 71   width: calc(#{(($size / $columns) * 100)+"%"} - #{$gutter}); | 
| bsw/jbe@1309 | 72 | 
| bsw/jbe@1309 | 73   .mdl-grid--no-spacing > & { | 
| bsw/jbe@1309 | 74     width: #{(($size / $columns) * 100)+"%"}; | 
| bsw/jbe@1309 | 75   } | 
| bsw/jbe@1309 | 76 } | 
| bsw/jbe@1309 | 77 | 
| bsw/jbe@1309 | 78 @mixin full-size($gutter) { | 
| bsw/jbe@1309 | 79   @include partial-size(1, 1, $gutter); | 
| bsw/jbe@1309 | 80 } | 
| bsw/jbe@1309 | 81 | 
| bsw/jbe@1309 | 82 @mixin offset-size($size, $columns, $gutter) { | 
| bsw/jbe@1309 | 83   margin-left: calc(#{(($size / $columns) * 100)+"%"} + #{$gutter / 2}); | 
| bsw/jbe@1309 | 84 | 
| bsw/jbe@1309 | 85   .mdl-grid.mdl-grid--no-spacing > & { | 
| bsw/jbe@1309 | 86     margin-left: #{(($size / $columns) * 100)+"%"}; | 
| bsw/jbe@1309 | 87   } | 
| bsw/jbe@1309 | 88 } | 
| bsw/jbe@1309 | 89 | 
| bsw/jbe@1309 | 90 | 
| bsw/jbe@1309 | 91 | 
| bsw/jbe@1309 | 92 ////////// Phone ////////// | 
| bsw/jbe@1309 | 93 | 
| bsw/jbe@1309 | 94 @media (max-width: $grid-tablet-breakpoint - 1) { | 
| bsw/jbe@1309 | 95   .mdl-grid { | 
| bsw/jbe@1309 | 96     padding: $grid-phone-margin - ($grid-phone-gutter / 2); | 
| bsw/jbe@1309 | 97   } | 
| bsw/jbe@1309 | 98 | 
| bsw/jbe@1309 | 99   .mdl-cell { | 
| bsw/jbe@1309 | 100     margin: $grid-phone-gutter / 2; | 
| bsw/jbe@1309 | 101     @include partial-size($grid-cell-default-columns, $grid-phone-columns, | 
| bsw/jbe@1309 | 102         $grid-phone-gutter); | 
| bsw/jbe@1309 | 103   } | 
| bsw/jbe@1309 | 104 | 
| bsw/jbe@1309 | 105   .mdl-cell--hide-phone { | 
| bsw/jbe@1309 | 106     display: none !important; | 
| bsw/jbe@1309 | 107   } | 
| bsw/jbe@1309 | 108 | 
| bsw/jbe@1309 | 109   // Define order override classes. | 
| bsw/jbe@1309 | 110   @for $i from 1 through $grid-max-columns { | 
| bsw/jbe@1309 | 111     .mdl-cell--order-#{$i}-phone.mdl-cell--order-#{$i}-phone { | 
| bsw/jbe@1309 | 112       order: $i; | 
| bsw/jbe@1309 | 113     } | 
| bsw/jbe@1309 | 114   } | 
| bsw/jbe@1309 | 115 | 
| bsw/jbe@1309 | 116   // Define partial sizes for columnNumber < totalColumns. | 
| bsw/jbe@1309 | 117   @for $i from 1 through ($grid-phone-columns - 1) { | 
| bsw/jbe@1309 | 118     .mdl-cell--#{$i}-col, | 
| bsw/jbe@1309 | 119     .mdl-cell--#{$i}-col-phone.mdl-cell--#{$i}-col-phone { | 
| bsw/jbe@1309 | 120       @include partial-size($i, $grid-phone-columns, $grid-phone-gutter); | 
| bsw/jbe@1309 | 121     } | 
| bsw/jbe@1309 | 122   } | 
| bsw/jbe@1309 | 123 | 
| bsw/jbe@1309 | 124   // Define 100% for everything else. | 
| bsw/jbe@1309 | 125   @for $i from $grid-phone-columns through $grid-desktop-columns { | 
| bsw/jbe@1309 | 126     .mdl-cell--#{$i}-col, | 
| bsw/jbe@1309 | 127     .mdl-cell--#{$i}-col-phone.mdl-cell--#{$i}-col-phone { | 
| bsw/jbe@1309 | 128       @include full-size($grid-phone-gutter); | 
| bsw/jbe@1309 | 129     } | 
| bsw/jbe@1309 | 130   } | 
| bsw/jbe@1309 | 131 | 
| bsw/jbe@1309 | 132   // Define valid phone offsets. | 
| bsw/jbe@1309 | 133   @for $i from 1 through ($grid-phone-columns - 1) { | 
| bsw/jbe@1309 | 134     .mdl-cell--#{$i}-offset, | 
| bsw/jbe@1309 | 135     .mdl-cell--#{$i}-offset-phone.mdl-cell--#{$i}-offset-phone { | 
| bsw/jbe@1309 | 136       @include offset-size($i, $grid-phone-columns, $grid-phone-gutter); | 
| bsw/jbe@1309 | 137     } | 
| bsw/jbe@1309 | 138   } | 
| bsw/jbe@1309 | 139 } | 
| bsw/jbe@1309 | 140 | 
| bsw/jbe@1309 | 141 | 
| bsw/jbe@1309 | 142 ////////// Tablet ////////// | 
| bsw/jbe@1309 | 143 | 
| bsw/jbe@1309 | 144 @media (min-width: $grid-tablet-breakpoint) and (max-width: $grid-desktop-breakpoint - 1) { | 
| bsw/jbe@1309 | 145   .mdl-grid { | 
| bsw/jbe@1309 | 146     padding: $grid-tablet-margin - ($grid-tablet-gutter / 2); | 
| bsw/jbe@1309 | 147   } | 
| bsw/jbe@1309 | 148 | 
| bsw/jbe@1309 | 149   .mdl-cell { | 
| bsw/jbe@1309 | 150     margin: $grid-tablet-gutter / 2; | 
| bsw/jbe@1309 | 151     @include partial-size($grid-cell-default-columns, $grid-tablet-columns, | 
| bsw/jbe@1309 | 152         $grid-tablet-gutter); | 
| bsw/jbe@1309 | 153   } | 
| bsw/jbe@1309 | 154 | 
| bsw/jbe@1309 | 155   .mdl-cell--hide-tablet { | 
| bsw/jbe@1309 | 156     display: none !important; | 
| bsw/jbe@1309 | 157   } | 
| bsw/jbe@1309 | 158 | 
| bsw/jbe@1309 | 159   // Define order override classes. | 
| bsw/jbe@1309 | 160   @for $i from 1 through $grid-max-columns { | 
| bsw/jbe@1309 | 161     .mdl-cell--order-#{$i}-tablet.mdl-cell--order-#{$i}-tablet { | 
| bsw/jbe@1309 | 162       order: $i; | 
| bsw/jbe@1309 | 163     } | 
| bsw/jbe@1309 | 164   } | 
| bsw/jbe@1309 | 165 | 
| bsw/jbe@1309 | 166   // Define partial sizes for columnNumber < totalColumns. | 
| bsw/jbe@1309 | 167   @for $i from 1 through ($grid-tablet-columns - 1) { | 
| bsw/jbe@1309 | 168     .mdl-cell--#{$i}-col, | 
| bsw/jbe@1309 | 169     .mdl-cell--#{$i}-col-tablet.mdl-cell--#{$i}-col-tablet { | 
| bsw/jbe@1309 | 170       @include partial-size($i, $grid-tablet-columns, $grid-tablet-gutter); | 
| bsw/jbe@1309 | 171     } | 
| bsw/jbe@1309 | 172   } | 
| bsw/jbe@1309 | 173 | 
| bsw/jbe@1309 | 174   // Define 100% for everything else. | 
| bsw/jbe@1309 | 175   @for $i from $grid-tablet-columns through $grid-desktop-columns { | 
| bsw/jbe@1309 | 176     .mdl-cell--#{$i}-col, | 
| bsw/jbe@1309 | 177     .mdl-cell--#{$i}-col-tablet.mdl-cell--#{$i}-col-tablet { | 
| bsw/jbe@1309 | 178       @include full-size($grid-tablet-gutter); | 
| bsw/jbe@1309 | 179     } | 
| bsw/jbe@1309 | 180   } | 
| bsw/jbe@1309 | 181 | 
| bsw/jbe@1309 | 182   // Define valid tablet offsets. | 
| bsw/jbe@1309 | 183   @for $i from 1 through ($grid-tablet-columns - 1) { | 
| bsw/jbe@1309 | 184     .mdl-cell--#{$i}-offset, | 
| bsw/jbe@1309 | 185     .mdl-cell--#{$i}-offset-tablet.mdl-cell--#{$i}-offset-tablet { | 
| bsw/jbe@1309 | 186       @include offset-size($i, $grid-tablet-columns, $grid-tablet-gutter); | 
| bsw/jbe@1309 | 187     } | 
| bsw/jbe@1309 | 188   } | 
| bsw/jbe@1309 | 189 } | 
| bsw/jbe@1309 | 190 | 
| bsw/jbe@1309 | 191 | 
| bsw/jbe@1309 | 192 ////////// Desktop ////////// | 
| bsw/jbe@1309 | 193 | 
| bsw/jbe@1309 | 194 @media (min-width: $grid-desktop-breakpoint) { | 
| bsw/jbe@1309 | 195   .mdl-grid { | 
| bsw/jbe@1309 | 196     padding: $grid-desktop-margin - ($grid-desktop-gutter / 2); | 
| bsw/jbe@1309 | 197   } | 
| bsw/jbe@1309 | 198 | 
| bsw/jbe@1309 | 199   .mdl-cell { | 
| bsw/jbe@1309 | 200     margin: $grid-desktop-gutter / 2; | 
| bsw/jbe@1309 | 201     @include partial-size($grid-cell-default-columns, $grid-desktop-columns, | 
| bsw/jbe@1309 | 202         $grid-desktop-gutter); | 
| bsw/jbe@1309 | 203   } | 
| bsw/jbe@1309 | 204 | 
| bsw/jbe@1309 | 205   .mdl-cell--hide-desktop { | 
| bsw/jbe@1309 | 206     display: none !important; | 
| bsw/jbe@1309 | 207   } | 
| bsw/jbe@1309 | 208 | 
| bsw/jbe@1309 | 209   // Define order override classes. | 
| bsw/jbe@1309 | 210   @for $i from 1 through $grid-max-columns { | 
| bsw/jbe@1309 | 211     .mdl-cell--order-#{$i}-desktop.mdl-cell--order-#{$i}-desktop { | 
| bsw/jbe@1309 | 212       order: $i; | 
| bsw/jbe@1309 | 213     } | 
| bsw/jbe@1309 | 214   } | 
| bsw/jbe@1309 | 215 | 
| bsw/jbe@1309 | 216   // Define partial sizes for all numbers of columns. | 
| bsw/jbe@1309 | 217   @for $i from 1 through $grid-desktop-columns { | 
| bsw/jbe@1309 | 218     .mdl-cell--#{$i}-col, | 
| bsw/jbe@1309 | 219     .mdl-cell--#{$i}-col-desktop.mdl-cell--#{$i}-col-desktop { | 
| bsw/jbe@1309 | 220       @include partial-size($i, $grid-desktop-columns, $grid-desktop-gutter); | 
| bsw/jbe@1309 | 221     } | 
| bsw/jbe@1309 | 222   } | 
| bsw/jbe@1309 | 223 | 
| bsw/jbe@1309 | 224   // Define valid desktop offsets. | 
| bsw/jbe@1309 | 225   @for $i from 1 through ($grid-desktop-columns - 1) { | 
| bsw/jbe@1309 | 226     .mdl-cell--#{$i}-offset, | 
| bsw/jbe@1309 | 227     .mdl-cell--#{$i}-offset-desktop.mdl-cell--#{$i}-offset-desktop { | 
| bsw/jbe@1309 | 228       @include offset-size($i, $grid-desktop-columns, $grid-desktop-gutter); | 
| bsw/jbe@1309 | 229     } | 
| bsw/jbe@1309 | 230   } | 
| bsw/jbe@1309 | 231 } |