stratum 0.2.4 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (61) hide show
  1. data/.editorconfig +7 -0
  2. data/.gitignore +2 -2
  3. data/assets/stylesheets/_css3.scss +7 -0
  4. data/assets/stylesheets/_helpers.scss +7 -0
  5. data/assets/stylesheets/_stratum.scss +12 -15
  6. data/assets/stylesheets/css3/_border-radius.scss +2 -2
  7. data/assets/stylesheets/css3/_user-select.scss +12 -0
  8. data/assets/stylesheets/helpers/_box.scss +17 -0
  9. data/assets/stylesheets/{addons → helpers}/_dimensions.scss +7 -4
  10. data/assets/stylesheets/{addons → helpers}/_group.scss +0 -0
  11. data/assets/stylesheets/helpers/_icon-map.scss +11 -0
  12. data/assets/stylesheets/helpers/_icons.scss +177 -0
  13. data/assets/stylesheets/{addons → helpers}/_position.scss +6 -6
  14. data/assets/stylesheets/helpers/_triangle.scss +64 -0
  15. data/assets/stylesheets/{addons → helpers}/_vendor-prefix.scss +0 -0
  16. data/assets/stylesheets/layout/_grid.scss +4 -5
  17. data/assets/stylesheets/layout/{_grid-functions.scss → grid/_functions.scss} +12 -11
  18. data/assets/stylesheets/layout/grid/_guides.scss +123 -0
  19. data/assets/stylesheets/layout/grid/_mixins.scss +83 -0
  20. data/assets/stylesheets/layout/grid/_semantics.scss +5 -0
  21. data/assets/stylesheets/layout/grid/semantics/_core.scss +96 -0
  22. data/assets/stylesheets/layout/grid/semantics/_nested.scss +34 -0
  23. data/assets/stylesheets/layout/grid/semantics/_offsets.scss +50 -0
  24. data/assets/stylesheets/layout/grid/semantics/_overrides.scss +71 -0
  25. data/assets/stylesheets/layout/grid/semantics/_subdivisions.scss +16 -0
  26. data/assets/stylesheets/layout/scaffolding.scss +105 -52
  27. data/bin/stratum +1 -1
  28. data/lib/stratum/generator.rb +74 -0
  29. data/lib/stratum/version.rb +3 -0
  30. data/lib/stratum.rb +2 -73
  31. data/stratum.gemspec +1 -1
  32. metadata +27 -38
  33. data/.gitmodules +0 -3
  34. data/assets/stylesheets/layout/_grid-guides.scss +0 -93
  35. data/assets/stylesheets/layout/_grid-mixins.scss +0 -79
  36. data/assets/stylesheets/layout/_grid-semantics.scss +0 -266
  37. data/lib/version.rb +0 -3
  38. data/tests/Gemfile +0 -6
  39. data/tests/Gemfile.lock +0 -63
  40. data/tests/Guardfile +0 -11
  41. data/tests/_config.yml +0 -5
  42. data/tests/_includes/menu-grids.html +0 -9
  43. data/tests/_includes/shared-grid-samples.html +0 -58
  44. data/tests/_layouts/default.html +0 -21
  45. data/tests/grid/arstechnica.html +0 -70
  46. data/tests/grid/bbc.html +0 -74
  47. data/tests/grid/fluid.html +0 -85
  48. data/tests/grid/guardian.html +0 -248
  49. data/tests/grid/index.html +0 -5
  50. data/tests/grid/pixel.html +0 -29
  51. data/tests/images/arstechnica.png +0 -0
  52. data/tests/images/bbc.png +0 -0
  53. data/tests/images/capture.js +0 -15
  54. data/tests/images/guardian-home.png +0 -0
  55. data/tests/scss/_mock-block.scss +0 -68
  56. data/tests/scss/arstechnica.scss +0 -106
  57. data/tests/scss/bbc.scss +0 -93
  58. data/tests/scss/fluid-grid.scss +0 -50
  59. data/tests/scss/guardian.scss +0 -219
  60. data/tests/scss/main.scss +0 -90
  61. data/tests/scss/pixel-grid.scss +0 -14
data/.editorconfig ADDED
@@ -0,0 +1,7 @@
1
+ # editorconfig.org
2
+
3
+ root = true
4
+
5
+ [*]
6
+ indent_style = space
7
+ indent_size = 2
data/.gitignore CHANGED
@@ -1,7 +1,7 @@
1
1
  *gem
