gridle 1.1.0 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/lib/gridle.rb +4 -5
  3. data/stylesheets/gridle/_common-mixins.scss +84 -0
  4. data/stylesheets/gridle/_functions.scss +291 -0
  5. data/stylesheets/gridle/_generate-mixins.scss +515 -0
  6. data/stylesheets/gridle/_gridle.scss +28 -1653
  7. data/stylesheets/gridle/_mixins.scss +670 -0
  8. data/stylesheets/gridle/_settings-mixins.scss +143 -0
  9. data/stylesheets/gridle/_settings.scss +84 -0
  10. data/stylesheets/gridle/_silent-classes.scss +102 -0
  11. metadata +12 -39
  12. data/stylesheets/gridle/_12-columns-classes.scss +0 -9
  13. data/stylesheets/gridle/_12-columns-responsive-classes.scss +0 -9
  14. data/stylesheets/gridle/_12-columns-responsive.scss +0 -14
  15. data/stylesheets/gridle/_12-columns.scss +0 -9
  16. data/stylesheets/gridle/_16-columns-classes.scss +0 -9
  17. data/stylesheets/gridle/_16-columns-responsive-classes.scss +0 -9
  18. data/stylesheets/gridle/_16-columns-responsive.scss +0 -14
  19. data/stylesheets/gridle/_16-columns.scss +0 -9
  20. data/stylesheets/gridle/_24-columns-classes.scss +0 -9
  21. data/stylesheets/gridle/_24-columns-responsive-classes.scss +0 -9
  22. data/stylesheets/gridle/_24-columns-responsive.scss +0 -14
  23. data/stylesheets/gridle/_24-columns.scss +0 -9
  24. data/stylesheets/gridle/_960gs-classes.scss +0 -9
  25. data/stylesheets/gridle/_960gs-responsive-classes.scss +0 -9
  26. data/stylesheets/gridle/_960gs-responsive.scss +0 -23
  27. data/stylesheets/gridle/_960gs.scss +0 -18
  28. data/stylesheets/gridle/_unsementic-classes.scss +0 -9
  29. data/stylesheets/gridle/_unsementic-responsive-classes.scss +0 -9
  30. data/stylesheets/gridle/_unsementic-responsive.scss +0 -23
  31. data/stylesheets/gridle/_unsementic.scss +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c05d9d130c3fe8a79d01a2b17e51179159a6ad38
4
- data.tar.gz: 8652a2019bc1adc2cda0baa65ba1567309d9c554
3
+ metadata.gz: 71e08f9885a041db51b60a914ac2411666b3b0e3
4
+ data.tar.gz: eb4b7f044f51df465da61dd05d71119da427db38
5
5
  SHA512:
6
- metadata.gz: dbb43793bba559b0f9e181cf85b8e05394877ea7c1ca2708b30b7ffe6a4388759b3ce8418150a339f303ddab4cbf5281ece2b7d6d777b08e2c28496bf949388e
7
- data.tar.gz: 50b879901f506e029bec32692e8351a9fe54dfc8ddb0895c528bbfff4ce096e28b09d876c2cba129b0ed08ab4d8dc238e178c5aa7a12c035012bcbb71c097172
6
+ metadata.gz: c9dfc7c0a874e48eb2d60ed6ab4c87598c7b520a9b3f08e0d3b872ee708aa80b59bbf222f0e9ef8ee4008b5dbdb3352412c1230ea3139c8ad1415167001f4298
7
+ data.tar.gz: 6e3d69c5886e0ff4b663a3db1bece9356bfbf342479c9d1f76da24c9ed25826084dc8cf4bd9ed83f2a876e0c3ccf3d85c5006925938a5d51b84fca0886696773
@@ -2,13 +2,12 @@
2
2
  # These are the requires you would normally put in your config.rb file
3
3
  # By default, you should always included Compass. Do not include your
4
4
  # extension.
5
- require 'compass'
6
5
 
7
6
  # This tells Compass what your Compass extension is called, and where to find
8
7
  # its files
9
8
  # Replace 'extension' with the name of your extension. Spaces allowed.
10
- extension_path = File.expand_path(File.join(File.dirname(__FILE__), ".."))
11
- Compass::Frameworks.register('gridle', :path => extension_path)
9
+ # extension_path = File.expand_path(File.join(File.dirname(__FILE__), ".."))
10
+ # Compass::Frameworks.register('gridle', :path => extension_path)
12
11
 
13
12
  # Version and date of version for your Compass extension.
14
13
  # Replace Extension with the name of your extension
@@ -17,8 +16,8 @@ Compass::Frameworks.register('gridle', :path => extension_path)
17
16
  # a prerelease version
18
17
  # Date is in the form of YYYY-MM-DD
19
18
  module Extension
20
- VERSION = "1.1.0"
21
- DATE = "2013-12-06"
19
+ VERSION = "1.2.0"
20
+ DATE = "2014-05-13"
22
21
  end
23
22
 
24
23
  # This is where any custom SassScript should be placed. The functions will be
