compass-core-sass37 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +22 -0
  3. data/VERSION +1 -0
  4. data/data/caniuse.json +1 -0
  5. data/data/caniuse_extras/css-placeholder.json +171 -0
  6. data/lib/compass/browser_support.rb +64 -0
  7. data/lib/compass/configuration/adapters.rb +109 -0
  8. data/lib/compass/configuration/data.rb +199 -0
  9. data/lib/compass/configuration/defaults.rb +207 -0
  10. data/lib/compass/configuration/inheritance.rb +307 -0
  11. data/lib/compass/configuration/paths.rb +19 -0
  12. data/lib/compass/configuration/watch.rb +38 -0
  13. data/lib/compass/configuration.rb +175 -0
  14. data/lib/compass/core/caniuse.rb +314 -0
  15. data/lib/compass/core/generated_version.rb +6 -0
  16. data/lib/compass/core/sass_extensions/functions/colors.rb +67 -0
  17. data/lib/compass/core/sass_extensions/functions/configuration.rb +173 -0
  18. data/lib/compass/core/sass_extensions/functions/constants.rb +56 -0
  19. data/lib/compass/core/sass_extensions/functions/cross_browser_support.rb +270 -0
  20. data/lib/compass/core/sass_extensions/functions/display.rb +32 -0
  21. data/lib/compass/core/sass_extensions/functions/enumerate.rb +7 -0
  22. data/lib/compass/core/sass_extensions/functions/env.rb +72 -0
  23. data/lib/compass/core/sass_extensions/functions/files.rb +33 -0
  24. data/lib/compass/core/sass_extensions/functions/font_files.rb +65 -0
  25. data/lib/compass/core/sass_extensions/functions/gradient_support.rb +859 -0
  26. data/lib/compass/core/sass_extensions/functions/image_size.rb +117 -0
  27. data/lib/compass/core/sass_extensions/functions/inline_image.rb +63 -0
  28. data/lib/compass/core/sass_extensions/functions/lists.rb +102 -0
  29. data/lib/compass/core/sass_extensions/functions/math.rb +105 -0
  30. data/lib/compass/core/sass_extensions/functions/selectors.rb +79 -0
  31. data/lib/compass/core/sass_extensions/functions/urls.rb +315 -0
  32. data/lib/compass/core/sass_extensions/functions.rb +41 -0
  33. data/lib/compass/core/sass_extensions/monkey_patches/browser_support.rb +119 -0
  34. data/lib/compass/core/sass_extensions/monkey_patches/traversal.rb +23 -0
  35. data/lib/compass/core/sass_extensions/monkey_patches.rb +3 -0
  36. data/lib/compass/core/sass_extensions.rb +10 -0
  37. data/lib/compass/core/version.rb +13 -0
  38. data/lib/compass/core.rb +78 -0
  39. data/lib/compass/error.rb +5 -0
  40. data/lib/compass/frameworks.rb +181 -0
  41. data/lib/compass/util.rb +19 -0
  42. data/lib/compass-core.rb +1 -0
  43. data/stylesheets/_compass.scss +3 -0
  44. data/stylesheets/_lemonade.scss +38 -0
  45. data/stylesheets/compass/_configuration.scss +54 -0
  46. data/stylesheets/compass/_css3.scss +21 -0
  47. data/stylesheets/compass/_layout.scss +3 -0
  48. data/stylesheets/compass/_reset-legacy.scss +3 -0
  49. data/stylesheets/compass/_reset.scss +3 -0
  50. data/stylesheets/compass/_support.scss +447 -0
  51. data/stylesheets/compass/_typography.scss +4 -0
  52. data/stylesheets/compass/_utilities.scss +9 -0
  53. data/stylesheets/compass/css3/_animation.scss +122 -0
  54. data/stylesheets/compass/css3/_appearance.scss +17 -0
  55. data/stylesheets/compass/css3/_background-clip.scss +35 -0
  56. data/stylesheets/compass/css3/_background-origin.scss +37 -0
  57. data/stylesheets/compass/css3/_background-size.scss +19 -0
  58. data/stylesheets/compass/css3/_border-radius.scss +107 -0
  59. data/stylesheets/compass/css3/_box-shadow.scss +88 -0
  60. data/stylesheets/compass/css3/_box-sizing.scss +21 -0
  61. data/stylesheets/compass/css3/_box.scss +85 -0
  62. data/stylesheets/compass/css3/_columns.scss +212 -0
  63. data/stylesheets/compass/css3/_deprecated-support.scss +272 -0
  64. data/stylesheets/compass/css3/_filter.scss +50 -0
  65. data/stylesheets/compass/css3/_flexbox.scss +156 -0
  66. data/stylesheets/compass/css3/_font-face.scss +48 -0
  67. data/stylesheets/compass/css3/_hyphenation.scss +71 -0
  68. data/stylesheets/compass/css3/_images.scss +152 -0
  69. data/stylesheets/compass/css3/_inline-block.scss +31 -0
  70. data/stylesheets/compass/css3/_opacity.scss +27 -0
  71. data/stylesheets/compass/css3/_pie.scss +1 -0
  72. data/stylesheets/compass/css3/_regions.scss +27 -0
  73. data/stylesheets/compass/css3/_selection.scss +59 -0
  74. data/stylesheets/compass/css3/_shared.scss +5 -0
  75. data/stylesheets/compass/css3/_text-shadow.scss +82 -0
  76. data/stylesheets/compass/css3/_transform.scss +590 -0
  77. data/stylesheets/compass/css3/_transition.scss +190 -0
  78. data/stylesheets/compass/css3/_user-interface.scss +71 -0
  79. data/stylesheets/compass/layout/_grid-background.scss +178 -0
  80. data/stylesheets/compass/layout/_sticky-footer.scss +23 -0
  81. data/stylesheets/compass/layout/_stretching.scss +24 -0
  82. data/stylesheets/compass/reset/_utilities-legacy.scss +135 -0
  83. data/stylesheets/compass/reset/_utilities.scss +142 -0
  84. data/stylesheets/compass/typography/_links.scss +3 -0
  85. data/stylesheets/compass/typography/_lists.scss +4 -0
  86. data/stylesheets/compass/typography/_text.scss +4 -0
  87. data/stylesheets/compass/typography/_units.scss +183 -0
  88. data/stylesheets/compass/typography/_vertical_rhythm.scss +300 -0
  89. data/stylesheets/compass/typography/links/_hover-link.scss +5 -0
  90. data/stylesheets/compass/typography/links/_link-colors.scss +28 -0
  91. data/stylesheets/compass/typography/links/_unstyled-link.scss +7 -0
  92. data/stylesheets/compass/typography/lists/_bullets.scss +34 -0
  93. data/stylesheets/compass/typography/lists/_horizontal-list.scss +63 -0
  94. data/stylesheets/compass/typography/lists/_inline-block-list.scss +50 -0
  95. data/stylesheets/compass/typography/lists/_inline-list.scss +47 -0
  96. data/stylesheets/compass/typography/text/_ellipsis.scss +25 -0
  97. data/stylesheets/compass/typography/text/_force-wrap.scss +12 -0
  98. data/stylesheets/compass/typography/text/_nowrap.scss +2 -0
  99. data/stylesheets/compass/typography/text/_replacement.scss +74 -0
  100. data/stylesheets/compass/utilities/_color.scss +1 -0
  101. data/stylesheets/compass/utilities/_general.scss +6 -0
  102. data/stylesheets/compass/utilities/_links.scss +5 -0
  103. data/stylesheets/compass/utilities/_lists.scss +6 -0
  104. data/stylesheets/compass/utilities/_print.scss +17 -0
  105. data/stylesheets/compass/utilities/_sass.scss +2 -0
  106. data/stylesheets/compass/utilities/_sprites.scss +2 -0
  107. data/stylesheets/compass/utilities/_tables.scss +3 -0
  108. data/stylesheets/compass/utilities/_text.scss +5 -0
  109. data/stylesheets/compass/utilities/color/_brightness.scss +20 -0
  110. data/stylesheets/compass/utilities/color/_contrast.scss +52 -0
  111. data/stylesheets/compass/utilities/general/_clearfix.scss +44 -0
  112. data/stylesheets/compass/utilities/general/_float.scss +38 -0
  113. data/stylesheets/compass/utilities/general/_hacks.scss +65 -0
  114. data/stylesheets/compass/utilities/general/_min.scss +16 -0
  115. data/stylesheets/compass/utilities/general/_reset.scss +2 -0
  116. data/stylesheets/compass/utilities/general/_tabs.scss +1 -0
  117. data/stylesheets/compass/utilities/general/_tag-cloud.scss +18 -0
  118. data/stylesheets/compass/utilities/links/_hover-link.scss +3 -0
  119. data/stylesheets/compass/utilities/links/_link-colors.scss +3 -0
  120. data/stylesheets/compass/utilities/links/_unstyled-link.scss +3 -0
  121. data/stylesheets/compass/utilities/lists/_bullets.scss +3 -0
  122. data/stylesheets/compass/utilities/lists/_horizontal-list.scss +3 -0
  123. data/stylesheets/compass/utilities/lists/_inline-block-list.scss +3 -0
  124. data/stylesheets/compass/utilities/lists/_inline-list.scss +3 -0
  125. data/stylesheets/compass/utilities/sass/_lists.scss +16 -0
  126. data/stylesheets/compass/utilities/sass/_maps.scss +19 -0
  127. data/stylesheets/compass/utilities/sprites/_base.scss +92 -0
  128. data/stylesheets/compass/utilities/sprites/_sprite-img.scss +81 -0
  129. data/stylesheets/compass/utilities/tables/_alternating-rows-and-columns.scss +22 -0
  130. data/stylesheets/compass/utilities/tables/_borders.scss +38 -0
  131. data/stylesheets/compass/utilities/tables/_scaffolding.scss +9 -0
  132. data/stylesheets/compass/utilities/text/_ellipsis.scss +3 -0
  133. data/stylesheets/compass/utilities/text/_nowrap.scss +3 -0
  134. data/stylesheets/compass/utilities/text/_replacement.scss +3 -0
  135. data/templates/ellipsis/ellipsis.sass +9 -0
  136. data/templates/ellipsis/manifest.rb +27 -0
  137. data/templates/ellipsis/xml/ellipsis.xml +14 -0
  138. data/templates/extension/manifest.rb +26 -0
  139. data/templates/extension/stylesheets/main.sass +1 -0
  140. data/templates/extension/templates/project/manifest.rb +2 -0
  141. data/templates/extension/templates/project/screen.sass +2 -0
  142. data/templates/project/USAGE.markdown +32 -0
  143. data/templates/project/ie.sass +6 -0
  144. data/templates/project/manifest.rb +4 -0
  145. data/templates/project/print.sass +6 -0
  146. data/templates/project/screen.sass +7 -0
  147. metadata +257 -0
