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
@@ -0,0 +1,152 @@
1
+ // @private Default font-size for all browsers
2
+ $browser-default-font-size: 16px;
3
+
4
+ // Base font size in pixels, if not already defined.
5
+ // Should be the same as the font-size of the html element.
6
+ $base-font-size: 16px !default;
7
+
8
+ // Whether to output fallback values in px when outputting rems.
9
+ $rem-with-px-fallback: true !default;
10
+
11
+
12
+ // Convert any CSS <length> or <percentage> value to any another.
13
+ //
14
+ // @param $length
15
+ // A css <length> or <percentage> value
16
+ //
17
+ // @param $to-unit
18
+ // String matching a css unit keyword, e.g. 'em', '%', etc.
19
+ //
20
+ // @param $from-context
21
+ // When converting from relative units, the absolute length (in px) to
22
+ // which $length refers (e.g. for $lengths in em units, would normally be the
23
+ // font-size of the current element).
24
+ //
25
+ // @param $to-context
26
+ // For converting to relative units, the absolute length in px to which the
27
+ // output value will refer. Defaults to the same as $from-context, since it is
28
+ // rarely needed.
29
+ @function convert-length(
30
+ $length,
31
+ $to-unit,
32
+ $from-context: $base-font-size,
33
+ $to-context: $from-context
34
+ ) {
35
+
36
+ $from-unit: unit($length);
37
+
38
+ // Optimize for cases where `from` and `to` units are accidentally the same.
39
+ @if $from-unit == $to-unit { @return $length; }
40
+
41
+ // Context values must be in px so we can determine a conversion ratio for
42
+ // relative units.
43
+ @if unit($from-context) != 'px' { @warn "Paremeter $from-context must resolve to a value in pixel units."; }
44
+ @if unit($to-context) != 'px' { @warn "Parameter $to-context must resolve to a value in pixel units."; }
45
+
46
+ // Convert input length to pixels
47
+ $px-length: $length;
48
+
49
+ @if $from-unit != 'px' {
50
+ // Convert relative units using the from-context parameter.
51
+ @if $from-unit == 'em' { $px-length: $length * $from-context / 1em }
52
+ @else if $from-unit == 'rem' { $px-length: $length * $base-font-size / 1rem }
53
+ @else if $from-unit == '%' { $px-length: $length * $from-context / 100% }
54
+ @else if $from-unit == 'ex' { $px-length: $length * $from-context / 2ex }
55
+ // Convert absolute units using Sass' conversion table.
56
+ @else if $from-unit == 'in' or
57
+ $from-unit == 'mm' or
58
+ $from-unit == 'cm' or
59
+ $from-unit == 'pt' or
60
+ $from-unit == 'pc' { $px-length: 0px + $length }
61
+ // Certain units can't be converted.
62
+ @else if $from-unit == 'ch' or
63
+ $from-unit == 'vw' or
64
+ $from-unit == 'vh' or
65
+ $from-unit == 'vmin' {
66
+ @warn "#{$from-unit} units can't be reliably converted; Returning original value.";
67
+ @return $length;
68
+ }
69
+ @else {
70
+ @warn "#{$from-unit} is an unknown length unit. Returning original value.";
71
+ @return $length;
72
+ }
73
+ }
74
+
75
+ // Convert length in pixels to the output unit
76
+ $output-length: $px-length;
77
+ @if $to-unit != 'px' {
78
+ // Relative units
79
+ @if $to-unit == 'em' { $output-length: $px-length * 1em / $to-context }
80
+ @else if $to-unit == 'rem' { $output-length: $px-length * 1rem / $base-font-size }
81
+ @else if $to-unit == '%' { $output-length: $px-length * 100% / $to-context }
82
+ @else if $to-unit == 'ex' { $output-length: $px-length * 2ex / $to-context }
83
+ // Absolute units
84
+ @else if $to-unit == 'in' { $output-length: 0in + $px-length }
85
+ @else if $to-unit == 'mm' { $output-length: 0mm + $px-length }
86
+ @else if $to-unit == 'cm' { $output-length: 0cm + $px-length }
87
+ @else if $to-unit == 'pt' { $output-length: 0pt + $px-length }
88
+ @else if $to-unit == 'pc' { $output-length: 0pc + $px-length }
89
+ // Non-convertible units
90
+ @else if $to-unit == 'ch' or
91
+ $to-unit == 'vw' or
92
+ $to-unit == 'vh' or
93
+ $to-unit == 'vmin' {
94
+ @warn "#{$to-unit} units can't be reliably converted; Returning original value.";
95
+ @return $length;
96
+ }
97
+ @else {
98
+ @warn "#{$to-unit} is an unknown length unit. Returning original value.";
99
+ @return $length;
100
+ }
101
+ }
102
+
103
+ @return $output-length;
104
+ }
105
+
106
+
107
+ // Output a given style rule containing rem values along with an (optional)
108
+ // fallback rule for older browsers (with rem values converted to px).
109
+ //
110
+ // @param $property
111
+ // The css property name.
112
+ //
113
+ // @param $values
114
+ // The value (or space-separated list of values) for the property.
115
+ //
116
+ // @param $use-px-fallback
117
+ // [ true | false ]
118
+ //
119
+ @mixin rem($property, $values, $use-px-fallback: $rem-with-px-fallback) {
120
+ // Create a couple of empty lists as output buffers.
121
+ $px-values: ();
122
+ $rem-values: ();
123
+
124
+ // Loop through the $values list
125
+ @each $value in $values {
126
+ // For each property value, if it's in rem or px, derive both rem and
127
+ // px values for it and add those to the end of the appropriate buffer.
128
+ // Ensure all pixel values are rounded to the nearest pixel.
129
+ @if type-of($value) == number and not unitless($value) and (unit($value) == px or unit($value) == rem) {
130
+ @if unit($value) == px {
131
+ $px-values: join($px-values, round($value));
132
+ $rem-values: join($rem-values, convert-length($value, rem));
133
+ }
134
+ @else {
135
+ $px-values: join($px-values, round(convert-length($value, px)));
136
+ $rem-values: join($rem-values, $value);
137
+ }
138
+ }
139
+ @else {
140
+ $px-values: join($px-values, $value);
141
+ $rem-values: join($rem-values, $value);
142
+ }
143
+ }
144
+
145
+ // Use pixel fallback for browsers that don't understand rem units.
146
+ @if $use-px-fallback {
147
+ #{$property}: $px-values;
148
+ }
149
+
150
+ // Use rem values for everyone else (overrides pixel values).
151
+ #{$property}: $rem-values;
152
+ }
@@ -1,19 +1,25 @@
1
1
  @import "compass/layout/grid-background";
