toolkit 1.3.8 → 2.0.0.alpha.1
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.
- checksums.yaml +7 -7
- data/lib/toolkit.rb +1 -13
- data/stylesheets/_toolkit.scss +12 -68
- data/stylesheets/toolkit/_clearfix.scss +11 -95
- data/stylesheets/toolkit/_colors.scss +89 -1
- data/stylesheets/toolkit/_element-query.scss +13 -5
- data/stylesheets/toolkit/_fonts.scss +26 -8
- data/stylesheets/toolkit/_intrinsic-ratio.scss +15 -10
- data/stylesheets/toolkit/_kickstart.scss +14 -0
- data/stylesheets/toolkit/_nested-context.scss +8 -7
- data/stylesheets/toolkit/_pe.scss +19 -226
- data/stylesheets/toolkit/_selectors.scss +0 -25
- data/stylesheets/toolkit/_settings.scss +90 -0
- data/stylesheets/toolkit/_triangle.scss +7 -2
- data/stylesheets/toolkit/_viewport.scss +6 -16
- metadata +46 -105
- data/stylesheets/_toolkit-no-css.scss +0 -69
- data/stylesheets/toolkit/_border-box.scss +0 -6
- data/stylesheets/toolkit/_box-sizing.scss +0 -42
- data/stylesheets/toolkit/_carousel.scss +0 -155
- data/stylesheets/toolkit/_children-of-ie.scss +0 -26
- data/stylesheets/toolkit/_colours.scss +0 -102
- data/stylesheets/toolkit/_debug.scss +0 -25
- data/stylesheets/toolkit/_equal-height-columns.scss +0 -56
- data/stylesheets/toolkit/_fluid-media.scss +0 -7
- data/stylesheets/toolkit/_vertical-center.scss +0 -23
- data/templates/box-sizing/behaviors/box-sizing/boxsizing.htc +0 -399
- data/templates/box-sizing/behaviors/box-sizing/boxsizing.php +0 -23
- data/templates/box-sizing/manifest.rb +0 -4
- data/templates/project/_base.scss +0 -26
- data/templates/project/manifest.rb +0 -57
- data/templates/rwd/_base.scss +0 -27
- data/templates/rwd/manifest.rb +0 -60
- data/templates/shared/_design.scss +0 -9
- data/templates/shared/_extendables.scss +0 -6
- data/templates/shared/_functions.scss +0 -5
- data/templates/shared/_ie-design.scss +0 -9
- data/templates/shared/_ie-layout.scss +0 -9
- data/templates/shared/_layout.scss +0 -9
- data/templates/shared/_mixins.scss +0 -5
- data/templates/shared/_print-design.scss +0 -9
- data/templates/shared/_print-layout.scss +0 -9
- data/templates/shared/_style-guide.scss +0 -10
- data/templates/shared/_variables.scss +0 -5
- data/templates/shared/ie.scss +0 -32
- data/templates/shared/print.scss +0 -28
- data/templates/shared/style.scss +0 -31
@@ -1,12 +1,10 @@
|
|
1
|
-
$nested-context-contexts: 100% !default;
|
2
|
-
$nested-context-position: left !default;
|
3
|
-
|
4
1
|
// simple function to find the context of a nested percentage.
|
5
|
-
@function nested-context($contexts:
|
6
|
-
|
2
|
+
@function nested-context($contexts: null) {
|
3
|
+
$contexts: if($contexts !== null, $contexts, toolkit-get('nested context contexts'));
|
4
|
+
|
7
5
|
// First level deep is always 100%
|
8
6
|
$percentage: 100%;
|
9
|
-
|
7
|
+
|
10
8
|
// Loop through each level
|
11
9
|
@each $context in $contexts {
|
12
10
|
// Invert the percentage to find context
|
@@ -17,7 +15,10 @@ $nested-context-position: left !default;
|
|
17
15
|
}
|
18
16
|
|
19
17
|
// mixin to make things easier
|
20
|
-
@mixin nested-context($contexts:
|
18
|
+
@mixin nested-context($contexts: null, $position: null) {
|
19
|
+
$contexts: if($contexts !== null, $contexts, toolkit-get('nested context contexts'));
|
20
|
+
$position: if($position !== null, $position, toolkit-get('nestex context position'));
|
21
|
+
|
21
22
|
width: nested-context($contexts);
|
22
23
|
@if $position == "center" {
|
23
24
|
position: relative;
|
@@ -3,10 +3,15 @@
|
|
3
3
|
//
|
4
4
|
// - $feature: Modernizr feature (base CSS class name)
|
5
5
|
////////////////////////
|
6
|
-
@
|
6
|
+
@mixin enhance-with($features) {
|
7
|
+
$ft: '';
|
8
|
+
@each $feature in $features {
|
9
|
+
$ft: $ft + '.#{$feature}, '
|
10
|
+
}
|
11
|
+
|
12
|
+
$ft: str-slice($ft, -2);
|
7
13
|
|
8
|
-
|
9
|
-
.#{$feature} & {
|
14
|
+
.#{$ft} & {
|
10
15
|
@content;
|
11
16
|
}
|
12
17
|
}
|
@@ -16,235 +21,23 @@
|
|
16
21
|
//
|
17
22
|
// - $feature: Modernizr feature (base CSS class name)
|
18
23
|
////////////////////////
|
19
|
-
@mixin degrade-from($
|
24
|
+
@mixin degrade-from($features, $no-js: null) {
|
25
|
+
$ft: '';
|
26
|
+
@each $feature in $features {
|
27
|
+
$ft: $ft + '.no-#{$feature}, '
|
28
|
+
}
|
29
|
+
|
30
|
+
$no-js: if($no-js !== null, $no-js, toolkit-get('degrade from javascript'));
|
31
|
+
|
20
32
|
@if $feature == 'js' or not $no-js {
|
21
|
-
|
33
|
+
#{$ft} & {
|
22
34
|
@content;
|
23
35
|
}
|
24
36
|
}
|
25
37
|
@else {
|
26
|
-
|
38
|
+
#{$ft} &,
|
27
39
|
.no-js & {
|
28
40
|
@content;
|
29
41
|
}
|
30
42
|
}
|
31
|
-
}
|
32
|
-
|
33
|
-
////////////////////////
|
34
|
-
// Progressive Enhancement Text Replace Mixin
|
35
|
-
//
|
36
|
-
// - $png-path: The path to the pngs for the image sprite, including the *.png (just like normal image sprites)
|
37
|
-
// - $sprite: The name of the sprite you want to use (this is the file name without extension)
|
38
|
-
// - $inline-svg: Switches between a Base64 encoded SVG or a normal url() for the SVG. Default to true
|
39
|
-
// - $with-dimensions: Switches between including dimensions (height/width for all and background-size for SVG) or not. Defaults to true.
|
40
|
-
// - $inline: Whether or not the containing selector is an inline element. Defaults to false.
|
41
|
-
////////////////////////
|
42
|
-
@import "compass/utilities/sprites";
|
43
|
-
|
44
|
-
$replace-text-pe-method: 'svg' !default;
|
45
|
-
$replace-text-pe-inline-svg: true !default;
|
46
|
-
$replace-text-pe-with-dimensions: true !default;
|
47
|
-
$replace-text-inline-element: false !default;
|
48
|
-
|
49
|
-
@mixin replace-text-pe($img-path, $sprite, $method: $replace-text-pe-method, $inline-svg: $replace-text-pe-inline-svg, $with-dimensions: $replace-text-pe-with-dimensions, $inline-element: $replace-text-inline-element) {
|
50
|
-
// Hide text. Use squish-text() if the element is inline
|
51
|
-
@if $inline-element {
|
52
|
-
@extend %replace-text-pe-squish;
|
53
|
-
}
|
54
|
-
@else {
|
55
|
-
@extend %replace-text-pe-hide;
|
56
|
-
}
|
57
|
-
|
58
|
-
@if $method == 'svg' {
|
59
|
-
@include svg-background($img-path, $sprite, $inline-svg, $with-dimensions);
|
60
|
-
}
|
61
|
-
@else if $method == 'retina' {
|
62
|
-
@include retina-background($img-path, $sprite, $with-dimensions);
|
63
|
-
}
|
64
|
-
|
65
|
-
}
|
66
|
-
|
67
|
-
//////////////////////////////
|
68
|
-
// SVG Background Image with Fallback
|
69
|
-
//////////////////////////////
|
70
|
-
@mixin svg-background($img-path, $sprite, $inline-svg: $replace-text-pe-inline-svg, $with-dimensions: $replace-text-pe-with-dimensions) {
|
71
|
-
$png-path: $img-path + '/*.png';
|
72
|
-
$sprite-map: sprite-map($png-path);
|
73
|
-
|
74
|
-
// Build SVG file name
|
75
|
-
$svg-file: $img-path + '/#{$sprite}.svg';
|
76
|
-
|
77
|
-
// Default Sprite File
|
78
|
-
$sprite-file: '' !default;
|
79
|
-
|
80
|
-
@if $with-dimensions {
|
81
|
-
// Get Sprite File for Height/Width
|
82
|
-
$sprite-file: sprite-file($sprite-map, $sprite);
|
83
|
-
|
84
|
-
// Put the height/width of the image in
|
85
|
-
width: image-width($sprite-file);
|
86
|
-
height: image-height($sprite-file);
|
87
|
-
}
|
88
|
-
|
89
|
-
@include enhance-with('svg') {
|
90
|
-
// Inline the SVG so that advanced browsers and future tech doesn't need the extra HTTP requests for the SVG
|
91
|
-
@if $inline-svg {
|
92
|
-
background-image: inline-image($svg-file);
|
93
|
-
}
|
94
|
-
@else {
|
95
|
-
background-image: image-url($svg-file);
|
96
|
-
}
|
97
|
-
// No repeating backgrounds, please
|
98
|
-
background-repeat: no-repeat;
|
99
|
-
// Set background size to ensure that our SVG is the right size.
|
100
|
-
@if $with-dimensions {
|
101
|
-
background-size: image-width($sprite-file) image-height($sprite-file);
|
102
|
-
}
|
103
|
-
}
|
104
|
-
|
105
|
-
// Degrade from SVG
|
106
|
-
@include degrade-from('svg') {
|
107
|
-
// Extend the Sprite Background
|
108
|
-
@extend %#{sprite-map-name($sprite-map)}-image-map;
|
109
|
-
// Call the Sprite'd image's position.
|
110
|
-
@include sprite($sprite-map, $sprite);
|
111
|
-
}
|
112
|
-
}
|
113
|
-
|
114
|
-
//////////////////////////////
|
115
|
-
// Retina Background Image with Fallback
|
116
|
-
//////////////////////////////
|
117
|
-
@mixin retina-background($img-path, $sprite, $with-dimensions: $replace-text-pe-with-dimensions) {
|
118
|
-
$png-path: $img-path + '/*.png';
|
119
|
-
$sprite-map: sprite-map($png-path);
|
120
|
-
|
121
|
-
$png2x-path: $img-path + '_2x/*.png';
|
122
|
-
$retina-map: sprite-map($png2x-path);
|
123
|
-
|
124
|
-
// Default Sprite File
|
125
|
-
$sprite-file: '' !default;
|
126
|
-
|
127
|
-
@if $with-dimensions {
|
128
|
-
// Get Sprite File for Height/Width
|
129
|
-
$sprite-file: sprite-file($sprite-map, $sprite);
|
130
|
-
|
131
|
-
width: image-width($sprite-file);
|
132
|
-
height: image-height($sprite-file);
|
133
|
-
}
|
134
|
-
|
135
|
-
.ie6 &,
|
136
|
-
.ie7 &,
|
137
|
-
.ie8 & {
|
138
|
-
@extend %#{sprite-map-name($sprite-map)}-image-map-fallback;
|
139
|
-
@include sprite($sprite-map, $sprite);
|
140
|
-
}
|
141
|
-
|
142
|
-
//////////////////////////////
|
143
|
-
// Ugly Hack
|
144
|
-
//
|
145
|
-
// Due to a bug plus a design decision, I cannot extend the background image
|
146
|
-
// like I would like to or you would do by hand. This sucks, but it's the
|
147
|
-
// only way to get it to work for now.
|
148
|
-
//////////////////////////////
|
149
|
-
@media (max-resolution: 1.4dppx), (-webkit-max-device-pixel-ratio: 1.4), (max--moz-device-pixel-ratio: 1.4), (max-resolution: 134.4dpi) {
|
150
|
-
background: {
|
151
|
-
image: $sprite-map;
|
152
|
-
repeat: no-repeat;
|
153
|
-
}
|
154
|
-
@include sprite($sprite-map, $sprite);
|
155
|
-
}
|
156
|
-
@media (min-resolution: 1.5dppx), (-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
|
157
|
-
background: {
|
158
|
-
image: $retina-map;
|
159
|
-
repeat: no-repeat;
|
160
|
-
}
|
161
|
-
@if $with-dimensions {
|
162
|
-
background-size: image-width($sprite-file) image-height($sprite-file);
|
163
|
-
}
|
164
|
-
@include sprite($retina-map, $sprite);
|
165
|
-
}
|
166
|
-
|
167
|
-
//////////////////////////////
|
168
|
-
// Actual Hotness
|
169
|
-
//
|
170
|
-
// Do to a bug plus a design decision, I cannot extend the background image
|
171
|
-
// like I would like to or you would do by hand. This is how it'll work
|
172
|
-
// when I can.
|
173
|
-
//////////////////////////////
|
174
|
-
// @media (-webkit-max-device-pixel-ratio: 1.4), (max--moz-device-pixel-ratio: 1.4), (-o-max-device-pixel-ratio: 7/5), (min-resolution: 1.4dppx), (min-resolution: 134.4dpi) {
|
175
|
-
// @extend %#{sprite-map-name($png-path)}-image-map;
|
176
|
-
// @include sprite($png-path, $sprite)
|
177
|
-
// }
|
178
|
-
// @media (-webkit-max-device-pixel-ratio: 1.5), (max--moz-device-pixel-ratio: 1.5), (-o-max-device-pixel-ratio: 3/2), (min-resolution: 1.5dppx), (min-resolution: 144dpi) {
|
179
|
-
// @extend %#{sprite-map-name($png2x-path)}-image-map;
|
180
|
-
// @include sprite($retina-map, $sprite);
|
181
|
-
// @if $with-dimensions {
|
182
|
-
// background-size: image-width($sprite-file) image-height($sprite-file);
|
183
|
-
// }
|
184
|
-
// }
|
185
|
-
}
|
186
|
-
|
187
|
-
//////////////////////////////
|
188
|
-
// Sprite Map Generator
|
189
|
-
//
|
190
|
-
// Need a custom mixin to create extendable classes classes for background image for sprites because dynamic mixin names don't work.
|
191
|
-
//
|
192
|
-
// - $png-path: The path to the pngs for the image sprite, including the *.png (just like normal image sprites)
|
193
|
-
//////////////////////////////
|
194
|
-
@mixin sprite-map-generator($img-path, $method: $replace-text-pe-method) {
|
195
|
-
$png-path: $img-path + '/*.png';
|
196
|
-
$png-path: sprite-map($png-path);
|
197
|
-
|
198
|
-
@if $method == 'retina' {
|
199
|
-
$png2x-path: $img-path + '_2x/*.png';
|
200
|
-
$png2x-path: sprite-map($png2x-path);
|
201
|
-
|
202
|
-
%#{sprite-map-name($png-path)}-image-map-fallback {
|
203
|
-
background: {
|
204
|
-
image: $png-path;
|
205
|
-
repeat: no-repeat;
|
206
|
-
}
|
207
|
-
}
|
208
|
-
|
209
|
-
@media (max-resolution: 1.4dppx), (-webkit-max-device-pixel-ratio: 1.4), (max--moz-device-pixel-ratio: 1.4), (max-resolution: 134.4dpi) {
|
210
|
-
%#{sprite-map-name($png-path)}-image-map {
|
211
|
-
background: {
|
212
|
-
image: $png-path;
|
213
|
-
repeat: no-repeat;
|
214
|
-
}
|
215
|
-
}
|
216
|
-
}
|
217
|
-
@media (min-resolution: 1.5dppx), (-webkit-min-device-pixel-ratio: 1.5), (min--moz-device-pixel-ratio: 1.5), (min-resolution: 144dpi) {
|
218
|
-
%#{sprite-map-name($png2x-path)}-image-map {
|
219
|
-
background: {
|
220
|
-
image: $png2x-path;
|
221
|
-
repeat: no-repeat;
|
222
|
-
}
|
223
|
-
}
|
224
|
-
}
|
225
|
-
}
|
226
|
-
@else {
|
227
|
-
%#{sprite-map-name($png-path)}-image-map {
|
228
|
-
background: {
|
229
|
-
image: $png-path;
|
230
|
-
repeat: no-repeat;
|
231
|
-
}
|
232
|
-
}
|
233
|
-
}
|
234
|
-
|
235
|
-
|
236
|
-
}
|
237
|
-
|
238
|
-
//////////////////////////////
|
239
|
-
// Extendable Class for Squish Text mixin
|
240
|
-
//////////////////////////////
|
241
|
-
%replace-text-pe-squish {
|
242
|
-
@include squish-text();
|
243
|
-
}
|
244
|
-
|
245
|
-
//////////////////////////////
|
246
|
-
// Extendable Class for Hide Text mixin
|
247
|
-
//////////////////////////////
|
248
|
-
%replace-text-pe-hide {
|
249
|
-
@include hide-text();
|
250
|
-
}
|
43
|
+
}
|
@@ -89,29 +89,4 @@ $legacy-support-for-ie: $legacy-support-for-ie6 or $legacy-support-for-ie7 or $l
|
|
89
89
|
a:not([href^='https://']) {
|
90
90
|
@content;
|
91
91
|
}
|
92
|
-
}
|
93
|
-
|
94
|
-
////////////////////////
|
95
|
-
// nth-child() support for IE 7 and 8
|
96
|
-
////////////////////////
|
97
|
-
@function nth-child($n) {
|
98
|
-
|
99
|
-
// If a single number for nth.
|
100
|
-
@if type-of($n) == number {
|
101
|
-
$nth-child: first-child;
|
102
|
-
@for $i from 2 through $n {
|
103
|
-
$nth-child: append($nth-child, #{"+*"});
|
104
|
-
}
|
105
|
-
@return #{":"}$nth-child;
|
106
|
-
}
|
107
|
-
|
108
|
-
// If a nth-child string, need to parse the string.
|
109
|
-
@else {
|
110
|
-
$n: nth(children-of-ie-nth($n), 1);
|
111
|
-
$nth-child: first-child;
|
112
|
-
@for $i from 2 through $n {
|
113
|
-
$nth-child: append($nth-child, #{"~*"});
|
114
|
-
}
|
115
|
-
@return #{":"}$nth-child;
|
116
|
-
}
|
117
92
|
}
|
@@ -0,0 +1,90 @@
|
|
1
|
+
//////////////////////////////
|
2
|
+
// Default Settings
|
3
|
+
//////////////////////////////
|
4
|
+
$Toolkit-Settings: (
|
5
|
+
'clearfix extend': false,
|
6
|
+
'color stack amounts': 25% 50% 75% 85% 90%,
|
7
|
+
'tint color': #fff,
|
8
|
+
'shade color': #000,
|
9
|
+
'color scale shades': 6,
|
10
|
+
'extend ligatures': false,
|
11
|
+
'fade in duration': 1s,
|
12
|
+
'fade in loading class': '.wf-loading',
|
13
|
+
'intrinsic ratio': 16/9,
|
14
|
+
'intrinsic ratio width': 100%,
|
15
|
+
'intrinsic ratio elements': '> *',
|
16
|
+
'intrinsic ratio direction': top,
|
17
|
+
'intrinsic ratio extend': false,
|
18
|
+
'nested context contexts': 100%,
|
19
|
+
'nested context position': left,
|
20
|
+
'degrade from javascript': false,
|
21
|
+
'triangle color': #000,
|
22
|
+
'triangle height': 1em,
|
23
|
+
'triangle width': 1em,
|
24
|
+
'triangle angle': 0
|
25
|
+
);
|
26
|
+
|
27
|
+
//////////////////////////////
|
28
|
+
// User Settings
|
29
|
+
//////////////////////////////
|
30
|
+
$toolkit: () !default;
|
31
|
+
|
32
|
+
//////////////////////////////
|
33
|
+
// Has Setting
|
34
|
+
//////////////////////////////
|
35
|
+
//////////////////////////////
|
36
|
+
// Has Setting
|
37
|
+
//////////////////////////////
|
38
|
+
@function toolkit-has($setting) {
|
39
|
+
@if map-has-key($toolkit, $setting) {
|
40
|
+
@return true;
|
41
|
+
}
|
42
|
+
@else {
|
43
|
+
@return false;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
//////////////////////////////
|
48
|
+
// Get Settings
|
49
|
+
//////////////////////////////
|
50
|
+
@function toolkit-get($setting) {
|
51
|
+
@if toolkit-has($setting) {
|
52
|
+
@return map-get($toolkit, $setting);
|
53
|
+
}
|
54
|
+
@else {
|
55
|
+
@return map-get($Toolkit-Settings, $setting);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
|
59
|
+
//////////////////////////////
|
60
|
+
// Set Settings
|
61
|
+
//////////////////////////////
|
62
|
+
@function toolkit-set($setting, $value) {
|
63
|
+
@if str-index($setting, '-') > 0 {
|
64
|
+
@warn "Toolkit settings should contain spaces, not dashes. Please replace dashes with spaces. Settings will not work as expected until changed.";
|
65
|
+
}
|
66
|
+
$toolkit: map-merge($toolkit, ($setting: $value)) !global;
|
67
|
+
@return true;
|
68
|
+
}
|
69
|
+
|
70
|
+
@mixin toolkit-change($setting, $value) {
|
71
|
+
$toolkit-change: toolkit-set($setting, $value);
|
72
|
+
}
|
73
|
+
|
74
|
+
//////////////////////////////
|
75
|
+
// Remove Setting
|
76
|
+
//////////////////////////////
|
77
|
+
@function toolkit-reset($setting) {
|
78
|
+
$Return: ();
|
79
|
+
|
80
|
+
@each $Key, $Value in $toolkit {
|
81
|
+
$Return: if($setting == $Key, $Return, map-merge($Return, ($Key: $Value)));
|
82
|
+
}
|
83
|
+
|
84
|
+
$toolkit: $Return !global;
|
85
|
+
@return true;
|
86
|
+
}
|
87
|
+
|
88
|
+
@mixin toolkit-reset($setting) {
|
89
|
+
$toolkit-reset: toolkit-reset($setting);
|
90
|
+
}
|
@@ -2,8 +2,13 @@
|
|
2
2
|
// Draw triangles
|
3
3
|
//////////////////////////////
|
4
4
|
|
5
|
-
@mixin triangle($color:
|
6
|
-
|
5
|
+
@mixin triangle($color: null, $height: null, $width: null, $angle: null) {
|
6
|
+
|
7
|
+
$color: if($color !== null, $color, toolkit-get('triangle color'));
|
8
|
+
$height: if($height !== null, $height, toolkit-get('triangle height'));
|
9
|
+
$width: if($width !== null, $width, toolkit-get('triangle width'));
|
10
|
+
$angle: if($angle !== null, $angle, toolkit-get('triangle angle'));
|
11
|
+
|
7
12
|
@if nth($angle, 1) == "top" or nth($angle, 1) == "bottom" {
|
8
13
|
$angle: "#{$angle}";
|
9
14
|
}
|