stratum 0.2.4 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }