compass 0.13.alpha.0 → 0.13.alpha.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 (367) hide show
  1. data/README.markdown +6 -4
  2. data/Rakefile +9 -0
  3. data/VERSION.yml +2 -2
  4. data/bin/compass +2 -1
  5. data/features/command_line.feature +5 -27
  6. data/features/step_definitions/command_line_steps.rb +3 -2
  7. data/frameworks/compass/stylesheets/compass/_css3.scss +3 -0
  8. data/frameworks/compass/stylesheets/compass/_support.scss +6 -0
  9. data/frameworks/compass/stylesheets/compass/css3/_animation.scss +77 -76
  10. data/frameworks/compass/stylesheets/compass/css3/_appearance.scss +15 -9
  11. data/frameworks/compass/stylesheets/compass/css3/_background-clip.scss +35 -36
  12. data/frameworks/compass/stylesheets/compass/css3/_background-origin.scss +36 -34
  13. data/frameworks/compass/stylesheets/compass/css3/_background-size.scss +15 -15
  14. data/frameworks/compass/stylesheets/compass/css3/_border-radius.scss +30 -48
  15. data/frameworks/compass/stylesheets/compass/css3/_box-shadow.scss +22 -27
  16. data/frameworks/compass/stylesheets/compass/css3/_box-sizing.scss +13 -8
  17. data/frameworks/compass/stylesheets/compass/css3/_box.scss +60 -82
  18. data/frameworks/compass/stylesheets/compass/css3/_columns.scss +145 -25
  19. data/frameworks/compass/stylesheets/compass/css3/_filter.scss +44 -0
  20. data/frameworks/compass/stylesheets/compass/css3/_hyphenation.scss +77 -0
  21. data/frameworks/compass/stylesheets/compass/css3/_images.scss +2 -2
  22. data/frameworks/compass/stylesheets/compass/css3/_inline-block.scss +14 -8
  23. data/frameworks/compass/stylesheets/compass/css3/_selection.scss +31 -0
  24. data/frameworks/compass/stylesheets/compass/css3/_shared.scss +207 -21
  25. data/frameworks/compass/stylesheets/compass/css3/_text-shadow.scss +52 -13
  26. data/frameworks/compass/stylesheets/compass/css3/_transform.scss +14 -14
  27. data/frameworks/compass/stylesheets/compass/css3/_transition.scss +127 -60
  28. data/frameworks/compass/stylesheets/compass/css3/_user-interface.scss +35 -15
  29. data/frameworks/compass/stylesheets/compass/typography/_units.scss +152 -0
  30. data/frameworks/compass/stylesheets/compass/typography/_vertical_rhythm.scss +174 -98
  31. data/frameworks/compass/stylesheets/compass/typography/lists/_horizontal-list.scss +5 -3
  32. data/frameworks/compass/stylesheets/compass/typography/lists/_inline-list.scss +6 -3
  33. data/frameworks/compass/stylesheets/compass/typography/text/_ellipsis.scss +1 -1
  34. data/frameworks/compass/stylesheets/compass/typography/text/_replacement.scss +35 -9
  35. data/frameworks/compass/stylesheets/compass/utilities/general/_float.scss +7 -3
  36. data/frameworks/compass/stylesheets/compass/utilities/general/_hacks.scss +2 -2
  37. data/frameworks/compass/stylesheets/compass/utilities/sprites/_base.scss +25 -10
  38. data/frameworks/compass/stylesheets/compass/utilities/tables/_borders.scss +14 -9
  39. data/lib/compass.rb +2 -2
  40. data/lib/compass/actions.rb +5 -1
  41. data/lib/compass/commands/project_base.rb +7 -1
  42. data/lib/compass/commands/update_project.rb +2 -2
  43. data/lib/compass/commands/watch_project.rb +6 -86
  44. data/lib/compass/compiler.rb +6 -0
  45. data/lib/compass/configuration/data.rb +1 -1
  46. data/lib/compass/configuration/helpers.rb +2 -0
  47. data/lib/compass/exec/global_options_parser.rb +1 -1
  48. data/lib/compass/exec/project_options_parser.rb +4 -0
  49. data/lib/compass/logger.rb +2 -0
  50. data/lib/compass/sass_extensions/functions/colors.rb +14 -0
  51. data/lib/compass/sass_extensions/functions/constants.rb +9 -0
  52. data/lib/compass/sass_extensions/functions/gradient_support.rb +44 -5
  53. data/lib/compass/sass_extensions/functions/image_size.rb +2 -1
  54. data/lib/compass/sass_extensions/functions/math.rb +14 -2
  55. data/lib/compass/sass_extensions/functions/sprites.rb +81 -14
  56. data/lib/compass/sass_extensions/functions/urls.rb +29 -2
  57. data/lib/compass/sass_extensions/sprites.rb +2 -0
  58. data/lib/compass/sass_extensions/sprites/engines/chunky_png_engine.rb +5 -1
  59. data/lib/compass/sass_extensions/sprites/image.rb +7 -2
  60. data/lib/compass/sass_extensions/sprites/image_methods.rb +5 -2
  61. data/lib/compass/sass_extensions/sprites/images.rb +29 -0
  62. data/lib/compass/sass_extensions/sprites/layout.rb +39 -0
  63. data/lib/compass/sass_extensions/sprites/layout/diagonal.rb +42 -0
  64. data/lib/compass/sass_extensions/sprites/layout/horizontal.rb +66 -0
  65. data/lib/compass/sass_extensions/sprites/layout/smart.rb +33 -0
  66. data/lib/compass/sass_extensions/sprites/layout/vertical.rb +68 -0
  67. data/lib/compass/sass_extensions/sprites/layout_methods.rb +9 -115
  68. data/lib/compass/sass_extensions/sprites/sprite_map.rb +5 -0
  69. data/lib/compass/sass_extensions/sprites/sprite_methods.rb +9 -5
  70. data/lib/compass/sprite_importer.rb +3 -3
  71. data/lib/compass/sprite_importer/content.erb +14 -12
  72. data/lib/compass/version.rb +2 -1
  73. data/lib/compass/watcher.rb +11 -0
  74. data/lib/compass/watcher/compiler.rb +59 -0
  75. data/lib/compass/watcher/project_watcher.rb +108 -0
  76. data/lib/compass/watcher/watch.rb +33 -0
  77. data/test/fixtures/stylesheets/busted_font_urls/config.rb +32 -0
  78. data/test/fixtures/stylesheets/busted_font_urls/css/screen.css +7 -0
  79. data/{examples/css3/extensions/fancy-fonts/templates/project/bgrove.ttf → test/fixtures/stylesheets/busted_font_urls/fonts/feed.ttf} +0 -0
  80. data/test/fixtures/stylesheets/busted_font_urls/fonts/grid.ttf +0 -0
  81. data/test/fixtures/stylesheets/busted_font_urls/fonts/sub/dk.ttf +0 -0
  82. data/test/fixtures/stylesheets/busted_font_urls/sass/screen.sass +11 -0
  83. data/test/fixtures/stylesheets/busted_font_urls/tmp/screen.css +7 -0
  84. data/test/fixtures/stylesheets/compass/css/animation-with-legacy-ie.css +0 -8
  85. data/test/fixtures/stylesheets/compass/css/animation.css +0 -8
  86. data/test/fixtures/stylesheets/compass/css/background-clip.css +5 -0
  87. data/test/fixtures/stylesheets/compass/css/background-origin.css +15 -0
  88. data/test/fixtures/stylesheets/compass/css/background-size.css +24 -0
  89. data/test/fixtures/stylesheets/compass/css/columns.css +81 -9
  90. data/test/fixtures/stylesheets/compass/css/filters.css +29 -0
  91. data/test/fixtures/stylesheets/compass/css/gradients.css +30 -27
  92. data/test/fixtures/stylesheets/compass/css/grid_background.css +7 -14
  93. data/test/fixtures/stylesheets/compass/css/hyphenation.css +16 -0
  94. data/test/fixtures/stylesheets/compass/css/lists.css +11 -13
  95. data/test/fixtures/stylesheets/compass/css/pie.css +0 -3
  96. data/test/fixtures/stylesheets/compass/css/replacement.css +59 -0
  97. data/test/fixtures/stylesheets/compass/css/reset.css +1 -1
  98. data/test/fixtures/stylesheets/compass/css/selection.css +13 -0
  99. data/test/fixtures/stylesheets/compass/css/sprites.css +250 -250
  100. data/test/fixtures/stylesheets/compass/css/text_shadow.css +22 -4
  101. data/test/fixtures/stylesheets/compass/css/transition.css +67 -11
  102. data/test/fixtures/stylesheets/compass/css/units.css +30 -0
  103. data/test/fixtures/stylesheets/compass/css/user-interface.css +12 -1
  104. data/test/fixtures/stylesheets/compass/css/utilities.css +15 -0
  105. data/test/fixtures/stylesheets/compass/css/vertical_rhythm.css +199 -27
  106. data/test/fixtures/stylesheets/compass/images/flag-s5b4f509715.png +0 -0
  107. data/test/fixtures/stylesheets/compass/sass/background-clip.scss +4 -2
  108. data/test/fixtures/stylesheets/compass/sass/background-origin.scss +10 -0
  109. data/test/fixtures/stylesheets/compass/sass/background-size.scss +12 -0
  110. data/test/fixtures/stylesheets/compass/sass/columns.scss +18 -0
  111. data/test/fixtures/stylesheets/compass/sass/filters.scss +24 -0
  112. data/test/fixtures/stylesheets/compass/sass/gradients.sass +10 -3
  113. data/test/fixtures/stylesheets/compass/sass/hyphenation.scss +11 -0
  114. data/test/fixtures/stylesheets/compass/sass/replacement.scss +22 -0
  115. data/test/fixtures/stylesheets/compass/sass/selection.scss +13 -0
  116. data/test/fixtures/stylesheets/compass/sass/text_shadow.scss +6 -1
  117. data/test/fixtures/stylesheets/compass/sass/transition.scss +11 -0
  118. data/test/fixtures/stylesheets/compass/sass/units.scss +45 -0
  119. data/test/fixtures/stylesheets/compass/sass/user-interface.scss +10 -5
  120. data/test/fixtures/stylesheets/compass/sass/utilities.scss +10 -0
  121. data/test/fixtures/stylesheets/compass/sass/vertical_rhythm.scss +208 -7
  122. data/test/fixtures/stylesheets/envtest/tmp/env.css +4 -4
  123. data/test/fixtures/stylesheets/valid/css/simple.css +4 -0
  124. data/test/helpers/test_case.rb +8 -1
  125. data/test/integrations/compass_test.rb +13 -13
  126. data/test/integrations/sprites_test.rb +173 -8
  127. data/test/test_helper.rb +4 -0
  128. data/test/units/command_line_test.rb +0 -2
  129. data/test/units/regressions_test.rb +35 -0
  130. data/test/units/sass_extensions_test.rb +23 -11
  131. data/test/units/sprites/image_test.rb +5 -0
  132. data/test/units/sprites/images_test.rb +46 -0
  133. data/test/units/sprites/layout_test.rb +18 -2
  134. data/test/units/watcher/compiler_test.rb +39 -0
  135. data/test/units/watcher/project_watcher_test.rb +65 -0
  136. data/test/units/watcher/watch_test.rb +42 -0
  137. metadata +83 -317
  138. data/bin/compass.compiled.rbc +0 -707
  139. data/examples/compass/images/emblem-a043c4f148.png +0 -0
  140. data/examples/compass/images/flag-03c3b29b35.png +0 -0
  141. data/examples/compass/images/flag-21cfbfbfc8.png +0 -0
  142. data/examples/css3/extensions/fancy-fonts/templates/project/Prociono.otf +0 -0
  143. data/examples/css3/extensions/fancy-fonts/templates/project/bgrove.otf +0 -0
  144. data/frameworks/blueprint/stylesheets/_blueprint.scss +0 -37
  145. data/frameworks/blueprint/stylesheets/blueprint/_buttons.scss +0 -101
  146. data/frameworks/blueprint/stylesheets/blueprint/_colors.scss +0 -36
  147. data/frameworks/blueprint/stylesheets/blueprint/_debug.scss +0 -28
  148. data/frameworks/blueprint/stylesheets/blueprint/_fancy-type.scss +0 -88
  149. data/frameworks/blueprint/stylesheets/blueprint/_form.scss +0 -66
  150. data/frameworks/blueprint/stylesheets/blueprint/_grid.scss +0 -258
  151. data/frameworks/blueprint/stylesheets/blueprint/_ie.scss +0 -111
  152. data/frameworks/blueprint/stylesheets/blueprint/_interaction.scss +0 -66
  153. data/frameworks/blueprint/stylesheets/blueprint/_link-icons.scss +0 -37
  154. data/frameworks/blueprint/stylesheets/blueprint/_liquid.scss +0 -152
  155. data/frameworks/blueprint/stylesheets/blueprint/_print.scss +0 -86
  156. data/frameworks/blueprint/stylesheets/blueprint/_reset.scss +0 -3
  157. data/frameworks/blueprint/stylesheets/blueprint/_rtl.scss +0 -121
  158. data/frameworks/blueprint/stylesheets/blueprint/_scaffolding.scss +0 -52
  159. data/frameworks/blueprint/stylesheets/blueprint/_typography.scss +0 -90
  160. data/frameworks/blueprint/stylesheets/blueprint/_utilities.scss +0 -37
  161. data/frameworks/blueprint/stylesheets/blueprint/reset/_utilities.scss +0 -80
  162. data/frameworks/blueprint/templates/basic/grid.png +0 -0
  163. data/frameworks/blueprint/templates/basic/ie.sass +0 -4
  164. data/frameworks/blueprint/templates/basic/manifest.rb +0 -30
  165. data/frameworks/blueprint/templates/basic/partials/_base.sass +0 -10
  166. data/frameworks/blueprint/templates/basic/print.sass +0 -4
  167. data/frameworks/blueprint/templates/basic/screen.sass +0 -12
  168. data/frameworks/blueprint/templates/buttons/buttons.sass +0 -49
  169. data/frameworks/blueprint/templates/buttons/buttons/cross.png +0 -0
  170. data/frameworks/blueprint/templates/buttons/buttons/key.png +0 -0
  171. data/frameworks/blueprint/templates/buttons/buttons/tick.png +0 -0
  172. data/frameworks/blueprint/templates/buttons/manifest.rb +0 -17
  173. data/frameworks/blueprint/templates/link_icons/link_icons.sass +0 -13
  174. data/frameworks/blueprint/templates/link_icons/link_icons/doc.png +0 -0
  175. data/frameworks/blueprint/templates/link_icons/link_icons/email.png +0 -0
  176. data/frameworks/blueprint/templates/link_icons/link_icons/external.png +0 -0
  177. data/frameworks/blueprint/templates/link_icons/link_icons/feed.png +0 -0
  178. data/frameworks/blueprint/templates/link_icons/link_icons/im.png +0 -0
  179. data/frameworks/blueprint/templates/link_icons/link_icons/pdf.png +0 -0
  180. data/frameworks/blueprint/templates/link_icons/link_icons/visited.png +0 -0
  181. data/frameworks/blueprint/templates/link_icons/link_icons/xls.png +0 -0
  182. data/frameworks/blueprint/templates/link_icons/manifest.rb +0 -23
  183. data/frameworks/blueprint/templates/project/grid.png +0 -0
  184. data/frameworks/blueprint/templates/project/ie.sass +0 -16
  185. data/frameworks/blueprint/templates/project/manifest.rb +0 -30
  186. data/frameworks/blueprint/templates/project/partials/_base.sass +0 -11
  187. data/frameworks/blueprint/templates/project/print.sass +0 -8
  188. data/frameworks/blueprint/templates/project/screen.sass +0 -46
  189. data/frameworks/blueprint/templates/semantic/grid.png +0 -0
  190. data/frameworks/blueprint/templates/semantic/ie.sass +0 -16
  191. data/frameworks/blueprint/templates/semantic/manifest.rb +0 -33
  192. data/frameworks/blueprint/templates/semantic/partials/_base.sass +0 -10
  193. data/frameworks/blueprint/templates/semantic/partials/_form.sass +0 -6
  194. data/frameworks/blueprint/templates/semantic/partials/_page.sass +0 -17
  195. data/frameworks/blueprint/templates/semantic/partials/_two_col.sass +0 -38
  196. data/frameworks/blueprint/templates/semantic/print.sass +0 -5
  197. data/frameworks/blueprint/templates/semantic/screen.sass +0 -14
  198. data/lib/compass.rbc +0 -796
  199. data/lib/compass/actions.rbc +0 -2736
  200. data/lib/compass/app_integration.rbc +0 -836
  201. data/lib/compass/app_integration/merb.rbc +0 -106
  202. data/lib/compass/app_integration/rails.rbc +0 -2096
  203. data/lib/compass/app_integration/rails/configuration_defaults.rbc +0 -2430
  204. data/lib/compass/app_integration/rails/installer.rbc +0 -3677
  205. data/lib/compass/app_integration/stand_alone.rbc +0 -589
  206. data/lib/compass/app_integration/stand_alone/configuration_defaults.rbc +0 -721
  207. data/lib/compass/app_integration/stand_alone/installer.rbc +0 -1487
  208. data/lib/compass/browser_support.rbc +0 -1144
  209. data/lib/compass/commands.rbc +0 -307
  210. data/lib/compass/commands/base.rbc +0 -1044
  211. data/lib/compass/commands/clean_project.rbc +0 -1856
  212. data/lib/compass/commands/create_project.rbc +0 -2691
  213. data/lib/compass/commands/default.rbc +0 -1677
  214. data/lib/compass/commands/generate_grid_background.rbc +0 -1939
  215. data/lib/compass/commands/help.rbc +0 -1921
  216. data/lib/compass/commands/imports.rbc +0 -969
  217. data/lib/compass/commands/installer_command.rbc +0 -807
  218. data/lib/compass/commands/interactive.rbc +0 -1341
  219. data/lib/compass/commands/list_frameworks.rbc +0 -1111
  220. data/lib/compass/commands/print_version.rbc +0 -2478
  221. data/lib/compass/commands/project_base.rbc +0 -2085
  222. data/lib/compass/commands/project_stats.rbc +0 -4202
  223. data/lib/compass/commands/registry.rbc +0 -1350
  224. data/lib/compass/commands/sprite.rbc +0 -2212
  225. data/lib/compass/commands/stamp_pattern.rbc +0 -2011
  226. data/lib/compass/commands/unpack_extension.rbc +0 -2348
  227. data/lib/compass/commands/update_project.rbc +0 -3002
  228. data/lib/compass/commands/validate_project.rbc +0 -1686
  229. data/lib/compass/commands/watch_project.rbc +0 -4155
  230. data/lib/compass/commands/write_configuration.rbc +0 -2896
  231. data/lib/compass/compiler.rbc +0 -4913
  232. data/lib/compass/configuration.rbc +0 -1398
  233. data/lib/compass/configuration/adapters.rbc +0 -2088
  234. data/lib/compass/configuration/comments.rbc +0 -843
  235. data/lib/compass/configuration/data.rbc +0 -2633
  236. data/lib/compass/configuration/defaults.rbc +0 -3617
  237. data/lib/compass/configuration/file_data.rbc +0 -643
  238. data/lib/compass/configuration/helpers.rbc +0 -3500
  239. data/lib/compass/configuration/inheritance.rbc +0 -3592
  240. data/lib/compass/configuration/paths.rbc +0 -412
  241. data/lib/compass/configuration/serialization.rbc +0 -1996
  242. data/lib/compass/dependencies.rbc +0 -232
  243. data/lib/compass/errors.rbc +0 -176
  244. data/lib/compass/exec.rbc +0 -500
  245. data/lib/compass/exec/command_option_parser.rbc +0 -676
  246. data/lib/compass/exec/global_options_parser.rbc +0 -1306
  247. data/lib/compass/exec/helpers.rbc +0 -758
  248. data/lib/compass/exec/project_options_parser.rbc +0 -1515
  249. data/lib/compass/exec/sub_command_ui.rbc +0 -1191
  250. data/lib/compass/frameworks.rbc +0 -3640
  251. data/lib/compass/grid_builder.rbc +0 -0
  252. data/lib/compass/installers.rbc +0 -152
  253. data/lib/compass/installers/bare_installer.rbc +0 -939
  254. data/lib/compass/installers/base.rbc +0 -4427
  255. data/lib/compass/installers/manifest.rbc +0 -3335
  256. data/lib/compass/installers/manifest_installer.rbc +0 -1591
  257. data/lib/compass/installers/template_context.rbc +0 -1030
  258. data/lib/compass/logger.rbc +0 -2317
  259. data/lib/compass/quick_cache.rbc +0 -324
  260. data/lib/compass/sass_extensions.rbc +0 -213
  261. data/lib/compass/sass_extensions/functions.rbc +0 -808
  262. data/lib/compass/sass_extensions/functions/colors.rbc +0 -1279
  263. data/lib/compass/sass_extensions/functions/constants.rbc +0 -1921
  264. data/lib/compass/sass_extensions/functions/cross_browser_support.rbc +0 -1966
  265. data/lib/compass/sass_extensions/functions/display.rbc +0 -1227
  266. data/lib/compass/sass_extensions/functions/enumerate.rbc +0 -446
  267. data/lib/compass/sass_extensions/functions/env.rbc +0 -299
  268. data/lib/compass/sass_extensions/functions/font_files.rbc +0 -821
  269. data/lib/compass/sass_extensions/functions/gradient_support.rbc +0 -14147
  270. data/lib/compass/sass_extensions/functions/image_size.rbc +0 -3152
  271. data/lib/compass/sass_extensions/functions/inline_image.rbc +0 -1678
  272. data/lib/compass/sass_extensions/functions/lists.rbc +0 -2601
  273. data/lib/compass/sass_extensions/functions/selectors.rbc +0 -1592
  274. data/lib/compass/sass_extensions/functions/sprites.rbc +0 -3792
  275. data/lib/compass/sass_extensions/functions/trig.rbc +0 -811
  276. data/lib/compass/sass_extensions/functions/urls.rbc +0 -5248
  277. data/lib/compass/sass_extensions/monkey_patches.rbc +0 -134
  278. data/lib/compass/sass_extensions/monkey_patches/browser_support.rbc +0 -2169
  279. data/lib/compass/sass_extensions/monkey_patches/traversal.rbc +0 -660
  280. data/lib/compass/sass_extensions/sprites.rbc +0 -363
  281. data/lib/compass/sass_extensions/sprites/base.rbc +0 -4529
  282. data/lib/compass/sass_extensions/sprites/engines.rbc +0 -662
  283. data/lib/compass/sass_extensions/sprites/engines/chunky_png_engine.rbc +0 -1074
  284. data/lib/compass/sass_extensions/sprites/image.rbc +0 -2961
  285. data/lib/compass/sass_extensions/sprites/image_methods.rbc +0 -900
  286. data/lib/compass/sass_extensions/sprites/image_row.rbc +0 -1168
  287. data/lib/compass/sass_extensions/sprites/layout_methods.rbc +0 -3236
  288. data/lib/compass/sass_extensions/sprites/row_fitter.rbc +0 -2067
  289. data/lib/compass/sass_extensions/sprites/sprite_map.rbc +0 -1991
  290. data/lib/compass/sass_extensions/sprites/sprite_methods.rbc +0 -3190
  291. data/lib/compass/sass_extensions/sprites/sprites.rbc +0 -1573
  292. data/lib/compass/sprite_importer.rbc +0 -3573
  293. data/lib/compass/util.rbc +0 -552
  294. data/lib/compass/version.rbc +0 -1245
  295. data/test/fixtures/stylesheets/blueprint/config.rb +0 -14
  296. data/test/fixtures/stylesheets/blueprint/css/ie.css +0 -76
  297. data/test/fixtures/stylesheets/blueprint/css/print.css +0 -56
  298. data/test/fixtures/stylesheets/blueprint/css/screen.css +0 -816
  299. data/test/fixtures/stylesheets/blueprint/css/single-imports/buttons.css +0 -58
  300. data/test/fixtures/stylesheets/blueprint/css/single-imports/colors.css +0 -80
  301. data/test/fixtures/stylesheets/blueprint/css/single-imports/debug.css +0 -12
  302. data/test/fixtures/stylesheets/blueprint/css/single-imports/fancy-type.css +0 -30
  303. data/test/fixtures/stylesheets/blueprint/css/single-imports/form.css +0 -42
  304. data/test/fixtures/stylesheets/blueprint/css/single-imports/grid.css +0 -435
  305. data/test/fixtures/stylesheets/blueprint/css/single-imports/ie.css +0 -76
  306. data/test/fixtures/stylesheets/blueprint/css/single-imports/interaction.css +0 -46
  307. data/test/fixtures/stylesheets/blueprint/css/single-imports/link-icons.css +0 -40
  308. data/test/fixtures/stylesheets/blueprint/css/single-imports/liquid.css +0 -651
  309. data/test/fixtures/stylesheets/blueprint/css/single-imports/print.css +0 -60
  310. data/test/fixtures/stylesheets/blueprint/css/single-imports/reset-utilities.css +0 -36
  311. data/test/fixtures/stylesheets/blueprint/css/single-imports/reset.css +0 -40
  312. data/test/fixtures/stylesheets/blueprint/css/single-imports/rtl.css +0 -437
  313. data/test/fixtures/stylesheets/blueprint/css/single-imports/scaffolding.css +0 -45
  314. data/test/fixtures/stylesheets/blueprint/css/single-imports/typography.css +0 -146
  315. data/test/fixtures/stylesheets/blueprint/css/single-imports/utilities.css +0 -35
  316. data/test/fixtures/stylesheets/blueprint/images/grid.png +0 -0
  317. data/test/fixtures/stylesheets/blueprint/images/link_icons/doc.png +0 -0
  318. data/test/fixtures/stylesheets/blueprint/images/link_icons/email.png +0 -0
  319. data/test/fixtures/stylesheets/blueprint/images/link_icons/external.png +0 -0
  320. data/test/fixtures/stylesheets/blueprint/images/link_icons/feed.png +0 -0
  321. data/test/fixtures/stylesheets/blueprint/images/link_icons/im.png +0 -0
  322. data/test/fixtures/stylesheets/blueprint/images/link_icons/pdf.png +0 -0
  323. data/test/fixtures/stylesheets/blueprint/images/link_icons/visited.png +0 -0
  324. data/test/fixtures/stylesheets/blueprint/images/link_icons/xls.png +0 -0
  325. data/test/fixtures/stylesheets/blueprint/sass/ie.sass +0 -3
  326. data/test/fixtures/stylesheets/blueprint/sass/print.sass +0 -3
  327. data/test/fixtures/stylesheets/blueprint/sass/screen.sass +0 -18
  328. data/test/fixtures/stylesheets/blueprint/sass/single-imports/buttons.scss +0 -4
  329. data/test/fixtures/stylesheets/blueprint/sass/single-imports/colors.scss +0 -34
  330. data/test/fixtures/stylesheets/blueprint/sass/single-imports/debug.scss +0 -3
  331. data/test/fixtures/stylesheets/blueprint/sass/single-imports/fancy-type.scss +0 -3
  332. data/test/fixtures/stylesheets/blueprint/sass/single-imports/form.scss +0 -5
  333. data/test/fixtures/stylesheets/blueprint/sass/single-imports/grid.scss +0 -3
  334. data/test/fixtures/stylesheets/blueprint/sass/single-imports/ie.scss +0 -3
  335. data/test/fixtures/stylesheets/blueprint/sass/single-imports/interaction.scss +0 -3
  336. data/test/fixtures/stylesheets/blueprint/sass/single-imports/link-icons.scss +0 -13
  337. data/test/fixtures/stylesheets/blueprint/sass/single-imports/liquid.scss +0 -3
  338. data/test/fixtures/stylesheets/blueprint/sass/single-imports/print.scss +0 -5
  339. data/test/fixtures/stylesheets/blueprint/sass/single-imports/reset-utilities.scss +0 -5
  340. data/test/fixtures/stylesheets/blueprint/sass/single-imports/reset.scss +0 -1
  341. data/test/fixtures/stylesheets/blueprint/sass/single-imports/rtl.scss +0 -3
  342. data/test/fixtures/stylesheets/blueprint/sass/single-imports/scaffolding.scss +0 -5
  343. data/test/fixtures/stylesheets/blueprint/sass/single-imports/typography.scss +0 -3
  344. data/test/fixtures/stylesheets/blueprint/sass/single-imports/utilities.scss +0 -3
  345. data/test/fixtures/stylesheets/compass/images/flag-s4798b5a210.png +0 -0
  346. data/test/helpers/command_line.rbc +0 -2820
  347. data/test/helpers/diff.rbc +0 -1104
  348. data/test/helpers/io.rbc +0 -962
  349. data/test/helpers/rails.rbc +0 -1116
  350. data/test/helpers/test_case.rbc +0 -1255
  351. data/test/integrations/compass_test.rbc +0 -6589
  352. data/test/integrations/rails_integration_test.rbc +0 -1342
  353. data/test/integrations/sprites_test.rbc +0 -6192
  354. data/test/test_helper.rbc +0 -1694
  355. data/test/units/actions_test.rbc +0 -644
  356. data/test/units/command_line_test.rbc +0 -1532
  357. data/test/units/compass_png_test.rbc +0 -0
  358. data/test/units/configuration_test.rbc +0 -3833
  359. data/test/units/rails_configuration_test.rbc +0 -1032
  360. data/test/units/sass_extensions_test.rbc +0 -3586
  361. data/test/units/sprites/engine_test.rbc +0 -962
  362. data/test/units/sprites/image_row_test.rbc +0 -1578
  363. data/test/units/sprites/image_test.rbc +0 -2836
  364. data/test/units/sprites/importer_test.rbc +0 -2620
  365. data/test/units/sprites/row_fitter_test.rbc +0 -1479
  366. data/test/units/sprites/sprite_command_test.rbc +0 -1147
  367. data/test/units/sprites/sprite_map_test.rbc +0 -6515
@@ -7,10 +7,16 @@ $default-text-shadow-color: #aaa !default;
7
7
  $default-text-shadow-h-offset: 0px !default;
8
8
  $default-text-shadow-v-offset: 0px !default;
9
9
  $default-text-shadow-blur: 1px !default;
10
+ $default-text-shadow-spread: false !default;
10
11
 
11
12
  // Provides cross-browser text shadows when one or more shadows are needed.
12
13
  // Each shadow argument should adhere to the standard css3 syntax for the
13
14
  // text-shadow property.
15
+ //
16
+ // Note: if any shadow has a spread parameter, this will cause the mixin
17
+ // to emit the shadow declaration twice, first without the spread,
18
+ // then with the spread included. This allows you to progressively
19
+ // enhance the browsers that do support the spread parameter.
14
20
  @mixin text-shadow(
15
21
  $shadow-1 : default,
16
22
  $shadow-2 : false,
@@ -24,25 +30,58 @@ $default-text-shadow-blur: 1px !default;
24
30
  $shadow-10: false
25
31
  ) {
26
32
  @if $shadow-1 == default {
27
- $shadow-1: $default-text-shadow-color $default-text-shadow-h-offset $default-text-shadow-v-offset $default-text-shadow-blur;
33
+ $shadow-1: compact($default-text-shadow-h-offset $default-text-shadow-v-offset $default-text-shadow-blur $default-text-shadow-spread $default-text-shadow-color);
28
34
  }
29
- text-shadow: compact($shadow-1, $shadow-2, $shadow-3,
30
- $shadow-4, $shadow-5, $shadow-6,
31
- $shadow-7, $shadow-8, $shadow-9, $shadow-10);
35
+ $shadows-without-spread: join((),(),comma);
36
+ $shadows: join((),(),comma);
37
+ $has-spread: false;
38
+ @each $shadow in compact($shadow-1, $shadow-2, $shadow-3, $shadow-4, $shadow-5,
39
+ $shadow-6, $shadow-7, $shadow-8, $shadow-9, $shadow-10) {
40
+ @if length($shadow) > 4 {
41
+ $has-spread: true;
42
+ $shadows-without-spread: append($shadows-without-spread, nth($shadow,1) nth($shadow,2) nth($shadow,3) nth($shadow,5));
43
+ $shadows: append($shadows, $shadow);
44
+ } else {
45
+ $shadows-without-spread: append($shadows-without-spread, $shadow);
46
+ $shadows: append($shadows, $shadow);
47
+ }
48
+ }
49
+ @if $has-spread {
50
+ text-shadow: $shadows-without-spread;
51
+ }
52
+ text-shadow: $shadows;
32
53
  }
