StyleSass 0.1.2

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 (197) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +9 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +4 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +21 -0
  7. data/README.md +41 -0
  8. data/Rakefile +6 -0
  9. data/StyleSass.gemspec +35 -0
  10. data/app/assets/fonts/FontAwesome.otf +0 -0
  11. data/app/assets/fonts/fontawesome-webfont.eot +0 -0
  12. data/app/assets/fonts/fontawesome-webfont.svg +640 -0
  13. data/app/assets/fonts/fontawesome-webfont.ttf +0 -0
  14. data/app/assets/fonts/fontawesome-webfont.woff +0 -0
  15. data/app/assets/fonts/fontawesome-webfont.woff2 +0 -0
  16. data/app/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  17. data/app/assets/fonts/glyphicons-halflings-regular.svg +288 -0
  18. data/app/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  19. data/app/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  20. data/app/assets/fonts/glyphicons-halflings-regular.woff2 +0 -0
  21. data/app/assets/javascripts/bootstrap/affix.js +162 -0
  22. data/app/assets/javascripts/bootstrap/alert.js +94 -0
  23. data/app/assets/javascripts/bootstrap/button.js +120 -0
  24. data/app/assets/javascripts/bootstrap/carousel.js +237 -0
  25. data/app/assets/javascripts/bootstrap/collapse.js +211 -0
  26. data/app/assets/javascripts/bootstrap/dropdown.js +165 -0
  27. data/app/assets/javascripts/bootstrap/modal.js +337 -0
  28. data/app/assets/javascripts/bootstrap/popover.js +108 -0
  29. data/app/assets/javascripts/bootstrap/scrollspy.js +172 -0
  30. data/app/assets/javascripts/bootstrap/tab.js +155 -0
  31. data/app/assets/javascripts/bootstrap/tooltip.js +514 -0
  32. data/app/assets/javascripts/bootstrap/transition.js +59 -0
  33. data/app/assets/javascripts/bootstrap-sprockets.js +12 -0
  34. data/app/assets/javascripts/bootstrap.js +2363 -0
  35. data/app/assets/javascripts/bootstrap.min.js +7 -0
  36. data/app/assets/stylesheets/_bootstrap-compass.scss +9 -0
  37. data/app/assets/stylesheets/_bootstrap-mincer.scss +19 -0
  38. data/app/assets/stylesheets/_bootstrap-sprockets.scss +9 -0
  39. data/app/assets/stylesheets/_bootstrap.scss +56 -0
  40. data/app/assets/stylesheets/_bourbon-deprecated-upcoming.scss +411 -0
  41. data/app/assets/stylesheets/_bourbon.scss +87 -0
  42. data/app/assets/stylesheets/_font-awesome.css.scss +2026 -0
  43. data/app/assets/stylesheets/_font-awesome.min.css.scss +4 -0
  44. data/app/assets/stylesheets/_normalize.css.scss +427 -0
  45. data/app/assets/stylesheets/addons/_border-color.scss +26 -0
  46. data/app/assets/stylesheets/addons/_border-radius.scss +48 -0
  47. data/app/assets/stylesheets/addons/_border-style.scss +25 -0
  48. data/app/assets/stylesheets/addons/_border-width.scss +25 -0
  49. data/app/assets/stylesheets/addons/_buttons.scss +64 -0
  50. data/app/assets/stylesheets/addons/_clearfix.scss +25 -0
  51. data/app/assets/stylesheets/addons/_ellipsis.scss +30 -0
  52. data/app/assets/stylesheets/addons/_font-stacks.scss +31 -0
  53. data/app/assets/stylesheets/addons/_hide-text.scss +27 -0
  54. data/app/assets/stylesheets/addons/_margin.scss +26 -0
  55. data/app/assets/stylesheets/addons/_padding.scss +26 -0
  56. data/app/assets/stylesheets/addons/_position.scss +48 -0
  57. data/app/assets/stylesheets/addons/_prefixer.scss +66 -0
  58. data/app/assets/stylesheets/addons/_retina-image.scss +25 -0
  59. data/app/assets/stylesheets/addons/_size.scss +51 -0
  60. data/app/assets/stylesheets/addons/_text-inputs.scss +113 -0
  61. data/app/assets/stylesheets/addons/_timing-functions.scss +34 -0
  62. data/app/assets/stylesheets/addons/_triangle.scss +63 -0
  63. data/app/assets/stylesheets/addons/_word-wrap.scss +29 -0
  64. data/app/assets/stylesheets/bootstrap/_alerts.scss +73 -0
  65. data/app/assets/stylesheets/bootstrap/_badges.scss +68 -0
  66. data/app/assets/stylesheets/bootstrap/_breadcrumbs.scss +28 -0
  67. data/app/assets/stylesheets/bootstrap/_button-groups.scss +244 -0
  68. data/app/assets/stylesheets/bootstrap/_buttons.scss +168 -0
  69. data/app/assets/stylesheets/bootstrap/_carousel.scss +269 -0
  70. data/app/assets/stylesheets/bootstrap/_close.scss +36 -0
  71. data/app/assets/stylesheets/bootstrap/_code.scss +69 -0
  72. data/app/assets/stylesheets/bootstrap/_component-animations.scss +37 -0
  73. data/app/assets/stylesheets/bootstrap/_dropdowns.scss +216 -0
  74. data/app/assets/stylesheets/bootstrap/_forms.scss +611 -0
  75. data/app/assets/stylesheets/bootstrap/_glyphicons.scss +307 -0
  76. data/app/assets/stylesheets/bootstrap/_grid.scss +84 -0
  77. data/app/assets/stylesheets/bootstrap/_input-groups.scss +167 -0
  78. data/app/assets/stylesheets/bootstrap/_jumbotron.scss +52 -0
  79. data/app/assets/stylesheets/bootstrap/_labels.scss +66 -0
  80. data/app/assets/stylesheets/bootstrap/_list-group.scss +130 -0
  81. data/app/assets/stylesheets/bootstrap/_media.scss +66 -0
  82. data/app/assets/stylesheets/bootstrap/_mixins.scss +40 -0
  83. data/app/assets/stylesheets/bootstrap/_modals.scss +150 -0
  84. data/app/assets/stylesheets/bootstrap/_navbar.scss +662 -0
  85. data/app/assets/stylesheets/bootstrap/_navs.scss +242 -0
  86. data/app/assets/stylesheets/bootstrap/_normalize.scss +424 -0
  87. data/app/assets/stylesheets/bootstrap/_pager.scss +54 -0
  88. data/app/assets/stylesheets/bootstrap/_pagination.scss +89 -0
  89. data/app/assets/stylesheets/bootstrap/_panels.scss +271 -0
  90. data/app/assets/stylesheets/bootstrap/_popovers.scss +131 -0
  91. data/app/assets/stylesheets/bootstrap/_print.scss +101 -0
  92. data/app/assets/stylesheets/bootstrap/_progress-bars.scss +87 -0
  93. data/app/assets/stylesheets/bootstrap/_responsive-embed.scss +35 -0
  94. data/app/assets/stylesheets/bootstrap/_responsive-utilities.scss +179 -0
  95. data/app/assets/stylesheets/bootstrap/_scaffolding.scss +161 -0
  96. data/app/assets/stylesheets/bootstrap/_tables.scss +234 -0
  97. data/app/assets/stylesheets/bootstrap/_theme.scss +291 -0
  98. data/app/assets/stylesheets/bootstrap/_thumbnails.scss +38 -0
  99. data/app/assets/stylesheets/bootstrap/_tooltip.scss +101 -0
  100. data/app/assets/stylesheets/bootstrap/_type.scss +298 -0
  101. data/app/assets/stylesheets/bootstrap/_utilities.scss +55 -0
  102. data/app/assets/stylesheets/bootstrap/_variables.scss +872 -0
  103. data/app/assets/stylesheets/bootstrap/_wells.scss +29 -0
  104. data/app/assets/stylesheets/bootstrap/mixins/_alerts.scss +14 -0
  105. data/app/assets/stylesheets/bootstrap/mixins/_background-variant.scss +12 -0
  106. data/app/assets/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
  107. data/app/assets/stylesheets/bootstrap/mixins/_buttons.scss +68 -0
  108. data/app/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
  109. data/app/assets/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
  110. data/app/assets/stylesheets/bootstrap/mixins/_forms.scss +88 -0
  111. data/app/assets/stylesheets/bootstrap/mixins/_gradients.scss +58 -0
  112. data/app/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +81 -0
  113. data/app/assets/stylesheets/bootstrap/mixins/_grid.scss +122 -0
  114. data/app/assets/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
  115. data/app/assets/stylesheets/bootstrap/mixins/_image.scss +33 -0
  116. data/app/assets/stylesheets/bootstrap/mixins/_labels.scss +12 -0
  117. data/app/assets/stylesheets/bootstrap/mixins/_list-group.scss +32 -0
  118. data/app/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
  119. data/app/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +9 -0
  120. data/app/assets/stylesheets/bootstrap/mixins/_opacity.scss +8 -0
  121. data/app/assets/stylesheets/bootstrap/mixins/_pagination.scss +24 -0
  122. data/app/assets/stylesheets/bootstrap/mixins/_panels.scss +24 -0
  123. data/app/assets/stylesheets/bootstrap/mixins/_progress-bar.scss +10 -0
  124. data/app/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
  125. data/app/assets/stylesheets/bootstrap/mixins/_reset-text.scss +18 -0
  126. data/app/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
  127. data/app/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +21 -0
  128. data/app/assets/stylesheets/bootstrap/mixins/_size.scss +10 -0
  129. data/app/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
  130. data/app/assets/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
  131. data/app/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +12 -0
  132. data/app/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
  133. data/app/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +222 -0
  134. data/app/assets/stylesheets/css3/_animation.scss +43 -0
  135. data/app/assets/stylesheets/css3/_appearance.scss +3 -0
  136. data/app/assets/stylesheets/css3/_backface-visibility.scss +3 -0
  137. data/app/assets/stylesheets/css3/_background-image.scss +42 -0
  138. data/app/assets/stylesheets/css3/_background.scss +55 -0
  139. data/app/assets/stylesheets/css3/_border-image.scss +59 -0
  140. data/app/assets/stylesheets/css3/_calc.scss +4 -0
  141. data/app/assets/stylesheets/css3/_columns.scss +47 -0
  142. data/app/assets/stylesheets/css3/_filter.scss +4 -0
  143. data/app/assets/stylesheets/css3/_flex-box.scss +287 -0
  144. data/app/assets/stylesheets/css3/_font-face.scss +24 -0
  145. data/app/assets/stylesheets/css3/_font-feature-settings.scss +4 -0
  146. data/app/assets/stylesheets/css3/_hidpi-media-query.scss +10 -0
  147. data/app/assets/stylesheets/css3/_hyphens.scss +4 -0
  148. data/app/assets/stylesheets/css3/_image-rendering.scss +14 -0
  149. data/app/assets/stylesheets/css3/_keyframes.scss +36 -0
  150. data/app/assets/stylesheets/css3/_linear-gradient.scss +38 -0
  151. data/app/assets/stylesheets/css3/_perspective.scss +8 -0
  152. data/app/assets/stylesheets/css3/_placeholder.scss +8 -0
  153. data/app/assets/stylesheets/css3/_radial-gradient.scss +39 -0
  154. data/app/assets/stylesheets/css3/_selection.scss +42 -0
  155. data/app/assets/stylesheets/css3/_text-decoration.scss +19 -0
  156. data/app/assets/stylesheets/css3/_transform.scss +15 -0
  157. data/app/assets/stylesheets/css3/_transition.scss +71 -0
  158. data/app/assets/stylesheets/css3/_user-select.scss +3 -0
  159. data/app/assets/stylesheets/functions/_assign-inputs.scss +11 -0
  160. data/app/assets/stylesheets/functions/_contains-falsy.scss +20 -0
  161. data/app/assets/stylesheets/functions/_contains.scss +26 -0
  162. data/app/assets/stylesheets/functions/_is-length.scss +11 -0
  163. data/app/assets/stylesheets/functions/_is-light.scss +21 -0
  164. data/app/assets/stylesheets/functions/_is-number.scss +11 -0
  165. data/app/assets/stylesheets/functions/_is-size.scss +13 -0
  166. data/app/assets/stylesheets/functions/_modular-scale.scss +69 -0
  167. data/app/assets/stylesheets/functions/_px-to-em.scss +13 -0
  168. data/app/assets/stylesheets/functions/_px-to-rem.scss +15 -0
  169. data/app/assets/stylesheets/functions/_shade.scss +24 -0
  170. data/app/assets/stylesheets/functions/_strip-units.scss +17 -0
  171. data/app/assets/stylesheets/functions/_tint.scss +24 -0
  172. data/app/assets/stylesheets/functions/_transition-property-name.scss +22 -0
  173. data/app/assets/stylesheets/functions/_unpack.scss +27 -0
  174. data/app/assets/stylesheets/helpers/_convert-units.scss +21 -0
  175. data/app/assets/stylesheets/helpers/_directional-values.scss +96 -0
  176. data/app/assets/stylesheets/helpers/_font-source-declaration.scss +43 -0
  177. data/app/assets/stylesheets/helpers/_gradient-positions-parser.scss +13 -0
  178. data/app/assets/stylesheets/helpers/_linear-angle-parser.scss +25 -0
  179. data/app/assets/stylesheets/helpers/_linear-gradient-parser.scss +41 -0
  180. data/app/assets/stylesheets/helpers/_linear-positions-parser.scss +61 -0
  181. data/app/assets/stylesheets/helpers/_linear-side-corner-parser.scss +31 -0
  182. data/app/assets/stylesheets/helpers/_radial-arg-parser.scss +69 -0
  183. data/app/assets/stylesheets/helpers/_radial-gradient-parser.scss +50 -0
  184. data/app/assets/stylesheets/helpers/_radial-positions-parser.scss +18 -0
  185. data/app/assets/stylesheets/helpers/_render-gradients.scss +26 -0
  186. data/app/assets/stylesheets/helpers/_shape-size-stripper.scss +10 -0
  187. data/app/assets/stylesheets/helpers/_str-to-num.scss +50 -0
  188. data/app/assets/stylesheets/settings/_asset-pipeline.scss +7 -0
  189. data/app/assets/stylesheets/settings/_prefixer.scss +9 -0
  190. data/app/assets/stylesheets/settings/_px-to-em.scss +1 -0
  191. data/bin/console +14 -0
  192. data/bin/setup +8 -0
  193. data/lib/StyleSass/engine.rb +5 -0
  194. data/lib/StyleSass/version.rb +3 -0
  195. data/lib/StyleSass.rb +2 -0
  196. data/lib/generators/style_sass/install_generator.rb +13 -0
  197. metadata +295 -0
