ultimate-base 0.4.1.0 → 0.5.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -1
- data/Gemfile.lock +59 -57
- data/README.md +1 -1
- data/Rakefile +1 -1
- data/lib/ultimate/base.rb +0 -1
- data/lib/ultimate/base/version.rb +1 -1
- data/ultimate-base.gemspec +11 -11
- metadata +2 -18
- data/.rvmrc +0 -1
- data/.rvmrc.example +0 -1
- data/app/assets/stylesheets/polyfills/PIE.htc +0 -96
- data/app/assets/stylesheets/polyfills/boxsizing.htc +0 -501
- data/app/assets/stylesheets/ultimate/mixins/_routines.scss +0 -130
- data/app/assets/stylesheets/ultimate/mixins/_vendors.scss +0 -44
- data/app/assets/stylesheets/ultimate/mixins/css3.scss +0 -357
- data/app/assets/stylesheets/ultimate/mixins/css3/_text-shadow.scss +0 -40
- data/app/assets/stylesheets/ultimate/mixins/fonts.scss +0 -41
- data/app/assets/stylesheets/ultimate/mixins/microstructures.scss +0 -223
- data/app/assets/stylesheets/ultimate/structures/slider.scss +0 -53
- data/lib/ultimate/extensions/sass_script_functions.rb +0 -39
- data/test/stylesheets/styles_test.css.scss +0 -6
- data/test/stylesheets/test_helper.css +0 -4
@@ -1,130 +0,0 @@
|
|
1
|
-
@mixin deprecate($subject, $instead: false) {
|
2
|
-
@warn "\"#{$subject}\" DEPRECATED!#{if($instead, " Use instead: \"#{$instead}\"", '')}";
|
3
|
-
}
|
4
|
-
|
5
|
-
@function isset($v) {
|
6
|
-
@return $v != none and $v != false;
|
7
|
-
}
|
8
|
-
|
9
|
-
@function complex-isset($list, $l: length($list)) {
|
10
|
-
$i: 1;
|
11
|
-
@while $i <= $l and isset(nth($list, $i)) {
|
12
|
-
$i: $i + 1;
|
13
|
-
}
|
14
|
-
@return $i > $l;
|
15
|
-
}
|
16
|
-
|
17
|
-
@function list-rtrim($list, $count: 1) {
|
18
|
-
$r: ();
|
19
|
-
$l: length($list) - $count;
|
20
|
-
$i: 1;
|
21
|
-
@while $i <= $l {
|
22
|
-
$r: append($r, nth($list, $i));
|
23
|
-
$i: $i + 1;
|
24
|
-
}
|
25
|
-
@return $r;
|
26
|
-
}
|
27
|
-
|
28
|
-
@function complex-list($params) {
|
29
|
-
$l: length($params);
|
30
|
-
@if $l > 1 and nth($params, $l) == !important {
|
31
|
-
$params: list-rtrim($params);
|
32
|
-
$l: $l - 1;
|
33
|
-
}
|
34
|
-
@if $l < 4 {
|
35
|
-
@if $l < 3 {
|
36
|
-
$params: join($params, nth($params, 1));
|
37
|
-
}
|
38
|
-
@if $l > 1 {
|
39
|
-
$params: join($params, nth($params, 2));
|
40
|
-
} @else {
|
41
|
-
$params: join($params, $params);
|
42
|
-
}
|
43
|
-
}
|
44
|
-
@return $params;
|
45
|
-
}
|
46
|
-
|
47
|
-
@mixin complex-property($property, $params, $complex-params: false) {
|
48
|
-
@if isset($params) {
|
49
|
-
$l: length($params);
|
50
|
-
@if $l == 1 or complex-isset($params) {
|
51
|
-
#{$property}: $params;
|
52
|
-
} @else {
|
53
|
-
@if $l < 4 {
|
54
|
-
$params: if(length($complex-params) >= 4, $complex-params, complex-list($params));
|
55
|
-
}
|
56
|
-
$i: 0;
|
57
|
-
@each $side in top, right, bottom, left {
|
58
|
-
$i: $i + 1;
|
59
|
-
$p: nth($params, $i);
|
60
|
-
@if isset($p) {
|
61
|
-
#{$property}-#{$side}: $p;
|
62
|
-
}
|
63
|
-
}
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
|
68
|
-
@function strip-px($v) {
|
69
|
-
@return if(unit($v) == "px", $v / 1px, $v);
|
70
|
-
}
|
71
|
-
|
72
|
-
@function list-to-string($list, $separator: "") {
|
73
|
-
$result: "";
|
74
|
-
$first: true;
|
75
|
-
@each $cut in $list {
|
76
|
-
@if $first {
|
77
|
-
$first: false;
|
78
|
-
$result: $cut;
|
79
|
-
} @else {
|
80
|
-
$result: "#{$result}#{$separator}#{$cut}"
|
81
|
-
}
|
82
|
-
}
|
83
|
-
@return $result;
|
84
|
-
}
|
85
|
-
|
86
|
-
@function change-separator($list, $separator: comma) {
|
87
|
-
$result: ();
|
88
|
-
@each $value in $list {
|
89
|
-
$result: append($result, $value, $separator);
|
90
|
-
}
|
91
|
-
@return $result;
|
92
|
-
}
|
93
|
-
|
94
|
-
@function compact-list($list, $separator: comma) {
|
95
|
-
$result: ();
|
96
|
-
@each $value in $list {
|
97
|
-
@if isset($value) {
|
98
|
-
$result: append($result, $value, $separator);
|
99
|
-
}
|
100
|
-
}
|
101
|
-
@return $result;
|
102
|
-
}
|
103
|
-
|
104
|
-
@function hack-ie8($params) {
|
105
|
-
@return unquote("#{$params}\0/");
|
106
|
-
}
|
107
|
-
|
108
|
-
@function contains($list, $var) {
|
109
|
-
@each $item in $list { @if $item == $var { @return true; } }
|
110
|
-
@return false;
|
111
|
-
}
|
112
|
-
|
113
|
-
@function find-typed-item($list, $type, $default: false) {
|
114
|
-
@each $item in $list { @if type-of($item) == $type { @return $item; } }
|
115
|
-
@return $default;
|
116
|
-
}
|
117
|
-
|
118
|
-
@function find-color($list, $default: false) {
|
119
|
-
@return find-typed-item($list, color, $default);
|
120
|
-
}
|
121
|
-
|
122
|
-
@function _dec-size($value, $dec-list...) {
|
123
|
-
$value-unit: unit($value);
|
124
|
-
@each $dec-value in $dec-list {
|
125
|
-
@if unit($dec-value) == $value-unit {
|
126
|
-
$value: $value - $dec-value;
|
127
|
-
}
|
128
|
-
}
|
129
|
-
@return $value;
|
130
|
-
}
|
@@ -1,44 +0,0 @@
|
|
1
|
-
// This mixin provides basic support for CSS properties with custom vendors implementations
|
2
|
-
// are identical except for the property prefix.
|
3
|
-
// example:
|
4
|
-
// @include vendors(webkit moz, border-radius, 5px);
|
5
|
-
// produce:
|
6
|
-
// -webkit-border-radius: 5px;
|
7
|
-
// -moz-border-radius: 5px;
|
8
|
-
// border-radius: 5px;
|
9
|
-
@mixin vendors($vendors, $property, $params, $origin: true) {
|
10
|
-
@each $vendor in $vendors {
|
11
|
-
-#{$vendor}-#{$property}: $params;
|
12
|
-
}
|
13
|
-
@if $origin {
|
14
|
-
#{$property}: $params;
|
15
|
-
}
|
16
|
-
}
|
17
|
-
|
18
|
-
// Same as vendors(), but for cases when the property is the same and the value is vendorized.
|
19
|
-
// examples:
|
20
|
-
// @include vendors-param(webkit moz ms o, background-image, linear-gradient(left top, #F00, #FF0 50%, #0F0));
|
21
|
-
// produce:
|
22
|
-
// background-image: -webkit-linear-gradient(left top, #F00, #FF0 50%, #0F0);
|
23
|
-
// background-image: -moz-linear-gradient(left top, #F00, #FF0 50%, #0F0);
|
24
|
-
// background-image: -ms-linear-gradient(left top, #F00, #FF0 50%, #0F0);
|
25
|
-
// background-image: -o-linear-gradient(left top, #F00, #FF0 50%, #0F0);
|
26
|
-
// background-image: linear-gradient(left top, #F00, #FF0 50%, #0F0);
|
27
|
-
@mixin vendors-param($vendors, $property, $params, $origin: true) {
|
28
|
-
@each $vendor in $vendors {
|
29
|
-
#{$property}: -#{$vendor}-#{$params};
|
30
|
-
}
|
31
|
-
@if $origin {
|
32
|
-
#{$property}: $params;
|
33
|
-
}
|
34
|
-
}
|
35
|
-
|
36
|
-
// TODO docs
|
37
|
-
@mixin vendors-full($vendors, $property, $params, $origin: true) {
|
38
|
-
@each $vendor in $vendors {
|
39
|
-
-#{$vendor}-#{$property}: -#{$vendor}-#{$params};
|
40
|
-
}
|
41
|
-
@if $origin {
|
42
|
-
#{$property}: $params;
|
43
|
-
}
|
44
|
-
}
|
@@ -1,357 +0,0 @@
|
|
1
|
-
// Use compatibility tables from http://caniuse.com/
|
2
|
-
// http://css3pie.com/documentation/supported-css3-features/#pie-lazy-init
|
3
|
-
|
4
|
-
$support-ie: true !default;
|
5
|
-
$pie-url: asset-url("polyfills/PIE.htc", '') !default;
|
6
|
-
$boxsizing-url: asset-url("polyfills/boxsizing.htc", '') !default;
|
7
|
-
|
8
|
-
|
9
|
-
@mixin pie($poll: none, $watch-ancestors: 0) {
|
10
|
-
@if $support-ie and $pie-url {
|
11
|
-
behavior: $pie-url;
|
12
|
-
// http://css3pie.com/documentation/supported-css3-features/#pie-poll
|
13
|
-
@if $poll != none {
|
14
|
-
-pie-poll: $poll;
|
15
|
-
}
|
16
|
-
// http://css3pie.com/documentation/supported-css3-features/#pie-watch-ancestors
|
17
|
-
@if $watch-ancestors > 0 {
|
18
|
-
-pie-watch-ancestors: $watch-ancestors;
|
19
|
-
}
|
20
|
-
}
|
21
|
-
}
|
22
|
-
|
23
|
-
@import "ultimate/mixins/vendors";
|
24
|
-
@import "ultimate/mixins/routines";
|
25
|
-
|
26
|
-
// Round all corners by a specific amount.
|
27
|
-
// example:
|
28
|
-
// @include border-radius(5px 5px 0 0);
|
29
|
-
// produce:
|
30
|
-
// -webkit-border-radius: 5px 5px 0 0; // iOS-Safari <= 3.2, Android <= 2.1
|
31
|
-
// border-radius: 5px 5px 0 0;
|
32
|
-
@mixin border-radius($params) {
|
33
|
-
@include vendors(webkit, border-radius, $params);
|
34
|
-
}
|
35
|
-
|
36
|
-
// Round mentioned corners by a specific amounts without muted corners by none or false.
|
37
|
-
// example:
|
38
|
-
// @include border-radius__complex(5px 7px none);
|
39
|
-
// produce:
|
40
|
-
// -webkit-border-top-left-radius: 5px; // iOS-Safari <= 3.2, Android <= 2.1
|
41
|
-
// border-top-left-radius: 5px;
|
42
|
-
// -webkit-border-top-right-radius: 7px;
|
43
|
-
// border-top-right-radius: 7px;
|
44
|
-
// -webkit-border-bottom-left-radius: 7px;
|
45
|
-
// border-bottom-left-radius: 7px;
|
46
|
-
@mixin border-radius_complex($params) {
|
47
|
-
@if isset($params) {
|
48
|
-
$l: length($params);
|
49
|
-
@if $l == 1 or complex-isset($params) {
|
50
|
-
@include border-radius($params);
|
51
|
-
} @else {
|
52
|
-
@if $l < 4 {
|
53
|
-
$params: complex-list($params);
|
54
|
-
}
|
55
|
-
$i: 0;
|
56
|
-
@each $corner in top-left, top-right, bottom-right, bottom-left {
|
57
|
-
$i: $i + 1;
|
58
|
-
$p: nth($params, $i);
|
59
|
-
@if isset($p) {
|
60
|
-
@include vendors(webkit, border-#{$corner}-radius, $p);
|
61
|
-
}
|
62
|
-
}
|
63
|
-
}
|
64
|
-
}
|
65
|
-
}
|
66
|
-
|
67
|
-
// Provide CSS3 box-shadow property.
|
68
|
-
// example:
|
69
|
-
// @include box-shadow(#00F -10px 0 10px, #F00 10px 0 10px);
|
70
|
-
// produce:
|
71
|
-
// -webkit-box-shadow: #00F -10px 0 10px, #F00 10px 0 10px; // Safari 5.0, iOS-Safari <= 4.3, Android <= 4.0 missing "inset" and blur radius value support for iOS-Safari <= 3.2, Android <= 3.0
|
72
|
-
// box-shadow: #00F -10px 0 10px, #F00 10px 0 10px;
|
73
|
-
@mixin box-shadow($shadow0, $shadow1: false, $shadow2: false, $shadow3: false, $shadow4: false, $shadow5: false, $shadow6: false, $shadow7: false, $shadow8: false, $shadow9: false) {
|
74
|
-
$shadows: compact-list($shadow0 $shadow1 $shadow2 $shadow3 $shadow4 $shadow5 $shadow6 $shadow7 $shadow8 $shadow9);
|
75
|
-
@if length($shadows) == 0 {
|
76
|
-
$shadows: none;
|
77
|
-
}
|
78
|
-
@include vendors(webkit, box-shadow, $shadows);
|
79
|
-
}
|
80
|
-
|
81
|
-
// Change the box model of element.
|
82
|
-
// example:
|
83
|
-
// @include box-sizing;
|
84
|
-
// produce:
|
85
|
-
// -webkit-box-sizing: border-box; // Safari <= 5.0, iOS-Safari <= 4.3, Android <= 3.0
|
86
|
-
// -moz-box-sizing: border-box; // actual
|
87
|
-
// box-sizing: border-box; //
|
88
|
-
// *behavior: url("/assets/polyfills/boxsizing.htc"); // IE 6-7
|
89
|
-
@mixin box-sizing($params: border-box) {
|
90
|
-
@include vendors(webkit moz, box-sizing, $params);
|
91
|
-
@if $support-ie and $boxsizing-url {
|
92
|
-
// https://github.com/Schepp/box-sizing-polyfill
|
93
|
-
*behavior: $boxsizing-url; // IE 6-7
|
94
|
-
}
|
95
|
-
}
|
96
|
-
|
97
|
-
// Provide CSS3 linear-gradient as background image.
|
98
|
-
// params:
|
99
|
-
// $corner:
|
100
|
-
// Represents the position of the starting-point of the gradient line.
|
101
|
-
// It consists of two keywords: the first one indicates the horizontal side, `left` or `right`,
|
102
|
-
// and the second one the vertical side, `top` or `bottom`.
|
103
|
-
// The order is not relevant and each of the keyword is optional.
|
104
|
-
// The values `to top`, `to bottom`, `to left` and `to right`
|
105
|
-
// are translated into the angles `0deg`, `180deg`, `270deg`, `90deg` respectively.
|
106
|
-
// The others are translated into an angle that let the starting-point to be in the same quadrant
|
107
|
-
// than the described corner and so that the line defined by the starting-point and the corner
|
108
|
-
// is perpendicular to the gradient line. That way, the color described by the <color-stop>
|
109
|
-
// will exactly apply to the corner point. This is sometimes called the "magic corner" property.
|
110
|
-
// The end-point of the gradient line is the symmetrical point of the starting-point
|
111
|
-
// on the other direction of the center box.
|
112
|
-
// _angle:
|
113
|
-
// An angle of direction for the gradient. See <angle> (https://developer.mozilla.org/en/CSS/angle).
|
114
|
-
// $stops:
|
115
|
-
// This value is comprised of a <color> value, followed by an optional stop position
|
116
|
-
// (either a percentage between 0% and 100% or a <length> along the gradient axis).
|
117
|
-
// Rendering of color-stops in CSS gradients follows the same rules as color-stops in SVG gradients.
|
118
|
-
// example:
|
119
|
-
// @include linear-gradient(right, (green, orange 20%, red 100%));
|
120
|
-
// produce:
|
121
|
-
// background-color: $bg-color;
|
122
|
-
// background-image: -webkit-gradient(linear, right top, left top, color-stop(0%, green), color-stop(20%, orange), color-stop(100%, red)); // old webkit (Safari <= 5.0, iOS-Safari <= 4.3, Android <= 3.0)
|
123
|
-
// background-image: -webkit-linear-gradient(right, green, orange 20%, red 100%); // Chrome 10+, Safari 5.1+, Android 4.0+
|
124
|
-
// background-image: -moz-linear-gradient(right, green, orange 20%, red 100%); // FF 3.6+
|
125
|
-
// background-image: -ms-linear-gradient(right, green, orange 20%, red 100%); // IE 10+
|
126
|
-
// background-image: -o-linear-gradient(right, green, orange 20%, red 100%); // Opera 11.1+
|
127
|
-
// background-image: linear-gradient(right, green, orange 20%, red 100%); // future
|
128
|
-
// -pie-background: $bg-c linear-gradient(right, green, orange 20%, red 100%); // IE 6-9
|
129
|
-
@mixin linear-gradient($corner_angle, $stops) {
|
130
|
-
$wk_start: left top;
|
131
|
-
$wk_end: left bottom;
|
132
|
-
$start: nth($corner_angle, 1);
|
133
|
-
@if $start == top {
|
134
|
-
$wk_start: left top;
|
135
|
-
$wk_end: left bottom;
|
136
|
-
} @else if $start == bottom {
|
137
|
-
$wk_start: left bottom;
|
138
|
-
$wk_end: left top;
|
139
|
-
} @else if $start == left {
|
140
|
-
$wk_start: left top;
|
141
|
-
$wk_end: right top;
|
142
|
-
} @else if $start == right {
|
143
|
-
$wk_start: right top;
|
144
|
-
$wk_end: left top;
|
145
|
-
}
|
146
|
-
$wk_stops: ();
|
147
|
-
$stops_length: length($stops);
|
148
|
-
$percents-by-stop: 100 / ($stops_length - 1);
|
149
|
-
$i: 0;
|
150
|
-
$p: 0;
|
151
|
-
@each $stop in $stops {
|
152
|
-
$i: $i + 1;
|
153
|
-
$cp: "#{$p}%";
|
154
|
-
@if length($stop) > 1 {
|
155
|
-
$cp: nth($stop, 2);
|
156
|
-
}
|
157
|
-
$stop: "#{$cp}, #{nth($stop, 1)}";
|
158
|
-
$wk_stops: append($wk_stops, color-stop(#{$stop}), comma);
|
159
|
-
$p: $p + $percents-by-stop;
|
160
|
-
}
|
161
|
-
$bg-color: nth(nth($stops, 1), 1);
|
162
|
-
// TODO: need check all color stops
|
163
|
-
@if alpha($bg-color) == 1 {
|
164
|
-
background-color: $bg-color;
|
165
|
-
}
|
166
|
-
background-image: -webkit-gradient(linear, $wk_start, $wk_end, $wk_stops);
|
167
|
-
$linear-gradient: linear-gradient($corner_angle, change-separator($stops));
|
168
|
-
@include vendors-param(webkit moz ms o, background-image, $linear-gradient);
|
169
|
-
@if $support-ie and $pie-url {
|
170
|
-
@if alpha($bg-color) == 1 {
|
171
|
-
-pie-background: $bg-color $linear-gradient;
|
172
|
-
} else {
|
173
|
-
-pie-background: $linear-gradient;
|
174
|
-
}
|
175
|
-
}
|
176
|
-
}
|
177
|
-
|
178
|
-
// Provide CSS3 radial-gradient as background image.
|
179
|
-
// params:
|
180
|
-
// $position:
|
181
|
-
// A position, interpreted in the same way as background-position or transform-origin. If omitted, the default is center.
|
182
|
-
// _angle:
|
183
|
-
// An angle establishing the gradient line, which extends from the starting point at this angle; this is 0deg by default.
|
184
|
-
// $shape:
|
185
|
-
// circle Meaning that the gradient's shape is a circle with constant radius.
|
186
|
-
// ellipse Meaning that the shape is an axis-aligned ellipse.
|
187
|
-
// _size:
|
188
|
-
// closest-side The gradient's shape meets the side of the box closest to its center (for circles) or meets both the vertical and horizontal sides closest to the center (for ellipses).
|
189
|
-
// closest-corner The gradient's shape is sized so it exactly meets the closest corner of the box from its center.
|
190
|
-
// farthest-side Similar to closest-side, except the shape is sized to meet the side of the box farthest from its center (or vertical and horizontal sides).
|
191
|
-
// farthest-corner The gradient's shape is sized so it exactly meets the farthest corner of the box from its center.
|
192
|
-
// contain A synonym for closest-side.
|
193
|
-
// cover A synonym for farthest-corner.
|
194
|
-
// example:
|
195
|
-
// @include radial-gradient(center 45deg, circle closest-side, (orange 0%, red 100%));
|
196
|
-
// produce:
|
197
|
-
// background-image: -webkit-radial-gradient(center 45deg, circle closest-side, orange 0%, red 100%); // Chrome 10+, Safari 5.1+, Android 4.0+
|
198
|
-
// background-image: -moz-radial-gradient(center 45deg, circle closest-side, orange 0%, red 100%); // FF 3.6+
|
199
|
-
// background-image: -ms-radial-gradient(center 45deg, circle closest-side, orange 0%, red 100%); // IE 10+
|
200
|
-
// background-image: -o-radial-gradient(center 45deg, circle closest-side, orange 0%, red 100%); // Opera 11.6+
|
201
|
-
// background-image: radial-gradient(center 45deg, circle closest-side, orange 0%, red 100%); // future
|
202
|
-
@mixin radial-gradient($position_angle, $shape_size, $stops) {
|
203
|
-
@include vendors-param(webkit moz ms o, background-image, radial-gradient($position_angle, $shape_size, change-separator($stops)));
|
204
|
-
}
|
205
|
-
|
206
|
-
@mixin border-gradient_simple($color_start, $color_stop, $is_horizontal: false) {
|
207
|
-
$color_mix: mix($color_start, $color_stop);
|
208
|
-
@if $is_horizontal {
|
209
|
-
border-color: $color_mix $color_stop $color_mix $color_start;
|
210
|
-
} @else {
|
211
|
-
border-color: $color_start $color_mix $color_stop;
|
212
|
-
}
|
213
|
-
}
|
214
|
-
|
215
|
-
// EXPERIMENTAL
|
216
|
-
// Temporary remove webkit support, because find bug in Chromium 20
|
217
|
-
@mixin border-gradient($color_start, $color_stop, $is_horizontal: false) {
|
218
|
-
@include border-gradient_simple($color_start, $color_stop, $is_horizontal);
|
219
|
-
$start: top;
|
220
|
-
//$wk_start: left top;
|
221
|
-
//$wk_stop: left bottom;
|
222
|
-
@if $is_horizontal {
|
223
|
-
$start: left;
|
224
|
-
//$wk_stop: right top;
|
225
|
-
}
|
226
|
-
// -webkit-border-image: -webkit-gradient(linear, $wk_start, $wk_stop, from($color_start), to($color_stop)); // old webkit (Safari <= 5.0, iOS-Safari <= 4.3, Android <= 3.0)
|
227
|
-
@include vendors-full(moz ms o, border-image, linear-gradient($start, $color_start, $color_stop));
|
228
|
-
//-webkit-border-image: -webkit-linear-gradient($start, $color_start, $color_stop); // Chrome 10+, Safari 5.1+, Android 4.0+
|
229
|
-
// -moz-border-image: -moz-linear-gradient($start, $color_start, $color_stop); // FF 3.5+
|
230
|
-
// -ms-border-image: -ms-linear-gradient($start, $color_start, $color_stop); // IE 10+
|
231
|
-
// -o-border-image: -o-linear-gradient($start, $color_start, $color_stop); // Opera 11.0+
|
232
|
-
// border-image: linear-gradient($start, $color_start, $color_stop); // future
|
233
|
-
}
|
234
|
-
|
235
|
-
// Provide cross-browser CSS opacity.
|
236
|
-
// example:
|
237
|
-
// @include opacity(0.3);
|
238
|
-
// produce:
|
239
|
-
// opacity: 0.3;
|
240
|
-
// filter: progid:DXImageTransform.Microsoft.Alpha(opacity=30); // IE <= 8.0
|
241
|
-
@mixin opacity($value: 0.5) {
|
242
|
-
opacity: $value;
|
243
|
-
@if $support-ie {
|
244
|
-
$value: round($value * 100);
|
245
|
-
@if $value < 100 {
|
246
|
-
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=#{$value});
|
247
|
-
} @else {
|
248
|
-
filter: progid:DXImageTransform.Microsoft.Alpha(enabled=false);
|
249
|
-
}
|
250
|
-
}
|
251
|
-
}
|
252
|
-
|
253
|
-
// For rgba()
|
254
|
-
@mixin pie-bg($bg) {
|
255
|
-
background: $bg;
|
256
|
-
@if $support-ie and $pie-url and type-of($bg) == color and alpha($bg) < 1 {
|
257
|
-
-pie-background: $bg;
|
258
|
-
}
|
259
|
-
}
|
260
|
-
|
261
|
-
// example:
|
262
|
-
// @include ellipsis;
|
263
|
-
// produce:
|
264
|
-
// overflow: hidden; // need to work text-overflow
|
265
|
-
// white-space: nowrap; // need to work text-overflow
|
266
|
-
// -o-text-overflow: ellipsis; // Opera Mini and Opera Mobile
|
267
|
-
// text-overflow: ellipsis; // all
|
268
|
-
@mixin ellipsis($overflow: hidden, $nowrap: true) {
|
269
|
-
@if isset($overflow) {
|
270
|
-
overflow: $overflow;
|
271
|
-
}
|
272
|
-
@if $nowrap {
|
273
|
-
white-space: nowrap;
|
274
|
-
}
|
275
|
-
@include vendors(o, text-overflow, ellipsis);
|
276
|
-
}
|
277
|
-
|
278
|
-
// $param: none || text || all || element
|
279
|
-
// example:
|
280
|
-
// @include user-select;
|
281
|
-
// produce:
|
282
|
-
// -webkit-user-select: none;
|
283
|
-
// -moz-user-select: none;
|
284
|
-
// -ms-user-select: none; // IE 10+
|
285
|
-
// -o-user-select: none;
|
286
|
-
// user-select: none;
|
287
|
-
@mixin user-select($param: none) {
|
288
|
-
@include vendors(webkit moz ms o, user-select, $param);
|
289
|
-
}
|
290
|
-
|
291
|
-
// Provide vendorized CSS transition.
|
292
|
-
// example:
|
293
|
-
// @include transition(all, 0.5s);
|
294
|
-
// produce:
|
295
|
-
// -webkit-transition: all 0.5s ease; // actual
|
296
|
-
// -moz-transition: all 0.5s ease; // FF 8+
|
297
|
-
// -ms-transition: all 0.5s ease; // IE 10+
|
298
|
-
// -o-transition: all 0.5s ease; // Opera 11.6+
|
299
|
-
// without:
|
300
|
-
// transition: all 0.5s ease; // future
|
301
|
-
@mixin transition($what, $time, $method: ease) {
|
302
|
-
@include vendors(webkit moz ms o, transition, $what $time $method, false);
|
303
|
-
}
|
304
|
-
|
305
|
-
// Provide vendorized CSS transform.
|
306
|
-
// example:
|
307
|
-
// @include transform(scale(1.2, 1.2));
|
308
|
-
// produce:
|
309
|
-
// -webkit-transform: scale(1.2, 1.2); // actual
|
310
|
-
// -moz-transform: scale(1.2, 1.2); // actual
|
311
|
-
// -ms-transform: scale(1.2, 1.2); // IE 9+
|
312
|
-
// -o-transform: scale(1.2, 1.2); // actual
|
313
|
-
// without:
|
314
|
-
// transform: scale(1.2, 1.2); // future
|
315
|
-
@mixin transform($params) {
|
316
|
-
@include vendors(webkit moz ms o, transform, $params, false);
|
317
|
-
}
|
318
|
-
|
319
|
-
// Scale an object along the x and y axis. IE < 9 only proportional scale by $scale-x.
|
320
|
-
// example:
|
321
|
-
// @include scale(1.2);
|
322
|
-
// produce:
|
323
|
-
// -webkit-transform: scale(1.2, 1.2); // actual
|
324
|
-
// -moz-transform: scale(1.2, 1.2); // actual
|
325
|
-
// -ms-transform: scale(1.2, 1.2); // IE 9+
|
326
|
-
// -o-transform: scale(1.2, 1.2); // actual
|
327
|
-
// *zoom: 1.2; // IE 5.5-7
|
328
|
-
// zoom: 1.2\0/; // IE 8
|
329
|
-
// without:
|
330
|
-
// transform: scale(1.2, 1.2); // future
|
331
|
-
@mixin scale($scale-x, $scale-y: $scale-x) {
|
332
|
-
@include transform(scale($scale-x, $scale-y));
|
333
|
-
@if $support-ie {
|
334
|
-
*zoom: $scale-x;
|
335
|
-
//zoom: hack-ie8($scale-x); TODO temp!
|
336
|
-
}
|
337
|
-
}
|
338
|
-
|
339
|
-
@mixin rotate($angle) {
|
340
|
-
@include transform(rotate($angle));
|
341
|
-
//filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); === -90deg
|
342
|
-
}
|
343
|
-
|
344
|
-
// Style the html5 input placeholder in browsers that support it.
|
345
|
-
// The styles for the input placeholder are passed as mixin content.
|
346
|
-
// Mostly supported properties: color, font-*, letter-spacing.
|
347
|
-
// example:
|
348
|
-
// @include input-placeholder {
|
349
|
-
// color: #bfbfbf;
|
350
|
-
// font-style: italic;
|
351
|
-
// }
|
352
|
-
@mixin input-placeholder {
|
353
|
-
&::-webkit-input-placeholder { @content; }
|
354
|
-
&:-moz-placeholder { @content; }
|
355
|
-
&::-moz-placeholder { @content; }
|
356
|
-
&:-ms-input-placeholder { @content; }
|
357
|
-
}
|