styler-sass 0.1.1

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 (200) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +10 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/Gemfile +4 -0
  6. data/Guardfile +70 -0
  7. data/LICENSE.txt +21 -0
  8. data/README.md +44 -0
  9. data/Rakefile +6 -0
  10. data/app/assets/fonts/awesome/FontAwesome.otf +0 -0
  11. data/app/assets/fonts/awesome/fontawesome-webfont.eot +0 -0
  12. data/app/assets/fonts/awesome/fontawesome-webfont.svg +640 -0
  13. data/app/assets/fonts/awesome/fontawesome-webfont.ttf +0 -0
  14. data/app/assets/fonts/awesome/fontawesome-webfont.woff +0 -0
  15. data/app/assets/fonts/awesome/fontawesome-webfont.woff2 +0 -0
  16. data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.eot +0 -0
  17. data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.svg +288 -0
  18. data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.ttf +0 -0
  19. data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.woff +0 -0
  20. data/app/assets/fonts/bootstrap/glyphicons-halflings-regular.woff2 +0 -0
  21. data/app/assets/images/.keep +0 -0
  22. data/app/assets/javascripts/bootstrap-sprockets.js +12 -0
  23. data/app/assets/javascripts/bootstrap.js +2363 -0
  24. data/app/assets/javascripts/bootstrap.min.js +7 -0
  25. data/app/assets/javascripts/bootstrap/affix.js +162 -0
  26. data/app/assets/javascripts/bootstrap/alert.js +94 -0
  27. data/app/assets/javascripts/bootstrap/button.js +120 -0
  28. data/app/assets/javascripts/bootstrap/carousel.js +237 -0
  29. data/app/assets/javascripts/bootstrap/collapse.js +211 -0
  30. data/app/assets/javascripts/bootstrap/dropdown.js +165 -0
  31. data/app/assets/javascripts/bootstrap/modal.js +337 -0
  32. data/app/assets/javascripts/bootstrap/popover.js +108 -0
  33. data/app/assets/javascripts/bootstrap/scrollspy.js +172 -0
  34. data/app/assets/javascripts/bootstrap/tab.js +155 -0
  35. data/app/assets/javascripts/bootstrap/tooltip.js +514 -0
  36. data/app/assets/javascripts/bootstrap/transition.js +59 -0
  37. data/app/assets/stylesheets/_bootstrap-compass.scss +9 -0
  38. data/app/assets/stylesheets/_bootstrap-mincer.scss +19 -0
  39. data/app/assets/stylesheets/_bootstrap-sprockets.scss +9 -0
  40. data/app/assets/stylesheets/_bootstrap.scss +56 -0
  41. data/app/assets/stylesheets/_bourbon-deprecated-upcoming.scss +411 -0
  42. data/app/assets/stylesheets/_bourbon.scss +87 -0
  43. data/app/assets/stylesheets/_font-awesome.css.scss +2026 -0
  44. data/app/assets/stylesheets/_font-awesome.min.css.scss +4 -0
  45. data/app/assets/stylesheets/_normalize.css.scss +427 -0
  46. data/app/assets/stylesheets/addons/_border-color.scss +26 -0
  47. data/app/assets/stylesheets/addons/_border-radius.scss +48 -0
  48. data/app/assets/stylesheets/addons/_border-style.scss +25 -0
  49. data/app/assets/stylesheets/addons/_border-width.scss +25 -0
  50. data/app/assets/stylesheets/addons/_buttons.scss +64 -0
  51. data/app/assets/stylesheets/addons/_clearfix.scss +25 -0
  52. data/app/assets/stylesheets/addons/_ellipsis.scss +30 -0
  53. data/app/assets/stylesheets/addons/_font-stacks.scss +31 -0
  54. data/app/assets/stylesheets/addons/_hide-text.scss +27 -0
  55. data/app/assets/stylesheets/addons/_margin.scss +26 -0
  56. data/app/assets/stylesheets/addons/_padding.scss +26 -0
  57. data/app/assets/stylesheets/addons/_position.scss +48 -0
  58. data/app/assets/stylesheets/addons/_prefixer.scss +66 -0
  59. data/app/assets/stylesheets/addons/_retina-image.scss +25 -0
  60. data/app/assets/stylesheets/addons/_size.scss +51 -0
  61. data/app/assets/stylesheets/addons/_text-inputs.scss +113 -0
  62. data/app/assets/stylesheets/addons/_timing-functions.scss +34 -0
  63. data/app/assets/stylesheets/addons/_triangle.scss +63 -0
  64. data/app/assets/stylesheets/addons/_word-wrap.scss +29 -0
  65. data/app/assets/stylesheets/bootstrap/_alerts.scss +73 -0
  66. data/app/assets/stylesheets/bootstrap/_badges.scss +68 -0
  67. data/app/assets/stylesheets/bootstrap/_breadcrumbs.scss +28 -0
  68. data/app/assets/stylesheets/bootstrap/_button-groups.scss +244 -0
  69. data/app/assets/stylesheets/bootstrap/_buttons.scss +168 -0
  70. data/app/assets/stylesheets/bootstrap/_carousel.scss +269 -0
  71. data/app/assets/stylesheets/bootstrap/_close.scss +36 -0
  72. data/app/assets/stylesheets/bootstrap/_code.scss +69 -0
  73. data/app/assets/stylesheets/bootstrap/_component-animations.scss +37 -0
  74. data/app/assets/stylesheets/bootstrap/_dropdowns.scss +216 -0
  75. data/app/assets/stylesheets/bootstrap/_forms.scss +611 -0
  76. data/app/assets/stylesheets/bootstrap/_glyphicons.scss +307 -0
  77. data/app/assets/stylesheets/bootstrap/_grid.scss +84 -0
  78. data/app/assets/stylesheets/bootstrap/_input-groups.scss +167 -0
  79. data/app/assets/stylesheets/bootstrap/_jumbotron.scss +52 -0
  80. data/app/assets/stylesheets/bootstrap/_labels.scss +66 -0
  81. data/app/assets/stylesheets/bootstrap/_list-group.scss +130 -0
  82. data/app/assets/stylesheets/bootstrap/_media.scss +66 -0
  83. data/app/assets/stylesheets/bootstrap/_mixins.scss +40 -0
  84. data/app/assets/stylesheets/bootstrap/_modals.scss +150 -0
  85. data/app/assets/stylesheets/bootstrap/_navbar.scss +662 -0
  86. data/app/assets/stylesheets/bootstrap/_navs.scss +242 -0
  87. data/app/assets/stylesheets/bootstrap/_normalize.scss +424 -0
  88. data/app/assets/stylesheets/bootstrap/_pager.scss +54 -0
  89. data/app/assets/stylesheets/bootstrap/_pagination.scss +89 -0
  90. data/app/assets/stylesheets/bootstrap/_panels.scss +271 -0
  91. data/app/assets/stylesheets/bootstrap/_popovers.scss +131 -0
  92. data/app/assets/stylesheets/bootstrap/_print.scss +101 -0
  93. data/app/assets/stylesheets/bootstrap/_progress-bars.scss +87 -0
  94. data/app/assets/stylesheets/bootstrap/_responsive-embed.scss +35 -0
  95. data/app/assets/stylesheets/bootstrap/_responsive-utilities.scss +179 -0
  96. data/app/assets/stylesheets/bootstrap/_scaffolding.scss +161 -0
  97. data/app/assets/stylesheets/bootstrap/_tables.scss +234 -0
  98. data/app/assets/stylesheets/bootstrap/_theme.scss +291 -0
  99. data/app/assets/stylesheets/bootstrap/_thumbnails.scss +38 -0
  100. data/app/assets/stylesheets/bootstrap/_tooltip.scss +101 -0
  101. data/app/assets/stylesheets/bootstrap/_type.scss +298 -0
  102. data/app/assets/stylesheets/bootstrap/_utilities.scss +55 -0
  103. data/app/assets/stylesheets/bootstrap/_variables.scss +872 -0
  104. data/app/assets/stylesheets/bootstrap/_wells.scss +29 -0
  105. data/app/assets/stylesheets/bootstrap/mixins/_alerts.scss +14 -0
  106. data/app/assets/stylesheets/bootstrap/mixins/_background-variant.scss +12 -0
  107. data/app/assets/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
  108. data/app/assets/stylesheets/bootstrap/mixins/_buttons.scss +68 -0
  109. data/app/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  110. data/app/assets/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
  111. data/app/assets/stylesheets/bootstrap/mixins/_forms.scss +88 -0
  112. data/app/assets/stylesheets/bootstrap/mixins/_gradients.scss +58 -0
  113. data/app/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +81 -0
  114. data/app/assets/stylesheets/bootstrap/mixins/_grid.scss +122 -0
  115. data/app/assets/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
  116. data/app/assets/stylesheets/bootstrap/mixins/_image.scss +33 -0
  117. data/app/assets/stylesheets/bootstrap/mixins/_labels.scss +12 -0
  118. data/app/assets/stylesheets/bootstrap/mixins/_list-group.scss +32 -0
  119. data/app/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  120. data/app/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  121. data/app/assets/stylesheets/bootstrap/mixins/_opacity.scss +8 -0
  122. data/app/assets/stylesheets/bootstrap/mixins/_pagination.scss +24 -0
  123. data/app/assets/stylesheets/bootstrap/mixins/_panels.scss +24 -0
  124. data/app/assets/stylesheets/bootstrap/mixins/_progress-bar.scss +10 -0
  125. data/app/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  126. data/app/assets/stylesheets/bootstrap/mixins/_reset-text.scss +18 -0
  127. data/app/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  128. data/app/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +21 -0
  129. data/app/assets/stylesheets/bootstrap/mixins/_size.scss +10 -0
  130. data/app/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  131. data/app/assets/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
  132. data/app/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +12 -0
  133. data/app/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
  134. data/app/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  135. data/app/assets/stylesheets/css3/_animation.scss +43 -0
  136. data/app/assets/stylesheets/css3/_appearance.scss +3 -0
  137. data/app/assets/stylesheets/css3/_backface-visibility.scss +3 -0
  138. data/app/assets/stylesheets/css3/_background-image.scss +42 -0
  139. data/app/assets/stylesheets/css3/_background.scss +55 -0
  140. data/app/assets/stylesheets/css3/_border-image.scss +59 -0
  141. data/app/assets/stylesheets/css3/_calc.scss +4 -0
  142. data/app/assets/stylesheets/css3/_columns.scss +47 -0
  143. data/app/assets/stylesheets/css3/_filter.scss +4 -0
  144. data/app/assets/stylesheets/css3/_flex-box.scss +287 -0
  145. data/app/assets/stylesheets/css3/_font-face.scss +24 -0
  146. data/app/assets/stylesheets/css3/_font-feature-settings.scss +4 -0
  147. data/app/assets/stylesheets/css3/_hidpi-media-query.scss +10 -0
  148. data/app/assets/stylesheets/css3/_hyphens.scss +4 -0
  149. data/app/assets/stylesheets/css3/_image-rendering.scss +14 -0
  150. data/app/assets/stylesheets/css3/_keyframes.scss +36 -0
  151. data/app/assets/stylesheets/css3/_linear-gradient.scss +38 -0
  152. data/app/assets/stylesheets/css3/_perspective.scss +8 -0
  153. data/app/assets/stylesheets/css3/_placeholder.scss +8 -0
  154. data/app/assets/stylesheets/css3/_radial-gradient.scss +39 -0
  155. data/app/assets/stylesheets/css3/_selection.scss +42 -0
  156. data/app/assets/stylesheets/css3/_text-decoration.scss +19 -0
  157. data/app/assets/stylesheets/css3/_transform.scss +15 -0
  158. data/app/assets/stylesheets/css3/_transition.scss +71 -0
  159. data/app/assets/stylesheets/css3/_user-select.scss +3 -0
  160. data/app/assets/stylesheets/functions/_assign-inputs.scss +11 -0
  161. data/app/assets/stylesheets/functions/_contains-falsy.scss +20 -0
  162. data/app/assets/stylesheets/functions/_contains.scss +26 -0
  163. data/app/assets/stylesheets/functions/_is-length.scss +11 -0
  164. data/app/assets/stylesheets/functions/_is-light.scss +21 -0
  165. data/app/assets/stylesheets/functions/_is-number.scss +11 -0
  166. data/app/assets/stylesheets/functions/_is-size.scss +13 -0
  167. data/app/assets/stylesheets/functions/_modular-scale.scss +69 -0
  168. data/app/assets/stylesheets/functions/_px-to-em.scss +13 -0
  169. data/app/assets/stylesheets/functions/_px-to-rem.scss +15 -0
  170. data/app/assets/stylesheets/functions/_shade.scss +24 -0
  171. data/app/assets/stylesheets/functions/_strip-units.scss +17 -0
  172. data/app/assets/stylesheets/functions/_tint.scss +24 -0
  173. data/app/assets/stylesheets/functions/_transition-property-name.scss +22 -0
  174. data/app/assets/stylesheets/functions/_unpack.scss +27 -0
  175. data/app/assets/stylesheets/helpers/_convert-units.scss +21 -0
  176. data/app/assets/stylesheets/helpers/_directional-values.scss +96 -0
  177. data/app/assets/stylesheets/helpers/_font-source-declaration.scss +43 -0
  178. data/app/assets/stylesheets/helpers/_gradient-positions-parser.scss +13 -0
  179. data/app/assets/stylesheets/helpers/_linear-angle-parser.scss +25 -0
  180. data/app/assets/stylesheets/helpers/_linear-gradient-parser.scss +41 -0
  181. data/app/assets/stylesheets/helpers/_linear-positions-parser.scss +61 -0
  182. data/app/assets/stylesheets/helpers/_linear-side-corner-parser.scss +31 -0
  183. data/app/assets/stylesheets/helpers/_radial-arg-parser.scss +69 -0
  184. data/app/assets/stylesheets/helpers/_radial-gradient-parser.scss +50 -0
  185. data/app/assets/stylesheets/helpers/_radial-positions-parser.scss +18 -0
  186. data/app/assets/stylesheets/helpers/_render-gradients.scss +26 -0
  187. data/app/assets/stylesheets/helpers/_shape-size-stripper.scss +10 -0
  188. data/app/assets/stylesheets/helpers/_str-to-num.scss +50 -0
  189. data/app/assets/stylesheets/settings/_asset-pipeline.scss +7 -0
  190. data/app/assets/stylesheets/settings/_prefixer.scss +9 -0
  191. data/app/assets/stylesheets/settings/_px-to-em.scss +1 -0
  192. data/bin/console +14 -0
  193. data/bin/setup +7 -0
  194. data/lib/styler.rb +51 -0
  195. data/lib/styler/engine.rb +5 -0
  196. data/lib/styler/generator.rb +80 -0
  197. data/lib/styler/version.rb +3 -0
  198. data/lib/tasks/install.rake +20 -0
  199. data/styler.gemspec +40 -0
  200. metadata +369 -0
