$column-gap: 0.75rem !default; .column { display: block; flex-basis: 0; flex-grow: 1; flex-shrink: 1; padding: $column-gap; .columns.is-mobile > &.is-narrow { flex: none; } .columns.is-mobile > &.is-full { flex: none; width: 100%; } .columns.is-mobile > &.is-three-quarters { flex: none; width: 75%; } .columns.is-mobile > &.is-two-thirds { flex: none; width: 66.6666%; } .columns.is-mobile > &.is-half { flex: none; width: 50%; } .columns.is-mobile > &.is-one-third { flex: none; width: 33.3333%; } .columns.is-mobile > &.is-one-quarter { flex: none; width: 25%; } .columns.is-mobile > &.is-one-fifth { flex: none; width: 20%; } .columns.is-mobile > &.is-two-fifths { flex: none; width: 40%; } .columns.is-mobile > &.is-three-fifths { flex: none; width: 60%; } .columns.is-mobile > &.is-four-fifths { flex: none; width: 80%; } .columns.is-mobile > &.is-offset-three-quarters { margin-left: 75%; } .columns.is-mobile > &.is-offset-two-thirds { margin-left: 66.6666%; } .columns.is-mobile > &.is-offset-half { margin-left: 50%; } .columns.is-mobile > &.is-offset-one-third { margin-left: 33.3333%; } .columns.is-mobile > &.is-offset-one-quarter { margin-left: 25%; } .columns.is-mobile > &.is-offset-one-fifth { margin-left: 20%; } .columns.is-mobile > &.is-offset-two-fifths { margin-left: 40%; } .columns.is-mobile > &.is-offset-three-fifths { margin-left: 60%; } .columns.is-mobile > &.is-offset-four-fifths { margin-left: 80%; } @for $i from 0 through 12 { .columns.is-mobile > &.is-#{$i} { flex: none; width: percentage($i / 12); } .columns.is-mobile > &.is-offset-#{$i} { margin-left: percentage($i / 12); } } @include mobile { &.is-narrow-mobile { flex: none; } &.is-full-mobile { flex: none; width: 100%; } &.is-three-quarters-mobile { flex: none; width: 75%; } &.is-two-thirds-mobile { flex: none; width: 66.6666%; } &.is-half-mobile { flex: none; width: 50%; } &.is-one-third-mobile { flex: none; width: 33.3333%; } &.is-one-quarter-mobile { flex: none; width: 25%; } &.is-one-fifth-mobile { flex: none; width: 20%; } &.is-two-fifths-mobile { flex: none; width: 40%; } &.is-three-fifths-mobile { flex: none; width: 60%; } &.is-four-fifths-mobile { flex: none; width: 80%; } &.is-offset-three-quarters-mobile { margin-left: 75%; } &.is-offset-two-thirds-mobile { margin-left: 66.6666%; } &.is-offset-half-mobile { margin-left: 50%; } &.is-offset-one-third-mobile { margin-left: 33.3333%; } &.is-offset-one-quarter-mobile { margin-left: 25%; } &.is-offset-one-fifth-mobile { margin-left: 20%; } &.is-offset-two-fifths-mobile { margin-left: 40%; } &.is-offset-three-fifths-mobile { margin-left: 60%; } &.is-offset-four-fifths-mobile { margin-left: 80%; } @for $i from 0 through 12 { &.is-#{$i}-mobile { flex: none; width: percentage($i / 12); } &.is-offset-#{$i}-mobile { margin-left: percentage($i / 12); } } } @include tablet { &.is-narrow, &.is-narrow-tablet { flex: none; } &.is-full, &.is-full-tablet { flex: none; width: 100%; } &.is-three-quarters, &.is-three-quarters-tablet { flex: none; width: 75%; } &.is-two-thirds, &.is-two-thirds-tablet { flex: none; width: 66.6666%; } &.is-half, &.is-half-tablet { flex: none; width: 50%; } &.is-one-third, &.is-one-third-tablet { flex: none; width: 33.3333%; } &.is-one-quarter, &.is-one-quarter-tablet { flex: none; width: 25%; } &.is-one-fifth, &.is-one-fifth-tablet { flex: none; width: 20%; } &.is-two-fifths, &.is-two-fifths-tablet { flex: none; width: 40%; } &.is-three-fifths, &.is-three-fifths-tablet { flex: none; width: 60%; } &.is-four-fifths, &.is-four-fifths-tablet { flex: none; width: 80%; } &.is-offset-three-quarters, &.is-offset-three-quarters-tablet { margin-left: 75%; } &.is-offset-two-thirds, &.is-offset-two-thirds-tablet { margin-left: 66.6666%; } &.is-offset-half, &.is-offset-half-tablet { margin-left: 50%; } &.is-offset-one-third, &.is-offset-one-third-tablet { margin-left: 33.3333%; } &.is-offset-one-quarter, &.is-offset-one-quarter-tablet { margin-left: 25%; } &.is-offset-one-fifth, &.is-offset-one-fifth-tablet { margin-left: 20%; } &.is-offset-two-fifths, &.is-offset-two-fifths-tablet { margin-left: 40%; } &.is-offset-three-fifths, &.is-offset-three-fifths-tablet { margin-left: 60%; } &.is-offset-four-fifths, &.is-offset-four-fifths-tablet { margin-left: 80%; } @for $i from 0 through 12 { &.is-#{$i}, &.is-#{$i}-tablet { flex: none; width: percentage($i / 12); } &.is-offset-#{$i}, &.is-offset-#{$i}-tablet { margin-left: percentage($i / 12); } } } @include touch { &.is-narrow-touch { flex: none; } &.is-full-touch { flex: none; width: 100%; } &.is-three-quarters-touch { flex: none; width: 75%; } &.is-two-thirds-touch { flex: none; width: 66.6666%; } &.is-half-touch { flex: none; width: 50%; } &.is-one-third-touch { flex: none; width: 33.3333%; } &.is-one-quarter-touch { flex: none; width: 25%; } &.is-one-fifth-touch { flex: none; width: 20%; } &.is-two-fifths-touch { flex: none; width: 40%; } &.is-three-fifths-touch { flex: none; width: 60%; } &.is-four-fifths-touch { flex: none; width: 80%; } &.is-offset-three-quarters-touch { margin-left: 75%; } &.is-offset-two-thirds-touch { margin-left: 66.6666%; } &.is-offset-half-touch { margin-left: 50%; } &.is-offset-one-third-touch { margin-left: 33.3333%; } &.is-offset-one-quarter-touch { margin-left: 25%; } &.is-offset-one-fifth-touch { margin-left: 20%; } &.is-offset-two-fifths-touch { margin-left: 40%; } &.is-offset-three-fifths-touch { margin-left: 60%; } &.is-offset-four-fifths-touch { margin-left: 80%; } @for $i from 0 through 12 { &.is-#{$i}-touch { flex: none; width: percentage($i / 12); } &.is-offset-#{$i}-touch { margin-left: percentage($i / 12); } } } @include desktop { &.is-narrow-desktop { flex: none; } &.is-full-desktop { flex: none; width: 100%; } &.is-three-quarters-desktop { flex: none; width: 75%; } &.is-two-thirds-desktop { flex: none; width: 66.6666%; } &.is-half-desktop { flex: none; width: 50%; } &.is-one-third-desktop { flex: none; width: 33.3333%; } &.is-one-quarter-desktop { flex: none; width: 25%; } &.is-one-fifth-desktop { flex: none; width: 20%; } &.is-two-fifths-desktop { flex: none; width: 40%; } &.is-three-fifths-desktop { flex: none; width: 60%; } &.is-four-fifths-desktop { flex: none; width: 80%; } &.is-offset-three-quarters-desktop { margin-left: 75%; } &.is-offset-two-thirds-desktop { margin-left: 66.6666%; } &.is-offset-half-desktop { margin-left: 50%; } &.is-offset-one-third-desktop { margin-left: 33.3333%; } &.is-offset-one-quarter-desktop { margin-left: 25%; } &.is-offset-one-fifth-desktop { margin-left: 20%; } &.is-offset-two-fifths-desktop { margin-left: 40%; } &.is-offset-three-fifths-desktop { margin-left: 60%; } &.is-offset-four-fifths-desktop { margin-left: 80%; } @for $i from 0 through 12 { &.is-#{$i}-desktop { flex: none; width: percentage($i / 12); } &.is-offset-#{$i}-desktop { margin-left: percentage($i / 12); } } } @include widescreen { &.is-narrow-widescreen { flex: none; } &.is-full-widescreen { flex: none; width: 100%; } &.is-three-quarters-widescreen { flex: none; width: 75%; } &.is-two-thirds-widescreen { flex: none; width: 66.6666%; } &.is-half-widescreen { flex: none; width: 50%; } &.is-one-third-widescreen { flex: none; width: 33.3333%; } &.is-one-quarter-widescreen { flex: none; width: 25%; } &.is-one-fifth-widescreen { flex: none; width: 20%; } &.is-two-fifths-widescreen { flex: none; width: 40%; } &.is-three-fifths-widescreen { flex: none; width: 60%; } &.is-four-fifths-widescreen { flex: none; width: 80%; } &.is-offset-three-quarters-widescreen { margin-left: 75%; } &.is-offset-two-thirds-widescreen { margin-left: 66.6666%; } &.is-offset-half-widescreen { margin-left: 50%; } &.is-offset-one-third-widescreen { margin-left: 33.3333%; } &.is-offset-one-quarter-widescreen { margin-left: 25%; } &.is-offset-one-fifth-widescreen { margin-left: 20%; } &.is-offset-two-fifths-widescreen { margin-left: 40%; } &.is-offset-three-fifths-widescreen { margin-left: 60%; } &.is-offset-four-fifths-widescreen { margin-left: 80%; } @for $i from 0 through 12 { &.is-#{$i}-widescreen { flex: none; width: percentage($i / 12); } &.is-offset-#{$i}-widescreen { margin-left: percentage($i / 12); } } } @include fullhd { &.is-narrow-fullhd { flex: none; } &.is-full-fullhd { flex: none; width: 100%; } &.is-three-quarters-fullhd { flex: none; width: 75%; } &.is-two-thirds-fullhd { flex: none; width: 66.6666%; } &.is-half-fullhd { flex: none; width: 50%; } &.is-one-third-fullhd { flex: none; width: 33.3333%; } &.is-one-quarter-fullhd { flex: none; width: 25%; } &.is-one-fifth-fullhd { flex: none; width: 20%; } &.is-two-fifths-fullhd { flex: none; width: 40%; } &.is-three-fifths-fullhd { flex: none; width: 60%; } &.is-four-fifths-fullhd { flex: none; width: 80%; } &.is-offset-three-quarters-fullhd { margin-left: 75%; } &.is-offset-two-thirds-fullhd { margin-left: 66.6666%; } &.is-offset-half-fullhd { margin-left: 50%; } &.is-offset-one-third-fullhd { margin-left: 33.3333%; } &.is-offset-one-quarter-fullhd { margin-left: 25%; } &.is-offset-one-fifth-fullhd { margin-left: 20%; } &.is-offset-two-fifths-fullhd { margin-left: 40%; } &.is-offset-three-fifths-fullhd { margin-left: 60%; } &.is-offset-four-fifths-fullhd { margin-left: 80%; } @for $i from 0 through 12 { &.is-#{$i}-fullhd { flex: none; width: percentage($i / 12); } &.is-offset-#{$i}-fullhd { margin-left: percentage($i / 12); } } } } .columns { margin-left: -$column-gap; margin-right: -$column-gap; margin-top: -$column-gap; &:last-child { margin-bottom: -$column-gap; } &:not(:last-child) { margin-bottom: calc(1.5rem - #{$column-gap}); } // Modifiers &.is-centered { justify-content: center; } &.is-gapless { margin-left: 0; margin-right: 0; margin-top: 0; & > .column { margin: 0; padding: 0 !important; } &:not(:last-child) { margin-bottom: 1.5rem; } &:last-child { margin-bottom: 0; } } &.is-mobile { display: flex; } &.is-multiline { flex-wrap: wrap; } &.is-vcentered { align-items: center; } // Responsiveness @include tablet { &:not(.is-desktop) { display: flex; } } @include desktop { // Modifiers &.is-desktop { display: flex; } } } @if $variable-columns { .columns.is-variable { --columnGap: 0.75rem; margin-left: calc(-1 * var(--columnGap)); margin-right: calc(-1 * var(--columnGap)); .column { padding-left: var(--columnGap); padding-right: var(--columnGap); } @for $i from 0 through 8 { &.is-#{$i} { --columnGap: #{$i * 0.25rem}; } @include mobile { &.is-#{$i}-mobile { --columnGap: #{$i * 0.25rem}; } } @include tablet { &.is-#{$i}-tablet { --columnGap: #{$i * 0.25rem}; } } @include tablet-only { &.is-#{$i}-tablet-only { --columnGap: #{$i * 0.25rem}; } } @include touch { &.is-#{$i}-touch { --columnGap: #{$i * 0.25rem}; } } @include desktop { &.is-#{$i}-desktop { --columnGap: #{$i * 0.25rem}; } } @include desktop-only { &.is-#{$i}-desktop-only { --columnGap: #{$i * 0.25rem}; } } @include widescreen { &.is-#{$i}-widescreen { --columnGap: #{$i * 0.25rem}; } } @include widescreen-only { &.is-#{$i}-widescreen-only { --columnGap: #{$i * 0.25rem}; } } @include fullhd { &.is-#{$i}-fullhd { --columnGap: #{$i * 0.25rem}; } } } } }