2
2
  *swp
3
3
  .sass-cache
4
+ /stratum
4
5
  vendor/
5
6
  css/
6
- _site/
7
- stratum/
7
+ demo/build
@@ -0,0 +1,7 @@
1
+ // CSS3 mixins
2
+ @import "css3/animation";
3
+ @import "css3/border-radius";
4
+ @import "css3/box-sizing";
5
+ @import "css3/transform";
6
+ @import "css3/transition";
7
+ @import "css3/user-select";
@@ -0,0 +1,7 @@
1
+ // Helper mixins
2
+ @import "helpers/vendor-prefix";
3
+ @import "helpers/group";
4
+ @import "helpers/icons";
5
+ @import "helpers/position";
6
+ @import "helpers/box";
7
+ @import "helpers/triangle";
@@ -1,28 +1,25 @@
1
1
  // Grid settings
2
- $grid-guides-color: #8aa8c0 !default;
3
- $grid-guides-opacity: .2 !default;
4
- $grid-guides-position: front !default;
5
2
  $grid-type: fluid !default;
6
3
  $grid-size: 980px !default;
7
4
  $grid-total-columns: 12 !default;
8
5
  $grid-desired-gutter: 20px !default;
9
6
  $grid-baseline: 18px !default;
10
7
 
11
- @import "addons/vendor-prefix";
12
- @import "addons/group";
13
- @import "addons/position";
14
- @import "addons/dimensions";
8
+ // Grid guides
9
+ $grid-guides-class: false !default; // Adds `.m-show-guides` and `.m-show-guides.m-front` to scaffolding
10
+ $grid-guides-color: #8aa8c0 !default;
11
+ $grid-guides-opacity: .2 !default;
12
+ $grid-guides-position: front !default;
15
13
 
16
- // CSS3 mixins
17
- @import "css3/animation";
18
- @import "css3/border-radius";
19
- @import "css3/box-sizing";
20
- @import "css3/transform";
21
- @import "css3/transition";
14
+ // Scaffolding
15
+ $scaffolding-debug: true !default; // Highlight disabled features that are used
22
16
 
23
- // Layout
17
+ @import "css3";
18
+ @import "helpers";
24
19
  @import "layout/grid";
25
- // @import "layout/responsive";
26
20
 
27
21
  // Forms
28
22
  @import "forms/input-placeholder";
23
+
24
+ // Icons
25
+ $stratum-icons: $stratum-dingbats !default;
@@ -22,8 +22,8 @@
22
22
  // values (such as 30px/60px) need to be quoted: "30px/30px"
23
23
 
