From: Brett Mason Date: Thu, 1 Jun 2017 09:00:02 +0000 (+0100) Subject: Rework everything for the new grid to be called the XY Grid. Add missing comments... X-Git-Tag: v6.4.0-rc1~9^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c514fb4b172ae96de3ccb41c521fe40667a6a3fe;p=thirdparty%2Ffoundation%2Ffoundation-sites.git Rework everything for the new grid to be called the XY Grid. Add missing comments and possible arguements to some mixins. --- diff --git a/docs/assets/scss/examples/_grid.scss b/docs/assets/scss/examples/_grid.scss index 220671a43..116876e90 100644 --- a/docs/assets/scss/examples/_grid.scss +++ b/docs/assets/scss/examples/_grid.scss @@ -76,7 +76,7 @@ } // Flex Grid [id^="docs-zf"].docs-component .docs-code-live { - @include foundation-zf-grid-classes; + @include foundation-xy-grid-classes; .grid { background: #f9f9f9; diff --git a/docs/pages/zf-grid.md b/docs/pages/xy-grid.md similarity index 89% rename from docs/pages/zf-grid.md rename to docs/pages/xy-grid.md index d989f6daf..0a1156b28 100644 --- a/docs/pages/zf-grid.md +++ b/docs/pages/xy-grid.md @@ -1,16 +1,16 @@ --- -title: ZF Grid +title: XY Grid description: A fully reworked new grid system in v6.4 which has all the variety inbuilt in the form of multiple grid types which includes margin grid, padding grid, frame grid, block grid and vertical grid. -sass: scss/grid/_zf-grid.scss +sass: scss/xy-grid/_xy-grid.scss --- -The flex grid works very similarly to the standard float grid, but includes a number of useful features only possible with flexbox, like horizontal and vertical alignment, automatic sizing, and easier source ordering. +The XY grid works very similarly to the standard float grid, but includes a number of useful features only possible with flexbox, like horizontal and vertical alignment, automatic sizing, and easier source ordering. --- ## Browser support -The flex grid is only supported in Chrome, Firefox, Safari 6+, IE10+, iOS 7+, and Android 4.4+. Flexbox is supported in Android 2, but not reliably enough for use with this grid. ([View flexbox browser support.](http://caniuse.com/#feat=flexbox)) We recommend only using the flex grid on projects that can live with purely cutting-edge browser support. +XY grid is only supported in Chrome, Firefox, Safari 6+, IE10+, iOS 7+, and Android 4.4+. Flexbox is supported in Android 2, but not reliably enough for use with this grid. ([View flexbox browser support.](http://caniuse.com/#feat=flexbox)) We recommend only using the flex grid on projects that can live with purely cutting-edge browser support. --- @@ -21,8 +21,8 @@ If you're using the CSS version of Foundation, you can generate a .auto { - @include zf-cell-base(auto); - @include zf-cell-static(auto, false); + @include xy-cell-base(auto); + @include xy-cell-static(auto, false); } > .shrink { - @include zf-cell-base(shrink); - @include zf-cell-static(shrink, false); + @include xy-cell-base(shrink); + @include xy-cell-static(shrink, false); } } @@ -53,41 +53,41 @@ @include -zf-each-breakpoint() { @if not($-zf-size == small) { .grid > .#{$-zf-size}-auto { - @include zf-cell-base(auto); - @include zf-cell-static(auto, false); + @include xy-cell-base(auto); + @include xy-cell-static(auto, false); } .grid > .#{$-zf-size}-shrink { - @include zf-cell-base(shrink); - @include zf-cell-static(shrink, false); + @include xy-cell-base(shrink); + @include xy-cell-static(shrink, false); } &.#{$-zf-size}-grid-frame { width: auto; - @include zf-grid-frame(true); + @include xy-grid-frame(true); } .#{$-zf-size}-cell-block { - @include zf-cell-block(); + @include xy-cell-block(); } } @for $i from 1 through $grid-columns { // Sizing (percentage) .#{$-zf-size}-#{$i} { - @include zf-cell-static($i, false, $gutter-type: padding); + @include xy-cell-static($i, false, $gutter-type: padding); } } } } -@mixin -zf-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) { +@mixin -xy-breakpoint-cell-classes($class-breakpoint, $gutter-breakpoint, $vertical) { $prefix: if($class-breakpoint == $-zf-zero-breakpoint, '', '#{$class-breakpoint}-'); > .#{$prefix}auto { - @include zf-cell-static(auto, false, $breakpoint: $gutter-breakpoint, $vertical: $vertical); + @include xy-cell-static(auto, false, $breakpoint: $gutter-breakpoint, $vertical: $vertical); } > .#{$prefix}shrink { - @include zf-cell-static(shrink, false, $breakpoint: $gutter-breakpoint, $vertical: $vertical); + @include xy-cell-static(shrink, false, $breakpoint: $gutter-breakpoint, $vertical: $vertical); } @for $i from 1 through $grid-columns { @@ -95,30 +95,30 @@ $classname: if($vertical, '.#{$class-breakpoint}-vertical-#{$i}', '.#{$class-breakpoint}-#{$i}'); > #{$classname} { - @include zf-cell-static($i, false, $breakpoint: $gutter-breakpoint, $vertical: $vertical); + @include xy-cell-static($i, false, $breakpoint: $gutter-breakpoint, $vertical: $vertical); } } } // Margin Grid classes -@mixin zf-margin-grid-classes( +@mixin xy-margin-grid-classes( $gutter-position: left right, $vertical: false, $wrapping-selector: '.margin-gutters' ){ #{$wrapping-selector} { - @include zf-gutters($negative: true, $gutter-position: $gutter-position); + @include xy-gutters($negative: true, $gutter-position: $gutter-position); // Base cell styles > .cell { - @include zf-cell-static($vertical: $vertical); + @include xy-cell-static($vertical: $vertical); } // base styles need to all be before the auto and shrink styles @include -zf-each-breakpoint() { @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size) and $-zf-size != $-zf-zero-breakpoint) { > .cell { - @include zf-cell-static($breakpoint: $-zf-size, $vertical: $vertical); + @include xy-cell-static($breakpoint: $-zf-size, $vertical: $vertical); } } } @@ -128,36 +128,36 @@ // This is purely for responsive gutters - the margin grid has to go back and adjust widths (or heights) // for prior breakpoints based on the responsive gutter. @if(type-of($grid-margin-gutters) == 'map' and map-has-key($grid-margin-gutters, $-zf-size)) { - @each $bp in -zf-breakpoints-less-than($-zf-size) { + @each $bp in -xy-breakpoints-less-than($-zf-size) { @if(map-has-key($grid-margin-gutters, $bp)) { - @include -zf-breakpoint-cell-classes($bp, $-zf-size, $vertical); + @include -xy-breakpoint-cell-classes($bp, $-zf-size, $vertical); } } } - @include -zf-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical); + @include -xy-breakpoint-cell-classes($-zf-size, $-zf-size, $vertical); } } } // Padding Grid classes -@mixin zf-padding-grid-classes { +@mixin xy-padding-grid-classes { .padding-gutters { // Negative margin for nested grids .padding-gutters { - @include zf-gutters($negative: true); + @include xy-gutters($negative: true); } // Base cell styles > .cell { - @include zf-gutters($gutters: $grid-padding-gutters, $gutter-type: padding); + @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding); } } } // Block Grid classes -@mixin zf-block-grid-classes($margin-grid: true, $padding-grid: true) { +@mixin xy-block-grid-classes($margin-grid: true, $padding-grid: true) { @if $margin-grid { @include -zf-each-breakpoint { @for $i from 1 through $block-grid-max { @@ -167,7 +167,7 @@ @each $bp in -zf-breakpoints-less-than($-zf-size) { @if(map-has-key($grid-margin-gutters, $bp)) { .margin-gutters.#{$bp}-up-#{$i} { - @include zf-grid-layout($i, '.cell', false, $gutter-type: margin, $breakpoint: $bp); + @include xy-grid-layout($i, '.cell', false, $gutter-type: margin, $breakpoint: $bp); } } } @@ -175,7 +175,7 @@ } @for $i from 1 through $block-grid-max { .margin-gutters.#{$-zf-size}-up-#{$i} { - @include zf-grid-layout($i, '.cell', false, $gutter-type: margin, $breakpoint: $-zf-size); + @include xy-grid-layout($i, '.cell', false, $gutter-type: margin, $breakpoint: $-zf-size); } } } @@ -185,7 +185,7 @@ @include -zf-each-breakpoint { @for $i from 1 through $block-grid-max { .padding-gutters.#{$-zf-size}-up-#{$i} { - @include zf-grid-layout($i, '.cell', false, $gutter-type: padding); + @include xy-grid-layout($i, '.cell', false, $gutter-type: padding); } } } @@ -193,100 +193,100 @@ } // Collapse classes -@mixin zf-collapse-grid-classes($margin-grid: true, $padding-grid: true) { +@mixin xy-collapse-grid-classes($margin-grid: true, $padding-grid: true) { @include -zf-each-breakpoint { @if $margin-grid { .#{$-zf-size}-margin-collapse { - @include zf-grid-collapse($gutter-type: margin); + @include xy-grid-collapse($gutter-type: margin); } } @if $padding-grid { .#{$-zf-size}-padding-collapse { - @include zf-grid-collapse($gutter-type: padding); + @include xy-grid-collapse($gutter-type: padding); } } } } // Offset classes -@mixin zf-offset-cell-classes { +@mixin xy-offset-cell-classes { @include -zf-each-breakpoint { @for $i from 1 through $grid-columns { // Offsets $o: $i - 1; .#{$-zf-size}-offset-#{$o} { - @include zf-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding, $breakpoint: $-zf-size); + @include xy-cell-offset($o, $gutters: $grid-padding-gutters, $gutter-type: padding, $breakpoint: $-zf-size); } .margin-gutters > .#{$-zf-size}-offset-#{$o} { - @include zf-cell-offset($o, $breakpoint: $-zf-size); + @include xy-cell-offset($o, $breakpoint: $-zf-size); } } } } // Vertical Grid classes -@mixin zf-vertical-grid-classes( +@mixin xy-vertical-grid-classes( $margin-grid: true, $padding-grid: true ) { .cell-block-vertical { - @include zf-cell-block(true); + @include xy-cell-block(true); } @include -zf-each-breakpoint() { @if not($-zf-size == small) { .#{$-zf-size}-cell-block-vertical { - @include zf-cell-block(true); + @include xy-cell-block(true); } } } .grid-vertical { - @include zf-grid(vertical); + @include xy-grid(vertical); &.grid-frame { width: auto; - @include zf-grid-frame(true); + @include xy-grid-frame(true); } > .cell { - @include zf-cell-reset(); + @include xy-cell-reset(); } > .auto { - @include zf-cell-static(auto, false, $breakpoint: $-zf-size, $vertical: true); + @include xy-cell-static(auto, false, $breakpoint: $-zf-size, $vertical: true); } > .shrink { - @include zf-cell-static(shrink, false, $breakpoint: $-zf-size, $vertical: true); + @include xy-cell-static(shrink, false, $breakpoint: $-zf-size, $vertical: true); } @include -zf-each-breakpoint() { @if not($-zf-size == small) { > .#{$-zf-size}-auto { - @include zf-cell-static(auto, false, $breakpoint: $-zf-size, $vertical: true); + @include xy-cell-static(auto, false, $breakpoint: $-zf-size, $vertical: true); } > .#{$-zf-size}-shrink { - @include zf-cell-static(shrink, false, $breakpoint: $-zf-size, $vertical: true); + @include xy-cell-static(shrink, false, $breakpoint: $-zf-size, $vertical: true); } &.#{$-zf-size}-grid-frame { width: auto; - @include zf-grid-frame(true); + @include xy-grid-frame(true); } } @for $i from 1 through $grid-columns { // Sizing (percentage) > .#{$-zf-size}-vertical-#{$i} { - @include zf-cell-static($i, false, $vertical: true, $gutter-type: padding); + @include xy-cell-static($i, false, $vertical: true, $gutter-type: padding); } } } @@ -295,24 +295,24 @@ &.padding-gutters { // Negative margin for nested grids .padding-gutters { - @include zf-gutters($negative: true, $gutter-position: top bottom); + @include xy-gutters($negative: true, $gutter-position: top bottom); } // Base cell styles > .cell { - @include zf-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom); + @include xy-gutters($gutters: $grid-padding-gutters, $gutter-type: padding, $gutter-position: top bottom); } } } } @if $margin-grid { - @include zf-margin-grid-classes(top bottom, true, '.grid-vertical.margin-gutters') + @include xy-margin-grid-classes(top bottom, true, '.grid-vertical.margin-gutters') } } // Final classes -@mixin foundation-zf-grid-classes( +@mixin foundation-xy-grid-classes( $base-grid: true, $margin-grid: true, $padding-grid: true, @@ -324,36 +324,36 @@ // Base grid styles @if($base-grid) { - @include zf-base-grid-classes(); + @include xy-base-grid-classes(); } // Margin grid @if($margin-grid) { - @include zf-margin-grid-classes(); + @include xy-margin-grid-classes(); } // Padding grid @if($padding-grid) { - @include zf-padding-grid-classes(); + @include xy-padding-grid-classes(); } // Block grid @if($block-grid) { - @include zf-block-grid-classes($margin-grid, $padding-grid); + @include xy-block-grid-classes($margin-grid, $padding-grid); } // Collapse gutters @if($collapse) { - @include zf-collapse-grid-classes($margin-grid, $padding-grid); + @include xy-collapse-grid-classes($margin-grid, $padding-grid); } // Offset gutters @if($offset) { - @include zf-offset-cell-classes(); + @include xy-offset-cell-classes(); } // Vertical grid @if($vertical-grid) { - @include zf-vertical-grid-classes($margin-grid, $padding-grid); + @include xy-vertical-grid-classes($margin-grid, $padding-grid); } } diff --git a/scss/zf-grid/_collapse.scss b/scss/xy-grid/_collapse.scss similarity index 86% rename from scss/zf-grid/_collapse.scss rename to scss/xy-grid/_collapse.scss index 53a951a23..71a6f9701 100644 --- a/scss/zf-grid/_collapse.scss +++ b/scss/xy-grid/_collapse.scss @@ -3,16 +3,15 @@ // Licensed under MIT Open Source //// -/// @group zf-grid +/// @group xy-grid //// /// Collapses the grid a cells within it. /// /// @param {String} $selector [.cell] - The child element to remove the gutter from. /// @param {Keyword} $gutter-type [margin] - The type of gutter to remove. -/// @param {Number|Map} $margin [$grid-margin-gutters] - Map or single value for gutters. /// @param {List} $gutter-position [right left] - The positions to remove gutters from. Accepts `top`, `bottom`, `left`, `right` in any combination. -@mixin zf-grid-collapse( +@mixin xy-grid-collapse( $selector: '.cell', $gutter-type: margin, $gutter-position: right left @@ -35,7 +34,7 @@ @for $i from 1 through $grid-columns { // Sizing (percentage) > .#{$bp}-#{$i} { - @include zf-cell-static($i, $gutter-output: false, $gutter-type: padding); + @include xy-cell-static($i, $gutter-output: false, $gutter-type: padding); } } } diff --git a/scss/zf-grid/_grid.scss b/scss/xy-grid/_grid.scss similarity index 84% rename from scss/zf-grid/_grid.scss rename to scss/xy-grid/_grid.scss index c283b5d5b..da6c249ea 100644 --- a/scss/zf-grid/_grid.scss +++ b/scss/xy-grid/_grid.scss @@ -3,13 +3,13 @@ // Licensed under MIT Open Source //// -/// @group zf-grid +/// @group xy-grid //// /// Creates a max width container, designed to house your grid content. /// /// @param {Number} $width [$grid-container] - a width to limit the container to. -@mixin zf-grid-container( +@mixin xy-grid-container( $width: $grid-container ) { max-width: rem-calc($width); @@ -20,7 +20,7 @@ /// /// @param {Keyword} $direction [horizontal] - Either horizontal or vertical direction of cells within. /// @param {Boolean} $wrap [true] - If the cells within should wrap or not. -@mixin zf-grid( +@mixin xy-grid( $direction: horizontal, $wrap: true ) { @@ -35,7 +35,8 @@ /// Modifies a grid to give it "frame" behavior (no overflow, no wrap, stretch behavior) /// /// @param {Boolean} $vertical [false] - Is grid vertical or horizontal. Should match grid. -@mixin zf-grid-frame( +/// @param {Boolean} $nested [false] - Is grid nested or not. If nested is true this sets the frame to 100% height, otherwise will be 100vh. +@mixin xy-grid-frame( $vertical: false, $nested: false ) { diff --git a/scss/zf-grid/_gutters.scss b/scss/xy-grid/_gutters.scss similarity index 93% rename from scss/zf-grid/_gutters.scss rename to scss/xy-grid/_gutters.scss index 16460e6ca..3ab987ea1 100644 --- a/scss/zf-grid/_gutters.scss +++ b/scss/xy-grid/_gutters.scss @@ -3,7 +3,7 @@ // Licensed under MIT Open Source //// -/// @group zf-grid +/// @group xy-grid //// /// Create gutters for a cell/container. @@ -11,8 +11,8 @@ /// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters. /// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts either margin or padding. /// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. -/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nexted grids. -@mixin zf-gutters( +/// @param {Boolean} $negative [false] - Whether to apply the gutter as a negative value. Commonly used for nested grids. +@mixin xy-gutters( $gutters: $grid-margin-gutters, $gutter-type: margin, $gutter-position: right left, diff --git a/scss/zf-grid/_layout.scss b/scss/xy-grid/_layout.scss similarity index 80% rename from scss/zf-grid/_layout.scss rename to scss/xy-grid/_layout.scss index 6b5be9895..bd8c14284 100644 --- a/scss/zf-grid/_layout.scss +++ b/scss/xy-grid/_layout.scss @@ -3,19 +3,19 @@ // Licensed under MIT Open Source //// -/// @group zf-grid +/// @group xy-grid //// /// Sizes child elements so that `$n` number of items appear on each row. /// /// @param {Number} $n - Number of elements to display per row. -/// @param {String} $selector ['.column'] - Selector(s) to use for child elements. +/// @param {String} $selector ['.cell'] - Selector(s) to use for child elements. /// @param {Boolean} $gutter-output [true] - Whether or not to output gutters /// @param {Number|Map} $gutters [$grid-margin-gutters] - Map or single value for gutters. -/// @param {Keyword} $gutter-type [margin] - Type of margin to output. Accepts `margin` or `padding`. +/// @param {Keyword} $gutter-type [margin] - Type of gutter to output. Accepts `margin` or `padding`. /// @param {List} $gutter-position [right left] - The position to apply gutters to. Accepts `top`, `bottom`, `left`, `right` in any combination. /// @param {Boolean} $vertical [false] - Set to true to output vertical (height) styles rather than widths. -@mixin zf-grid-layout( +@mixin xy-grid-layout( $n, $selector: '.cell', $gutter-output: true, @@ -28,6 +28,6 @@ $size: percentage(1/$n); & > #{$selector} { - @include zf-cell($size, $gutter-output, $gutter-type: $gutter-type, $gutter-position: $gutter-position, $vertical: $vertical); + @include xy-cell($size, $gutter-output, $gutter-type: $gutter-type, $gutter-position: $gutter-position, $vertical: $vertical); } } diff --git a/scss/zf-grid/_position.scss b/scss/xy-grid/_position.scss similarity index 83% rename from scss/zf-grid/_position.scss rename to scss/xy-grid/_position.scss index f9ae5670b..c9c85fffa 100644 --- a/scss/zf-grid/_position.scss +++ b/scss/xy-grid/_position.scss @@ -3,14 +3,14 @@ // Licensed under MIT Open Source //// -/// @group zf-grid +/// @group xy-grid //// /// Offsets a column to the right/bottom by `$n` columns. /// /// @param {Number|List} $n - Size to offset by. You can pass in any value accepted by the `zf-cell()` mixin, such as `6`, `50%`, or `1 of 2`. /// @param {Boolean} $vertical [false] Sets the direction of the offset. If set to true will apply margin-top instead. -@mixin zf-cell-offset( +@mixin xy-cell-offset( $n, $gutters: $grid-margin-gutters, $gutter-type: margin, @@ -21,7 +21,7 @@ @include -zf-breakpoint-value($breakpoint, $gutters) { $gutter: rem-calc($-zf-bp-value) / 2; - $size: if($gutter-type == 'margin', calc(#{zf-cell-size($n)} + #{$gutter}), #{zf-cell-size($n)}); + $size: if($gutter-type == 'margin', calc(#{xy-cell-size($n)} + #{$gutter}), #{xy-cell-size($n)}); margin-#{$direction}: #{$size}; } diff --git a/scss/zf-grid/_zf-grid.scss b/scss/xy-grid/_xy-grid.scss similarity index 93% rename from scss/zf-grid/_zf-grid.scss rename to scss/xy-grid/_xy-grid.scss index 12f6ef397..c708e9b1f 100644 --- a/scss/zf-grid/_zf-grid.scss +++ b/scss/xy-grid/_xy-grid.scss @@ -3,12 +3,12 @@ // Licensed under MIT Open Source //// -/// @group zf-grid +/// @group xy-grid //// -/// Enables the zf-grid. +/// Enables the XY grid. /// @type Boolean -$zf-grid: true !default; +$xy-grid: true !default; /// The maximum width of a grid container. /// @type Number diff --git a/test/visual/zf-grid/block-grid.html b/test/visual/xy-grid/block-grid.html similarity index 98% rename from test/visual/zf-grid/block-grid.html rename to test/visual/xy-grid/block-grid.html index b6782f386..ffa8054c9 100644 --- a/test/visual/zf-grid/block-grid.html +++ b/test/visual/xy-grid/block-grid.html @@ -4,7 +4,7 @@ - zf block grid + xy block grid

Vertical Grid

+

Margin Grid

+
auto/3/1
auto/3/2
@@ -34,6 +35,8 @@
auto/3/5
+

Padding Grid

+
auto/3/1
auto/3/2
@@ -47,4 +50,4 @@ $(document).foundation(); - \ No newline at end of file +