2
+ @import "compass/typography/units";
2
3
 
3
- // The base font size.
4
+ // The default font size for all text in pixels
4
5
  $base-font-size: 16px !default;
5
6
 
6
- // The base line height determines the basic unit of vertical rhythm.
7
+ // The distance between text baselines (vertical rhythm) in pixels.
7
8
  $base-line-height: 24px !default;
8
9
 
9
- // Set the default border style for rhythm borders.
10
- $default-rhythm-border-style: solid !default;
10
+ // The length unit in which to output rhythm values.
11
+ // Supported values: px, em, rem. Percent units can't be used since they
12
+ // make calculating padding and margins impractical, and percentage borders are
13
+ // not valid or supported in css.
14
+ $rhythm-unit: 'em' !default;
11
15
 
12
- // The default font size in all browsers.
13
- $browser-default-font-size: 16px;
16
+ // Whether to output fallback values in px when using rem as the rhythm-unit.
17
+ $rem-with-px-fallback: true !default;
14
18
 
15
- // Set to false if you want to use absolute pixels in sizing your typography.
16
- $relative-font-sizing: true !default;
19
+ // Default values for rhythm borders properties.
20
+ // Supports style alone eg. `solid` or list of style and color eg. `solid #aaa`;
21
+ $default-rhythm-border-width: 1px !default;
22
+ $default-rhythm-border-style: solid !default;
17
23
 
18
24
  // Allows the `adjust-font-size-to` mixin and the `lines-for-font-size` function
19
25
  // to round the line height to the nearest half line height instead of the
@@ -24,38 +30,71 @@ $round-to-nearest-half-line: false !default;
24
30
  // of vertical padding above and below the text.
25
31
  $min-line-padding: 2px !default;
26
32
 
