doggystyle 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (294) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +16 -0
  3. data/.hound.yml +5 -0
  4. data/.npmignore +18 -0
  5. data/.ruby-version +1 -0
  6. data/.scss-lint.yml +243 -0
  7. data/.travis.yml +5 -0
  8. data/CHANGELOG.md +5 -0
  9. data/Gemfile +4 -0
  10. data/LICENSE.txt +21 -0
  11. data/README.md +40 -0
  12. data/RELEASING.md +1 -0
  13. data/Rakefile +9 -0
  14. data/bin/doggystyle +5 -0
  15. data/bower.json +38 -0
  16. data/circle.yml +13 -0
  17. data/core/_imports.scss +229 -0
  18. data/core/animations/_jump.scss +7 -0
  19. data/core/animations/_shake.scss +24 -0
  20. data/core/animations/_wobble.scss +8 -0
  21. data/core/functions/_mobile-first.scss +3 -0
  22. data/core/functions/_opposite-direction.scss +45 -0
  23. data/core/functions/casts/_to-bool.scss +19 -0
  24. data/core/functions/casts/_to-color.scss +74 -0
  25. data/core/functions/casts/_to-list.scss +38 -0
  26. data/core/functions/casts/_to-map.scss +27 -0
  27. data/core/functions/casts/_to-null.scss +15 -0
  28. data/core/functions/casts/_to-number.scss +66 -0
  29. data/core/functions/casts/_to-string.scss +15 -0
  30. data/core/functions/colours/_colour-contrast.scss +61 -0
  31. data/core/functions/colours/_colour.scss +69 -0
  32. data/core/functions/colours/_random-colour.scss +78 -0
  33. data/core/functions/lists/_contains.scss +62 -0
  34. data/core/functions/lists/_first.scss +19 -0
  35. data/core/functions/lists/_insert-nth.scss +37 -0
  36. data/core/functions/lists/_last.scss +11 -0
  37. data/core/functions/lists/_merge.scss +30 -0
  38. data/core/functions/lists/_prepend.scss +11 -0
  39. data/core/functions/lists/_remove-nth.scss +53 -0
  40. data/core/functions/lists/_remove.scss +30 -0
  41. data/core/functions/lists/_replace-nth.scss +55 -0
  42. data/core/functions/lists/_replace.scss +36 -0
  43. data/core/functions/lists/_reverse.scss +31 -0
  44. data/core/functions/lists/_second.scss +19 -0
  45. data/core/functions/lists/_shift.scss +24 -0
  46. data/core/functions/lists/_slice.scss +52 -0
  47. data/core/functions/lists/_sort.scss +51 -0
  48. data/core/functions/maps/_map-deep-get.scss +51 -0
  49. data/core/functions/maps/_map-deep-set.scss +34 -0
  50. data/core/functions/maps/_map-depth.scss +23 -0
  51. data/core/functions/maps/_map-extend.scss +47 -0
  52. data/core/functions/maps/_map-has-keys.scss +23 -0
  53. data/core/functions/maps/_map-has-nested-keys.scss +24 -0
  54. data/core/functions/maps/_map-set.scss +4 -0
  55. data/core/functions/maps/_map-zip.scss +50 -0
  56. data/core/functions/numbers/_add-unit.scss +54 -0
  57. data/core/functions/numbers/_pad.scss +16 -0
  58. data/core/functions/numbers/_spacer.scss +16 -0
  59. data/core/functions/numbers/_strip.scss +29 -0
  60. data/core/functions/numbers/_units.scss +17 -0
  61. data/core/functions/svg/_dots.scss +84 -0
  62. data/core/functions/svg/_fake-radius.scss +131 -0
  63. data/core/functions/svg/_lines.scss +76 -0
  64. data/core/functions/svg/_svg.scss +12 -0
  65. data/core/functions/text/_smart-lineheight.scss +13 -0
  66. data/core/functions/text/_string-explode.scss +45 -0
  67. data/core/functions/text/_string-replace.scss +38 -0
  68. data/core/helpers/_custom-elements.scss +114 -0
  69. data/core/helpers/_eases.scss +44 -0
  70. data/core/helpers/_reset.scss +282 -0
  71. data/core/helpers/_show-breakpoints.scss +25 -0
  72. data/core/helpers/_strings.scss +648 -0
  73. data/core/helpers/_warnings.scss +3 -0
  74. data/core/helpers/checks/_check.scss +69 -0
  75. data/core/helpers/checks/_is-absolute-length.scss +25 -0
  76. data/core/helpers/checks/_is-angel.scss +25 -0
  77. data/core/helpers/checks/_is-arglist.scss +11 -0
  78. data/core/helpers/checks/_is-bool.scss +23 -0
  79. data/core/helpers/checks/_is-calc.scss +11 -0
  80. data/core/helpers/checks/_is-colour.scss +23 -0
  81. data/core/helpers/checks/_is-dark.scss +14 -0
  82. data/core/helpers/checks/_is-duration.scss +15 -0
  83. data/core/helpers/checks/_is-false.scss +13 -0
  84. data/core/helpers/checks/_is-first-character.scss +11 -0
  85. data/core/helpers/checks/_is-frequency.scss +15 -0
  86. data/core/helpers/checks/_is-function.scss +44 -0
  87. data/core/helpers/checks/_is-integer.scss +15 -0
  88. data/core/helpers/checks/_is-length.scss +16 -0
  89. data/core/helpers/checks/_is-light.scss +14 -0
  90. data/core/helpers/checks/_is-list.scss +11 -0
  91. data/core/helpers/checks/_is-map.scss +11 -0
  92. data/core/helpers/checks/_is-null.scss +11 -0
  93. data/core/helpers/checks/_is-number.scss +19 -0
  94. data/core/helpers/checks/_is-percentage.scss +13 -0
  95. data/core/helpers/checks/_is-position.scss +16 -0
  96. data/core/helpers/checks/_is-pseudo.scss +24 -0
  97. data/core/helpers/checks/_is-relative-length.scss +25 -0
  98. data/core/helpers/checks/_is-resolution.scss +15 -0
  99. data/core/helpers/checks/_is-selector.scss +3 -0
  100. data/core/helpers/checks/_is-string.scss +11 -0
  101. data/core/helpers/checks/_is-time.scss +15 -0
  102. data/core/helpers/checks/_is-unit.scss +16 -0
  103. data/core/helpers/private/_arglist-to-list.scss +36 -0
  104. data/core/helpers/private/_brightness.scss +13 -0
  105. data/core/helpers/private/_find-digits.scss +41 -0
  106. data/core/helpers/private/_find-integer.scss +40 -0
  107. data/core/helpers/private/_from-hex.scss +48 -0
  108. data/core/helpers/private/_from-hsl.scss +55 -0
  109. data/core/helpers/private/_from-rgb.scss +55 -0
  110. data/core/helpers/private/_get-color-value.scss +26 -0
  111. data/core/helpers/private/_hash-fix.scss +15 -0
  112. data/core/helpers/private/_hex-to-dec.scss +28 -0
  113. data/core/helpers/private/_length.scss +26 -0
  114. data/core/helpers/private/_lightness.scss +15 -0
  115. data/core/helpers/private/_list-items-to-strings.scss +8 -0
  116. data/core/helpers/private/_min-max-number.scss +12 -0
  117. data/core/helpers/private/_pow.scss +29 -0
  118. data/core/helpers/private/_string-compare.scss +38 -0
  119. data/core/helpers/private/_string-explode.scss +43 -0
  120. data/core/helpers/private/_sudo.scss +23 -0
  121. data/core/helpers/symbols/_arrows.scss +337 -0
  122. data/core/helpers/symbols/_block.scss +97 -0
  123. data/core/helpers/symbols/_box.scss +385 -0
  124. data/core/helpers/symbols/_common.scss +101 -0
  125. data/core/helpers/symbols/_currency.scss +82 -0
  126. data/core/helpers/symbols/_dingbats.scss +565 -0
  127. data/core/helpers/symbols/_geometric.scss +289 -0
  128. data/core/helpers/symbols/_letterlike.scss +235 -0
  129. data/core/helpers/symbols/_misc.scss +568 -0
  130. data/core/helpers/symbols/_operators.scss +766 -0
  131. data/core/helpers/symbols/_punctuation.scss +214 -0
  132. data/core/mixins/_align.scss +15 -0
  133. data/core/mixins/_animate.scss +16 -0
  134. data/core/mixins/_aspect-ratio.scss +86 -0
  135. data/core/mixins/_backface-visibility.scss +7 -0
  136. data/core/mixins/_background-image.scss +13 -0
  137. data/core/mixins/_blend.scss +10 -0
  138. data/core/mixins/_blendmodes.scss +24 -0
  139. data/core/mixins/_border-radius.scss +105 -0
  140. data/core/mixins/_browsers.scss +155 -0
  141. data/core/mixins/_bulletpoint.scss +12 -0
  142. data/core/mixins/_center.scss +3 -0
  143. data/core/mixins/_clearfix.scss +7 -0
  144. data/core/mixins/_columns.scss +22 -0
  145. data/core/mixins/_custom-property.scss +15 -0
  146. data/core/mixins/_devices.scss +97 -0
  147. data/core/mixins/_dropdown.scss +38 -0
  148. data/core/mixins/_fake-radius.scss +99 -0
  149. data/core/mixins/_filters.scss +163 -0
  150. data/core/mixins/_flip.scss +11 -0
  151. data/core/mixins/_font-face.scss +11 -0
  152. data/core/mixins/_fontsize.scss +126 -0
  153. data/core/mixins/_gallery.scss +134 -0
  154. data/core/mixins/_gradient.scss +72 -0
  155. data/core/mixins/_image-size.scss +18 -0
  156. data/core/mixins/_image.scss +12 -0
  157. data/core/mixins/_inputs.scss +18 -0
  158. data/core/mixins/_keyframes.scss +8 -0
  159. data/core/mixins/_last.scss +5 -0
  160. data/core/mixins/_nth-last.scss +7 -0
  161. data/core/mixins/_nth.scss +10 -0
  162. data/core/mixins/_placeholder.scss +15 -0
  163. data/core/mixins/_prefixer.scss +55 -0
  164. data/core/mixins/_selection.scss +15 -0
  165. data/core/mixins/_shadow.scss +7 -0
  166. data/core/mixins/_size.scss +13 -0
  167. data/core/mixins/_smart-horizontal.scss +21 -0
  168. data/core/mixins/_sudo-image.scss +12 -0
  169. data/core/mixins/_text-shadow.scss +30 -0
  170. data/core/mixins/_transforms.scss +264 -0
  171. data/core/mixins/_transition.scss +189 -0
  172. data/core/mixins/_triangle-classic.scss +170 -0
  173. data/core/mixins/_triangle.scss +250 -0
  174. data/core/mixins/_unwrap.scss +5 -0
  175. data/core/mixins/_user-select.scss +5 -0
  176. data/core/mixins/_vertical.scss +10 -0
  177. data/core/mixins/columns/_columns.scss +92 -0
  178. data/core/mixins/flexbox/_flex-container.scss +201 -0
  179. data/core/mixins/flexbox/_flex-grid.scss +235 -0
  180. data/core/mixins/flexbox/_flex-items.scss +140 -0
  181. data/core/mixins/flexbox/_flex-remove.scss +12 -0
  182. data/core/mixins/grid/_break-between.scss +6 -0
  183. data/core/mixins/grid/_grid.scss +150 -0
  184. data/core/mixins/svg/_svg-size.scss +4 -0
  185. data/core/mixins/svg/_svg.scss +9 -0
  186. data/core/placeholders/_clear.scss +27 -0
  187. data/core/placeholders/_cursor.scss +35 -0
  188. data/core/placeholders/_misc.scss +20 -0
  189. data/core/placeholders/_rendering.scss +21 -0
  190. data/core/placeholders/_text.scss +41 -0
  191. data/core/settings/_colours.scss +30 -0
  192. data/core/settings/_directories.scss +7 -0
  193. data/core/settings/_global.scss +14 -0
  194. data/core/settings/_grid.scss +24 -0
  195. data/core/settings/_padding.scss +8 -0
  196. data/core/settings/_spacing.scss +8 -0
  197. data/core/settings/_text.scss +13 -0
  198. data/doggystyle.gemspec +29 -0
  199. data/eyeglass-exports.js +7 -0
  200. data/features/install.feature +29 -0
  201. data/features/step_definitions/doggystyle_steps.rb +31 -0
  202. data/features/support/bourbon_support.rb +19 -0
  203. data/features/support/env.rb +1 -0
  204. data/features/update.feature +30 -0
  205. data/features/version.feature +5 -0
  206. data/index.js +7 -0
  207. data/lib/doggystyle.rb +7 -0
  208. data/lib/doggystyle/generator.rb +81 -0
  209. data/lib/doggystyle/version.rb +3 -0
  210. data/package.json +33 -0
  211. data/spec/doggystyle/library/border_color_spec.rb +51 -0
  212. data/spec/doggystyle/library/border_radius_spec.rb +25 -0
  213. data/spec/doggystyle/library/border_style_spec.rb +51 -0
  214. data/spec/doggystyle/library/border_width_spec.rb +51 -0
  215. data/spec/doggystyle/library/buttons_spec.rb +53 -0
  216. data/spec/doggystyle/library/clearfix_spec.rb +18 -0
  217. data/spec/doggystyle/library/contrast_switch_spec.rb +23 -0
  218. data/spec/doggystyle/library/ellipsis_spec.rb +20 -0
  219. data/spec/doggystyle/library/font_face_spec_1.rb +16 -0
  220. data/spec/doggystyle/library/font_face_spec_2.rb +21 -0
  221. data/spec/doggystyle/library/font_face_spec_3.rb +16 -0
  222. data/spec/doggystyle/library/font_face_spec_4.rb +17 -0
  223. data/spec/doggystyle/library/font_stacks_spec.rb +40 -0
  224. data/spec/doggystyle/library/hide_text_spec.rb +17 -0
  225. data/spec/doggystyle/library/hide_visually_spec.rb +35 -0
  226. data/spec/doggystyle/library/margin_spec.rb +51 -0
  227. data/spec/doggystyle/library/modular_scale_spec.rb +43 -0
  228. data/spec/doggystyle/library/padding_spec.rb +51 -0
  229. data/spec/doggystyle/library/position_spec.rb +67 -0
  230. data/spec/doggystyle/library/prefixer_spec.rb +34 -0
  231. data/spec/doggystyle/library/shade_spec.rb +31 -0
  232. data/spec/doggystyle/library/size_spec.rb +31 -0
  233. data/spec/doggystyle/library/strip_unit_spec.rb +31 -0
  234. data/spec/doggystyle/library/text_inputs_spec.rb +75 -0
  235. data/spec/doggystyle/library/tint_spec.rb +31 -0
  236. data/spec/doggystyle/library/triangle_spec.rb +31 -0
  237. data/spec/doggystyle/library/word_wrap_spec.rb +29 -0
  238. data/spec/doggystyle/utilities/assign_inputs_spec.rb +50 -0
  239. data/spec/doggystyle/utilities/collapse_directionals.rb +25 -0
  240. data/spec/doggystyle/utilities/directional_values_spec.rb +21 -0
  241. data/spec/doggystyle/utilities/font_source_declaration_spec.rb +29 -0
  242. data/spec/doggystyle/utilities/retrieve_bourbon_setting_spec.rb +31 -0
  243. data/spec/doggystyle/utilities/unpack_spec.rb +32 -0
  244. data/spec/doggystyle/validators/contains_spec.rb +27 -0
  245. data/spec/doggystyle/validators/is_length_spec.rb +49 -0
  246. data/spec/doggystyle/validators/is_light_spec.rb +37 -0
  247. data/spec/doggystyle/validators/is_number_spec.rb +43 -0
  248. data/spec/doggystyle/validators/is_size_spec.rb +43 -0
  249. data/spec/fixtures/_setup.scss +1 -0
  250. data/spec/fixtures/library/border-color.scss +26 -0
  251. data/spec/fixtures/library/border-radius.scss +17 -0
  252. data/spec/fixtures/library/border-style.scss +21 -0
  253. data/spec/fixtures/library/border-width.scss +21 -0
  254. data/spec/fixtures/library/buttons.scss +17 -0
  255. data/spec/fixtures/library/clearfix.scss +5 -0
  256. data/spec/fixtures/library/contrast-switch.scss +9 -0
  257. data/spec/fixtures/library/ellipsis.scss +5 -0
  258. data/spec/fixtures/library/font-face-1.scss +6 -0
  259. data/spec/fixtures/library/font-face-2.scss +10 -0
  260. data/spec/fixtures/library/font-face-3.scss +8 -0
  261. data/spec/fixtures/library/font-face-4.scss +7 -0
  262. data/spec/fixtures/library/font-stacks.scss +41 -0
  263. data/spec/fixtures/library/hide-text.scss +5 -0
  264. data/spec/fixtures/library/hide-visually.scss +9 -0
  265. data/spec/fixtures/library/margin.scss +21 -0
  266. data/spec/fixtures/library/modular-scale.scss +29 -0
  267. data/spec/fixtures/library/padding.scss +21 -0
  268. data/spec/fixtures/library/position.scss +25 -0
  269. data/spec/fixtures/library/prefixer.scss +13 -0
  270. data/spec/fixtures/library/shade.scss +17 -0
  271. data/spec/fixtures/library/size.scss +13 -0
  272. data/spec/fixtures/library/strip-unit.scss +17 -0
  273. data/spec/fixtures/library/text-inputs.scss +21 -0
  274. data/spec/fixtures/library/tint.scss +17 -0
  275. data/spec/fixtures/library/triangle.scss +9 -0
  276. data/spec/fixtures/library/word-wrap.scss +9 -0
  277. data/spec/fixtures/utilities/assign-inputs.scss +19 -0
  278. data/spec/fixtures/utilities/collapse-directionals.scss +17 -0
  279. data/spec/fixtures/utilities/directional-values.scss +13 -0
  280. data/spec/fixtures/utilities/font-source-declaration.scss +11 -0
  281. data/spec/fixtures/utilities/retrieve-bourbon-setting.scss +16 -0
  282. data/spec/fixtures/utilities/unpack.scss +17 -0
  283. data/spec/fixtures/validators/contains.scss +28 -0
  284. data/spec/fixtures/validators/is-length.scss +35 -0
  285. data/spec/fixtures/validators/is-light.scss +29 -0
  286. data/spec/fixtures/validators/is-number.scss +31 -0
  287. data/spec/fixtures/validators/is-size.scss +31 -0
  288. data/spec/spec_helper.rb +22 -0
  289. data/spec/support/matchers/have_rule.rb +35 -0
  290. data/spec/support/matchers/have_ruleset.rb +20 -0
  291. data/spec/support/matchers/have_value.rb +17 -0
  292. data/spec/support/parser_support.rb +16 -0
  293. data/spec/support/sass_support.rb +10 -0
  294. metadata +527 -0