24
24
  @mixin border-radius($value...) {
25
- $v-value: nth($value, 1);
26
- @include vendor-prefix(border-radius, unquote($v-value), webkit spec);
25
+ $-value: nth($value, 1);
26
+ @include vendor-prefix(border-radius, unquote($-value), webkit spec);
27
27
 
28
28
  @if length($value) > 1 and nth($value, 2) == clip {
29
29
  @include vendor-prefix(background-clip, padding-box, webkit spec);
@@ -0,0 +1,12 @@
1
+ // user-select
2
+ // -------------
3
+
4
+ // Vendor prefixes:
5
+ // - Chrome
6
+ // - Safari
7
+ // - Firefox
8
+ // - IE 10+
9
+
10
+ @mixin user-select($value...) {
11
+ @include vendor-prefix(user-select, $value, webkit moz ms spec);
12
+ }
@@ -0,0 +1,17 @@
1
+ // Dimensions helpers
2
+ // ------------------
3
+
4
+ // Box element
5
+ // <width>, <height>
6
+ // If one parameter is specified, make square
7
+ @mixin box($args...) {
8
+ @if nth($args, 1) == center {
9
+ margin-left: auto;
10
+ margin-right: auto;
11
+ } @else if length($args) < 3 {
12
+ width: nth($args, 1);
13
+ height: nth($args, length($args));
14
+ } @else {
15
+ @warn "box mixin only takes 1 or 2 arguments"
16
+ }
17
+ }
@@ -4,10 +4,13 @@
4
4
  // Box element
5
5
  // <width>, <height>
6
6
  // If one parameter is specified, make square
7
- @mixin box($length...) {
8
- @if length($length) < 3 {
9
- width: nth($length, 1);
10
- height: nth($length, length($length));
7
+ @mixin box($args...) {
8
+ @if $args == center {
9
+ margin-left: auto;
10
+ margin-right: auto;
11
+ } @else if length($args) < 3 {
12
+ width: nth($args, 1);
13
+ height: nth($args, length($args));
11
14
  } @else {
12
15
  @warn "box mixin only takes 1 or 2 arguments"
13
16
  }
File without changes
@@ -0,0 +1,11 @@
1
+ // Unicode Dingbats
2
+
3
+ // Default stratum icon set
4
+
5
+ $stratum-dingbats:
6
+ upper-blade-scissors "\2713",
7
+ heavy-checkmark "\2714",
8
+ multiplication "\2715",
9
+ chevron-left "\276e",
10
+ chevron-right "\276f"
11
+ ;
@@ -0,0 +1,177 @@
1
+ // Icon helpers
2
+ // ------------
3
+ // Adds inline icon to an element
4
+
5
+ // Icons are mapped to default fallback list defined in `icon-map`
6
+
7
+ @import "icon-map";
8
+
9
+ // Default global icons can be easily overriden by importing a new map
10
+ // and assigning it to default `$stratum-icons` variable:
11
+
12
+ // e.g.
13
+ // ```
14
+ // @import "font-awesome";
15
+ // $stratum-icons: $icons-font-awesome;
16
+ // ```
17
+
18
+ // Alternatively, font icons can be provided inline for each icon
19
+ // e.g.
20
+ // ```
21
+ // @include icon(music, $source: $icons-font-awesome);
22
+ // ```
23
+
24
+ // Placeholder for shared classes
25
+ %-icon-inline {
26
+ line-height: 1;
27
+ display: inline-block;
28
+ text-align: center;
29
+ -webkit-font-smoothing: antialiased;
30
+ }
31
+ %-icon-only {
32
+ display: inline-block;
33
+ text-indent: -100%;
34
+ white-space: nowrap;
35
+ line-height: 1;
36
+ }
37
+
38
+ // Function to map icon name to character/image
39
+ @function -icon-map($name, $source) {
40
+ @each $icon in $source {
41
+ @if length($icon) < 2 {
42
+ @warn "Icon value is missing for '#{$icon}'";
43
+ @return null;
44
+ }
45
+
46
+ $-name: nth($icon, 1);
47
+ $-value: nth($icon, 2);
48
+
49
+ @if $-name == $name {
50
+ @return $-value;
51
+ }
52
+ }
53
+ @warn "Icon '#{$name}' not found";
54
+ @return "";
55
+ }
56
+
57
+ // Function to get font family from font map file
58
+ // (If font family is included as the last pair in the list)
59
+ // Expects the following format:
60
+ // ```
61
+ // $font-icon:
62
+ // ...
63
+ // -font FontAwesome;
64
+ // ```
65
+
66
+ @function -icon-font($source) {
67
+ $-font-family: null;
68
+
69
+ @if length($source) > 1 {
70
+ $-last-pair: nth($source, length($source));
71
+
72
+ @if length($-last-pair) == 2 and nth($-last-pair, 1) == "-font" {
73
+ $-font-family: nth($-last-pair, 2);
74
+ } @else {
75
+ @warn "No font speficied";
76
+ }
77
+ }
78
+
79
+ @return $-font-family;
80
+ }
81
+
82
+ // Icon properties mixin
83
+ // Returns inline icon styles and sets optional dimensions
84
+ @mixin -icon-render($size, $el, $font-family, $hide-text) {
85
+ @extend %-icon-inline;
86
+
87
+ font-size: $size;
88
+ font-family: $font-family;
89
+
90
+ @if not $hide-text {
91
+ @if $el == after {
92
+ margin-left: .4em;
93
+ } @else {
94
+ margin-right: .4em;
95
+ }
96
+ }
97
+
98
+ // Vertically align if custom icon size specified
99
+ @if $size != inherit and not unitless($size) {
100
+ @include box($size);
101
+ }
102
+ }
103
+
104
+ // Include icon
105
+ // Main icon mixin
106
+
107
+ // Usage:
108
+ // ```
109
+ // @include icon(music, $source: $icons-font-awesome) {
110
+ // color: #444;
111
+ // text-shadow: 0 1px 2px #aaa;
112
+ // }
113
+ // ```
114
+ // Properties inside braces are optional
115
+
116
+ @mixin icon($name, $size: inherit, $el: before, $source: $stratum-icons, $hide-text: false) {
117
+ $-font-family: -icon-font($source);
118
+
119
+ @if $hide-text {
120
+ @extend %-icon-only;
121
+ }
122
+
123
+ @if $el == before or $el == after {
124
+ // Pseudo element
125
+ &::#{$el} {
126
+ @include -icon-render($size, $el, $-font-family, $hide-text);
127
+ content: quote(-icon-map($name, $source));
128
+
129
+ @if $hide-text {
130
+ text-indent: 0;
131
+ float: left;
132
+ }
133
+
134
+ @content;
135
+ }
136
+ } @else {
137
+ // HTML element
138
+ > #{$el} {
139
+ @include -icon-render($size, $el, $-font-family, $hide-text);
140
+ font-style: normal;
141
+
142
+ &::before {
143
+ content: quote(-icon-map($name, $source));
144
+ }
145
+
146
+ @if $hide-text {
147
+ text-indent: 0;
148
+ float: left;
149
+ }
150
+
151
+ @content;
152
+ }
153
+ }
154
+ }
155
+
156
+ // Hide text and include icon only
157
+ @mixin icon-only($name, $size: inherit, $el: before, $source: $stratum-icons) {
158
+ @include icon($name, $size, $el, $source, $hide-text: true) {
159
+ @content;
160
+ }
161
+ }
162
+
163
+ // Mixin to adjust existing icon
164
+ // @include icon-edit {
165
+ // color: #444;
166
+ // text-shadow: 0 1px 2px #aaa;
167
+ // }
168
+ // ```
169
+
170
+ // `before` | `after` | `<el>` (direct descendant <element>)
171
+ @mixin icon-edit($el: before) {
172
+ @if $el == before or $el == after {
173
+ &::#{$el} { @content }
174
+ } @else {
175
+ > #{$el} { @content }
176
+ }
177
+ }
@@ -30,7 +30,7 @@
30
30
  $values: append($values, nth($values, 2));
31
31
  }
32
32
 
33
- $v-pairs:
33
+ $-pairs:
34
34
  top nth($values, 1),
35
35
  right nth($values, 2),
36
36
  bottom nth($values, 3),
@@ -38,11 +38,11 @@
38
38
 
39
39
  position: $position;
40
40
 
41
- @each $pair in $v-pairs {
42
- $v-pos: nth($pair, 1);
43
- $v-val: nth($pair, 2);
44
- @if $v-val == auto or ($v-val != none and not unitless($v-val)) {
45
- #{$v-pos}: $v-val;
41
+ @each $pair in $-pairs {
42
+ $-pos: nth($pair, 1);
43
+ $-val: nth($pair, 2);
44
+ @if $-val == auto or ($-val != none and not unitless($-val)) {
45
+ #{$-pos}: $-val;
46
46
  }
47
47
  }
48
48
  }
@@ -0,0 +1,64 @@
1
+ // Generate CSS triangles
2
+ // ----------------------
3
+
4
+ @mixin triangle($position: top, $color: black, $size: 16px) {
5
+ $-dimensions: null;
6
+ $-colors: null;
7
+ $-height: nth($size, 1);
8
+ $-left: $-height / 1.5;
9
+ $-right: $-height / 1.5;
10
+
11
+ // sides width specified
12
+ @if length($size) == 2 {
13
+ $-left: nth($size, 2);
14
+ $-right: nth($size, 2);
15
+ // individual side widths specified
16
+ } @else if length($size) == 3 {
17
+ $-left: nth($size, 2);
18
+ $-right: nth($size, 3);
19
+ }
20
+
21
+ @if $position == top {
22
+ $-dimensions: 0 $-right $-height $-left;
23
+ $-colors: transparent transparent $color;
24
+ }
25
+ @if $position == top-right {
26
+ $-dimensions: 0 $-height $-height 0;
27
+ $-colors: transparent $color transparent transparent;
28
+ }
29
+ @if $position == right {
30
+ $-dimensions: $-left 0 $-right $-height;
31
+ $-colors: transparent transparent transparent $color;
32
+ }
33
+ @if $position == bottom-right {
34
+ $-dimensions: 0 0 $-height $-height;
35
+ $-colors: transparent transparent $color;
36
+ }
37
+ @if $position == bottom {
38
+ $-dimensions: $-height $-left 0 $-right;
39
+ $-colors: $color transparent transparent;
40
+ }
41
+ @if $position == bottom-left {
42
+ $-dimensions: $-height 0 0 $-height;
43
+ $-colors: transparent transparent transparent $color;
44
+ }
45
+ @if $position == left {
46
+ $-dimensions: $-left $-height $-right 0;
47
+ $-colors: transparent $color transparent transparent;
48
+ }
49
+ @if $position == top-left {
50
+ $-dimensions: $-height $-height 0 0;
51
+ $-colors: $color transparent transparent transparent;
52
+ }
53
+
54
+ @if $-dimensions and $-colors {
55
+ @include box(0px);
56
+ display: inline-block;
57
+ border-style: solid;
58
+ border-width: $-dimensions;
59
+ border-color: $-colors;
60
+ } @else {
61
+ @warn "Unrecognised position '#{$position}'. Use one of: top, top-right, right, bottom-right, bottom, bottom-left, left, top-left";
62
+ }
63
+ }
64
+
@@ -18,9 +18,8 @@ $grid-guides-color: #c84e5b !default;
18
18
  $grid-guides-opacity: .2 !default;
19
19
  $grid-guides-position: back !default;
20
20
 
21
+ @import "grid/functions";
22
+ @import "grid/mixins";
23
+ @import "grid/guides";
21
24
 
22
- @import "grid-functions";
23
-
24
- @import "grid-mixins";
25
- @import "grid-semantics";
26
- @import "grid-guides";
25
+ @import "grid/semantics";
@@ -6,23 +6,23 @@
6
6
  // All parameters are optional (use grid defaults)
7
7
 
8
8
  @function grid-column-gutter($grid-size: $grid-size, $desired: $grid-desired-gutter) {
9
- $v-gutter: 0px;
9
+ $-gutter: 0px;
10
10
  $column: 1;
11
11
 
12
12
  // Find a round gutter width
13
- @while $column > $v-gutter {
14
- $column: grid-column-width($grid-size, $grid-total-columns, $v-gutter);
13
+ @while $column > $-gutter {
14
+ $column: grid-column-width($grid-size, $grid-total-columns, $-gutter);
15
15
 
16
16
  @if $column % 1 == 0 {
17
17
  $range-from: $desired - 6;
18
18
  $range-to: $desired + 20;
19
- $within-range: $v-gutter >= $range-from and $v-gutter <= $range-to;
19
+ $within-range: $-gutter >= $range-from and $-gutter <= $range-to;
20
20
  // Find gutter within desired range
21
21
  @if $within-range {
22
- @return $v-gutter;
22
+ @return $-gutter;
23
23
  }
24
24
  }
25
- $v-gutter: $v-gutter + 1;
25
+ $-gutter: $-gutter + 1;
26
26
  }
27
27
  @warn "Couldn't find suitable gutter close to your desired value. Try a different one.";
28
28
  }
@@ -41,19 +41,20 @@
41
41
  // # Calculate the total width of number of columns including gutters
42
42
  // `$column-width` & `$gutter` are optional (use grid defaults)
43
43
  @function grid-columns-width($column-span, $column-width: auto, $gutter: auto, $type: $grid-type, $total-columns: $grid-total-columns) {
44
- $v-gutter: grid-column-gutter($grid-size, $grid-desired-gutter);
44
+ $-gutter: grid-column-gutter($grid-size, $grid-desired-gutter);
45
45
 
46
46
  @if $gutter == 0 {
47
- $v-gutter: 0;
47
+ $-gutter: 0;
48
+ // Do not round because round values are optimised for grid with gutters
48
49
  $column-width: grid-column-width($total-columns: $total-columns, $gutter: 0) * $column-span;
49
50
  } @else {
50
- $column-width: ceil($column-span * grid-column-width($total-columns: $total-columns) + (($column-span - 1) * $v-gutter));
51
+ $column-width: ceil($column-span * grid-column-width($total-columns: $total-columns) + (($column-span - 1) * $-gutter));
51
52
  }
52
53
 
53
- $v-grid-size: $grid-size + $v-gutter;
54
+ $-grid-size: $grid-size + $-gutter;
54
55
 
55
56
  @if $type == fluid {
56
- $column-width: grid-percentage($column-width, $v-grid-size);
57
+ $column-width: grid-percentage($column-width, $-grid-size);
57
58
  }
58
59
 
59
60
  @return $column-width;
@@ -0,0 +1,123 @@
1
+ // Grid debugging tools: Guides
2
+ // ----------------------------
3
+
4
+ // ## Usage:
5
+
6
+ // Apply grid guide to all grids on page
7
+ // [optional] $element: container | row (default - container)
8
+ // [optional] $position: back | front (default - back)
9
+ // `@include GRID-GUIDES($el, $position);` // At the root of stylesheet
10
+
11
+ // Apply grid guide on element
12
+ // [optional] $position: back | front (default - back)
13
+ // ```
14
+ // .row {
15
+ // @include show-grid-guides($position);`
16
+ // }
17
+
18
+ // Guides rely on `::before` pseudo element so they will only work on elements
19
+ // that don't already use it (e.g. not `group(true)`)
20
+
21
+ // Draws grid guides
22
+ @mixin grid-render-guides($grid-size: $grid-size, $grid-type: $grid-type, $column-gutter: grid-column-gutter()) {
23
+
24
+ $-block-size: 8;
25
+
26
+ // Pixel grid default values
27
+ $-column-width: grid-column-width($gutter: $column-gutter);
28
+ $-column-combined-width: $column-gutter + $-column-width;
29
+
30
+ @if $grid-type == fluid {
31
+ // Calculate gutter to column ratio
32
+ $-gutter-ratio: $column-gutter / ($-column-width + $column-gutter);
33
+ // Calculate column to grid width ratio
34
+ // not entirely sure where $column-gutter/3 magic number comes from, but it's necessary to make it work
35
+ $-column-ratio: ($-column-width + $column-gutter) / ($grid-size - $column-gutter / 3);
36
+
37
+ // Reset column size with percentages
38
+ $column-gutter: percentage($-gutter-ratio);
39
+ $-column-width: 100 - percentage($-gutter-ratio);
40
+ $-column-combined-width: percentage($-column-ratio);
41
+ }
42
+
43
+ $column-gutter: $-column-width + $column-gutter;
44
+ $-block-height: (($grid-baseline + 1) * $-block-size) + $grid-baseline;
45
+
46
+ position: relative;
47
+
48
+ &:before {
49
+ content: " ";
50
+ position: absolute;
51
+ top: 0;
52
+ left: 0;
53
+ right: 0;
54
+ bottom: 0;
55
+
56
+ background:
57
+ // Baseline (v-rhythm)
58
+ -webkit-linear-gradient(
59
+ transparent $grid-baseline,
60
+ rgba(white, $grid-guides-opacity) $grid-baseline),
61
+ // Columns
62
+ -webkit-linear-gradient(left,
63
+ rgba($grid-guides-color, $grid-guides-opacity),
64
+ rgba($grid-guides-color, $grid-guides-opacity) $-column-width,
65
+ transparent $-column-width,
66
+ transparent $column-gutter),
67
+ // Blocks
68
+ -webkit-linear-gradient(
69
+ transparent ($-block-height - $grid-baseline),
70
+ rgba(white, $grid-guides-opacity / 1.2) $grid-baseline),
71
+ // Base colour
72
+ -webkit-linear-gradient(
73
+ rgba($grid-guides-color, $grid-guides-opacity),
74
+ rgba($grid-guides-color, $grid-guides-opacity));
75
+
76
+ background-size:
77
+ $column-gutter $grid-baseline + 1, // v-rhythm
78
+ $-column-combined-width 10px, // column
79
+ $column-gutter ($-block-height + 1); // block
80
+ }
81
+ }
82
+
83
+
84
+ // Show grid guides on all grid containers
85
+ @mixin GRID-GUIDES($el: container, $position: back) {
86
+ %l-#{$el} {
87
+ @include show-grid-guides($position: $position);
88
+ }
89
+ }
90
+
91
+
92
+ // Show grid guide on element
93
+ @mixin show-grid-guides($position: back) {
94
+ @include grid-render-guides;
95
+
96
+ &::before {
97
+ &%l-row {
98
+ $-offset: grid-column-gutter()/2;
99
+
100
+ @if $grid-type == fluid {
101
+ $-offset: grid-percentage($-offset);
102
+ }
103
+ margin: 0 $-offset;
104
+ }
105
+ &%l-gutterless {
106
+ margin: 0;
107
+ }
108
+
109
+ // Grid placement (back by default)
110
+ @if $position == front {
111
+ z-index: 999;
112
+ } @else {
113
+ z-index: -1;
114
+ }
115
+ }
116
+
117
+ &%l-container %l-container::before {
118
+ content: none;
119
+ }
120
+ &%l-row %l-row::before {
121
+ content: none;
122
+ }
123
+ }