27
- // $base-font-size but in your output unit of choice.
28
- // Defaults to 1em when `$relative-font-sizing` is true.
29
- $font-unit: if($relative-font-sizing, 1em, $base-font-size) !default;
30
-
31
- // The basic unit of font rhythm.
32
- $base-rhythm-unit: $base-line-height / $base-font-size * $font-unit;
33
-
34
33
  // The leader is the amount of whitespace in a line.
35
34
  // It might be useful in your calculations.
36
- $base-leader: ($base-line-height - $base-font-size) * $font-unit / $base-font-size;
35
+ $base-leader: convert-length($base-line-height - $base-font-size, $rhythm-unit, $base-font-size);
37
36
 
38
37
  // The half-leader is the amount of whitespace above and below a line.
39
38
  // It might be useful in your calculations.
40
39
  $base-half-leader: $base-leader / 2;
41
40
 
42
- // True if a number has a relative unit.
43
- @function relative-unit($number) {
44
- @return unit($number) == "%" or unit($number) == "em" or unit($number) == "rem"
41
+ // @private Whether the rhythm output is in absolute units (px) or not (em, rem)
42
+ $relative-font-sizing: if($rhythm-unit == px, false, true);
43
+
44
+ // Validate units
45
+ @if unit($base-font-size) != 'px' { @warn "$base-font-size must resolve to a pixel unit."; }
46
+ @if unit($base-line-height) != 'px' { @warn "$base-line-height must resolve to a pixel unit."; }
47
+ @if $rhythm-unit != 'px' and $rhythm-unit != 'em' and $rhythm-unit != 'rem' {
48
+ @warn "$rhythm-unit must be `px`, `em` or `rem`.";
45
49
  }
46
50
 
47
- // True if a number has an absolute unit.
48
- @function absolute-unit($number) {
49
- @return not (relative-unit($number) or unitless($number));
51
+
52
+ // Calculate rhythm units.
53
+ @function rhythm($lines: 1, $font-size: $base-font-size, $offset: 0) {
54
+ $rhythm: convert-length($lines * $base-line-height - $offset, $rhythm-unit, $font-size);
55
+ @if unit($rhythm) == px {
56
+ $rhythm: floor($rhythm);
57
+ }
58
+ @return $rhythm;
50
59
  }
51
60
 
52
- @if $relative-font-sizing and not relative-unit($font-unit) {
53
- @warn "$relative-font-sizing is true but $font-unit is set to #{$font-unit} which is not a relative unit.";
61
+ // Calculate the minimum multiple of rhythm units needed to contain the font-size.
62
+ @function lines-for-font-size($font-size) {
63
+ $lines: if($round-to-nearest-half-line,
64
+ ceil(2 * $font-size / $base-line-height) / 2,
65
+ ceil($font-size / $base-line-height));
66
+ // If lines are cramped include some extra lead.
67
+ @if ($lines * $base-line-height - $font-size) < ($min-line-padding * 2) {
68
+ $lines: $lines + if($round-to-nearest-half-line, 0.5, 1);
69
+ }
70
+ @return $lines;
71
+ }
72
+
73
+
74
+ // @private Outputs rhythm values. For rem units, outputs pixel fallbacks
75
+ // by default.
76
+ @mixin output-rhythm($property, $values) {
77
+ @if $rhythm-unit == rem and $rem-with-px-fallback {
78
+ @include rem($property, $values);
79
+ }
80
+ @else {
81
+ $output: ();
82
+ @each $value in $values {
83
+ @if unit($value) == px {
84
+ // Ensure all pixel values are rounded to the nearest pixel.
85
+ $output: join($output, round($value));
86
+ }
87
+ @else {
88
+ $output: join($output, $value);
89
+ }
90
+ }
91
+ #{$property}: $output;
92
+ }
54
93
  }
55
94
 
56
95
  // Establishes a font baseline for the given font-size.
57
96
  @mixin establish-baseline($font-size: $base-font-size) {
58
- $relative-size : 100% * ($font-size / $browser-default-font-size);
97
+ $relative-size: 100% * ($font-size / $browser-default-font-size);
59
98
 
60
99
  @if $legacy-support-for-ie6 and (not $relative-font-sizing) {
61
100
  // IE 6 refuses to resize fonts set in pixels and it weirdly resizes fonts
@@ -64,28 +103,40 @@ $base-half-leader: $base-leader / 2;
64
103
  * html { font-size: $relative-size; }
65
104
  }
66
105
  html {
67
- font-size: if($relative-font-sizing,$relative-size,$font-size);
68
- @include adjust-leading-to(1, if($relative-font-sizing, $font-size, $base-font-size));
106
+ font-size: if($relative-font-sizing, $relative-size, $font-size);
107
+
108
+ // Webkit has a bug that prevents line-height being set in rem on <html>;
109
+ // To work around this and simplify output, we can set initial line-height
110
+ // in ems for all relative rhythm units, even when $rhythm-unit is `rem`.
111
+ @if $relative-font-sizing {
112
+ line-height: convert-length($base-line-height, em);
113
+ }
114
+ @else {
115
+ line-height: round($base-line-height);
116
+ }
69
117
  }
70
118
  }
71
119
 
72
- // Resets the line-height to 1 vertical rhythm unit.
120
+ // Resets the baseline to 1 rhythm unit
73
121
  // Does not work on elements whose font-size is different from $base-font-size.
74
122
  //
75
123
  // @deprecated This mixin will be removed in the next release.
76
- // Please use the `adjust-leading-to` mixin instead.
77
- @mixin reset-baseline {
78
- @include adjust-leading-to(1, if($relative-font-sizing, $base-font-size, $base-font-size));
124
+ // Please use `adjust-leading-to(1)` instead.
125
+ @mixin reset-baseline($font-size: $base-font-size) {
126
+ @include adjust-leading-to(1, $font-size);
79
127
  }
80
128
 
81
129
  // Show a background image that can be used to debug your alignments.
130
+ // As this is a development feature, this mixin never outputs pixel fallbacks
131
+ // for rem output.
82
132
  // Include the $img argument if you would rather use your own image than the
83
133
  // Compass default gradient image.
84
134
  @mixin debug-vertical-alignment($img: false) {
85
135
  @if $img {
86
136
  background: image-url($img);
87
- } @else {
88
- @include baseline-grid-background($base-rhythm-unit);
137
+ }
138
+ @else {
139
+ @include baseline-grid-background(rhythm());
89
140
  }
90
141
  }
91
142
 
@@ -94,12 +145,13 @@ $base-half-leader: $base-leader / 2;
94
145
  // of this font should use up. It does not have to be an integer, but it
95
146
  // defaults to the smallest integer that is large enough to fit the font.
96
147
  // Use $from-size to adjust from a font-size other than the base font-size.
97
- @mixin adjust-font-size-to($to-size, $lines: lines-for-font-size($to-size), $from-size: $base-font-size) {
98
- @if not $relative-font-sizing and $from-size != $base-font-size {
99
- @warn "$relative-font-sizing is false but a relative font size was passed to adjust-font-size-to";
148
+ @mixin adjust-font-size-to($to-size, $lines: auto, $from-size: $base-font-size) {
149
+ $to-size: convert-length($to-size, px, $from-size);
150
+ @if $lines == auto {
151
+ $lines: lines-for-font-size($to-size);
100
152
  }
101
- font-size: $font-unit * $to-size / $from-size;
102
- @include adjust-leading-to($lines, if($relative-font-sizing, $to-size, $base-font-size));
153
+ @include output-rhythm(font-size, convert-length($to-size, $rhythm-unit, $from-size));
154
+ @include adjust-leading-to($lines, $to-size);
103
155
  }
104
156
 
105
157
  // Adjust a block to have different line height to maintain the rhythm.
@@ -107,117 +159,141 @@ $base-half-leader: $base-leader / 2;
107
159
  // font should use up. It does not have to be an integer, but it defaults to the
108
160
  // smallest integer that is large enough to fit the font.
109
161
  @mixin adjust-leading-to($lines, $font-size: $base-font-size) {
110
- line-height: rhythm($lines, $font-size);
111
- }
112
-
113
- // Calculate rhythm units.
114
- @function rhythm(
115
- $lines: 1,
116
- $font-size: $base-font-size,
117
- $offset: 0
118
- ) {
119
- @if not $relative-font-sizing and $font-size != $base-font-size {
120
- @warn "$relative-font-sizing is false but a relative font size was passed to the rhythm function";
121
- }
122
- $rhythm: $font-unit * ($lines * $base-line-height - $offset) / $font-size;
123
- // Round the pixels down to nearest integer.
124
- @if unit($rhythm) == px {
125
- $rhythm: floor($rhythm);
126
- }
127
- @return $rhythm;
128
- }
129
-
130
- // Calculate the minimum multiple of rhythm units needed to contain the font-size.
131
- @function lines-for-font-size($font-size) {
132
- $lines: if($round-to-nearest-half-line,
133
- ceil(2 * $font-size / $base-line-height) / 2,
134
- ceil($font-size / $base-line-height));
135
- @if $lines * $base-line-height - $font-size < $min-line-padding * 2 {
136
- $lines: $lines + if($round-to-nearest-half-line, 0.5, 1);
137
- }
138
- @return $lines;
162
+ @include output-rhythm(line-height, rhythm($lines, $font-size));
139
163
  }
140
164
 
141
165
  // Apply leading whitespace. The $property can be margin or padding.
142
166
  @mixin leader($lines: 1, $font-size: $base-font-size, $property: margin) {
143
- #{$property}-top: rhythm($lines, $font-size);
167
+ @include output-rhythm(#{$property}-top, rhythm($lines, $font-size));
144
168
  }
145
169
 
146
170
  // Apply leading whitespace as padding.
147
171
  @mixin padding-leader($lines: 1, $font-size: $base-font-size) {
148
- padding-top: rhythm($lines, $font-size);
172
+ @include output-rhythm(padding-top, rhythm($lines, $font-size));
149
173
  }
150
174
 
151
175
  // Apply leading whitespace as margin.
152
176
  @mixin margin-leader($lines: 1, $font-size: $base-font-size) {
153
- margin-top: rhythm($lines, $font-size);
177
+ @include output-rhythm(margin-top, rhythm($lines, $font-size));
154
178
  }
155
179
 
156
180
  // Apply trailing whitespace. The $property can be margin or padding.
157
181
  @mixin trailer($lines: 1, $font-size: $base-font-size, $property: margin) {
158
- #{$property}-bottom: rhythm($lines, $font-size);
182
+ @include output-rhythm(#{$property}-bottom, rhythm($lines, $font-size));
159
183
  }
160
184
 
161
185
  // Apply trailing whitespace as padding.
162
186
  @mixin padding-trailer($lines: 1, $font-size: $base-font-size) {
163
- padding-bottom: rhythm($lines, $font-size);
187
+ @include output-rhythm(padding-bottom, rhythm($lines, $font-size));
164
188
  }
165
189
 
166
190
  // Apply trailing whitespace as margin.
167
191
  @mixin margin-trailer($lines: 1, $font-size: $base-font-size) {
168
- margin-bottom: rhythm($lines, $font-size);
192
+ @include output-rhythm(margin-bottom, rhythm($lines, $font-size));
169
193
  }
170
194
 
171
195
  // Shorthand mixin to apply whitespace for top and bottom margins and padding.
172
- @mixin rhythm($leader: 0, $padding-leader: 0, $padding-trailer: 0, $trailer: 0, $font-size: $base-font-size) {
196
+ @mixin rhythm(
197
+ $leader: 1,
198
+ $padding-leader: 0,
199
+ $padding-trailer: $padding-leader,
200
+ $trailer: $leader,
201
+ $font-size: $base-font-size
202
+ ) {
173
203
  @include leader($leader, $font-size);
174
204
  @include padding-leader($padding-leader, $font-size);
175
205
  @include padding-trailer($padding-trailer, $font-size);
176
206
  @include trailer($trailer, $font-size);
177
207
  }
178
208
 
179
- // Apply a border and whitespace to any side without destroying the vertical
180
- // rhythm. The whitespace must be greater than the width of the border.
181
- @mixin apply-side-rhythm-border($side, $width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
182
- @if not $relative-font-sizing and $font-size != $base-font-size {
183
- @warn "$relative-font-sizing is false but a relative font size was passed to apply-side-rhythm-border";
184
- }
185
- border-#{$side}: {
186
- style: $border-style;
187
- width: $font-unit * $width / $font-size;
188
- };
189
- padding-#{$side}: rhythm($lines, $font-size, $offset: $width);
209
+ // Shorthand mixin to apply whitespace for top and bottom margins.
210
+ @mixin rhythm-margins(
211
+ $leader: 1,
212
+ $trailer: $leader,
213
+ $font-size: $base-font-size
214
+ ) {
215
+ @include leader($leader, $font-size);
216
+ @include trailer($trailer, $font-size);
190
217
  }
191
218
 
192
- // Apply borders and whitespace equally to all sides.
193
- @mixin rhythm-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
194
- @if not $relative-font-sizing and $font-size != $base-font-size {
195
- @warn "$relative-font-sizing is false but a relative font size was passed to rhythm-borders";
219
+ // Shorthand mixin to apply whitespace for top and bottom padding.
220
+ @mixin rhythm-padding(
221
+ $padding-leader: 1,
222
+ $padding-trailer: $padding-leader,
223
+ $font-size: $base-font-size
224
+ ) {
225
+ @include padding-leader($padding-leader, $font-size);
226
+ @include padding-trailer($padding-trailer, $font-size);
227
+ }
228
+
229
+ // Apply a border and whitespace to any side without destroying the vertical
230
+ // rhythm. The whitespace must be greater than the width of the border.
231
+ @mixin apply-side-rhythm-border(
232
+ $side,
233
+ $width: $default-rhythm-border-width,
234
+ $lines: 1,
235
+ $font-size: $base-font-size,
236
+ $border-style: $default-rhythm-border-style
237
+ ) {
238
+ // If applying borders to all sides, use shorthand properties
239
+ $border-prop: if($side == all, border, border-#{$side});
240
+ @include output-rhythm(#{$border-prop}-width, convert-length($width, $rhythm-unit, $font-size));
241
+ #{$border-prop}-style: nth($border-style, 1);
242
+ @if type-of($border-style) == list and length($border-style) > 1 {
243
+ #{$border-prop}-color: nth($border-style, 2);
196
244
  }
197
- border: {
198
- style: $border-style;
199
- width: $font-unit * $width / $font-size;
200
- };
201
- padding: rhythm($lines, $font-size, $offset: $width);
245
+ $padding-prop: if($side == all, padding, padding-#{$side});
246
+ @include output-rhythm(#{$padding-prop}, rhythm($lines, $font-size, $offset: $width));
202
247
  }
203
248
 
204
249
  // Apply a leading border.
205
- @mixin leading-border($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
250
+ // $border-style and $width are deprecated and will be removed in a future version of Compass.
251
+ @mixin leading-border(
252
+ $width: $default-rhythm-border-width,
253
+ $lines: 1,
254
+ $font-size: $base-font-size,
255
+ $border-style: $default-rhythm-border-style
256
+ ) {
206
257
  @include apply-side-rhythm-border(top, $width, $lines, $font-size, $border-style);
207
258
  }
208
259
 
209
260
  // Apply a trailing border.
210
- @mixin trailing-border($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
261
+ @mixin trailing-border(
262
+ $width: $default-rhythm-border-width,
263
+ $lines: 1,
264
+ $font-size: $base-font-size,
265
+ $border-style: $default-rhythm-border-style
266
+ ) {
211
267
  @include apply-side-rhythm-border(bottom, $width, $lines, $font-size, $border-style);
212
268
  }
213
269
 
214
270
  // Apply both leading and trailing borders.
215
- @mixin horizontal-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
271
+ @mixin horizontal-borders(
272
+ $width: $default-rhythm-border-width,
273
+ $lines: 1,
274
+ $font-size: $base-font-size,
275
+ $border-style: $default-rhythm-border-style
276
+ ) {
216
277
  @include leading-border($width, $lines, $font-size, $border-style);
217
278
  @include trailing-border($width, $lines, $font-size, $border-style);
218
279
  }
219
280
 
220
281
  // Alias for `horizontal-borders` mixin.
221
- @mixin h-borders($width: 1px, $lines: 1, $font-size: $base-font-size, $border-style: $default-rhythm-border-style) {
282
+ @mixin h-borders(
283
+ $width: $default-rhythm-border-width,
284
+ $lines: 1,
285
+ $font-size: $base-font-size,
286
+ $border-style: $default-rhythm-border-style
287
+ ) {
222
288
  @include horizontal-borders($width, $lines, $font-size, $border-style);
223
289
  }
290
+
291
+ // Apply borders and whitespace equally to all sides.
292
+ @mixin rhythm-borders(
293
+ $width: $default-rhythm-border-width,
294
+ $lines: 1,
295
+ $font-size: $base-font-size,
296
+ $border-style: $default-rhythm-border-style
297
+ ) {
298
+ @include apply-side-rhythm-border(all, $width, $lines, $font-size, $border-style);
299
+ }