@@ -0,0 +1,84 @@
1
+ // |------------------------------------------------------
2
+ // |------------------------------------------------------
3
+ // | Common mixins
4
+ // |------------------------------------------------------
5
+ // |------------------------------------------------------
6
+
7
+ @mixin _gridle_container_common() {
8
+ @extend %gridle-simple-clearfix;
9
+ @extend %gridle-container-common;
10
+ // debug part :
11
+ @if ($gridle-debug == true) {
12
+ #{$gridle-debug-selector} {
13
+ @extend %gridle-container-debug-common;
14
+ }
15
+ }
16
+ }
17
+ @mixin _gridle_grid_common() {
18
+ @extend %gridle-grid-common;
19
+ @if $gridle-direction == rtl {
20
+ float:right;
21
+ direction:rtl;
22
+ } @else {
23
+ float:left;
24
+ direction:ltr;
25
+ }
26
+
27
+ @if $gridle-gutter-type == padding {
28
+ // set padding :
29
+ padding:0 $gridle-gutter-width/2;
30
+ }
31
+
32
+ @if $gridle-debug == true {
33
+ #{$gridle-debug-selector} {
34
+ @extend %gridle-grid-debug-common;
35
+ }
36
+ }
37
+ }
38
+ @mixin _gridle_parent_common() {
39
+ @extend %gridle-clearfix;
40
+ @extend %gridle-parent-common;
41
+ }
42
+ @mixin _gridle_push_common() {
43
+ // extend common :
44
+ @extend %gridle-push-pull-common;
45
+ @if $gridle-debug == true {
46
+ #{$gridle-debug-selector} {
47
+ @extend %gridle-push-pull-debug-background-common;
48
+ background-color:#f4efdf !important;
49
+ @if $gridle-direction == ltr {
50
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDQzZDQUQ0Rjg1MDYxMUUyOEQwMjgzRjhGQkEwMDdDNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQzZDQUQ1MDg1MDYxMUUyOEQwMjgzRjhGQkEwMDdDNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNDNkNBRDREODUwNjExRTI4RDAyODNGOEZCQTAwN0M3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNDNkNBRDRFODUwNjExRTI4RDAyODNGOEZCQTAwN0M3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FdXphgAAA39JREFUeNrs3cGKwjAUQNGm7f//8FQyo66E6oAS8/Jy7qY7peEdGyFoqbUuks5bLYEEiPRWe8sXL6XcLq3fp2PX/elhjBotboDt/2qIPvsMSIxfX9xiQSJAIBEgkEACCCSQqBcQSAQIJJAAAgkkgEACCSCQQKLAQCARIJDckBRjBwgkz5FskAACCSSAQAIJIJBAAggkkGhUIJAIEEggAQQSSACBBBJAIIEEEEggAWTsIBEgkEACCCSQAAIJJIBAAgkgkEACCCSQAJI2SAQIJJAAAgkkgEACCSCQQAIIJJAAAgkkgEACCSALJJAIEEgECCSQAAIJJIBAAgkgkEACCCSQAAIJJIBAAgkggkSAQAIJIJBAAggkkAACCSSAQAIJIJBAAggkkAAiSAARJPMiAQQSSACBBBJAIIEEEEggAQQSSACBBBJAIIEEEP2L5AcSQPQ6SAARJIAIkmmQAAIJJIBAAgkgkEACCCSQAAIJJIAIEkAEydBIAIEEEkCGywFHQPQip4ABESTxkQACCSSAQAIJIJBAAggkkAAiSAARJKdI9khIAIEkYmGQAAJJWCTlL0AESWAkgEACCSCQQAIIJJAAIkgAESRBkAACCSSAQAIJIJoPydbaCCD52xLf26XWCog+wpH1z22O2loHIOlxrHAAIjgAERzfxgEIHHAAAgccgMABByCCAxDBEQQHIHCExbHcj8ksgAiOoDgAgQMOQOCA4/12MwdH564oLhFxeILAAQcgcMABCBxwAAIHHIAIDkAEByCCY2gcgMABByBwwAEIHHAAAgccgMABByBwwAGI4ABEcGTFAQgccAACBxyAwAEHIHDAAQgccATKjza0W9cCByB6rCRe0+lw2GLBAQcgcMABCBxwAAIHHIDAAQcgcMABCBxwAAIHHIAIDkAEhwCBAw5A4IADEDjgAAQOOACBAw5A4IADEDjgAAQOOACBAw5NDwQOAQKHAIEDDkDggAMQOOAABA44AIEDDkDggAMQOOAABA44NAcQOAQIHAIEDjgAgQMOQOCAAxA44AAEDjgAgQMOrXDAoVxA4BAgcAgQOOAABA44AIEDDkDggAMQOOBQeCBwCBA4BAgccAACBxyAwAHHdO1wNMdxGDNPEDjgAAQOOACBAw51BQKHAIFDgMABByBwwAEIHHCoAxA4NHSlVicgpAhf0iVApEz9CjAA65/oofjgOdQAAAAASUVORK5CYII=);
51
+ } @else {
52
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDQzZDQUQ0Qjg1MDYxMUUyOEQwMjgzRjhGQkEwMDdDNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQzZDQUQ0Qzg1MDYxMUUyOEQwMjgzRjhGQkEwMDdDNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdDQjlFNzVFODUwNjExRTI4RDAyODNGOEZCQTAwN0M3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNDNkNBRDRBODUwNjExRTI4RDAyODNGOEZCQTAwN0M3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ee9ybwAAA3JJREFUeNrs3dEKgkAQQNE27f9/uJoM6iXKwFLH8Vzw1WjdwxZt2iLiIOl9R0MgASJNqp/z5K01I5znOle9GOeY8XuCFQQOOACBAw5ABAcggiMW/G0CEDjgAAQOOACBAw5ABAcggiMBjufgapvdUXRwWEG0QxzDkWKbOSBwwAEIHHAAAgccgMABByCCAxDBkRsHIHDAAQgccAACBxyAwAEHIHDAAYjgAERwbBoHIHDAAQgccAACBxyAwAEHIHDAAQgccAAiOAARHFVxAAIHHIDAAQcgcMABCBxwAAIHHIDAAQcgcMABiOAARHAAIjjgAAQOOACBAw5A4IADEDjgAAQOOACBAw5A4IADEDjgAAQOOAQIHAIEDjgAgQMOQOCAAxA44AAEDjgAgQMOQOCAAxA44NhjPRxligcOAQLHS9fhuJjOPmLBAQcgcMABCBxwAAIHHIDAAQcgcMABCBxwqCwQOAQIHAIEDjgAgQMOQOCAAxA44AAEDjgAgQMObRUIHAIEDgECBxyAwAEHIHDAUbo+MY6qN5SAwwoCBxyAwAEHIHDAAQgccCgtEDgECBwCBA44AIEDDkDggEMrAIFDgMAhQOCAAxA4vhRwAPJrXeHxgwMQk2ik/lD3ablaCEj1p69CAggkkAACCSRaEQgkAgQSSACBBBJAIIFEa/9hChIBAgkkgEACCSCLIAlIBMhnJBdIBAgkAgQSSACBBBJAIIEEEEgg0eaAQCJAICl7YwtAIPlbJ1MSEEggAQQSSACBBBJAIIEEEEggUVEgkAgQSCABBBJIAIEEEkAggQQQSFZHYoMjIJCMZBcwIJBAAggkkAACCSSAQAIJIJBAAggkkACy4/cOiQCBBBJAIIEEEEggAQQSSACBBBJAIIEEEEggAQQSSAARJAIEEkgAgQQSQCCBBBBIIAEEEkgAgQQSQCCBBBBBAogggQQQSCABBBJIAIEEEkAggQQQSCABBBJIABEkgAiSwkgAgQQSQCCBBBBIIAEEEkgAgQQSQCCBBBBB0gARJEWRAAIJJIBAAgkgkEACCCSQACJIABEk+ZEAAgkkgEACCSCQQAIIJJAAojEkZ0gA0XiQACJIABEkH5G0IUAESWIkgEACCSCQQAKIIAFEkAAiSJIgAQQSSACBBJKJLzLnySPCFM2BRFYQCRBp0W4CDAAOV/Wfo7G12gAAAABJRU5ErkJggg==);
53
+ }
54
+ }
55
+ }
56
+ }
57
+ @mixin _gridle_pull_common() {
58
+ @extend %gridle-push-pull-common;
59
+ @if $gridle-debug == true {
60
+ #{$gridle-debug-selector} {
61
+ @extend %gridle-push-pull-debug-background-common;
62
+ background-color:#cfe4d5 !important;
63
+ @if $gridle-direction == ltr {
64
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDQzZDQUQ0Qjg1MDYxMUUyOEQwMjgzRjhGQkEwMDdDNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQzZDQUQ0Qzg1MDYxMUUyOEQwMjgzRjhGQkEwMDdDNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjdDQjlFNzVFODUwNjExRTI4RDAyODNGOEZCQTAwN0M3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNDNkNBRDRBODUwNjExRTI4RDAyODNGOEZCQTAwN0M3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+ee9ybwAAA3JJREFUeNrs3dEKgkAQQNE27f9/uJoM6iXKwFLH8Vzw1WjdwxZt2iLiIOl9R0MgASJNqp/z5K01I5znOle9GOeY8XuCFQQOOACBAw5ABAcggiMW/G0CEDjgAAQOOACBAw5ABAcggiMBjufgapvdUXRwWEG0QxzDkWKbOSBwwAEIHHAAAgccgMABByCCAxDBkRsHIHDAAQgccAACBxyAwAEHIHDAAYjgAERwbBoHIHDAAQgccAACBxyAwAEHIHDAAQgccAAiOAARHFVxAAIHHIDAAQcgcMABCBxwAAIHHIDAAQcgcMABiOAARHAAIjjgAAQOOACBAw5A4IADEDjgAAQOOACBAw5A4IADEDjgAAQOOAQIHAIEDjgAgQMOQOCAAxA44AAEDjgAgQMOQOCAAxA44NhjPRxligcOAQLHS9fhuJjOPmLBAQcgcMABCBxwAAIHHIDAAQcgcMABCBxwqCwQOAQIHAIEDjgAgQMOQOCAAxA44AAEDjgAgQMObRUIHAIEDgECBxyAwAEHIHDAUbo+MY6qN5SAwwoCBxyAwAEHIHDAAQgccCgtEDgECBwCBA44AIEDDkDggEMrAIFDgMAhQOCAAxA4vhRwAPJrXeHxgwMQk2ik/lD3ablaCEj1p69CAggkkAACCSRaEQgkAgQSSACBBBJAIIFEa/9hChIBAgkkgEACCSCLIAlIBMhnJBdIBAgkAgQSSACBBBJAIIEEEEgg0eaAQCJAICl7YwtAIPlbJ1MSEEggAQQSSACBBBJAIIEEEEggUVEgkAgQSCABBBJIAIEEEkAggQQQSFZHYoMjIJCMZBcwIJBAAggkkAACCSSAQAIJIJBAAggkkACy4/cOiQCBBBJAIIEEEEggAQQSSACBBBJAIIEEEEggAQQSSAARJAIEEkgAgQQSQCCBBBBIIAEEEkgAgQQSQCCBBBBBAogggQQQSCABBBJIAIEEEkAggQQQSCABBBJIABEkgAiSwkgAgQQSQCCBBBBIIAEEEkgAgQQSQCCBBBBB0gARJEWRAAIJJIBAAgkgkEACCCSQACJIABEk+ZEAAgkkgEACCSCQQAIIJJAAojEkZ0gA0XiQACJIABEkH5G0IUAESWIkgEACCSCQQAKIIAFEkAAiSJIgAQQSSACBBJKJLzLnySPCFM2BRFYQCRBp0W4CDAAOV/Wfo7G12gAAAABJRU5ErkJggg==);
65
+ } @else {
66
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDQzZDQUQ0Rjg1MDYxMUUyOEQwMjgzRjhGQkEwMDdDNyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDQzZDQUQ1MDg1MDYxMUUyOEQwMjgzRjhGQkEwMDdDNyI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkNDNkNBRDREODUwNjExRTI4RDAyODNGOEZCQTAwN0M3IiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkNDNkNBRDRFODUwNjExRTI4RDAyODNGOEZCQTAwN0M3Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+FdXphgAAA39JREFUeNrs3cGKwjAUQNGm7f//8FQyo66E6oAS8/Jy7qY7peEdGyFoqbUuks5bLYEEiPRWe8sXL6XcLq3fp2PX/elhjBotboDt/2qIPvsMSIxfX9xiQSJAIBEgkEACCCSQqBcQSAQIJJAAAgkkgEACCSCQQKLAQCARIJDckBRjBwgkz5FskAACCSSAQAIJIJBAAggkkGhUIJAIEEggAQQSSACBBBJAIIEEEEggAWTsIBEgkEACCCSQAAIJJIBAAgkgkEACCCSQAJI2SAQIJJAAAgkkgEACCSCQQAIIJJAAAgkkgEACCSALJJAIEEgECCSQAAIJJIBAAgkgkEACCCSQAAIJJIBAAgkggkSAQAIJIJBAAggkkAACCSSAQAIJIJBAAggkkAAiSAARJPMiAQQSSACBBBJAIIEEEEggAQQSSACBBBJAIIEEEP2L5AcSQPQ6SAARJIAIkmmQAAIJJIBAAgkgkEACCCSQAAIJJIAIEkAEydBIAIEEEkCGywFHQPQip4ABESTxkQACCSSAQAIJIJBAAggkkAAiSAARJKdI9khIAIEkYmGQAAJJWCTlL0AESWAkgEACCSCQQAIIJJAAIkgAESRBkAACCSSAQAIJIJoPydbaCCD52xLf26XWCog+wpH1z22O2loHIOlxrHAAIjgAERzfxgEIHHAAAgccgMABByCCAxDBEQQHIHCExbHcj8ksgAiOoDgAgQMOQOCA4/12MwdH564oLhFxeILAAQcgcMABCBxwAAIHHIAIDkAEByCCY2gcgMABByBwwAEIHHAAAgccgMABByBwwAGI4ABEcGTFAQgccAACBxyAwAEHIHDAAQgccATKjza0W9cCByB6rCRe0+lw2GLBAQcgcMABCBxwAAIHHIDAAQcgcMABCBxwAAIHHIAIDkAEhwCBAw5A4IADEDjgAAQOOACBAw5A4IADEDjgAAQOOACBAw5NDwQOAQKHAIEDDkDggAMQOOAABA44AIEDDkDggAMQOOAABA44NAcQOAQIHAIEDjgAgQMOQOCAAxA44AAEDjgAgQMOrXDAoVxA4BAgcAgQOOAABA44AIEDDkDggAMQOOBQeCBwCBA4BAgccAACBxyAwAHHdO1wNMdxGDNPEDjgAAQOOACBAw51BQKHAIFDgMABByBwwAEIHHCoAxA4NHSlVicgpAhf0iVApEz9CjAA65/oofjgOdQAAAAASUVORK5CYII=);
67
+ }
68
+ }
69
+ }
70
+ }
71
+ @mixin _gridle_prefix_common() {
72
+ @if $gridle-debug == true {
73
+ #{$gridle-debug-selector} {
74
+ @extend %gridle-prefix-debug-common;
75
+ }
76
+ }
77
+ }
78
+ @mixin _gridle_suffix_common() {
79
+ @if $gridle-debug == true {
80
+ #{$gridle-debug-selector} {
81
+ @extend %gridle-suffix-debug-common;
82
+ }
83
+ }
84
+ }
@@ -0,0 +1,291 @@
1
+ // |------------------------------------------------------
2
+ // |------------------------------------------------------
3
+ // | Functions
4
+ // |------------------------------------------------------
5
+ // |------------------------------------------------------
6
+
7
+
8
+ /**
9
+ * Map set
10
+ *
11
+ * @param Map $map The map to use
12
+ * @param String $key The key to update
13
+ * @param Mixed $value The new value
14
+ * @return Map The new map
15
+ */
16
+ @function map-set($map, $key, $value) {
17
+ $new: ($key: $value);
18
+ @return map-merge($map, $new);
19
+ }
20
+
21
+
22
+ /**
23
+ * Get the column width in percent for the global or a specific context
24
+ *
25
+ * @param int $columns The number of columns to calculate
26
+ * @param int $context : $gridle-columns-count The context to use
27
+ * @return percentage The width in percent
28
+ */
29
+ @function gridle_get_columns_width(
30
+ $columns : 1,
31
+ $context : $gridle-columns-count
32
+ ) {
33
+ @return percentage(1 / $context * $columns);
34
+ }
35
+ @function gridle_get_column_width(
36
+ $columns : 1,
37
+ $context : $gridle-columns-count
38
+ ) {
39
+ @return gridle_get_columns_width($columns, $context);
40
+ }
41
+
42
+
43
+ /**
44
+ * Get a state map
45
+ */
46
+ @function _gridle_get_state(
47
+ $name
48
+ ) {
49
+ // if name if not a string, return null :
50
+ @if type-of($name) != string
51
+ {
52
+ @return false;
53
+ }
54
+
55
+ // check if has a state named like this :
56
+ @if (map-has-key($_gridle_states, $name))
57
+ {
58
+ @return map-get($_gridle_states, unquote($name));
59
+ }
60
+
61
+ @return false;
62
+ }
63
+
64
+
65
+ /**
66
+ * Get the media queries variables :
67
+ *
68
+ * @param int $index The media query indes
69
+ * @param String $var The media query variable name
70
+ * @return String|int The variable value
71
+ */
72
+ @function _gridle_get_state_var(
73
+ $stateName,
74
+ $var : "name"
75
+ ) {
76
+
77
+ // get the state :
78
+ $state : _gridle_get_state($stateName);
79
+
80
+ // check ig state and if has the variable :
81
+ @if $state
82
+ and map-has-key($state,unquote($var))
83
+ {
84
+ @return map-get($state,unquote($var));
85
+ }
86
+
87
+ // nothing getted :
88
+ @return null;
89
+ }
90
+
91
+
92
+ /**
93
+ * Set a variable in a state
94
+ * @param Mixed $stateName-or-stateIndex The state name of state index
95
+ * @param String $var Variable name to assign
96
+ * @param Mixed $newValue The new value to assign
97
+ * @return List The states list (full)
98
+ */
99
+ @function _gridle_set_state_var(
100
+ $stateName,
101
+ $var,
102
+ $newValue
103
+ ) {
104
+ // get the state :
105
+ $state : _gridle_get_state($stateName);
106
+
107
+ // check ig state and if has the variable :
108
+ @if $state
109
+ and map-has-key($state,unquote($var))
110
+ {
111
+ // set new value in state :
112
+ $state : map-set($state, unquote($var), $newValue);
113
+
114
+ // set states :
115
+ $_gridle_states : map-set($_gridle_states, unquote($stateName), $state);
116
+
117
+ // return new state :
118
+ @return $state;
119
+ }
120
+
121
+ // nothing getted :
122
+ @return null;
123
+ }
124
+
125
+
126
+ /**
127
+ * Generate a column
128
+ *
129
+ * @param String $name The column name (often count)
130
+ * @param int $columns The column count that the column will take
131
+ * @param int $context The context on witch the with will be calculed
132
+ * @param Boolean $generateClasses Set if the column has to be generated in css
133
+ */
134
+ @function _gridle_create_column(
135
+ $name,
136
+ $columns,
137
+ $context,
138
+ $generateClasses : true
139
+ ) {
140
+ @return (
141
+ name : $name,
142
+ columns : $columns,
143
+ context : $context,
144
+ generateClasses : $generateClasses
145
+ );
146
+ }
147
+
148
+
149
+ /**
150
+ * Generate classname
151
+ *
152
+ * @param List $parrern The pattern to use to generate classname
153
+ * @param String $state The state
154
+ * @param int $count The column count
155
+ */
156
+ @function _gridle_classname(
157
+ $pattern,
158
+ $state : null,
159
+ $count : null
160
+ ) {
161
+
162
+ // init selector :
163
+ $sel : ".";
164
+
165
+ // add class prefix :
166
+ @if $gridle-class-prefix and $gridle-class-prefix != '' {
167
+ $sel : "#{$sel}#{$gridle-class-prefix}";
168
+ @if $gridle-class-separator {
169
+ $sel : "#{$sel}#{$gridle-class-separator}";
170
+ }
171
+ }
172
+
173
+ // construct class name :
174
+ $i : 1;
175
+ @each $var in $pattern {
176
+
177
+ // replace tokens :
178
+ @if $var == '%state' and $state {
179
+ $sel : "#{$sel}#{$state}";
180
+ }
181
+ @if $var == '%count' and $count {
182
+ $sel : "#{$sel}#{$count}";
183
+ }
184
+ @if $var != '%state' and $var != '%count' and $var != '%-' and $var != '%prefix' {
185
+ $sel : "#{$sel}#{$var}";
186
+ }
187
+
188
+ // handle separators :
189
+ @if $var == '%-' and $i < length($pattern) {
190
+ $index : $i + 1;
191
+ $value : nth($pattern, $index);
192
+ @if $value != '%state' and $value != '%count' and $value != '%-' and $value != '%prefix' {
193
+ $sel : "#{$sel}#{$gridle-class-separator}";
194
+ }
195
+ @if $value == '%state' and $state {
196
+ $sel : "#{$sel}#{$gridle-class-separator}";
197
+ }
198
+ @if $value == '%count' and $count {
199
+ $sel : "#{$sel}#{$gridle-class-separator}";
200
+ }
201
+ }
202
+
203
+ // update i :
204
+ $i : $i + 1;
205
+ }
206
+
207
+ // return generated class :
208
+ @return $sel;
209
+ }
210
+
211
+
212
+ /**
213
+ * Get the media query for a particular state, or with, etc...
214
+ *
215
+ * @param Mixed $state-or-min-width The state name of the min with
216
+ * @param Mixed $max-width The max width if first param is a min width
217
+ * @return String The media query string without the @media
218
+ */
219
+ @function _get_media_query_for_state(
220
+ $state-or-min-width : null,
221
+ $max-width : null
222
+ ) {
223
+
224
+ // get the index of state :
225
+ $state : _gridle_get_state($state-or-min-width);
226
+
227
+ // if there's an idx, the state requested is a registered one :
228
+ @if $state {
229
+
230
+ // get vars :
231
+ $name : map-get($state, name);
232
+ $min-width : map-get($state, min-width);
233
+ $max-width : map-get($state, max-width);
234
+ $classes : map-get($state, classes);
235
+ $query : map-get($state, query);
236
+
237
+ // check if exist :
238
+ @if $name {
239
+
240
+ // check if query exist :
241
+ @if $query {
242
+ @return $query;
243
+ } @else {
244
+
245
+ // write media query :
246
+ @if $min-width and $max-width {
247
+ @return "screen and (min-width: #{$min-width}) and (max-width: #{$max-width})";
248
+ } @else if $min-width == null and $max-width {
249
+ @return "screen and (max-width: #{$max-width})";
250
+ } @else if $min-width and $max-width == null {
251
+ @return "screen and (min-width: #{$min-width})";
252
+ } @else {
253
+ @return false;
254
+ }
255
+ }
256
+ } @else {
257
+ @return "not working";
258
+ }
259
+ } @else if $state-or-min-width == 'print' or $state-or-min-width == print {
260
+ @return "only print";
261
+ } @else if $state-or-min-width == 'tv' or $state-or-min-width == tv {
262
+ @return "only tv";
263
+ } @else if $state-or-min-width == 'portrait' or $state-or-min-width == portrait {
264
+ @return "only screen and (orientation: portrait)";
265
+ } @else if $state-or-min-width == 'landscape' or $state-or-min-width == landscape {
266
+ @return "only screen and (orientation: landscape)";
267
+ } @else if $state-or-min-width == 'retina' or $state-or-min-width == retina {
268
+ @return "only screen and (-webkit-min-device-pixel-ratio: 2), only screen and (min--moz-device-pixel-ratio: 2), only screen and (-o-min-device-pixel-ratio: 2/1), only screen and (min-device-pixel-ratio: 2), only screen and (min-resolution: 192dpi), only screen and (min-resolution: 2dppx)";
269
+ } @else {
270
+ // check for min and max width :
271
+ @if $state-or-min-width and $max-width {
272
+ @return "screen and (min-width: #{$state-or-min-width}) and (max-width: #{$max-width})";
273
+ } @else if $state-or-min-width and $max-width == null {
274
+ @return "screen and (min-width: #{$state-or-min-width})";
275
+ } @else if $state-or-min-width == null and $max-width {
276
+ @return "screen and (max-width: #{$max-width})";
277
+ } @else {
278
+ @return null;
279
+ }
280
+ }
281
+ }
282
+
283
+
284
+ /**
285
+ * Get states count
286
+ *
287
+ * @return int The number of states defined
288
+ */
289
+ @function _gridle_get_states_count() {
290
+ @return length($_gridle_states) / length($_gridle_states_vars_pattern);
291
+ }
@@ -0,0 +1,515 @@
1
+ // |------------------------------------------------------
2
+ // |------------------------------------------------------
3
+ // | Generate mixins
4
+ // |------------------------------------------------------
5
+ // |------------------------------------------------------
6
+
7
+ // Generate all helpers classes
8
+ // All the classes generated are not wrapper in gridle_state
9
+ // in this mixin... Just the names are generated accordingly to the
10
+ // requested state
11
+ @mixin _gridle_generate_helper_classes (
12
+ $state : null
13
+ ) {
14
+ // helpers :
15
+ #{_gridle_classname($gridle-hide-name-pattern, $state)} {
16
+ @include gridle_hide(null);
17
+ }
18
+ #{_gridle_classname($gridle-not-visible-name-pattern, $state)} {
19
+ @include gridle_not_visible(null);
20
+ }
21
+ #{_gridle_classname($gridle-show-name-pattern, $state)} {
22
+ @include gridle_show(null);
23
+ }
24
+ #{_gridle_classname($gridle-visible-name-pattern, $state)} {
25
+ @include gridle_visible(null);
26
+ }
27
+ #{_gridle_classname($gridle-float-left-name-pattern, $state)} {
28
+ @include gridle_float(left);
29
+ }
30
+ #{_gridle_classname($gridle-float-right-name-pattern, $state)} {
31
+ @include gridle_float(right);
32
+ }
33
+ #{_gridle_classname($gridle-clear-name-pattern, $state)} {
34
+ @include gridle_clear(both);
35
+ }
36
+ #{_gridle_classname($gridle-clear-left-name-pattern, $state)} {
37
+ @include gridle_clear(left);
38
+ }
39
+ #{_gridle_classname($gridle-clear-right-name-pattern, $state)} {
40
+ @include gridle_clear(right);
41
+ }
42
+ #{_gridle_classname($gridle-no-gutters-name-pattern, $state)},
43
+ #{_gridle_classname($gridle-no-margins-name-pattern, $state)} {
44
+ @include gridle_no_margin();
45
+ }
46
+ #{_gridle_classname($gridle-no-gutter-left-name-pattern, $state)},
47
+ #{_gridle_classname($gridle-no-margin-left-name-pattern, $state)} {
48
+ @include gridle_no_margin(left);
49
+ }
50
+ #{_gridle_classname($gridle-no-gutter-right-name-pattern, $state)},
51
+ #{_gridle_classname($gridle-no-margin-right-name-pattern, $state)} {
52
+ @include gridle_no_margin(right);
53
+ }
54
+ #{_gridle_classname($gridle-no-gutter-top-name-pattern, $state)},
55
+ #{_gridle_classname($gridle-no-margin-top-name-pattern, $state)} {
56
+ @include gridle_no_margin(top);
57
+ }
58
+ #{_gridle_classname($gridle-no-gutter-bottom-name-pattern, $state)},
59
+ #{_gridle_classname($gridle-no-margin-bottom-name-pattern, $state)} {
60
+ @include gridle_no_margin(bottom);
61
+ }
62
+ #{_gridle_classname($gridle-gutters-name-pattern, $state)},
63
+ #{_gridle_classname($gridle-margins-name-pattern, $state)} {
64
+ @include gridle_margin(left right);
65
+ }
66
+ #{_gridle_classname($gridle-gutter-left-name-pattern, $state)},
67
+ #{_gridle_classname($gridle-margin-left-name-pattern, $state)} {
68
+ @include gridle_margin(left);
69
+ }
70
+ #{_gridle_classname($gridle-gutter-right-name-pattern, $state)},
71
+ #{_gridle_classname($gridle-margin-right-name-pattern, $state)} {
72
+ @include gridle_margin(right);
73
+ }
74
+ #{_gridle_classname($gridle-gutter-top-name-pattern, $state)},
75
+ #{_gridle_classname($gridle-margin-top-name-pattern, $state)} {
76
+ @include gridle_margin(top);
77
+ }
78
+ #{_gridle_classname($gridle-gutter-bottom-name-pattern, $state)},
79
+ #{_gridle_classname($gridle-margin-bottom-name-pattern, $state)} {
80
+ @include gridle_margin(bottom);
81
+ }
82
+ #{_gridle_classname($gridle-auto-height-name-pattern, $state)} {
83
+ height:inherit;
84
+ }
85
+ #{_gridle_classname($gridle-centered-name-pattern, $state)} {
86
+ @include gridle_centered(null);
87
+ }
88
+ #{_gridle_classname($gridle-parent-name-pattern, $state)} {
89
+ @include _gridle_parent();
90
+ }
91
+ #{_gridle_classname($gridle-parent-vertical-align-name-pattern, $state)} {
92
+ @include _gridle_parent_vertical_align();
93
+ }
94
+
95
+ /**
96
+ * Clear each class :
97
+ */
98
+ @each $clearName, $clearMap in $_gridle_clear_classes {
99
+ // get count :
100
+ $clearCount : map-get($clearMap, clearEach);
101
+ // what to clear :
102
+ $clearWhat : map-get($clearMap, clearWhat);
103
+ // generate the class :
104
+ #{_gridle_classname($gridle-clear-each-pattern, $state, $clearCount)} {
105
+ @include _gridle_clear_each($clearCount, $clearWhat, $state);
106
+ }
107
+ }
108
+
109
+ // debug colors :
110
+ @if $gridle-debug {
111
+ // debug color classes :
112
+ #{_gridle_classname($gridle-debug-color-name-pattern, $state, 1)} {
113
+ #{$gridle-debug-selector} {
114
+ background-color : #edeeb2;
115
+ }
116
+ }
117
+ #{_gridle_classname($gridle-debug-color-name-pattern, $state, 2)} {
118
+ #{$gridle-debug-selector} {
119
+ background-color : #fae4a7;
120
+ }
121
+ }
122
+ #{_gridle_classname($gridle-debug-color-name-pattern, $state, 3)} {
123
+ #{$gridle-debug-selector} {
124
+ background-color : #f5eacc;
125
+ }
126
+ }
127
+ #{_gridle_classname($gridle-debug-color-name-pattern, $state, 4)} {
128
+ #{$gridle-debug-selector} {
129
+ background-color : #eebdb2;
130
+ }
131
+ }
132
+ #{_gridle_classname($gridle-debug-color-name-pattern, $state, 5)} {
133
+ #{$gridle-debug-selector} {
134
+ background-color : #d4b2ee;
135
+ }
136
+ }
137
+ #{_gridle_classname($gridle-debug-color-name-pattern, $state, 6)} {
138
+ #{$gridle-debug-selector} {
139
+ background-color : #b2d8ee;
140
+ }
141
+ }
142
+ }
143
+ }
144
+
145
+
146
+ // generate settings json :
147
+ @mixin gridle_generate_json_settings(
148
+ $scope : default
149
+ ) {
150
+
151
+ // settings content :
152
+ $gridle-settings-states : "{";
153
+
154
+ // generate all classes for differents media queries :
155
+ @each $stateName, $state in $_gridle_states {
156
+
157
+ $name : $stateName;
158
+
159
+ $gridle-settings-states : "#{$gridle-settings-states} \"#{$name}\":{";
160
+
161
+ @each $varName, $var in $state {
162
+
163
+ $value : null;
164
+ @if $varName == "query" {
165
+ $value : _get_media_query_for_state($stateName);
166
+ } @else {
167
+ $value : map-get($state,$varName);
168
+ // $value : _gridle_get_state_var($i,$var);
169
+ }
170
+
171
+ @if $value == null {
172
+ $gridle-settings-states : "#{$gridle-settings-states} \"#{$varName}\" : null,";
173
+ } @elseif $var == 'context' or $var == 'classes' {
174
+ $gridle-settings-states : "#{$gridle-settings-states} \"#{$varName}\" : #{$value},";
175
+ } @else {
176
+ $gridle-settings-states : "#{$gridle-settings-states} \"#{$varName}\" : \"#{$value}\",";
177
+ }
178
+ }
179
+
180
+ $gridle-settings-states : "#{$gridle-settings-states} },";
181
+
182
+ }
183
+
184
+ // generate settings json :
185
+ $gridle-settings-states : "#{$gridle-settings-states}}";
186
+ $gridle-settings : "{";
187
+ $gridle-settings : "#{$gridle-settings} \"version\" : \"#{$_gridle-version}\"";
188
+
189
+ // states :
190
+ $gridle-settings : "#{$gridle-settings}, \"states\" : #{$gridle-settings-states}";
191
+
192
+ // debug devices :
193
+ $debug_devices : $_gridle_states_debug_devices;
194
+ @if length($_gridle_states_debug_devices) <= 0 {
195
+ $debug_devices : null;
196
+ }
197
+ $gridle-settings : "#{$gridle-settings}, \"debugDevices\" : { #{$debug_devices} }";
198
+
199
+ // settings :
200
+ $gridle-settings : "#{$gridle-settings}, \"columnsCount\" : #{$gridle-columns-count}";
201
+ $gridle-settings : "#{$gridle-settings}, \"gutterWidth\" : \"#{$gridle-gutter-width}\"";
202
+ $gridle-settings : "#{$gridle-settings}, \"nameMultiplicator\" : #{$gridle-name-multiplicator}";
203
+ $gridle-settings : "#{$gridle-settings}, \"direction\" : \"#{$gridle-direction}\"";
204
+ $gridle-settings : "#{$gridle-settings}, \"ie7Support\" : #{$gridle-ie7-support}";
205
+ $gridle-settings : "#{$gridle-settings}, \"debug\" : #{$gridle-debug}";
206
+ $gridle-settings : "#{$gridle-settings}, \"debugShowClassNames\" : #{$gridle-debug-show-class-names}";
207
+ $gridle-settings : "#{$gridle-settings}, \"htmlStatesClasses\" : #{$gridle-html-states-classes}";
208
+ $gridle-settings : "#{$gridle-settings}, \"generateHelpersClasses\" : #{$gridle-generate-helpers-classes}";
209
+ $gridle-settings : "#{$gridle-settings}, \"generatePushClasses\" : #{$gridle-generate-push-classes}";
210
+ $gridle-settings : "#{$gridle-settings}, \"generatePullClasses\" : #{$gridle-generate-pull-classes}";
211
+ $gridle-settings : "#{$gridle-settings}, \"generatePrefixClasses\" : #{$gridle-generate-prefix-classes}";
212
+ $gridle-settings : "#{$gridle-settings}, \"generateSuffixClasses\" : #{$gridle-generate-suffix-classes}";
213
+ $gridle-settings : "#{$gridle-settings}, \"classPrefix\" : \"#{$gridle-class-prefix}\"";
214
+ $gridle-settings : "#{$gridle-settings} }";
215
+ #gridle-settings-#{$scope} {
216
+ content : $gridle-settings;
217
+ }
218
+ }
219
+
220
+
221
+ // gridle mixin :
222
+ // Generate all the classes needed for a grid
223
+ @mixin gridle_generate_classes(
224
+ $scope : null
225
+ ) {
226
+ // check if a scope exist :
227
+ @if $scope {
228
+ // wrapp grid into scope :
229
+ .#{$scope} {
230
+ @include _gridle_generate_classes(true);
231
+ }
232
+ } @else {
233
+ // generate classes :
234
+ @include _gridle_generate_classes(false);
235
+ }
236
+ }
237
+ @mixin _gridle_generate_classes(
238
+ $has-parent
239
+ ) {
240
+
241
+ // check if debug is activated :
242
+ @if $gridle-debug {
243
+ $gridle-html-states-classes : true !global;
244
+ }
245
+
246
+
247
+ // | ------------------------
248
+ // | Windows 8 fix
249
+ // | ------------------------
250
+
251
+ // Windows 8 fix for snap mode :
252
+ @media screen and (max-width: 400px) {
253
+ @-ms-viewport { width: device-width; }
254
+ }
255
+
256
+
257
+ // | ------------------------
258
+ // | Container
259
+ // | ------------------------
260
+
261
+ // generate container class :
262
+ $container-selector : ();
263
+ $container-selector : append( $container-selector, unquote(_gridle_classname($gridle-container-name-pattern)), comma);
264
+ #{$container-selector} {
265
+ @include gridle_container();
266
+ }
267
+
268
+
269
+ // | ------------------------
270
+ // | Parent selector
271
+ // | ------------------------
272
+
273
+ // parent common css :
274
+ $parentSelector : _gridle_classname($gridle-parent-name-pattern,null,null);
275
+ #{$parentSelector} {
276
+ @extend %gridle-clearfix;
277
+ @extend %gridle-parent-common;
278
+ }
279
+
280
+ // | ------------------------
281
+ // | Store all the generated common selectors
282
+ // | ------------------------
283
+
284
+ // generate all selector for extends :
285
+ $common-selector : ();
286
+ $push-common-selector : ();
287
+ $pull-common-selector : ();
288
+ $prefix-common-selector : ();
289
+ $suffix-common-selector : ();
290
+
291
+
292
+ // | ------------------------
293
+ // | Default classes
294
+ // | ------------------------
295
+
296
+ // get specials columns :
297
+ $columnsMap : map-merge((), $_gridle_columns);
298
+
299
+ // register all default columns :
300
+ @for $i from 0 through $gridle-columns-count {
301
+
302
+ // name :
303
+ $columnName : "#{$i*$gridle-name-multiplicator}";
304
+
305
+ // create a column :
306
+ $col : _gridle_create_column($columnName, $i, $gridle-columns-count);
307
+
308
+ // add column in columns map :
309
+ $columnsMap : map-set($columnsMap, $columnName, $col);
310
+ }
311
+
312
+ // generate all classes for columns :
313
+ @each $columnName, $column in $columnsMap {
314
+
315
+ // variables :
316
+ $columnsCount : map-get($column, columns);
317
+ $context : map-get($column, context);
318
+
319
+ // classes :
320
+ #{_gridle_classname($gridle-grid-name-pattern, null, $columnName)} {
321
+ @include _gridle($columnsCount, null, $context);
322
+ }
323
+ @if $gridle-generate-push-classes == true {
324
+ #{_gridle_classname($gridle-push-name-pattern, null, $columnName)} {
325
+ @include _gridle_push($columnsCount, null, $context);
326
+ }
327
+ }
328
+ @if $gridle-generate-pull-classes == true {
329
+ #{_gridle_classname($gridle-pull-name-pattern, null, $columnName)} {
330
+ @include _gridle_pull($columnsCount, null, $context);
331
+ }
332
+ }
333
+ @if $gridle-generate-prefix-classes == true {
334
+ #{_gridle_classname($gridle-prefix-name-pattern, null, $columnName)} {
335
+ @include _gridle_prefix($columnsCount, null, $context);
336
+ }
337
+ }
338
+ @if $gridle-generate-suffix-classes == true {
339
+ #{_gridle_classname($gridle-suffix-name-pattern, null, $columnName)} {
340
+ @include _gridle_suffix($columnsCount, null, $context);
341
+ }
342
+ }
343
+ }
344
+
345
+ // helpers classes :
346
+ @if $gridle-generate-helpers-classes == true {
347
+ @include _gridle_generate_helper_classes();
348
+ }
349
+
350
+ // loop on each columns to generate common selector :
351
+ @each $columnName, $column in $columnsMap {
352
+
353
+ // selectors :
354
+ $common-selector : append( $common-selector, unquote(_gridle_classname($gridle-grid-name-pattern, null, $columnName)), comma );
355
+ $push-common-selector : append( $push-common-selector, unquote(_gridle_classname($gridle-push-name-pattern, null, $columnName)), comma );
356
+ $pull-common-selector : append( $pull-common-selector, unquote(_gridle_classname($gridle-pull-name-pattern, null, $columnName)), comma );
357
+ $prefix-common-selector : append( $prefix-common-selector, unquote(_gridle_classname($gridle-prefix-name-pattern, null, $columnName)), comma );
358
+ $suffix-common-selector : append( $suffix-common-selector, unquote(_gridle_classname($gridle-suffix-name-pattern, null, $columnName)), comma );
359
+ }
360
+
361
+ // | ------------------------
362
+ // | Media queries classes common selectors
363
+ // | ------------------------
364
+
365
+ // generate all classes for media queries :
366
+ @each $stateName, $state in $_gridle_states {
367
+
368
+ // setup vars :
369
+ $media : $stateName;
370
+ $classes : map-get($state, "classes");
371
+ $context : map-get($state, "context");
372
+
373
+ // generate classes :
374
+ @if $media and $classes == true and $context {
375
+
376
+ // get specials columns :
377
+ $columnsMap : map-merge((), $_gridle_columns);
378
+
379
+ // register each default columns :
380
+ @for $j from 0 through $context {
381
+
382
+ // name :
383
+ $columnName : "#{$j*$gridle-name-multiplicator}";
384
+
385
+ // // create a column :
386
+ $col : _gridle_create_column($columnName, $j, $context);
387
+
388
+ // // add column in columns map :
389
+ $columnsMap : map-set($columnsMap, $columnName, $col);
390
+ }
391
+
392
+ // loop on each columns to generate common selector :
393
+ @each $columnName, $column in $columnsMap {
394
+
395
+ // add selector :
396
+ $common-selector : append( $common-selector, unquote(_gridle_classname($gridle-grid-name-pattern, $media, $columnName)), comma );
397
+ $push-common-selector : append( $push-common-selector, unquote(_gridle_classname($gridle-push-name-pattern, $media, $columnName)), comma );
398
+ $pull-common-selector : append( $pull-common-selector, unquote(_gridle_classname($gridle-pull-name-pattern, $media, $columnName)), comma );
399
+ $prefix-common-selector : append( $prefix-common-selector, unquote(_gridle_classname($gridle-prefix-name-pattern, $media, $columnName)), comma );
400
+ $suffix-common-selector : append( $suffix-common-selector, unquote(_gridle_classname($gridle-suffix-name-pattern, $media, $columnName)), comma );
401
+ }
402
+ }
403
+ }
404
+
405
+ // common css :
406
+ #{$push-common-selector} {
407
+ @include _gridle_push_common();
408
+ }
409
+ #{$pull-common-selector} {
410
+ @include _gridle_pull_common();
411
+ }
412
+ #{$prefix-common-selector} {
413
+ @include _gridle_prefix_common();
414
+ }
415
+ #{$suffix-common-selector} {
416
+ @include _gridle_suffix_common();
417
+ }
418
+ #{$common-selector} {
419
+ @include _gridle_grid_common();
420
+ }
421
+
422
+
423
+ // | ------------------------
424
+ // | Media queries classes
425
+ // | ------------------------
426
+
427
+ // generate all classes for differents media queries :
428
+ @each $stateName, $state in $_gridle_states {
429
+
430
+ // setup vars :
431
+ $media : $stateName;
432
+ $classes : map-get($state, "classes");
433
+ $min-width : map-get($state, "min-width");
434
+ $max-width : map-get($state, "max-width");
435
+ $query : map-get($state, "query");
436
+ $context : map-get($state, "context");
437
+
438
+ // parent common css :
439
+ $parentSelector : _gridle_classname($gridle-parent-name-pattern,$media,null);
440
+ #{$parentSelector} {
441
+ @extend %gridle-clearfix;
442
+ @extend %gridle-parent-common;
443
+ }
444
+
445
+ // generate all media queries grid classes :
446
+ @if $media and $classes == true {
447
+
448
+ // generate all the classes :
449
+ @include gridle_state($media, null, $has-parent) {
450
+
451
+ // get specials columns :
452
+ $columnsMap : map-merge((), $_gridle_columns);
453
+
454
+ // register each default columns :
455
+ @for $j from 0 through $context {
456
+
457
+ // name :
458
+ $columnName : "#{$j*$gridle-name-multiplicator}";
459
+
460
+ // // create a column :
461
+ $col : _gridle_create_column($columnName, $j, $context);
462
+
463
+ // // add column in columns map :
464
+ $columnsMap : map-set($columnsMap, $columnName, $col);
465
+ }
466
+
467
+ // generate all classes for columns :
468
+ @each $columnName, $column in $columnsMap {
469
+
470
+ // variables :
471
+ $columnsCount : map-get($column, columns);
472
+ $context : map-get($column, context);
473
+
474
+ // classes :
475
+ #{_gridle_classname($gridle-grid-name-pattern, $media, $columnName)} {
476
+ @include _gridle($columnsCount, $media, $context);
477
+ }
478
+ @if $gridle-generate-push-classes == true {
479
+ #{_gridle_classname($gridle-push-name-pattern, $media, $columnName)} {
480
+ @include _gridle_push($columnsCount, $media, $context);
481
+ }
482
+ }
483
+ @if $gridle-generate-pull-classes == true {
484
+ #{_gridle_classname($gridle-pull-name-pattern, $media, $columnName)} {
485
+ @include _gridle_pull($columnsCount, $media, $context);
486
+ }
487
+ }
488
+ @if $gridle-generate-prefix-classes == true {
489
+ #{_gridle_classname($gridle-prefix-name-pattern, $media, $columnName)} {
490
+ @include _gridle_prefix($columnsCount, $media, $context);
491
+ }
492
+ }
493
+ @if $gridle-generate-suffix-classes == true {
494
+ #{_gridle_classname($gridle-suffix-name-pattern, $media, $columnName)} {
495
+ @include _gridle_suffix($columnsCount, $media, $context);
496
+ }
497
+ }
498
+ }
499
+
500
+ // media queries helpers classes :
501
+ @if $gridle-generate-helpers-classes == true and $media {
502
+ @include _gridle_generate_helper_classes($media);
503
+ }
504
+ }
505
+ }
506
+ }
507
+
508
+
509
+ // | ------------------------
510
+ // | JSON Settings
511
+ // | ------------------------
512
+
513
+ // generate json settings :
514
+ @include gridle_generate_json_settings();
515
+ }