mirror of https://github.com/juliancwirko/abc.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
292 lines
7.4 KiB
292 lines
7.4 KiB
// Foundation by ZURB |
|
// foundation.zurb.com |
|
// Licensed under MIT Open Source |
|
|
|
@import 'global'; |
|
|
|
// |
|
// @variables |
|
// |
|
$include-html-grid-classes: $include-html-classes !default; |
|
$include-xl-html-grid-classes: false !default; |
|
|
|
$row-width: rem-calc(1000) !default; |
|
$total-columns: 12 !default; |
|
|
|
$last-child-float: $opposite-direction !default; |
|
|
|
// |
|
// Grid Functions |
|
// |
|
|
|
// Deprecated: We'll drop support for this in 5.1, use grid-calc() |
|
@function gridCalc($colNumber, $totalColumns) { |
|
@warn "gridCalc() is deprecated, use grid-calc()"; |
|
@return grid-calc($colNumber, $totalColumns); |
|
} |
|
|
|
// @FUNCTION |
|
// $colNumber - Found in settings file |
|
// $totalColumns - Found in settings file |
|
@function grid-calc($colNumber, $totalColumns) { |
|
$result: percentage(($colNumber / $totalColumns)); |
|
@if $result == 0% { $result: 0; } |
|
@return $result; |
|
} |
|
|
|
// |
|
// @mixins |
|
// |
|
|
|
// For creating container, nested, and collapsed rows. |
|
// |
|
// |
|
// $behavior - Any special behavior for this row? Default: false. Options: nest, collapse, nest-collapse, false. |
|
@mixin grid-row($behavior: false) { |
|
|
|
// use @include grid-row(nest); to include a nested row |
|
@if $behavior == nest { |
|
margin: 0 (-($column-gutter/2)); |
|
max-width: none; |
|
width: auto; |
|
} |
|
|
|
// use @include grid-row(collapse); to collapsed a container row margins |
|
@else if $behavior == collapse { |
|
margin: 0; |
|
max-width: $row-width; |
|
width: 100%; |
|
} |
|
|
|
// use @include grid-row(nest-collapse); to collapse outer margins on a nested row |
|
@else if $behavior == nest-collapse { |
|
margin: 0; |
|
max-width: none; |
|
width: auto; |
|
} |
|
|
|
// use @include grid-row; to use a container row |
|
@else { |
|
margin: 0 auto; |
|
max-width: $row-width; |
|
width: 100%; |
|
} |
|
|
|
// Clearfix for all rows |
|
@include clearfix(); |
|
} |
|
|
|
// Creates a column, should be used inside of a media query to control layouts |
|
// |
|
// $columns - The number of columns this should be |
|
// $last-column - Is this the last column? Default: false. |
|
// $center - Center these columns? Default: false. |
|
// $offset - # of columns to offset. Default: false. |
|
// $push - # of columns to push. Default: false. |
|
// $pull - # of columns to pull. Default: false. |
|
// $collapse - Get rid of gutter padding on column? Default: false. |
|
// $float - Should this float? Default: true. Options: true, false, left, right. |
|
@mixin grid-column( |
|
$columns:false, |
|
$last-column:false, |
|
$center:false, |
|
$offset:false, |
|
$push:false, |
|
$pull:false, |
|
$collapse:false, |
|
$float:true, |
|
$position:false) { |
|
|
|
// If positioned for default .column, include relative position |
|
// push and pull require position set |
|
@if $position or $push or $pull { |
|
position: relative; |
|
} |
|
|
|
// If collapsed, get rid of gutter padding |
|
@if $collapse { |
|
padding-left: 0; |
|
padding-right: 0; |
|
} |
|
|
|
// Gutter padding whenever a column isn't set to collapse |
|
// (use $collapse:null to do nothing) |
|
@else if $collapse == false { |
|
padding-left: ($column-gutter / 2); |
|
padding-right: ($column-gutter / 2); |
|
} |
|
|
|
// If a column number is given, calculate width |
|
@if $columns { |
|
width: grid-calc($columns, $total-columns); |
|
|
|
// If last column, float naturally instead of to the right |
|
@if $last-column { float: $opposite-direction; } |
|
} |
|
|
|
// Source Ordering, adds left/right depending on which you use. |
|
@if $push { #{$default-float}: grid-calc($push, $total-columns); #{$opposite-direction}: auto; } |
|
@if $pull { #{$opposite-direction}: grid-calc($pull, $total-columns); #{$default-float}: auto; } |
|
|
|
@if $float { |
|
@if $float == left or $float == true { float: $default-float; } |
|
@else if $float == right { float: $opposite-direction; } |
|
@else { float: none; } |
|
} |
|
|
|
// If centered, get rid of float and add appropriate margins |
|
@if $center { |
|
margin-#{$default-float}: auto; |
|
margin-#{$opposite-direction}: auto; |
|
float: none; |
|
} |
|
|
|
// If offset, calculate appropriate margins |
|
@if $offset { margin-#{$default-float}: grid-calc($offset, $total-columns) !important; } |
|
|
|
} |
|
|
|
// Create presentational classes for grid |
|
// |
|
// $size - Name of class to use, i.e. "large" will generate .large-1, .large-2, etc. |
|
@mixin grid-html-classes($size) { |
|
|
|
@for $i from 0 through $total-columns - 1 { |
|
.#{$size}-push-#{$i} { |
|
@include grid-column($push:$i, $collapse:null, $float:false); |
|
} |
|
.#{$size}-pull-#{$i} { |
|
@include grid-column($pull:$i, $collapse:null, $float:false); |
|
} |
|
} |
|
|
|
.column, |
|
.columns { @include grid-column($columns:false, $position:true); } |
|
|
|
|
|
@for $i from 1 through $total-columns { |
|
.#{$size}-#{$i} { @include grid-column($columns:$i, $collapse:null, $float:false); } |
|
} |
|
|
|
@for $i from 0 through $total-columns - 1 { |
|
.#{$size}-offset-#{$i} { @include grid-column($offset:$i, $collapse:null, $float:false); } |
|
} |
|
|
|
.#{$size}-reset-order { |
|
float: $default-float; |
|
left: auto; |
|
margin-#{$default-float}: 0; |
|
margin-#{$opposite-direction}: 0; |
|
right: auto; |
|
} |
|
|
|
.column.#{$size}-centered, |
|
.columns.#{$size}-centered { @include grid-column($center:true, $collapse:null, $float:false); } |
|
|
|
.column.#{$size}-uncentered, |
|
.columns.#{$size}-uncentered { |
|
float: $default-float; |
|
margin-#{$default-float}: 0; |
|
margin-#{$opposite-direction}: 0; |
|
} |
|
|
|
// Fighting [class*="column"] + [class*="column"]:last-child |
|
.column.#{$size}-centered:last-child, |
|
.columns.#{$size}-centered:last-child{ |
|
float: none; |
|
} |
|
|
|
// Fighting .column.<previous-size>-centered:last-child |
|
.column.#{$size}-uncentered:last-child, |
|
.columns.#{$size}-uncentered:last-child { |
|
float: $default-float; |
|
} |
|
|
|
.column.#{$size}-uncentered.opposite, |
|
.columns.#{$size}-uncentered.opposite { |
|
float: $opposite-direction; |
|
} |
|
|
|
.row { |
|
&.#{$size}-collapse { |
|
> .column, |
|
> .columns { @include grid-column($collapse:true, $float:false); } |
|
|
|
.row {margin-left:0; margin-right:0;} |
|
} |
|
&.#{$size}-uncollapse { |
|
> .column, |
|
> .columns { |
|
@include grid-column; |
|
} |
|
} |
|
} |
|
} |
|
|
|
@include exports("grid") { |
|
@if $include-html-grid-classes { |
|
.row { |
|
@include grid-row; |
|
|
|
&.collapse { |
|
> .column, |
|
> .columns { @include grid-column($collapse:true, $float:false); } |
|
|
|
.row {margin-left:0; margin-right:0;} |
|
} |
|
|
|
.row { @include grid-row($behavior:nest); |
|
&.collapse { @include grid-row($behavior:nest-collapse); } |
|
} |
|
} |
|
|
|
.column, |
|
.columns { @include grid-column($columns:$total-columns); } |
|
|
|
.column, |
|
.columns { |
|
& + &:last-child { |
|
float: $last-child-float; |
|
} |
|
& + &.end { |
|
float: $default-float; |
|
} |
|
} |
|
|
|
@media #{$small-up} { |
|
@include grid-html-classes($size:small); |
|
} |
|
|
|
@media #{$medium-up} { |
|
@include grid-html-classes($size:medium); |
|
// Old push and pull classes |
|
@for $i from 0 through $total-columns - 1 { |
|
.push-#{$i} { |
|
@include grid-column($push:$i, $collapse:null, $float:false); |
|
} |
|
.pull-#{$i} { |
|
@include grid-column($pull:$i, $collapse:null, $float:false); |
|
} |
|
} |
|
} |
|
@media #{$large-up} { |
|
@include grid-html-classes($size:large); |
|
@for $i from 0 through $total-columns - 1 { |
|
.push-#{$i} { |
|
@include grid-column($push:$i, $collapse:null, $float:false); |
|
} |
|
.pull-#{$i} { |
|
@include grid-column($pull:$i, $collapse:null, $float:false); |
|
} |
|
} |
|
} |
|
} |
|
@if $include-xl-html-grid-classes { |
|
@media #{$xlarge-up} { |
|
@include grid-html-classes($size:xlarge); |
|
} |
|
@media #{$xxlarge-up} { |
|
@include grid-html-classes($size:xxlarge); |
|
} |
|
} |
|
}
|
|
|