@@ -0,0 +1,214 @@
1
+ @charset "UTF-8";
2
+
3
+ // ‐ Hyphen
4
+ $hyphen: "/2010";
5
+
6
+ // ‑ Non-breaking Hyphen
7
+ $non-breaking-hyphen: "/2011";
8
+
9
+ // ‒ Figure Dash
10
+ $figure-dash: "/2012";
11
+
12
+ // – En Dash
13
+ $en-dash: "/2013";
14
+
15
+ // — Em Dash
16
+ $em-dash: "/2014";
17
+
18
+ // ― Horizontal Bar
19
+ $horizontal-bar: "/2015";
20
+
21
+ // ‖ Double Vertical Line
22
+ $double-vertical-line: "/2016";
23
+
24
+ // ‗ Double Low Line
25
+ $double-low-line: "/2017";
26
+
27
+ // ‘ Left Single Quotation Mark
28
+ $left-single-quotation-mark: "/2018";
29
+
30
+ // ’ Right Single Quotation Mark
31
+ $right-single-quotation-mark: "/2019";
32
+
33
+ // ‚ Single Low-9 Quotation Mark
34
+ $single-low-9-quotation-mark: "/201A";
35
+
36
+ // ‛ Single High-reversed-9 Quotation Mark
37
+ $single-high-reversed-9-quotation-mark: "/201B";
38
+
39
+ // “ Left Double Quotation Mark
40
+ $left-double-quotation-mark: "/201C";
41
+
42
+ // ” Right Double Quotation Mark
43
+ $right-double-quotation-mark: "/201D";
44
+
45
+ // „ Double Low-9 Quotation Mark
46
+ $double-low-9-quotation-mark: "/201E";
47
+
48
+ // ‟ Double High-reversed-9 Quotation Mark
49
+ $double-high-reversed-9-quotation-mark: "/201F";
50
+
51
+ // † Dagger
52
+ $dagger: "/2020";
53
+
54
+ // ‡ Double Dagger
55
+ $double-dagger: "/2021";
56
+
57
+ // • Bullet
58
+ $bullet: "/2022";
59
+
60
+ // ‣ Triangular Bullet
61
+ $triangular-bullet: "/2023";
62
+
63
+ // ․ One Dot Leader
64
+ $one-dot-leader: "/2024";
65
+
66
+ // ‥ Two Dot Leader
67
+ $two-dot-leader: "/2025";
68
+
69
+ // … Horizontal Ellipsis
70
+ $horizontal-ellipsis: "/2026";
71
+
72
+ // ‧ Hyphenation Point
73
+ $hyphenation-point: "/2027";
74
+
75
+ // ‰ Per Mille Sign
76
+ $per-mille-sign: "/2030";
77
+
78
+ // ‱ Per Ten Thousand Sign
79
+ $per-ten-thousand-sign: "/2031";
80
+
81
+ // ′ Prime
82
+ $prime: "/2032";
83
+
84
+ // ″ Double Prime
85
+ $double-prime: "/2033";
86
+
87
+ // ‴ Triple Prime
88
+ $triple-prime: "/2034";
89
+
90
+ // ‵ Reversed Prime
91
+ $reversed-prime: "/2035";
92
+
93
+ // ‶ Reversed Double Prime
94
+ $reversed-double-prime: "/2036";
95
+
96
+ // ‷ Reversed Triple Prime
97
+ $reversed-triple-prime: "/2037";
98
+
99
+ // ‸ Caret
100
+ $caret: "/2038";
101
+
102
+ // ‹ Single Left-pointing Angle Quotation Mark
103
+ $single-left-pointing-angle-quotation-mark: "/2039";
104
+
105
+ // › Single Right-pointing Angle Quotation Mark
106
+ $single-right-pointing-angle-quotation-mark: "/203A";
107
+
108
+ // ※ Reference Mark
109
+ $reference-mark: "/203B";
110
+
111
+ // ‼ Double Exclamation Mark
112
+ $double-exclamation-mark: "/203C";
113
+
114
+ // ‽ Interrobang
115
+ $interrobang: "/203D";
116
+
117
+ // ‾ Overline
118
+ $overline: "/203E";
119
+
120
+ // ‿ Undertie
121
+ $undertie: "/203F";
122
+
123
+ // ⁀ Character Tie
124
+ $character-tie: "/2040";
125
+
126
+ // ⁁ Caret Insertion Point
127
+ $caret-insertion-point: "/2041";
128
+
129
+ // ⁂ Asterism
130
+ $asterism: "/2042";
131
+
132
+ // ⁃ Hyphen Bullet
133
+ $hyphen-bullet: "/2043";
134
+
135
+ // ⁄ Fraction Slash
136
+ $fraction-slash: "/2044";
137
+
138
+ // ⁅ Left Square Bracket With Quill
139
+ $left-square-bracket-with-quill: "/2045";
140
+
141
+ // ⁆ Right Square Bracket With Quill
142
+ $right-square-bracket-with-quill: "/2046";
143
+
144
+ // ⁇ Double Question Mark
145
+ $double-question-mark: "/2047";
146
+
147
+ // ⁈ Question Exclamation Mark
148
+ $question-exclamation-mark: "/2048";
149
+
150
+ // ⁉ Exclamation Question Mark
151
+ $exclamation-question-mark: "/2049";
152
+
153
+ // ⁊ Tironian Sign Et
154
+ $tironian-sign-et: "/204A";
155
+
156
+ // ⁋ Reversed Pilcrow Sign
157
+ $reversed-pilcrow-sign: "/204B";
158
+
159
+ // ⁌ Black Leftwards Bullet
160
+ $black-leftwards-bullet: "/204C";
161
+
162
+ // ⁍ Black Rightwards Bullet
163
+ $black-rightwards-bullet: "/204D";
164
+
165
+ // ⁎ Low Asterisk
166
+ $low-asterisk: "/204E";
167
+
168
+ // ⁏ Reversed Semicolon
169
+ $reversed-semicolon: "/204F";
170
+
171
+ // ⁐ Close Up
172
+ $close-up: "/2050";
173
+
174
+ // ⁑ Two Asterisks Aligned Vertically
175
+ $two-asterisks-aligned-vertically: "/2051";
176
+
177
+ // ⁒ Commercial Minus Sign
178
+ $commercial-minus-sign: "/2052";
179
+
180
+ // ⁓ Swung Dash
181
+ $swung-dash: "/2053";
182
+
183
+ // ⁔ Inverted Undertie
184
+ $inverted-undertie: "/2054";
185
+
186
+ // ⁕ Flower Punctuation Mark
187
+ $flower-punctuation-mark: "/2055";
188
+
189
+ // ⁖ Three Dot Punctuation
190
+ $three-dot-punctuation: "/2056";
191
+
192
+ // ⁗ Quadruple Prime
193
+ $quadruple-prime: "/2057";
194
+
195
+ // ⁘ Four Dot Punctuation
196
+ $four-dot-punctuation: "/2058";
197
+
198
+ // ⁙ Five Dot Punctuation
199
+ $five-dot-punctuation: "/2059";
200
+
201
+ // ⁚ Two Dot Punctuation
202
+ $two-dot-punctuation: "/205A";
203
+
204
+ // ⁛ Four Dot Mark
205
+ $four-dot-mark: "/205B";
206
+
207
+ // ⁜ Dotted Cross
208
+ $dotted-cross: "/205C";
209
+
210
+ // ⁝ Tricolon
211
+ $tricolon: "/205D";
212
+
213
+ // ⁞ Vertical Four Dots
214
+ $vertical-four-dots: "/205E";
@@ -0,0 +1,15 @@
1
+ // Center vertically and horizontally
2
+ @mixin align($axis:null, $width:null, $height:null) {
3
+ position:absolute;
4
+ @if ( $axis == vertical or $axis == v) {
5
+ // Vertical
6
+ top:50%; height:$height#{px}; margin-top:- $height/2#{px};
7
+ } @else if ( $axis == horizontal or $axis == h) {
8
+ // Horizontal
9
+ left:50%; width:$width#{px}; margin-left:- $width/2#{px};
10
+ } @else {
11
+ // Both
12
+ @if ($height == null) { $height : $width; }
13
+ top:50%; left:50%; height:$height#{px}; width:$width#{px}; margin-left:- $width/2#{px}; margin-top:- $height/2#{px};
14
+ }
15
+ }
@@ -0,0 +1,16 @@
1
+ // Keyframe animation [name, duration, ease, delay, iteration-count, direction, fill]
2
+
3
+ //@include keyframes(testing) { to { @include rotate(360deg);}}
4
+ //@include animate(testing, 1, linear, null, infinite);
5
+ @mixin animate($name, $duration:0.2, $ease:ease-in-out, $delay:0, $replay:1, $direction:normal, $fill:forwards) {
6
+ @if ($duration == null) { $duration:0.3;}
7
+ @if ($ease == null) { $ease:ease-in-out;}
8
+ @if ($delay == null) { $delay:0;}
9
+ @if ($replay == null) { $replay:1;}
10
+ @if ($direction == null) { $direction:normal;}
11
+ @if ($fill == null) { $fill:forwards;}
12
+
13
+ $vendors : "-webkit-", "";
14
+ $ani: #{$name} #{$duration+"s"} #{$ease} #{$delay+"s"} #{$replay} #{$direction} #{$fill};
15
+ @each $vendor in $vendors { #{$vendor+"animation"}:$ani; }
16
+ }
@@ -0,0 +1,86 @@
1
+ /// A collection of common aspect ratios
2
+ ///
3
+ /// @access public
4
+ ///
5
+ /// @type number
6
+
7
+ // Common Aspect Ratios
8
+ $ratio-4-3 : 75%;
9
+ $ratio-16-9 : 56.25%;
10
+ $ratio-16-10 : 62.5%;
11
+
12
+ // Common Resolution Aspect Ratios
13
+ $ratio-800-600 : $ratio-4-3;
14
+ $ratio-1024-768 : $ratio-4-3;
15
+ $ratio-1152-864 : $ratio-4-3;
16
+ $ratio-1600-1200 : $ratio-4-3;
17
+
18
+ $ratio-1280-720 : $ratio-16-9;
19
+ $ratio-1360-768 : $ratio-16-9;
20
+ $ratio-1366-768 : $ratio-16-9;
21
+ $ratio-1600-900 : $ratio-16-9;
22
+ $ratio-1920-1080 : $ratio-16-9;
23
+ $ratio-2560-1440 : $ratio-16-9;
24
+ $ratio-3840-2160 : $ratio-16-9;
25
+ $ratio-7680-4320 : $ratio-16-9;
26
+
27
+ $ratio-1280-800 : $ratio-16-10;
28
+ $ratio-1440-900 : $ratio-16-10;
29
+ $ratio-1680-1050 : $ratio-16-10;
30
+ $ratio-1920-1200 : $ratio-16-10;
31
+ $ratio-2560-1600 : $ratio-16-10;
32
+
33
+ $ratio-2k : $ratio-1920-1080;
34
+ $ratio-4k : $ratio-3840-2160;
35
+ $ratio-8k : $ratio-7680-4320;
36
+
37
+
38
+ /// Create a pseudo element which will retain a parent elements' aspect ratio responsively.
39
+ ///
40
+ /// @author Mark Notton
41
+ ///
42
+ /// @access public
43
+ ///
44
+ /// @param {number | list} $ratio - Use a predefined variable, directly enter a percentage, or pass in one or two numbers to be calculated.
45
+ ///
46
+ /// @param {string} $sudo - Set the type of pseudo to use. Defaults to "before".
47
+ ///
48
+ /// @require {function} sudo
49
+ /// @require {function} _unit-fallback
50
+ /// @require {function} first
51
+ /// @require {function} second
52
+ /// @require {function} is-percentage
53
+ ///
54
+ /// @example scss - Usage
55
+ /// .foo {
56
+ /// @include aspect-ratio($ratio-16-9);
57
+ /// }
58
+ ///
59
+ /// .bar {
60
+ /// @include aspect-ratio(2 1, after);
61
+ /// }
62
+ ///
63
+ /// @example css - CSS output
64
+ /// .foo:before {
65
+ /// content: "";
66
+ /// display: block;
67
+ /// padding-top: 56.25%;
68
+ /// }
69
+ ///
70
+ /// .bar:after {
71
+ /// content: "";
72
+ /// display: block;
73
+ /// padding-top: 50%;
74
+ /// }
75
+
76
+ @mixin aspect-ratio($ratio:1, $sudo:before) {
77
+
78
+ $width : check(first($ratio), 1);
79
+ $height : check(second($ratio), first($ratio));
80
+
81
+ &#{_sudo($sudo)} {
82
+ content:"";
83
+ display:block;
84
+ padding-top: if(is-percentage($width), $width, percentage($height / $width));
85
+ }
86
+ }
@@ -0,0 +1,7 @@
1
+ @mixin backface-visibility($value) {
2
+ @if contains((visible hidden initial inherit), $value) {
3
+ @include prefixer(transform-style, $value, webkit);
4
+ } @else {
5
+ @include warning($value + ": is an invalid value for 'backface-visibility'");
6
+ }
7
+ }
@@ -0,0 +1,13 @@
1
+ // Add a background image
2
+ @mixin background-image($img, $bg-colour:null, $width:null, $height:null, $y:center, $x:center, $repeat:no-repeat ) {
3
+ $y : if(number-check($y), $y#{px}, $y);
4
+ $x : if(number-check($x), $x#{px}, $x);
5
+ // Use image width if not supplied.
6
+ $width: if($width == null, image-width($img), if(number-check($width), $width#{px}, $width));
7
+ // Use image height if not supplied.
8
+ $height: if($height == null, image-height($img), if(number-check($height), $height#{px}, $height));
9
+ // Now reset the img variable but include the directory path if it exists. If it doesn't use the compass/sass default path.
10
+ $img: if(not $image-url, image-url($image-url + $img), url($image-url + $img));
11
+
12
+ background:$bg-colour $img $x $y #{"/"} $width $height $repeat;
13
+ }
@@ -0,0 +1,10 @@
1
+ @mixin blendy($img, $color: null, $grad: null, $blend: multiply) {
2
+ $img-path: url('#{$img}');
3
+ @if $grad {
4
+ background: $grad, $img-path;
5
+ } @else {
6
+ background-image: $img-path;
7
+ background-color: $color;
8
+ }
9
+ background-blend-mode: $blend;
10
+ }
@@ -0,0 +1,24 @@
1
+ $blend-modes : (initial inherit unset screen overlay darken lighten color-dodge color-burn hard-light soft-light difference exclusion hue saturation color luminosity normal);
2
+
3
+
4
+ // Blend Background
5
+ @mixin blend-background($mode) {
6
+
7
+ $blends : ();
8
+
9
+ @each $blend in $mode {
10
+ $blends : append($blends, $blend, comma);
11
+ }
12
+
13
+ @if contains($blend-modes, $blends) {
14
+ @include prefixer(background-blend-mode, $blends, moz webkit);
15
+ }
16
+ }
17
+
18
+
19
+ // Blend Mix
20
+ @mixin blend-mix($blend) {
21
+ @if contains($blend-modes, $blend) {
22
+ @include prefixer(mix-blend-mode, $blend, moz webkit);
23
+ }
24
+ }
@@ -0,0 +1,105 @@
1
+ /// 10px on each corner. Call also use the string "all"
2
+ /// @include border-radius(10)
3
+ /// @include border-radius(all 10)
4
+
5
+ /// 10 top left, 20 top right, 0 bottom right, 0 bottom left
6
+ /// @include border-radius(10 20)
7
+
8
+ /// 10 top left, 20 top right, 30 bottom right, 0 bottom left
9
+ /// @include border-radius(10 20 30)
10
+
11
+ /// 10 top left, 20 top right, 30 bottom right, 40 bottom left
12
+ /// @include border-radius(10 20 30 40)
13
+
14
+ /// 10 top left, 10 top right, 0 bottom right, 0 bottom left
15
+ /// @include border-radius(10 top)
16
+
17
+ /// 0 top left, 10 top right, 10 bottom right, 0 bottom left
18
+ /// @include border-radius(10 right)
19
+
20
+ /// 0 top left, 0 top right, 10 bottom right, 10 bottom left
21
+ /// @include border-radius(10 bottom)
22
+
23
+ /// 10 top left, 0 top right, 0 bottom right, 10 bottom left
24
+ /// @include border-radius(10 left)
25
+
26
+ /// 10 top left, 0 top right, 30 bottom right, 0 bottom left
27
+ /// @include border-radius(10 top-left, 30 bottom-right)
28
+
29
+ @mixin border-radius($args...) {
30
+ $corners : ();
31
+ $directions : ();
32
+ $excess-units : 0;
33
+
34
+ $args: if(length($args) > 0, $args, null);
35
+
36
+ @for $i from 1 through length($args) {
37
+
38
+ @each $rad in nth($args, $i) {
39
+ @if type-of($rad) == number and length($corners) < 4 {
40
+ $corners : append($corners, $rad);
41
+ } @elseif type-of($rad) == number and length($corners) == 4 {
42
+ $excess-units : $excess-units + 1;
43
+ }
44
+ }
45
+ @each $dir in nth($args, $i) {
46
+ @if type-of($dir) == string {
47
+ @if $dir == circle {
48
+ $corners : 100%;
49
+ } @else {
50
+ $directions : append($directions, $dir);
51
+ }
52
+ }
53
+ }
54
+ }
55
+
56
+ @if $excess-units > 0 {
57
+ @include warning("You can't have more than 4 units per argument. You have added '#{$excess-units}' number"+ if($excess-units != 1, 's', '') +" too many. Squares don't work that way.");
58
+ }
59
+
60
+ $corners : if(length($corners) == 0, $border-radius, $corners);
61
+ $corner-count : length($corners);
62
+
63
+ @if length($directions) == 0 {
64
+ $directions : if($corner-count == 1, all, slice((top-left top-right bottom-right bottom-left), 1, $corner-count));
65
+ }
66
+
67
+ $direction-count : length($directions);
68
+
69
+ @for $i from 1 through $direction-count {
70
+ $direction : nth($directions, $i);
71
+ $radius : 0;
72
+ @if $corner-count == $direction-count {
73
+ $radius: nth($corners, $i);
74
+ } @else {
75
+ @if $corner-count > $direction-count and $i == $direction-count {
76
+ $radius: nth($corners, $i);
77
+ @include warning('You have entered more units than directions. Reverting back to the first numbers you entered');
78
+ } @else {
79
+ $radius: nth($corners, 1);
80
+ }
81
+ }
82
+
83
+ @if $direction == all {
84
+ @include prefixer(border-radius, addUnit($radius));
85
+ }
86
+ @elseif $direction == top {
87
+ @include prefixer(border-top-left-radius border-top-right-radius, addUnit($radius));
88
+ }
89
+ @elseif $direction == right {
90
+ @include prefixer(border-top-right-radius border-bottom-right-radius, addUnit($radius));
91
+ }
92
+ @elseif $direction == bottom {
93
+ @include prefixer(border-bottom-left-radius border-bottom-right-radius, addUnit($radius));
94
+ }
95
+ @elseif $direction == left {
96
+ @include prefixer(border-top-left-radius border-bottom-left-radius, addUnit($radius));
97
+ }
98
+ @else {
99
+ @include prefixer(border-#{$direction}-radius, addUnit($radius));
100
+ }
101
+ }
102
+ }
103
+
104
+ /// @alias transition
105
+ @mixin radius($settings...) { @include border-radius($settings...); }