@@ -0,0 +1,287 @@
1
+ // CSS3 Flexible Box Model and property defaults
2
+
3
+ // Custom shorthand notation for flexbox
4
+ @mixin box($orient: inline-axis, $pack: start, $align: stretch) {
5
+ @include display-box;
6
+ @include box-orient($orient);
7
+ @include box-pack($pack);
8
+ @include box-align($align);
9
+ }
10
+
11
+ @mixin display-box {
12
+ display: -webkit-box;
13
+ display: -moz-box;
14
+ display: -ms-flexbox; // IE 10
15
+ display: box;
16
+ }
17
+
18
+ @mixin box-orient($orient: inline-axis) {
19
+ // horizontal|vertical|inline-axis|block-axis|inherit
20
+ @include prefixer(box-orient, $orient, webkit moz spec);
21
+ }
22
+
23
+ @mixin box-pack($pack: start) {
24
+ // start|end|center|justify
25
+ @include prefixer(box-pack, $pack, webkit moz spec);
26
+ -ms-flex-pack: $pack; // IE 10
27
+ }
28
+
29
+ @mixin box-align($align: stretch) {
30
+ // start|end|center|baseline|stretch
31
+ @include prefixer(box-align, $align, webkit moz spec);
32
+ -ms-flex-align: $align; // IE 10
33
+ }
34
+
35
+ @mixin box-direction($direction: normal) {
36
+ // normal|reverse|inherit
37
+ @include prefixer(box-direction, $direction, webkit moz spec);
38
+ -ms-flex-direction: $direction; // IE 10
39
+ }
40
+
41
+ @mixin box-lines($lines: single) {
42
+ // single|multiple
43
+ @include prefixer(box-lines, $lines, webkit moz spec);
44
+ }
45
+
46
+ @mixin box-ordinal-group($int: 1) {
47
+ @include prefixer(box-ordinal-group, $int, webkit moz spec);
48
+ -ms-flex-order: $int; // IE 10
49
+ }
50
+
51
+ @mixin box-flex($value: 0) {
52
+ @include prefixer(box-flex, $value, webkit moz spec);
53
+ -ms-flex: $value; // IE 10
54
+ }
55
+
56
+ @mixin box-flex-group($int: 1) {
57
+ @include prefixer(box-flex-group, $int, webkit moz spec);
58
+ }
59
+
60
+ // CSS3 Flexible Box Model and property defaults
61
+ // Unified attributes for 2009, 2011, and 2012 flavours.
62
+
63
+ // 2009 - display (box | inline-box)
64
+ // 2011 - display (flexbox | inline-flexbox)
65
+ // 2012 - display (flex | inline-flex)
66
+ @mixin display($value) {
67
+ // flex | inline-flex
68
+ @if $value == "flex" {
69
+ // 2009
70
+ display: -webkit-box;
71
+ display: -moz-box;
72
+ display: box;
73
+
74
+ // 2012
75
+ display: -webkit-flex;
76
+ display: -moz-flex;
77
+ display: -ms-flexbox; // 2011 (IE 10)
78
+ display: flex;
79
+ } @else if $value == "inline-flex" {
80
+ display: -webkit-inline-box;
81
+ display: -moz-inline-box;
82
+ display: inline-box;
83
+
84
+ display: -webkit-inline-flex;
85
+ display: -moz-inline-flex;
86
+ display: -ms-inline-flexbox;
87
+ display: inline-flex;
88
+ } @else {
89
+ display: $value;
90
+ }
91
+ }
92
+
93
+ // 2009 - box-flex (integer)
94
+ // 2011 - flex (decimal | width decimal)
95
+ // 2012 - flex (integer integer width)
96
+ @mixin flex($value) {
97
+
98
+ // Grab flex-grow for older browsers.
99
+ $flex-grow: nth($value, 1);
100
+
101
+ // 2009
102
+ @include prefixer(box-flex, $flex-grow, webkit moz spec);
103
+
104
+ // 2011 (IE 10), 2012
105
+ @include prefixer(flex, $value, webkit moz ms spec);
106
+ }
107
+
108
+ // 2009 - box-orient ( horizontal | vertical | inline-axis | block-axis)
109
+ // - box-direction (normal | reverse)
110
+ // 2011 - flex-direction (row | row-reverse | column | column-reverse)
111
+ // 2012 - flex-direction (row | row-reverse | column | column-reverse)
112
+ @mixin flex-direction($value: row) {
113
+
114
+ // Alt values.
115
+ $value-2009: $value;
116
+ $value-2011: $value;
117
+ $direction: normal;
118
+
119
+ @if $value == row {
120
+ $value-2009: horizontal;
121
+ } @else if $value == "row-reverse" {
122
+ $value-2009: horizontal;
123
+ $direction: reverse;
124
+ } @else if $value == column {
125
+ $value-2009: vertical;
126
+ } @else if $value == "column-reverse" {
127
+ $value-2009: vertical;
128
+ $direction: reverse;
129
+ }
130
+
131
+ // 2009
132
+ @include prefixer(box-orient, $value-2009, webkit moz spec);
133
+ @include prefixer(box-direction, $direction, webkit moz spec);
134
+
135
+ // 2012
136
+ @include prefixer(flex-direction, $value, webkit moz spec);
137
+
138
+ // 2011 (IE 10)
139
+ -ms-flex-direction: $value;
140
+ }
141
+
142
+ // 2009 - box-lines (single | multiple)
143
+ // 2011 - flex-wrap (nowrap | wrap | wrap-reverse)
144
+ // 2012 - flex-wrap (nowrap | wrap | wrap-reverse)
145
+ @mixin flex-wrap($value: nowrap) {
146
+ // Alt values
147
+ $alt-value: $value;
148
+ @if $value == nowrap {
149
+ $alt-value: single;
150
+ } @else if $value == wrap {
151
+ $alt-value: multiple;
152
+ } @else if $value == "wrap-reverse" {
153
+ $alt-value: multiple;
154
+ }
155
+
156
+ @include prefixer(box-lines, $alt-value, webkit moz spec);
157
+ @include prefixer(flex-wrap, $value, webkit moz ms spec);
158
+ }
159
+
160
+ // 2009 - TODO: parse values into flex-direction/flex-wrap
161
+ // 2011 - TODO: parse values into flex-direction/flex-wrap
162
+ // 2012 - flex-flow (flex-direction || flex-wrap)
163
+ @mixin flex-flow($value) {
164
+ @include prefixer(flex-flow, $value, webkit moz spec);
165
+ }
166
+
167
+ // 2009 - box-ordinal-group (integer)
168
+ // 2011 - flex-order (integer)
169
+ // 2012 - order (integer)
170
+ @mixin order($int: 0) {
171
+ // 2009
172
+ @include prefixer(box-ordinal-group, $int, webkit moz spec);
173
+
174
+ // 2012
175
+ @include prefixer(order, $int, webkit moz spec);
176
+
177
+ // 2011 (IE 10)
178
+ -ms-flex-order: $int;
179
+ }
180
+
181
+ // 2012 - flex-grow (number)
182
+ @mixin flex-grow($number: 0) {
183
+ @include prefixer(flex-grow, $number, webkit moz spec);
184
+ -ms-flex-positive: $number;
185
+ }
186
+
187
+ // 2012 - flex-shrink (number)
188
+ @mixin flex-shrink($number: 1) {
189
+ @include prefixer(flex-shrink, $number, webkit moz spec);
190
+ -ms-flex-negative: $number;
191
+ }
192
+
193
+ // 2012 - flex-basis (number)
194
+ @mixin flex-basis($width: auto) {
195
+ @include prefixer(flex-basis, $width, webkit moz spec);
196
+ -ms-flex-preferred-size: $width;
197
+ }
198
+
199
+ // 2009 - box-pack (start | end | center | justify)
200
+ // 2011 - flex-pack (start | end | center | justify)
201
+ // 2012 - justify-content (flex-start | flex-end | center | space-between | space-around)
202
+ @mixin justify-content($value: flex-start) {
203
+
204
+ // Alt values.
205
+ $alt-value: $value;
206
+ @if $value == "flex-start" {
207
+ $alt-value: start;
208
+ } @else if $value == "flex-end" {
209
+ $alt-value: end;
210
+ } @else if $value == "space-between" {
211
+ $alt-value: justify;
212
+ } @else if $value == "space-around" {
213
+ $alt-value: distribute;
214
+ }
215
+
216
+ // 2009
217
+ @include prefixer(box-pack, $alt-value, webkit moz spec);
218
+
219
+ // 2012
220
+ @include prefixer(justify-content, $value, webkit moz ms o spec);
221
+
222
+ // 2011 (IE 10)
223
+ -ms-flex-pack: $alt-value;
224
+ }
225
+
226
+ // 2009 - box-align (start | end | center | baseline | stretch)
227
+ // 2011 - flex-align (start | end | center | baseline | stretch)
228
+ // 2012 - align-items (flex-start | flex-end | center | baseline | stretch)
229
+ @mixin align-items($value: stretch) {
230
+
231
+ $alt-value: $value;
232
+
233
+ @if $value == "flex-start" {
234
+ $alt-value: start;
235
+ } @else if $value == "flex-end" {
236
+ $alt-value: end;
237
+ }
238
+
239
+ // 2009
240
+ @include prefixer(box-align, $alt-value, webkit moz spec);
241
+
242
+ // 2012
243
+ @include prefixer(align-items, $value, webkit moz ms o spec);
244
+
245
+ // 2011 (IE 10)
246
+ -ms-flex-align: $alt-value;
247
+ }
248
+
249
+ // 2011 - flex-item-align (auto | start | end | center | baseline | stretch)
250
+ // 2012 - align-self (auto | flex-start | flex-end | center | baseline | stretch)
251
+ @mixin align-self($value: auto) {
252
+
253
+ $value-2011: $value;
254
+ @if $value == "flex-start" {
255
+ $value-2011: start;
256
+ } @else if $value == "flex-end" {
257
+ $value-2011: end;
258
+ }
259
+
260
+ // 2012
261
+ @include prefixer(align-self, $value, webkit moz spec);
262
+
263
+ // 2011 (IE 10)
264
+ -ms-flex-item-align: $value-2011;
265
+ }
266
+
267
+ // 2011 - flex-line-pack (start | end | center | justify | distribute | stretch)
268
+ // 2012 - align-content (flex-start | flex-end | center | space-between | space-around | stretch)
269
+ @mixin align-content($value: stretch) {
270
+
271
+ $value-2011: $value;
272
+ @if $value == "flex-start" {
273
+ $value-2011: start;
274
+ } @else if $value == "flex-end" {
275
+ $value-2011: end;
276
+ } @else if $value == "space-between" {
277
+ $value-2011: justify;
278
+ } @else if $value == "space-around" {
279
+ $value-2011: distribute;
280
+ }
281
+
282
+ // 2012
283
+ @include prefixer(align-content, $value, webkit moz spec);
284
+
285
+ // 2011 (IE 10)
286
+ -ms-flex-line-pack: $value-2011;
287
+ }
@@ -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
+ }