@@ -0,0 +1,190 @@
1
+ @import "compass/support";
2
+
3
+ // The the user threshold for transition support. Defaults to `$graceful-usage-threshold`
4
+ $transition-support-threshold: $graceful-usage-threshold !default;
5
+
6
+
7
+ // CSS Transitions
8
+ // Currently only works in Webkit.
9
+ //
10
+ // * expected in CSS3, FireFox 3.6/7 and Opera Presto 2.3
11
+ // * We'll be prepared.
12
+ //
13
+ // Including this submodule sets following defaults for the mixins:
14
+ //
15
+ // $default-transition-property : all
16
+ // $default-transition-duration : 1s
17
+ // $default-transition-function : false
18
+ // $default-transition-delay : false
19
+ //
20
+ // Override them if you like. Timing-function and delay are set to false for browser defaults (ease, 0s).
21
+
22
+ $default-transition-property: all !default;
23
+
24
+ $default-transition-duration: 1s !default;
25
+
26
+ $default-transition-function: null !default;
27
+
28
+ $default-transition-delay: null !default;
29
+
30
+ $transitionable-prefixed-values: transform, transform-origin !default;
31
+
32
+
33
+
34
+ // Checks if the value given is a unit of time.
35
+ @function is-time($value) {
36
+ @return if(type-of($value) == number, not not index(s ms, unit($value)), false);
37
+ }
38
+
39
+ // Returns `$property` with the given prefix if it is found in `$transitionable-prefixed-values`.
40
+ @function prefixed-for-transition($prefix, $property) {
41
+ @if not $prefix {
42
+ @return $property;
43
+ }
44
+ @if type-of($property) == list or type-of($property) == arglist {
45
+ $new-list: comma-list();
46
+ @each $v in $property {
47
+ $new-list: append($new-list, prefixed-for-transition($prefix, $v));
48
+ }
49
+ @return $new-list;
50
+ } @else {
51
+ @if index($transitionable-prefixed-values, $property) {
52
+ @return #{$prefix}-#{$property};
53
+ } @else {
54
+ @return $property;
55
+ }
56
+ }
57
+ }
58
+
59
+ // Returns $transition-map which includes key and values that map to a transition declaration
60
+ @function transition-map($transition) {
61
+ $transition-map: ();
62
+
63
+ @each $item in $transition {
64
+ @if is-time($item) {
65
+ @if map-has-key($transition-map, duration) {
66
+ $transition-map: map-merge($transition-map, (delay: $item));
67
+ } @else {
68
+ $transition-map: map-merge($transition-map, (duration: $item));
69
+ }
70
+ } @else if map-has-key($transition-map, property) {
71
+ $transition-map: map-merge($transition-map, (timing-function: $item));
72
+ } @else {
73
+ $transition-map: map-merge($transition-map, (property: $item));
74
+ }
75
+ }
76
+
77
+ @return $transition-map;
78
+ }
79
+
80
+ // One or more properties to transition
81
+ //
82
+ // * for multiple, use a comma-delimited list
83
+ // * also accepts "all" or "none"
84
+
85
+ @mixin transition-property($properties...) {
86
+ $properties: set-arglist-default($properties, $default-transition-property);
87
+ @include with-each-prefix(css-transitions, $transition-support-threshold) {
88
+ $props: if($current-prefix, prefixed-for-transition($current-prefix, $properties), $properties);
89
+ @include prefix-prop(transition-property, $props);
90
+ }
91
+ }
92
+
93
+ // One or more durations in seconds
94
+ //
95
+ // * for multiple, use a comma-delimited list
96
+ // * these durations will affect the properties in the same list position
97
+
98
+ @mixin transition-duration($durations...) {
99
+ $durations: set-arglist-default($durations, $default-transition-duration);
100
+ @include prefixed-properties(css-transitions, $transition-support-threshold, (
101
+ transition-duration: $durations
102
+ ));
103
+ }
104
+
105
+ // One or more timing functions
106
+ //
107
+ // * [ ease | linear | ease-in | ease-out | ease-in-out | cubic-bezier(x1, y1, x2, y2)]
108
+ // * For multiple, use a comma-delimited list
109
+ // * These functions will effect the properties in the same list position
110
+
111
+ @mixin transition-timing-function($functions...) {
112
+ $functions: set-arglist-default($functions, $default-transition-function);
113
+ @include prefixed-properties(css-transitions, $transition-support-threshold, (
114
+ transition-timing-function: $functions
115
+ ));
116
+ }
117
+
118
+ // One or more transition-delays in seconds
119
+ //
120
+ // * for multiple, use a comma-delimited list
121
+ // * these delays will effect the properties in the same list position
122
+
123
+ @mixin transition-delay($delays...) {
124
+ $delays: set-arglist-default($delays, $default-transition-delay);
125
+ @include prefixed-properties(css-transitions, $transition-support-threshold, (
126
+ transition-delay: $delays
127
+ ));
128
+ }
129
+
130
+ // Transition all-in-one shorthand
131
+
132
+ @mixin single-transition(
133
+ $property: $default-transition-property,
134
+ $duration: $default-transition-duration,
135
+ $function: $default-transition-function,
136
+ $delay: $default-transition-delay
137
+ ) {
138
+ @include transition(compact($property $duration $function $delay));
139
+ }
140
+
141
+ @mixin transition($transitions...) {
142
+ $default: (compact($default-transition-property $default-transition-duration $default-transition-function $default-transition-delay),);
143
+ $transitions: if(length($transitions) == 1 and type-of(nth($transitions, 1)) == list and list-separator(nth($transitions, 1)) == comma, nth($transitions, 1), $transitions);
144
+ $transitions: set-arglist-default($transitions, $default);
145
+
146
+
147
+ @include with-each-prefix(css-transitions, $transition-support-threshold) {
148
+ $delays: comma-list();
149
+ $transitions-without-delays: comma-list();
150
+ $transitions-with-delays: comma-list();
151
+ $has-delays: false;
152
+
153
+
154
+ // This block can be made considerably simpler at the point in time that
155
+ // we no longer need to deal with the differences in how delays are treated.
156
+ @each $transition in $transitions {
157
+ // Declare initial values for transition
158
+ $transition: transition-map($transition);
159
+
160
+ $property: map-get($transition, property);
161
+ $duration: map-get($transition, duration);
162
+ $timing-function: map-get($transition, timing-function);
163
+ $delay: map-get($transition, delay);
164
+
165
+ // Parse transition string to assign values into correct variables
166
+ $has-delays: $has-delays or $delay;
167
+
168
+ @if $current-prefix == -webkit {
169
+ // Keep a list of delays in case one is specified
170
+ $delays: append($delays, if($delay, $delay, 0s));
171
+ $transitions-without-delays: append($transitions-without-delays,
172
+ prefixed-for-transition($current-prefix, $property) $duration $timing-function);
173
+ } @else {
174
+ $transitions-with-delays: append($transitions-with-delays,
175
+ prefixed-for-transition($current-prefix, $property) $duration $timing-function $delay);
176
+ }
177
+ }
178
+
179
+ @if $current-prefix == -webkit {
180
+ @include prefix-prop(transition, $transitions-without-delays);
181
+ @if $has-delays {
182
+ @include prefix-prop(transition-delay, $delays);
183
+ }
184
+ } @else if $current-prefix {
185
+ @include prefix-prop(transition, $transitions-with-delays);
186
+ } @else {
187
+ transition: $transitions-with-delays;
188
+ }
189
+ }
190
+ }
@@ -0,0 +1,71 @@
1
+ // User Interface
2
+ // This file can be expanded to handle all the user interface properties as
3
+ // they become available in browsers:
4
+ // http://www.w3.org/TR/2000/WD-css3-userint-20000216
5
+
6
+ @import "compass/support";
7
+
8
+ // The prefixed support threshold for user-select.
9
+ // Defaults to the $graceful-usage-threshold.
10
+ $userselect-support-threshold: $graceful-usage-threshold !default;
11
+
12
+ // This property controls the selection model and granularity of an element.
13
+ //
14
+ // @param $select
15
+ // [ none | text | toggle | element | elements | all | inherit ]
16
+ @mixin user-select($select) {
17
+ $select: unquote($select);
18
+
19
+ @include with-each-prefix(user-select-none, $userselect-support-threshold) {
20
+ // old Firefox used a proprietary `-moz-none` value, starting with Firefox 21 `none` behaves like `-moz-none`
21
+ // @link https://developer.mozilla.org/en-US/docs/Web/CSS/user-select
22
+ @include prefix-prop(user-select, if($current-prefix == -moz and $select == 'none', -moz-none, $select));
23
+ }
24
+ }
25
+
26
+ // The prefixed support threshold for input-placeholder.
27
+ // Defaults to the $graceful-usage-threshold.
28
+ $input-placeholder-support-threshold: $graceful-usage-threshold !default;
29
+
30
+ // Style the html5 input placeholder in browsers that support it.
31
+ //
32
+ // The styles for the input placeholder are passed as mixin content
33
+ // and the selector comes from the mixin's context.
34
+ //
35
+ // For example:
36
+ //
37
+ // #{elements-of-type(text-input)} {
38
+ // @include input-placeholder {
39
+ // color: #bfbfbf;
40
+ // font-style: italic;
41
+ // }
42
+ // }
43
+ //
44
+ // if you want to apply the placeholder styles to all elements supporting
45
+ // the `input-placeholder` pseudo class (beware of performance impacts):
46
+ //
47
+ // * {
48
+ // @include input-placeholder {
49
+ // color: #bfbfbf;
50
+ // font-style: italic;
51
+ // }
52
+ // }
53
+ @mixin input-placeholder {
54
+ @include with-each-prefix(css-placeholder, $input-placeholder-support-threshold) {
55
+ @if $current-prefix == -webkit {
56
+ &::-webkit-input-placeholder { @content; }
57
+ }
58
+ @elseif $current-prefix == -moz {
59
+ // for Firefox 19 and below
60
+ @if support-legacy-browser("firefox", "4", "19", $threshold: $input-placeholder-support-threshold) {
61
+ &:-moz-placeholder { @content; }
62
+ }
63
+ // for Firefox 20 and above
64
+ &::-moz-placeholder { @content; }
65
+ }
66
+ @elseif $current-prefix == -ms {
67
+ &:-ms-input-placeholder { @content; }
68
+ }
69
+ }
70
+ // This is not standardized yet so no official selector is generated.
71
+ }
@@ -0,0 +1,178 @@
1
+ @import "compass/css3/images";
2
+ @import "compass/css3/background-size";
3
+
4
+ // Set the color of your columns
5
+ $grid-background-column-color : rgba(100, 100, 225, 0.25) !default;
6
+ // Set the color of your gutters
7
+ $grid-background-gutter-color : rgba(0, 0, 0, 0) !default;
8
+
9
+ // Set the total number of columns in your grid
10
+ $grid-background-total-columns : 24 !default;
11
+ // Set the width of your columns
12
+ $grid-background-column-width : 30px !default;
13
+ // Set the width of your gutters
14
+ $grid-background-gutter-width : 10px !default;
15
+ // Set the offset, if your columns are padded in from the container edge
16
+ $grid-background-offset : 0px !default;
17
+
18
+ // Set the color of your baseline
19
+ $grid-background-baseline-color : rgba(0, 0, 0, 0.5) !default;
20
+ // Set the height of your baseline grid
21
+ $grid-background-baseline-height : 1.5em !default;
22
+
23
+ // toggle your columns grids on and off
24
+ $show-column-grid-backgrounds : true !default;
25
+ // toggle your vertical grids on and off
26
+ $show-baseline-grid-backgrounds : true !default;
27
+ // toggle all your grids on and off
28
+ $show-grid-backgrounds : true !default;
29
+
30
+ // optionally force your grid-image to remain fluid
31
+ // no matter what units you used to declared your grid.
32
+ $grid-background-force-fluid : false !default;
33
+
34
+
35
+ // Create the gradient needed for baseline grids
36
+ @function get-baseline-gradient(
37
+ $color : $grid-background-baseline-color
38
+ ) {
39
+ $gradient: linear-gradient(to top, $color 5%, rgba($color,0) 5%);
40
+ @return $gradient;
41
+ }
42
+
43
+ // Create the color-stops needed for horizontal grids
44
+ @function build-grid-background(
45
+ $total : $grid-background-total-columns,
46
+ $column : $grid-background-column-width,
47
+ $gutter : $grid-background-gutter-width,
48
+ $offset : $grid-background-offset,
49
+ $column-color : $grid-background-column-color,
50
+ $gutter-color : $grid-background-gutter-color
51
+ ) {
52
+ $grid: compact();
53
+ $grid: append($grid, $gutter-color $offset, comma);
54
+ @for $i from 0 to $total {
55
+
56
+ // $a represents the start of this column, initially equal to the offset
57
+ $a: $offset;
58
+ @if $i > 0 { $a: $a + (($column + $gutter) * $i); }
59
+
60
+ // $g represents the start of this gutter, equal to $a plus one column-width
61
+ $g: $a + $column;
62
+
63
+ // $z represents the end of a gutter, equal to $g plus one gutter-width
64
+ $z: $g + $gutter;
65
+
66
+ @if (unit($a) == "%") and ($i == ($total - 1)) {
67
+ $z: 100%;
68
+ }
69
+
70
+ // and we add this column/gutter pair to our grid
71
+ $grid: join($grid, (lighten($column-color, 5%) $a, darken($column-color, 5%) $g, $gutter-color $g, $gutter-color $z));
72
+ }
73
+
74
+ @return $grid;
75
+ }
76
+
77
+ // Return the gradient needed for horizontal grids
78
+ @function get-column-gradient(
79
+ $total : $grid-background-total-columns,
80
+ $column : $grid-background-column-width,
81
+ $gutter : $grid-background-gutter-width,
82
+ $offset : $grid-background-offset,
83
+ $column-color : $grid-background-column-color,
84
+ $gutter-color : $grid-background-gutter-color,
85
+ $force-fluid : $grid-background-force-fluid
86
+ ) {
87
+ $grid: unquote("");
88
+
89
+ // don't force fluid grids when they are already fluid.
90
+ @if unit($column) == "%" { $force-fluid: false; }
91
+
92
+ @if $force-fluid {
93
+ $grid: get-column-fluid-grid($total,$column,$gutter,$offset,$column-color,$gutter-color);
94
+ } @else {
95
+ $grid: build-grid-background($total,$column,$gutter,$offset,$column-color,$gutter-color);
96
+ }
97
+
98
+ // return the horizontal grid as a gradient
99
+ $gradient: linear-gradient(left, $grid);
100
+ @return $gradient;
101
+ }
102
+
103
+ // Convert a grid from fixed units into percentages.
104
+ @function get-column-fluid-grid(
105
+ $total : $grid-background-total-columns,
106
+ $column : $grid-background-column-width,
107
+ $gutter : $grid-background-gutter-width,
108
+ $offset : $grid-background-offset,
109
+ $column-color : $grid-background-column-color,
110
+ $gutter-color : $grid-background-gutter-color
111
+ ) {
112
+ $context: ($column * $total) + ($gutter * ($total - 1) + ($offset * 2));
113
+ $offset: $offset / $context * 100%;
114
+ $column: $column / $context * 100%;
115
+ $gutter: $gutter / $context * 100%;
116
+
117
+ // return the horizontal grid as a set of color-stops
118
+ $grid: build-grid-background($total,$column,$gutter,$offset,$column-color,$gutter-color);
119
+ @return $grid;
120
+ }
121
+
122
+
123
+ // Add just the baseline grid to an element's background
124
+ @mixin baseline-grid-background(
125
+ $baseline : $grid-background-baseline-height,
126
+ $color : $grid-background-baseline-color
127
+ ) {
128
+ @if $show-grid-backgrounds and $show-baseline-grid-backgrounds {
129
+ @include background-image(get-baseline-gradient($color));
130
+ @include background-size(100% $baseline);
131
+ background-position: left top;
132
+ }
133
+ }
134
+
135
+ // Add just the horizontal grid to an element's background
136
+ @mixin column-grid-background(
137
+ $total : $grid-background-total-columns,
138
+ $column : $grid-background-column-width,
139
+ $gutter : $grid-background-gutter-width,
140
+ $offset : $grid-background-offset,
141
+ $column-color : $grid-background-column-color,
142
+ $gutter-color : $grid-background-gutter-color,
143
+ $force-fluid : $grid-background-force-fluid
144
+ ) {
145
+ @if $show-grid-backgrounds and $show-column-grid-backgrounds {
146
+ @include background-image(
147
+ get-column-gradient($total,$column,$gutter,$offset,$column-color,$gutter-color, $force-fluid)
148
+ );
149
+ background-position: left top;
150
+ }
151
+ }
152
+
153
+ // Add both horizontal and baseline grids to an element's background
154
+ @mixin grid-background(
155
+ $total : $grid-background-total-columns,
156
+ $column : $grid-background-column-width,
157
+ $gutter : $grid-background-gutter-width,
158
+ $baseline : $grid-background-baseline-height,
159
+ $offset : $grid-background-offset,
160
+ $column-color : $grid-background-column-color,
161
+ $gutter-color : $grid-background-gutter-color,
162
+ $baseline-color : $grid-background-baseline-color,
163
+ $force-fluid : $grid-background-force-fluid
164
+ ) {
165
+ @if $show-grid-backgrounds {
166
+ @if $show-baseline-grid-backgrounds and $show-column-grid-backgrounds {
167
+ @include background-image(
168
+ get-baseline-gradient($baseline-color),
169
+ get-column-gradient($total,$column,$gutter,$offset,$column-color,$gutter-color, $force-fluid)
170
+ );
171
+ @include background-size(100% $baseline, auto);
172
+ background-position: left top;
173
+ } @else {
174
+ @include baseline-grid-background($baseline, $baseline-color);
175
+ @include column-grid-background($total,$column,$gutter,$offset,$column-color,$gutter-color, $force-fluid);
176
+ }
177
+ }
178
+ }
@@ -0,0 +1,23 @@
1
+ // Based on a [blog post by Ryan Fait](http://ryanfait.com/resources/footer-stick-to-bottom-of-page/).
2
+ //
3
+ // Must be mixed into the top level of your stylesheet.
4
+ //
5
+ // Footer element must be outside of root wrapper element.
6
+ //
7
+ // Footer must be a fixed height.
8
+
9
+ @mixin sticky-footer($footer-height, $root-selector: unquote("#root"), $root-footer-selector: unquote("#root_footer"), $footer-selector: unquote("#footer")) {
10
+ html, body {
11
+ height: 100%; }
12
+ #{$root-selector} {
13
+ clear: both;
14
+ min-height: 100%;
15
+ height: auto !important;
16
+ height: 100%;
17
+ margin-bottom: -$footer-height;
18
+ #{$root-footer-selector} {
19
+ height: $footer-height; } }
20
+ #{$footer-selector} {
21
+ clear: both;
22
+ position: relative;
23
+ height: $footer-height; } }
@@ -0,0 +1,24 @@
1
+
2
+ // stretch element height to specified top and bottom position
3
+
4
+ @mixin stretch-y($offset-top:0, $offset-bottom:0) {
5
+ @include stretch($offset-top, false, $offset-bottom, false);
6
+ }
7
+
8
+
9
+ // stretch element width to specified left and right position
10
+
11
+ @mixin stretch-x($offset-left:0, $offset-right:0) {
12
+ @include stretch(false, $offset-right, false, $offset-left);
13
+ }
14
+
15
+
16
+ // shorthand to stretch element height and width
17
+
18
+ @mixin stretch($offset-top:0, $offset-right:0, $offset-bottom:0, $offset-left:0) {
19
+ position: absolute;
20
+ @if $offset-top { top: $offset-top; }
21
+ @if $offset-bottom { bottom: $offset-bottom; }
22
+ @if $offset-left { left: $offset-left; }
23
+ @if $offset-right { right: $offset-right; }
24
+ }
@@ -0,0 +1,135 @@
1
+ // Based on [Eric Meyer's reset](http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/)
2
+ // Global reset rules.
3
+ // For more specific resets, use the reset mixins provided below
4
+ //
5
+ // *Please Note*: tables still need `cellspacing="0"` in the markup.
6
+ @mixin global-reset {
7
+ html, body, div, span, applet, object, iframe,
8
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre,
9
+ a, abbr, acronym, address, big, cite, code,
10
+ del, dfn, em, font, img, ins, kbd, q, s, samp,
11
+ small, strike, strong, sub, sup, tt, var,
12
+ dl, dt, dd, ol, ul, li,
13
+ fieldset, form, label, legend,
14
+ table, caption, tbody, tfoot, thead, tr, th, td {
15
+ @include reset-box-model;
16
+ @include reset-font; }
17
+ body {
18
+ @include reset-body; }
19
+ ol, ul {
20
+ @include reset-list-style; }
21
+ table {
22
+ @include reset-table; }
23
+ caption, th, td {
24
+ @include reset-table-cell; }
25
+ q, blockquote {
26
+ @include reset-quotation; }
27
+ a img {
28
+ @include reset-image-anchor-border; } }
29
+
30
+ // Reset all elements within some selector scope. To reset the selector itself,
31
+ // mixin the appropriate reset mixin for that element type as well. This could be
32
+ // useful if you want to style a part of your page in a dramatically different way.
33
+ //
34
+ // *Please Note*: tables still need `cellspacing="0"` in the markup.
35
+ @mixin nested-reset {
36
+ div, span, object, iframe, h1, h2, h3, h4, h5, h6, p,
37
+ pre, a, abbr, acronym, address, code, del, dfn, em, img,
38
+ dl, dt, dd, ol, ul, li, fieldset, form, label, legend, caption, tbody, tfoot, thead, tr {
39
+ @include reset-box-model;
40
+ @include reset-font; }
41
+ table {
42
+ @include reset-table; }
43
+ caption, th, td {
44
+ @include reset-table-cell; }
45
+ q, blockquote {
46
+ @include reset-quotation; }
47
+ a img {
48
+ @include reset-image-anchor-border; } }
49
+
50
+ // Reset the box model measurements.
51
+ @mixin reset-box-model {
52
+ margin: 0;
53
+ padding: 0;
54
+ border: 0;
55
+ outline: 0; }
56
+
57
+ // Reset the font and vertical alignment.
58
+ @mixin reset-font {
59
+ font: {
60
+ weight: inherit;
61
+ style: inherit;
62
+ size: 100%;
63
+ family: inherit; };
64
+ vertical-align: baseline; }
65
+
66
+ // Resets the outline when focus.
67
+ // For accessibility you need to apply some styling in its place.
68
+ @mixin reset-focus {
69
+ outline: 0; }
70
+
71
+ // Reset a body element.
72
+ @mixin reset-body {
73
+ line-height: 1;
74
+ color: black;
75
+ background: white; }
76
+
77
+ // Reset the list style of an element.
78
+ @mixin reset-list-style {
79
+ list-style: none; }
80
+
81
+ // Reset a table
82
+ @mixin reset-table {
83
+ border-collapse: separate;
84
+ border-spacing: 0;
85
+ vertical-align: middle; }
86
+
87
+ // Reset a table cell (`th`, `td`)
88
+ @mixin reset-table-cell {
89
+ text-align: left;
90
+ font-weight: normal;
91
+ vertical-align: middle; }
92
+
93
+ // Reset a quotation (`q`, `blockquote`)
94
+ @mixin reset-quotation {
95
+ quotes: "" "";
96
+ &:before, &:after {
97
+ content: ""; } }
98
+
99
+ // Resets the border.
100
+ @mixin reset-image-anchor-border {
101
+ border: none; }
102
+
103
+ // Unrecognized elements are displayed inline.
104
+ // This reset provides a basic reset for html5 elements
105
+ // so they are rendered correctly in browsers that don't recognize them
106
+ // and reset in browsers that have default styles for them.
107
+ @mixin reset-html5 {
108
+ #{elements-of-type(html5-block)} {
109
+ @include reset-box-model;
110
+ display: block; } }
111
+
112
+ // Resets the display of inline and block elements to their default display
113
+ // according to their tag type. Elements that have a default display that varies across
114
+ // versions of html or browser are not handled here, but this covers the 90% use case.
115
+ // Usage Example:
116
+ //
117
+ // // Turn off the display for both of these classes
118
+ // .unregistered-only, .registered-only
119
+ // display: none
120
+ // // Now turn only one of them back on depending on some other context.
121
+ // body.registered
122
+ // +reset-display(".registered-only")
123
+ // body.unregistered
124
+ // +reset-display(".unregistered-only")
125
+ @mixin reset-display($selector: "", $important: false) {
126
+ #{append-selector(elements-of-type("inline"), $selector)} {
127
+ @if $important {
128
+ display: inline !important; }
129
+ @else {
130
+ display: inline; } }
131
+ #{append-selector(elements-of-type("block"), $selector)} {
132
+ @if $important {
133
+ display: block !important; }
134
+ @else {
135
+ display: block; } } }