@@ -0,0 +1,24 @@
1
+ @mixin font-face(
2
+ $font-family,
3
+ $file-path,
4
+ $weight: normal,
5
+ $style: normal,
6
+ $asset-pipeline: $asset-pipeline,
7
+ $file-formats: eot woff2 woff ttf svg) {
8
+
9
+ $font-url-prefix: font-url-prefixer($asset-pipeline);
10
+
11
+ @font-face {
12
+ font-family: $font-family;
13
+ font-style: $style;
14
+ font-weight: $weight;
15
+
16
+ src: font-source-declaration(
17
+ $font-family,
18
+ $file-path,
19
+ $asset-pipeline,
20
+ $file-formats,
21
+ $font-url-prefix
22
+ );
23
+ }
24
+ }
@@ -0,0 +1,4 @@
1
+ @mixin font-feature-settings($settings...) {
2
+ @if length($settings) == 0 { $settings: none; }
3
+ @include prefixer(font-feature-settings, $settings, webkit moz ms spec);
4
+ }
@@ -0,0 +1,10 @@
1
+ // HiDPI mixin. Default value set to 1.3 to target Google Nexus 7 (http://bjango.com/articles/min-device-pixel-ratio/)
2
+ @mixin hidpi($ratio: 1.3) {
3
+ @media only screen and (-webkit-min-device-pixel-ratio: $ratio),
4
+ only screen and (min--moz-device-pixel-ratio: $ratio),
5
+ only screen and (-o-min-device-pixel-ratio: #{$ratio}/1),
6
+ only screen and (min-resolution: round($ratio * 96dpi)),
7
+ only screen and (min-resolution: $ratio * 1dppx) {
8
+ @content;
9
+ }
10
+ }
@@ -0,0 +1,4 @@
1
+ @mixin hyphens($hyphenation: none) {
2
+ // none | manual | auto
3
+ @include prefixer(hyphens, $hyphenation, webkit moz ms spec);
4
+ }
@@ -0,0 +1,14 @@
1
+ @mixin image-rendering ($mode:auto) {
2
+
3
+ @if ($mode == crisp-edges) {
4
+ -ms-interpolation-mode: nearest-neighbor; // IE8+
5
+ image-rendering: -moz-crisp-edges;
6
+ image-rendering: -o-crisp-edges;
7
+ image-rendering: -webkit-optimize-contrast;
8
+ image-rendering: crisp-edges;
9
+ }
10
+
11
+ @else {
12
+ image-rendering: $mode;
13
+ }
14
+ }
@@ -0,0 +1,36 @@
1
+ // Adds keyframes blocks for supported prefixes, removing redundant prefixes in the block's content
2
+ @mixin keyframes($name) {
3
+ $original-prefix-for-webkit: $prefix-for-webkit;
4
+ $original-prefix-for-mozilla: $prefix-for-mozilla;
5
+ $original-prefix-for-microsoft: $prefix-for-microsoft;
6
+ $original-prefix-for-opera: $prefix-for-opera;
7
+ $original-prefix-for-spec: $prefix-for-spec;
8
+
9
+ @if $original-prefix-for-webkit {
10
+ @include disable-prefix-for-all();
11
+ $prefix-for-webkit: true !global;
12
+ @-webkit-keyframes #{$name} {
13
+ @content;
14
+ }
15
+ }
16
+
17
+ @if $original-prefix-for-mozilla {
18
+ @include disable-prefix-for-all();
19
+ $prefix-for-mozilla: true !global;
20
+ @-moz-keyframes #{$name} {
21
+ @content;
22
+ }
23
+ }
24
+
25
+ $prefix-for-webkit: $original-prefix-for-webkit !global;
26
+ $prefix-for-mozilla: $original-prefix-for-mozilla !global;
27
+ $prefix-for-microsoft: $original-prefix-for-microsoft !global;
28
+ $prefix-for-opera: $original-prefix-for-opera !global;
29
+ $prefix-for-spec: $original-prefix-for-spec !global;
30
+
31
+ @if $original-prefix-for-spec {
32
+ @keyframes #{$name} {
33
+ @content;
34
+ }
35
+ }
36
+ }
@@ -0,0 +1,38 @@
1
+ @mixin linear-gradient($pos, $g1, $g2: null,
2
+ $g3: null, $g4: null,
3
+ $g5: null, $g6: null,
4
+ $g7: null, $g8: null,
5
+ $g9: null, $g10: null,
6
+ $fallback: null) {
7
+ // Detect what type of value exists in $pos
8
+ $pos-type: type-of(nth($pos, 1));
9
+ $pos-spec: null;
10
+ $pos-degree: null;
11
+
12
+ // If $pos is missing from mixin, reassign vars and add default position
13
+ @if ($pos-type == color) or (nth($pos, 1) == "transparent") {
14
+ $g10: $g9; $g9: $g8; $g8: $g7; $g7: $g6; $g6: $g5;
15
+ $g5: $g4; $g4: $g3; $g3: $g2; $g2: $g1; $g1: $pos;
16
+ $pos: null;
17
+ }
18
+
19
+ @if $pos {
20
+ $positions: _linear-positions-parser($pos);
21
+ $pos-degree: nth($positions, 1);
22
+ $pos-spec: nth($positions, 2);
23
+ }
24
+
25
+ $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10;
26
+
27
+ // Set $g1 as the default fallback color
28
+ $fallback-color: nth($g1, 1);
29
+
30
+ // If $fallback is a color use that color as the fallback color
31
+ @if (type-of($fallback) == color) or ($fallback == "transparent") {
32
+ $fallback-color: $fallback;
33
+ }
34
+
35
+ background-color: $fallback-color;
36
+ background-image: -webkit-linear-gradient($pos-degree $full); // Safari 5.1+, Chrome
37
+ background-image: unquote("linear-gradient(#{$pos-spec}#{$full})");
38
+ }
@@ -0,0 +1,8 @@
1
+ @mixin perspective($depth: none) {
2
+ // none | <length>
3
+ @include prefixer(perspective, $depth, webkit moz spec);
4
+ }
5
+
6
+ @mixin perspective-origin($value: 50% 50%) {
7
+ @include prefixer(perspective-origin, $value, webkit moz spec);
8
+ }
@@ -0,0 +1,8 @@
1
+ @mixin placeholder {
2
+ $placeholders: ":-webkit-input" ":-moz" "-moz" "-ms-input";
3
+ @each $placeholder in $placeholders {
4
+ &:#{$placeholder}-placeholder {
5
+ @content;
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,39 @@
1
+ // Requires Sass 3.1+
2
+ @mixin radial-gradient($g1, $g2,
3
+ $g3: null, $g4: null,
4
+ $g5: null, $g6: null,
5
+ $g7: null, $g8: null,
6
+ $g9: null, $g10: null,
7
+ $pos: null,
8
+ $shape-size: null,
9
+ $fallback: null) {
10
+
11
+ $data: _radial-arg-parser($g1, $g2, $pos, $shape-size);
12
+ $g1: nth($data, 1);
13
+ $g2: nth($data, 2);
14
+ $pos: nth($data, 3);
15
+ $shape-size: nth($data, 4);
16
+
17
+ $full: $g1, $g2, $g3, $g4, $g5, $g6, $g7, $g8, $g9, $g10;
18
+
19
+ // Strip deprecated cover/contain for spec
20
+ $shape-size-spec: _shape-size-stripper($shape-size);
21
+
22
+ // Set $g1 as the default fallback color
23
+ $first-color: nth($full, 1);
24
+ $fallback-color: nth($first-color, 1);
25
+
26
+ @if (type-of($fallback) == color) or ($fallback == "transparent") {
27
+ $fallback-color: $fallback;
28
+ }
29
+
30
+ // Add Commas and spaces
31
+ $shape-size: if($shape-size, "#{$shape-size}, ", null);
32
+ $pos: if($pos, "#{$pos}, ", null);
33
+ $pos-spec: if($pos, "at #{$pos}", null);
34
+ $shape-size-spec: if(($shape-size-spec != " ") and ($pos == null), "#{$shape-size-spec}, ", "#{$shape-size-spec} ");
35
+
36
+ background-color: $fallback-color;
37
+ background-image: -webkit-radial-gradient(unquote(#{$pos}#{$shape-size}#{$full}));
38
+ background-image: unquote("radial-gradient(#{$shape-size-spec}#{$pos-spec}#{$full})");
39
+ }
@@ -0,0 +1,42 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Outputs the spec and prefixed versions of the `::selection` pseudo-element.
4
+ ///
5
+ /// @param {Bool} $current-selector [false]
6
+ /// If set to `true`, it takes the current element into consideration.
7
+ ///
8
+ /// @example scss - Usage
9
+ /// .element {
10
+ /// @include selection(true) {
11
+ /// background-color: #ffbb52;
12
+ /// }
13
+ /// }
14
+ ///
15
+ /// @example css - CSS Output
16
+ /// .element::-moz-selection {
17
+ /// background-color: #ffbb52;
18
+ /// }
19
+ ///
20
+ /// .element::selection {
21
+ /// background-color: #ffbb52;
22
+ /// }
23
+
24
+ @mixin selection($current-selector: false) {
25
+ @if $current-selector {
26
+ &::-moz-selection {
27
+ @content;
28
+ }
29
+
30
+ &::selection {
31
+ @content;
32
+ }
33
+ } @else {
34
+ ::-moz-selection {
35
+ @content;
36
+ }
37
+
38
+ ::selection {
39
+ @content;
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,19 @@
1
+ @mixin text-decoration($value) {
2
+ // <text-decoration-line> || <text-decoration-style> || <text-decoration-color>
3
+ @include prefixer(text-decoration, $value, moz);
4
+ }
5
+
6
+ @mixin text-decoration-line($line: none) {
7
+ // none || underline || overline || line-through
8
+ @include prefixer(text-decoration-line, $line, moz);
9
+ }
10
+
11
+ @mixin text-decoration-style($style: solid) {
12
+ // solid || double || dotted || dashed || wavy
13
+ @include prefixer(text-decoration-style, $style, moz webkit);
14
+ }
15
+
16
+ @mixin text-decoration-color($color: currentColor) {
17
+ // currentColor || <color>
18
+ @include prefixer(text-decoration-color, $color, moz);
19
+ }
@@ -0,0 +1,15 @@
1
+ @mixin transform($property: none) {
2
+ // none | <transform-function>
3
+ @include prefixer(transform, $property, webkit moz ms o spec);
4
+ }
5
+
6
+ @mixin transform-origin($axes: 50%) {
7
+ // x-axis - left | center | right | length | %
8
+ // y-axis - top | center | bottom | length | %
9
+ // z-axis - length
10
+ @include prefixer(transform-origin, $axes, webkit moz ms o spec);
11
+ }
12
+
13
+ @mixin transform-style($style: flat) {
14
+ @include prefixer(transform-style, $style, webkit moz ms o spec);
15
+ }
@@ -0,0 +1,71 @@
1
+ // Shorthand mixin. Supports multiple parentheses-deliminated values for each variable.
2
+ // Example: @include transition (all 2s ease-in-out);
3
+ // @include transition (opacity 1s ease-in 2s, width 2s ease-out);
4
+ // @include transition-property (transform, opacity);
5
+
6
+ @mixin transition($properties...) {
7
+ // Fix for vendor-prefix transform property
8
+ $needs-prefixes: false;
9
+ $webkit: ();
10
+ $moz: ();
11
+ $spec: ();
12
+
13
+ // Create lists for vendor-prefixed transform
14
+ @each $list in $properties {
15
+ @if nth($list, 1) == "transform" {
16
+ $needs-prefixes: true;
17
+ $list1: -webkit-transform;
18
+ $list2: -moz-transform;
19
+ $list3: ();
20
+
21
+ @each $var in $list {
22
+ $list3: join($list3, $var);
23
+
24
+ @if $var != "transform" {
25
+ $list1: join($list1, $var);
26
+ $list2: join($list2, $var);
27
+ }
28
+ }
29
+
30
+ $webkit: append($webkit, $list1);
31
+ $moz: append($moz, $list2);
32
+ $spec: append($spec, $list3);
33
+ } @else {
34
+ $webkit: append($webkit, $list, comma);
35
+ $moz: append($moz, $list, comma);
36
+ $spec: append($spec, $list, comma);
37
+ }
38
+ }
39
+
40
+ @if $needs-prefixes {
41
+ -webkit-transition: $webkit;
42
+ -moz-transition: $moz;
43
+ transition: $spec;
44
+ } @else {
45
+ @if length($properties) >= 1 {
46
+ @include prefixer(transition, $properties, webkit moz spec);
47
+ } @else {
48
+ $properties: all 0.15s ease-out 0s;
49
+ @include prefixer(transition, $properties, webkit moz spec);
50
+ }
51
+ }
52
+ }
53
+
54
+ @mixin transition-property($properties...) {
55
+ -webkit-transition-property: transition-property-names($properties, "webkit");
56
+ -moz-transition-property: transition-property-names($properties, "moz");
57
+ transition-property: transition-property-names($properties, false);
58
+ }
59
+
60
+ @mixin transition-duration($times...) {
61
+ @include prefixer(transition-duration, $times, webkit moz spec);
62
+ }
63
+
64
+ @mixin transition-timing-function($motions...) {
65
+ // ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier()
66
+ @include prefixer(transition-timing-function, $motions, webkit moz spec);
67
+ }
68
+
69
+ @mixin transition-delay($times...) {
70
+ @include prefixer(transition-delay, $times, webkit moz spec);
71
+ }
@@ -0,0 +1,3 @@
1
+ @mixin user-select($value: none) {
2
+ @include prefixer(user-select, $value, webkit moz ms spec);
3
+ }
@@ -0,0 +1,11 @@
1
+ @function assign-inputs($inputs, $pseudo: null) {
2
+ $list: ();
3
+
4
+ @each $input in $inputs {
5
+ $input: unquote($input);
6
+ $input: if($pseudo, $input + ":" + $pseudo, $input);
7
+ $list: append($list, $input, comma);
8
+ }
9
+
10
+ @return $list;
11
+ }
@@ -0,0 +1,20 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Checks if a list does not contains a value.
4
+ ///
5
+ /// @access private
6
+ ///
7
+ /// @param {List} $list
8
+ /// The list to check against.
9
+ ///
10
+ /// @return {Bool}
11
+
12
+ @function contains-falsy($list) {
13
+ @each $item in $list {
14
+ @if not $item {
15
+ @return true;
16
+ }
17
+ }
18
+
19
+ @return false;
20
+ }
@@ -0,0 +1,26 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Checks if a list contains a value(s).
4
+ ///
5
+ /// @access private
6
+ ///
7
+ /// @param {List} $list
8
+ /// The list to check against.
9
+ ///
10
+ /// @param {List} $values
11
+ /// A single value or list of values to check for.
12
+ ///
13
+ /// @example scss - Usage
14
+ /// contains($list, $value)
15
+ ///
16
+ /// @return {Bool}
17
+
18
+ @function contains($list, $values...) {
19
+ @each $value in $values {
20
+ @if type-of(index($list, $value)) != "number" {
21
+ @return false;
22
+ }
23
+ }
24
+
25
+ @return true;
26
+ }
@@ -0,0 +1,11 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Checks for a valid CSS length.
4
+ ///
5
+ /// @param {String} $value
6
+
7
+ @function is-length($value) {
8
+ @return type-of($value) != "null" and (str-slice($value + "", 1, 4) == "calc"
9
+ or index(auto inherit initial 0, $value)
10
+ or (type-of($value) == "number" and not(unitless($value))));
11
+ }
@@ -0,0 +1,21 @@
1
+ @charset "UTF-8";
2
+
3
+ /// Programatically determines whether a color is light or dark.
4
+ ///
5
+ /// @link http://robots.thoughtbot.com/closer-look-color-lightness
6
+ ///
7
+ /// @param {Color (Hex)} $color
8
+ ///
9
+ /// @example scss - Usage
10
+ /// is-light($color)
11
+ ///
12
+ /// @return {Bool}
13
+
14
+ @function is-light($hex-color) {
15
+ $-local-red: red(rgba($hex-color, 1));
16
+ $-local-green: green(rgba($hex-color, 1));
17
+ $-local-blue: blue(rgba($hex-color, 1));
18
+ $-local-lightness: ($-local-red * 0.2126 + $-local-green * 0.7152 + $-local-blue * 0.0722) / 255;
19
+
20
+ @return $-local-lightness > 0.6;
21
+ }