33
54
 
34
55
  // Provides a single cross-browser CSS text shadow.
35
- // Includes default arguments for color, horizontal offset, vertical offset, and blur
56
+ //
57
+ // Provides sensible defaults for the color, horizontal offset, vertical offset, blur, and spread
58
+ // according to the configuration defaults above.
36
59
  @mixin single-text-shadow(
37
- $color: $default-text-shadow-color,
38
- $hoff: $default-text-shadow-h-offset,
39
- $voff: $default-text-shadow-v-offset,
40
- $blur: $default-text-shadow-blur
60
+ $hoff: false,
61
+ $voff: false,
62
+ $blur: false,
63
+ $spread: false,
64
+ $color: false
41
65
  ) {
42
- // XXX I'm surprised we don't need experimental support for this property.
43
- @if $color == none {
44
- text-shadow: none;
66
+ // A lot of people think the color comes first. It doesn't.
67
+ @if type-of($hoff) == color {
68
+ $temp-color: $hoff;
69
+ $hoff: $voff;
70
+ $voff: $blur;
71
+ $blur: $spread;
72
+ $spread: $color;
73
+ $color: $temp-color;
74
+ }
75
+ // Can't rely on default assignment with multiple supported argument orders.
76
+ $hoff: if($hoff, $hoff, $default-text-shadow-h-offset);
77
+ $voff: if($voff, $voff, $default-text-shadow-v-offset);
78
+ $blur: if($blur, $blur, $default-text-shadow-blur );
79
+ $spread: if($spread, $spread, $default-text-shadow-spread );
80
+ $color: if($color, $color, $default-text-shadow-color );
81
+ // We don't need experimental support for this property.
82
+ @if $color == none or $hoff == none {
83
+ @include text-shadow(none);
45
84
  } @else {
46
- text-shadow: $color $hoff $voff $blur;
85
+ @include text-shadow(compact($hoff $voff $blur $spread $color));
47
86
  }
48
87
  }
@@ -140,7 +140,7 @@ $default-skew-y : 5deg !default;
140
140
  //
141
141
  // @include transform( transforms [, 3D-only ] )
142
142
  //
143
- // where 'transforms' is a space separated list of all the transforms to be applied
143
+ // where 'transforms' is a space separated list of all the transforms to be applied.
144
144
  @mixin transform(
145
145
  $transform,
146
146
  $only3d: false
@@ -174,8 +174,8 @@ $default-skew-y : 5deg !default;
174
174
  //
175
175
  // @include perspective( perspective )
176
176
  //
177
- // where 'perspective' is a uniless number representing the depth of the z-axis
178
- // the higher the perspective, the more exagerated the foreshortening.
177
+ // where 'perspective' is a unitless number representing the depth of the
178
+ // z-axis. The higher the perspective, the more exaggerated the foreshortening.
179
179
  // values from 500 to 1000 are more-or-less "normal" - a good starting-point.
180
180
  @mixin perspective($p) {
181
181
  @include experimental(perspective, $p,
@@ -198,8 +198,8 @@ $default-skew-y : 5deg !default;
198
198
  //
199
199
  // @include transform-style( [ style ] )
200
200
  //
201
- // where `style` can be either `flat` or `preserve-3d`
202
- // browsers default to `flat`, mixin defaults to `preserve-3d`
201
+ // where `style` can be either `flat` or `preserve-3d`.
202
+ // Browsers default to `flat`, mixin defaults to `preserve-3d`.
203
203
  @mixin transform-style($style: preserve-3d) {
204
204
  @include experimental(transform-style, $style,
205
205
  -moz, -webkit, -o, -ms, not -khtml, official
@@ -210,8 +210,8 @@ $default-skew-y : 5deg !default;
210
210
  //
211
211
  // @include backface-visibility( [ visibility ] )
212
212
  //
213
- // where `visibility` can be either `visible` or `hidden`
214
- // browsers default to visible, mixin defaults to hidden
213
+ // where `visibility` can be either `visible` or `hidden`.
214
+ // Browsers default to visible, mixin defaults to hidden
215
215
  @mixin backface-visibility($visibility: hidden) {
216
216
  @include experimental(backface-visibility, $visibility,
217
217
  -moz, -webkit, -o, -ms, not -khtml, official
@@ -362,9 +362,9 @@ $default-skew-y : 5deg !default;
362
362
 
363
363
  // Rotate an object around an arbitrary axis (3D)
364
364
  // @include rotate( [ vector-x, vector-y, vector-z, rotation, perspective ] )
365
- // where the 'vector-' arguments accept unitless numbers
366
- // these numbers are not important on their own, but in relation to one another
367
- // creating an axis from your transform-origin, along the axis of Xx = Yy = Zz
365
+ // where the 'vector-' arguments accept unitless numbers.
366
+ // These numbers are not important on their own, but in relation to one another
367
+ // creating an axis from your transform-origin, along the axis of Xx = Yy = Zz.
368
368
  //
369
369
  // **Note** This mixin cannot be combined with other transform mixins.
370
370
  @mixin rotate3d(
@@ -385,7 +385,7 @@ $default-skew-y : 5deg !default;
385
385
 
386
386
  // Move an object along the x or y axis (2D)
387
387
  // @include translate( [ translate-x, translate-y, perspective, 3D-only ] )
388
- // where the 'translate-' arguments accept any distance in percentages or absolute (px, cm, in, em etc..) units
388
+ // where the 'translate-' arguments accept any distance in percentages or absolute (px, cm, in, em etc..) units.
389
389
  //
390
390
  // **Note** This mixin cannot be combined with other transform mixins.
391
391
  @mixin translate(
@@ -463,7 +463,7 @@ $default-skew-y : 5deg !default;
463
463
  //
464
464
  // @include skew( [ skew-x, skew-y, 3D-only ] )
465
465
  //
466
- // where the 'skew-' arguments accept css angles in degrees (deg) or radian (rad) units
466
+ // where the 'skew-' arguments accept css angles in degrees (deg) or radian (rad) units.
467
467
  //
468
468
  // **Note** This mixin cannot be combined with other transform mixins.
469
469
  @mixin skew(
@@ -504,8 +504,8 @@ $default-skew-y : 5deg !default;
504
504
 
505
505
  // Full transform mixins
506
506
  // For settings any combination of transforms as arguments
507
- // These are complex and not highly recommended for daily use
508
- // They are mainly here for backwards-compatability purposes
507
+ // These are complex and not highly recommended for daily use. They are mainly
508
+ // here for backward-compatibility purposes.
509
509
  //
510
510
  // * they include origin adjustments
511
511
  // * scale takes a multiplier (unitless), rotate and skew take degrees (deg)
@@ -30,9 +30,23 @@ $transitionable-prefixed-values: transform, transform-origin !default;
30
30
  // * for multiple, use a comma-delimited list
31
31
  // * also accepts "all" or "none"
32
32
 
33
- @mixin transition-property($properties: $default-transition-property) {
34
- @if type-of($properties) == string { $properties: unquote($properties); }
35
- @include build-prefix-values(transition-property, $properties);
33
+ @mixin transition-property($property-1: $default-transition-property,
34
+ $property-2 : false,
35
+ $property-3 : false,
36
+ $property-4 : false,
37
+ $property-5 : false,
38
+ $property-6 : false,
39
+ $property-7 : false,
40
+ $property-8 : false,
41
+ $property-9 : false,
42
+ $property-10: false
43
+ ) {
44
+ @if type-of($property-1) == string { $property-1: unquote($property-1); }
45
+ $properties: compact($property-1, $property-2, $property-3, $property-4, $property-5, $property-6, $property-7, $property-8, $property-9, $property-10);
46
+ @if $experimental-support-for-webkit { -webkit-transition-property : prefixed-for-transition(-webkit, $properties); }
47
+ @if $experimental-support-for-mozilla { -moz-transition-property : prefixed-for-transition(-moz, $properties); }
48
+ @if $experimental-support-for-opera { -o-transition-property : prefixed-for-transition(-o, $properties); }
49
+ transition-property : $properties;
36
50
  }
37
51
 
38
52
  // One or more durations in seconds
@@ -40,10 +54,21 @@ $transitionable-prefixed-values: transform, transform-origin !default;
40
54
  // * for multiple, use a comma-delimited list
41
55
  // * these durations will affect the properties in the same list position
42
56
 
43
- @mixin transition-duration($duration: $default-transition-duration) {
44
- @if type-of($duration) == string { $duration: unquote($duration); }
45
- @include experimental(transition-duration, $duration,
46
- -moz, -webkit, -o, -ms, not -khtml, official
57
+ @mixin transition-duration($duration-1: $default-transition-duration,
58
+ $duration-2 : false,
59
+ $duration-3 : false,
60
+ $duration-4 : false,
61
+ $duration-5 : false,
62
+ $duration-6 : false,
63
+ $duration-7 : false,
64
+ $duration-8 : false,
65
+ $duration-9 : false,
66
+ $duration-10: false
67
+ ) {
68
+ @if type-of($duration-1) == string { $duration-1: unquote($duration-1); }
69
+ $durations: compact($duration-1, $duration-2, $duration-3, $duration-4, $duration-5, $duration-6, $duration-7, $duration-8, $duration-9, $duration-10);
70
+ @include experimental(transition-duration, $durations,
71
+ -moz, -webkit, -o, not -ms, not -khtml, official
47
72
  );
48
73
  }
49
74
 
@@ -53,9 +78,21 @@ $transitionable-prefixed-values: transform, transform-origin !default;
53
78
  // * For multiple, use a comma-delimited list
54
79
  // * These functions will effect the properties in the same list position
55
80
 
56
- @mixin transition-timing-function($function: $default-transition-function) {
57
- @include experimental(transition-timing-function, unquote($function),
58
- -moz, -webkit, -o, -ms, not -khtml, official
81
+ @mixin transition-timing-function($function-1: $default-transition-function,
82
+ $function-2 : false,
83
+ $function-3 : false,
84
+ $function-4 : false,
85
+ $function-5 : false,
86
+ $function-6 : false,
87
+ $function-7 : false,
88
+ $function-8 : false,
89
+ $function-9 : false,
90
+ $function-10: false
91
+ ) {
92
+ $function-1: unquote($function-1);
93
+ $functions: compact($function-1, $function-2, $function-3, $function-4, $function-5, $function-6, $function-7, $function-8, $function-9, $function-10);
94
+ @include experimental(transition-timing-function, $functions,
95
+ -moz, -webkit, -o, not -ms, not -khtml, official
59
96
  );
60
97
  }
61
98
 
@@ -64,10 +101,21 @@ $transitionable-prefixed-values: transform, transform-origin !default;
64
101
  // * for multiple, use a comma-delimited list
65
102
  // * these delays will effect the properties in the same list position
66
103
 
67
- @mixin transition-delay($delay: $default-transition-delay) {
68
- @if type-of($delay) == string { $delay: unquote($delay); }
69
- @include experimental(transition-delay, $delay,
70
- -moz, -webkit, -o, -ms, not -khtml, official
104
+ @mixin transition-delay($delay-1: $default-transition-delay,
105
+ $delay-2 : false,
106
+ $delay-3 : false,
107
+ $delay-4 : false,
108
+ $delay-5 : false,
109
+ $delay-6 : false,
110
+ $delay-7 : false,
111
+ $delay-8 : false,
112
+ $delay-9 : false,
113
+ $delay-10: false
114
+ ) {
115
+ @if type-of($delay-1) == string { $delay-1: unquote($delay-1); }
116
+ $delays: compact($delay-1, $delay-2, $delay-3, $delay-4, $delay-5, $delay-6, $delay-7, $delay-8, $delay-9, $delay-10);
117
+ @include experimental(transition-delay, $delays,
118
+ -moz, -webkit, -o, not -ms, not -khtml, official
71
119
  );
72
120
  }
73
121
 
@@ -79,7 +127,7 @@ $transitionable-prefixed-values: transform, transform-origin !default;
79
127
  $function: $default-transition-function,
80
128
  $delay: $default-transition-delay
81
129
  ) {
82
- @include build-prefix-values(transition, compact($property $duration $function, false), $delay);
130
+ @include transition(compact($property $duration $function $delay));
83
131
  }
84
132
 
85
133
  @mixin transition(
@@ -97,58 +145,77 @@ $transitionable-prefixed-values: transform, transform-origin !default;
97
145
  @if $transition-1 == default {
98
146
  $transition-1 : compact($default-transition-property $default-transition-duration $default-transition-function $default-transition-delay);
99
147
  }
148
+ $transitions: false;
149
+ @if type-of($transition-1) == list and type-of(nth($transition-1,1)) == list {
150
+ $transitions: join($transition-1, compact($transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10), comma);
151
+ } @else {
152
+ $transitions : compact($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10);
153
+ }
154
+ $delays: comma-list();
155
+ $has-delays: false;
156
+ $webkit-value: comma-list();
157
+ $moz-value: comma-list();
158
+ $o-value: comma-list();
159
+
160
+ // This block can be made considerably simpler at the point in time that
161
+ // we no longer need to deal with the differences in how delays are treated.
162
+ @each $transition in $transitions {
163
+ // Extract the values from the list
164
+ // (this would be cleaner if nth took a 3rd argument to provide a default value).
165
+ $property: nth($transition, 1);
166
+ $duration: false;
167
+ $timing-function: false;
168
+ $delay: false;
169
+ @if length($transition) > 1 { $duration: nth($transition, 2); }
170
+ @if length($transition) > 2 { $timing-function: nth($transition, 3); }
171
+ @if length($transition) > 3 { $delay: nth($transition, 4); $has-delays: true; }
172
+
173
+ // If a delay is provided without a timing function
174
+ @if is-time($timing-function) and not $delay { $delay: $timing-function; $timing-function: false; $has-delays: true; }
175
+
176
+ // Keep a list of delays in case one is specified
177
+ $delays: append($delays, if($delay, $delay, 0s));
178
+
179
+ $webkit-value: append($webkit-value, compact(prefixed-for-transition(-webkit, $property) $duration $timing-function));
180
+ $moz-value: append( $moz-value, compact(prefixed-for-transition( -moz, $property) $duration $timing-function $delay));
181
+ $o-value: append( $o-value, compact(prefixed-for-transition( -o, $property) $duration $timing-function $delay));
182
+ }
100
183
 
101
- $transition : compact($transition-1, $transition-2, $transition-3, $transition-4, $transition-5, $transition-6, $transition-7, $transition-8, $transition-9, $transition-10);
102
- @include build-prefix-values(transition, $transition);
184
+ @if $experimental-support-for-webkit { -webkit-transition : $webkit-value;
185
+ // old webkit doesn't support the delay parameter in the shorthand so we progressively enhance it.
186
+ @if $has-delays { -webkit-transition-delay : $delays; } }
187
+ @if $experimental-support-for-mozilla { -moz-transition : $moz-value; }
188
+ @if $experimental-support-for-opera { -o-transition : $o-value; }
189
+ transition : $transitions;
103
190
  }
104
191
 
105
- @mixin build-prefix-values($property, $values, $delay: false) {
106
- $raw-values: ($values);
107
- $index: compact(false);
108
-
109
- $webkit-value: compact(false);
110
- $moz-value: compact(false);
111
- $ms-value: compact(false);
112
- $o-value: compact(false);
113
-
114
- @each $value in $raw-values {
115
- $value: compact(join($value, false));
116
- $match: false;
192
+ // coerce a list to be comma delimited or make a new, empty comma delimited list.
193
+ @function comma-list($list: ()) {
194
+ @return join((), $list, comma);
195
+ }
117
196
 
118
- @each $prefixed-value in $transitionable-prefixed-values {
119
- @if index($value, $prefixed-value) {
120
- $index: index($value, $prefixed-value);
121
- $match: true;
122
- }
197
+ // Returns `$property` with the given prefix if it is found in `$transitionable-prefixed-values`.
198
+ @function prefixed-for-transition($prefix, $property) {
199
+ @if type-of($property) == list {
200
+ $new-list: comma-list();
201
+ @each $v in $property {
202
+ $new-list: append($new-list, prefixed-for-transition($prefix, $v));
123
203
  }
124
-
125
- @if $match {
126
- $value-prefix: nth($value, $index);
127
- $value-suffix: compact(false);
128
-
129
- @for $i from 2 through length($value) {
130
- $value-suffix: append($value-suffix, nth($value, $i), space);
131
- }
132
-
133
- $non-webkit-suffix: compact(append($value-suffix, $delay, space));
134
-
135
- $webkit-value: append($webkit-value, compact(join(-webkit-#{$value-prefix}, $value-suffix)), comma);
136
- $moz-value: append($moz-value, compact(join(-moz-#{$value-prefix}, $non-webkit-suffix)), comma);
137
- $ms-value: append($ms-value, compact(join(-ms-#{$value-prefix}, $non-webkit-suffix)), comma);
138
- $o-value: append($o-value, compact(join(-o-#{$value-prefix}, $non-webkit-suffix)), comma);
204
+ @return $new-list;
205
+ } @else {
206
+ @if index($transitionable-prefixed-values, $property) {
207
+ @return #{$prefix}-#{$property};
139
208
  } @else {
140
- $non-webkit-value: compact(append($value, $delay, space));
141
-
142
- $webkit-value: append($webkit-value, $value, comma);
143
- $moz-value: append($moz-value, $non-webkit-value, comma);
144
- $ms-value: append($ms-value, $non-webkit-value, comma);
145
- $o-value: append($o-value, $non-webkit-value, comma);
209
+ @return $property;
146
210
  }
147
211
  }
212
+ }
148
213
 
149
- @if $experimental-support-for-webkit { -webkit-#{$property} : $webkit-value; @if $delay { -webkit-#{$property}-delay : $delay; } }
150
- @if $experimental-support-for-mozilla { -moz-#{$property} : $moz-value; }
151
- @if $experimental-support-for-microsoft { -ms-#{$property} : $ms-value; }
152
- @if $experimental-support-for-opera { -o-#{$property} : $o-value; }
153
- #{$property} : compact($values $delay);
214
+ // Checks if the value given is a unit of time.
215
+ @function is-time($value) {
216
+ @if type-of($value) == number {
217
+ @return not not index(s ms, unit($value));
218
+ } @else {
219
+ @return false;
220
+ }
154
221
  }
@@ -4,6 +4,14 @@
4
4
  // http://www.w3.org/TR/2000/WD-css3-userint-20000216
5
5
  @import "shared";
6
6
 
7
+ // ----------------------------------------------------------------------------
8
+ // @private css3-feature-support variables must always include a list of five boolean values
9
+ // representing in order: -moz, -webkit, -o, -ms, -khtml
10
+ // - mozilla support handled seperately below
11
+ $userselect-support: not -moz, -webkit, not -o, -ms, -khtml;
12
+
13
+ // ----------------------------------------------------------------------------
14
+ // Mixins
7
15
 
8
16
  // This property controls the selection model and granularity of an element.
9
17
  //
@@ -11,28 +19,40 @@
11
19
  // [ none | text | toggle | element | elements | all | inherit ]
12
20
  @mixin user-select($select) {
13
21
  $select: unquote($select);
14
- @include experimental(user-select, $select,
15
- -moz, -webkit, not -o, not -ms, -khtml, official
16
- );
22
+
23
+ @if $experimental-support-for-mozilla {
24
+ -moz-user-select: if($select == 'none', -moz-none, $select);
25
+ }
26
+ @include experimental(user-select, $select, $userselect-support...);
17
27
  }
18
28
 
19
29
  // Style the html5 input placeholder in browsers that support it.
20
30
  //
21
- // The styles for the input placeholder are passed as mixin content.
22
- // For example:
31
+ // There are two usage modes: at the stylesheet root, include the mixin with
32
+ // styles passed as mixin content. This applies to all elements. For example:
23
33
  //
24
34
  // @include input-placeholder {
25
35
  // color: #bfbfbf;
26
36
  // font-style: italic;
27
37
  // }
28
- @mixin input-placeholder {
29
- @if $experimental-support-for-webkit {
30
- &::-webkit-input-placeholder { @content; }
31
- }
32
- @if $experimental-support-for-mozilla {
33
- &:-moz-placeholder { @content; }
34
- }
35
- @if $experimental-support-for-microsoft {
36
- &:-ms-input-placeholder { @content; }
37
- }
38
+ //
39
+ // If a specific element is being styled, pass "&" as an argument to the mixin
40
+ // as well. For example:
41
+ //
42
+ // .textinput {
43
+ // @include input-placeholder("&") {
44
+ // color: #bfbfbf;
45
+ // font-style: italic;
46
+ // }
47
+ // }
48
+ @mixin input-placeholder($selector: "") {
49
+ @if $experimental-support-for-webkit {
50
+ #{$selector}::-webkit-input-placeholder { @content; }
51
+ }
52
+ @if $experimental-support-for-mozilla {
53
+ #{$selector}:-moz-placeholder { @content; }
54
+ }
55
+ @if $experimental-support-for-microsoft {
56
+ #{$selector}:-ms-input-placeholder { @content; }
57
+ }
38
58
  }