titon-toolkit 1.5.3 → 2.0.0.pre.rc.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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/changelog.md +180 -61
  3. data/license.md +1 -1
  4. data/readme.md +7 -7
  5. data/roadmap.md +4 -20
  6. data/scss/toolkit/_common.scss +426 -73
  7. data/scss/toolkit/{layout/base.scss → base.scss} +13 -25
  8. data/scss/toolkit/components/accordion.scss +6 -6
  9. data/scss/toolkit/components/blackout.scss +13 -11
  10. data/scss/toolkit/components/breadcrumb.scss +2 -2
  11. data/scss/toolkit/components/button-group.scss +130 -51
  12. data/scss/toolkit/components/button.scss +110 -9
  13. data/scss/toolkit/components/carousel.scss +20 -46
  14. data/scss/toolkit/{layout → components}/code.scss +1 -1
  15. data/scss/toolkit/components/divider.scss +24 -23
  16. data/scss/toolkit/components/drop.scss +35 -26
  17. data/scss/toolkit/components/flyout.scss +5 -10
  18. data/scss/toolkit/{layout → components}/form.scss +72 -65
  19. data/scss/toolkit/components/grid.scss +21 -116
  20. data/scss/toolkit/components/icon.scss +27 -13
  21. data/scss/toolkit/components/input-group.scss +4 -6
  22. data/scss/toolkit/components/input.scss +21 -21
  23. data/scss/toolkit/components/label.scss +76 -66
  24. data/scss/toolkit/components/lazy-load.scss +2 -2
  25. data/scss/toolkit/components/loader.scss +8 -8
  26. data/scss/toolkit/components/mask.scss +5 -9
  27. data/scss/toolkit/components/matrix.scss +4 -4
  28. data/scss/toolkit/components/modal.scss +33 -40
  29. data/scss/toolkit/components/notice.scss +5 -9
  30. data/scss/toolkit/components/off-canvas.scss +80 -60
  31. data/scss/toolkit/components/pagination.scss +75 -34
  32. data/scss/toolkit/components/pin.scss +7 -3
  33. data/scss/toolkit/components/popover.scss +14 -14
  34. data/scss/toolkit/components/progress.scss +25 -14
  35. data/scss/toolkit/{layout → components}/responsive.scss +31 -37
  36. data/scss/toolkit/components/showcase.scss +10 -36
  37. data/scss/toolkit/components/step.scss +7 -7
  38. data/scss/toolkit/components/switch.scss +47 -33
  39. data/scss/toolkit/components/tab.scss +42 -0
  40. data/scss/toolkit/components/table.scss +27 -25
  41. data/scss/toolkit/components/toast.scss +13 -9
  42. data/scss/toolkit/components/tooltip.scss +15 -16
  43. data/scss/toolkit/components/type-ahead.scss +6 -6
  44. data/scss/toolkit/{layout → components}/typography.scss +2 -2
  45. data/scss/toolkit/mixins/_components.scss +12 -6
  46. data/scss/toolkit/mixins/_grid.scss +5 -1
  47. data/scss/toolkit/mixins/_helper.scss +42 -3
  48. data/scss/toolkit/mixins/_layout.scss +22 -13
  49. data/scss/toolkit/mixins/_responsive.scss +39 -39
  50. data/scss/toolkit.scss +12 -18
  51. data/version.md +1 -1
  52. metadata +16 -22
  53. data/scss/toolkit/components/tabs.scss +0 -43
  54. data/scss/toolkit/effects/oval.scss +0 -37
  55. data/scss/toolkit/effects/pill.scss +0 -94
  56. data/scss/toolkit/effects/skew.scss +0 -85
  57. data/scss/toolkit/effects/visual.scss +0 -64
  58. data/scss/toolkit/mixins/_state.scss +0 -36
  59. data/scss/toolkit/themes/demo.scss +0 -569
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @copyright 2010-2014, The Titon Project
2
+ * @copyright 2010-2015, The Titon Project
3
3
  * @license http://opensource.org/licenses/BSD-3-Clause
4
4
  * @link http://titon.io
5
5
  */
6
6
 
7
7
  @import "../common";
8
8
 
9
- .#{$vendor-prefix}drop {
9
+ #{$drop-class} {
10
10
  @include reset-list;
11
11
  text-align: left;
12
12
  position: absolute;
@@ -20,14 +20,13 @@
20
20
  transition: left $drop-transition, opacity $drop-transition, visibility $drop-transition;
21
21
 
22
22
  // Nested
23
- .#{$vendor-prefix}drop {
23
+ #{$drop-class} {
24
24
  display: block;
25
25
  top: 0;
26
26
  left: 90%;
27
27
  z-index: $drop-zindex + 1;
28
28
  }
29
29
 
30
- // Apply to self
31
30
  ul,
32
31
  ol {
33
32
  @include reset-list;
@@ -52,7 +51,7 @@
52
51
 
53
52
  // Show nested dropdown
54
53
  &:hover {
55
- .#{$vendor-prefix}drop {
54
+ #{$drop-class} {
56
55
  visibility: visible;
57
56
  opacity: 1;
58
57
  left: 100%;
@@ -61,44 +60,54 @@
61
60
  }
62
61
  }
63
62
 
64
- .#{$vendor-prefix}drop-divider {
63
+ #{$drop-class-divider} {
65
64
  margin: ($margin / 2) 0;
66
65
  border-top: 1px solid $gray-dark;
67
66
  }
68
67
 
69
- .#{$vendor-prefix}drop-heading {
68
+ #{$drop-class-heading} {
70
69
  padding: $small-padding;
71
70
  }
72
71
 
73
72
  //-------------------- Modifiers --------------------//
74
73
 
75
- .#{$vendor-prefix}drop.#{$vendor-prefix}drop--up {
76
- top: auto;
77
- bottom: 100%;
74
+ @if index($drop-modifiers, "up") {
75
+ #{$drop-class-modifier-up} {
76
+ top: auto;
77
+ bottom: 100%;
78
+ }
78
79
  }
79
80
 
80
- .#{$vendor-prefix}drop.#{$vendor-prefix}drop--right {
81
- top: auto;
82
- left: 100%;
81
+ @if index($drop-modifiers, "right") {
82
+ #{$drop-class-modifier-right} {
83
+ top: auto;
84
+ left: 100%;
85
+ }
83
86
  }
84
87
 
85
- .#{$vendor-prefix}drop.#{$vendor-prefix}drop--left {
86
- top: auto;
87
- left: auto;
88
- right: 100%;
88
+ @if index($drop-modifiers, "left") {
89
+ #{$drop-class-modifier-left} {
90
+ top: auto;
91
+ left: auto;
92
+ right: 100%;
93
+ }
89
94
  }
90
95
 
91
- .#{$vendor-prefix}drop.#{$vendor-prefix}drop--right,
92
- .#{$vendor-prefix}drop.#{$vendor-prefix}drop--left {
93
- &.reverse-align {
94
- bottom: 0;
96
+ @if index($drop-modifiers, "right") or index($drop-modifiers, "left") {
97
+ #{$drop-class-modifier-right},
98
+ #{$drop-class-modifier-left} {
99
+ &.reverse-align {
100
+ bottom: 0;
101
+ }
95
102
  }
96
103
  }
97
104
 
98
- .#{$vendor-prefix}drop.#{$vendor-prefix}drop--down,
99
- .#{$vendor-prefix}drop.#{$vendor-prefix}drop--up {
100
- &.reverse-align {
101
- left: auto;
102
- right: 0;
105
+ @if index($drop-modifiers, "down") or index($drop-modifiers, "up") {
106
+ #{$drop-class-modifier-down},
107
+ #{$drop-class-modifier-up} {
108
+ &.reverse-align {
109
+ left: auto;
110
+ right: 0;
111
+ }
103
112
  }
104
113
  }
@@ -1,19 +1,18 @@
1
1
  /**
2
- * @copyright 2010-2014, The Titon Project
2
+ * @copyright 2010-2015, The Titon Project
3
3
  * @license http://opensource.org/licenses/BSD-3-Clause
4
4
  * @link http://titon.io
5
5
  */
6
6
 
7
7
  @import "../common";
8
8
 
9
- .#{$vendor-prefix}flyout {
9
+ #{$flyout-class} {
10
10
  position: absolute;
11
11
  top: 0;
12
12
  left: 0;
13
13
  z-index: $flyout-zindex;
14
14
  opacity: 0;
15
15
  visibility: hidden;
16
- box-sizing: content-box; // required by MooTools for multi columns
17
16
  transition: opacity $flyout-transition, visibility $flyout-transition;
18
17
 
19
18
  ul {
@@ -34,10 +33,6 @@
34
33
  .caret-right { display: none; }
35
34
  }
36
35
 
37
- // Hover states
38
- > a:hover,
39
- &.is-open > a {}
40
-
41
36
  // Display caret arrow
42
37
  &.has-children > a .caret-right {
43
38
  float: right;
@@ -46,7 +41,7 @@
46
41
  }
47
42
 
48
43
  // Nested flyouts
49
- > .#{$vendor-prefix}flyout {
44
+ > #{$flyout-class} {
50
45
  left: 90%;
51
46
  transition: left $flyout-transition, right $flyout-transition, opacity $flyout-transition, visibility $flyout-transition;
52
47
 
@@ -58,7 +53,7 @@
58
53
  }
59
54
  }
60
55
 
61
- &.is-open > .#{$vendor-prefix}flyout {
56
+ &.is-open > #{$flyout-class} {
62
57
  opacity: 1;
63
58
  visibility: visible;
64
59
  left: 100%;
@@ -73,7 +68,7 @@
73
68
  @include clear-fix;
74
69
  }
75
70
 
76
- .#{$vendor-prefix}flyout-heading {
71
+ #{$flyout-class-heading} {
77
72
  padding: $small-padding;
78
73
  line-height: 100%;
79
74
  display: block;
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @copyright 2010-2014, The Titon Project
2
+ * @copyright 2010-2015, The Titon Project
3
3
  * @license http://opensource.org/licenses/BSD-3-Clause
4
4
  * @link http://titon.io
5
5
  */
@@ -34,30 +34,28 @@ input[type="search"] {
34
34
 
35
35
  // Required values to match browser restrictions
36
36
  label,
37
- .#{$vendor-prefix}input-static {
37
+ #{$form-class-input-static} {
38
38
  font-size: inherit;
39
39
  line-height: normal;
40
40
  }
41
41
 
42
42
  //-------------------- Inputs --------------------//
43
43
 
44
- .#{$vendor-prefix}input,
45
- .#{$vendor-prefix}input-static,
46
- .#{$vendor-prefix}input-radio,
47
- .#{$vendor-prefix}input-checkbox {
44
+ #{$form-class-input},
45
+ #{$form-class-input-static},
46
+ #{$form-class-input-radio},
47
+ #{$form-class-input-checkbox} {
48
48
  @include reset-inline-block;
49
49
  line-height: normal;
50
50
  border: 1px solid $gray-dark;
51
51
  border-radius: 0;
52
- box-shadow: none;
53
52
  -webkit-appearance: none; // Remove inner shadow on iOS
54
53
  @include size-medium;
55
-
56
54
  @include is-small(true, true) { @include size-small; }
57
55
  @include is-large(true, true) { @include size-large; }
58
56
  }
59
57
 
60
- .#{$vendor-prefix}input {
58
+ #{$form-class-input} {
61
59
  background: $gray-lightest;
62
60
  border-radius: $round;
63
61
  transition: all $default-transition;
@@ -66,33 +64,34 @@ label,
66
64
 
67
65
  &:focus {
68
66
  border-color: $info;
69
- box-shadow: 0 0 5px $info-light;
70
67
  outline: none;
71
68
  }
72
69
 
73
70
  &[readonly] {
74
71
  color: $gray-darkest;
75
72
  border: 1px solid $gray-dark;
76
- box-shadow: none;
77
73
  }
78
74
 
79
- @include is-disabled {
80
- cursor: not-allowed;
75
+ &.is-disabled,
76
+ &[disabled],
77
+ option[disabled],
78
+ optgroup[disabled] {
81
79
  color: $gray-darkest;
82
80
  border-color: $gray;
83
81
  }
84
82
  }
85
83
 
86
- .#{$vendor-prefix}input-static {
84
+ #{$form-class-input-static} {
87
85
  background: transparent;
88
86
  border-color: transparent;
89
87
  padding-left: 0 !important;
90
88
  padding-right: 0 !important;
91
89
  }
92
90
 
93
- .#{$vendor-prefix}input-radio,
94
- .#{$vendor-prefix}input-checkbox {
95
- padding: 0;
91
+ #{$form-class-input-radio},
92
+ #{$form-class-input-checkbox} {
93
+ padding-left: 0 !important;
94
+ padding-right: 0 !important;
96
95
  border: 0;
97
96
 
98
97
  input[type="checkbox"],
@@ -102,115 +101,123 @@ label,
102
101
  top: -2px;
103
102
  margin-right: 5px;
104
103
  }
104
+
105
+ &.is-disabled {
106
+ color: $gray-darkest;
107
+ }
105
108
  }
106
109
 
107
- select.#{$vendor-prefix}input {
110
+ select#{$form-class-input} {
108
111
  -webkit-appearance: none;
109
112
  -moz-appearance: none;
110
113
  appearance: none;
111
- }
112
114
 
113
- select.#{$vendor-prefix}input[multiple] {
114
- max-height: 500px;
115
+ &[multiple] {
116
+ max-height: 500px;
117
+ }
115
118
  }
116
119
 
117
- textarea.#{$vendor-prefix}input {
120
+ textarea#{$form-class-input} {
118
121
  line-height: 135%;
119
122
  min-height: 150px;
120
123
  }
121
124
 
122
125
  //-------------------- Fields, Labels --------------------//
123
126
 
124
- .#{$vendor-prefix}fields {
127
+ #{$form-class-fields} {
125
128
  @include reset-list;
126
129
  }
127
130
 
128
- .#{$vendor-prefix}field,
129
- .#{$vendor-prefix}fields li {
131
+ #{$form-class-field},
132
+ #{$form-class-fields} li {
130
133
  margin-bottom: $margin;
131
134
 
132
135
  &.is-required {
133
- .#{$vendor-prefix}field-label { font-weight: bold; }
136
+ #{$form-class-field-label} { font-weight: bold; }
134
137
  }
135
138
 
136
139
  &:not(.is-disabled) {
137
140
  &.is-error {
138
- .#{$vendor-prefix}input {
141
+ #{$form-class-input} {
139
142
  border-color: $error;
140
-
141
- &:focus { box-shadow: 0 0 5px $error-light; }
142
143
  }
143
144
 
144
- .#{$vendor-prefix}input-radio,
145
- .#{$vendor-prefix}input-checkbox {
145
+ #{$form-class-input-radio},
146
+ #{$form-class-input-checkbox} {
146
147
  color: $error-dark;
147
148
  }
148
149
  }
149
150
 
150
151
  &.is-success {
151
- .#{$vendor-prefix}input {
152
+ #{$form-class-input} {
152
153
  border-color: $success;
153
-
154
- &:focus { box-shadow: 0 0 5px $success-light; }
155
154
  }
156
155
 
157
- .#{$vendor-prefix}input-radio,
158
- .#{$vendor-prefix}input-checkbox {
156
+ #{$form-class-input-radio},
157
+ #{$form-class-input-checkbox} {
159
158
  color: $success-dark;
160
159
  }
161
160
  }
162
161
  }
163
162
  }
164
163
 
165
- .#{$vendor-prefix}field-label {
164
+ #{$form-class-field-label} {
166
165
  display: block;
167
166
  vertical-align: middle;
168
167
  margin-bottom: .5em;
169
168
  }
170
169
 
171
- .#{$vendor-prefix}field-help {
170
+ #{$form-class-field-help} {
172
171
  margin-top: .5em;
173
172
  font-size: $small-size;
174
173
  }
175
174
 
176
- .#{$vendor-prefix}form-actions {
175
+ #{$form-class-actions} {
177
176
  text-align: center;
178
177
  }
179
178
 
180
179
  //-------------------- Modifiers --------------------//
181
180
 
182
- .#{$vendor-prefix}form--horizontal {
183
- .#{$vendor-prefix}field,
184
- .#{$vendor-prefix}fields li { @include grid-row; }
181
+ @if index($form-modifiers, "horizontal") {
182
+ #{$form-class-modifier-horizontal} {
183
+ #{$form-class-field},
184
+ #{$form-class-fields} li { @include grid-row; }
185
185
 
186
- .#{$vendor-prefix}field-label {
187
- text-align: right;
188
- border: 1px solid transparent; // matches input sizes
189
- padding-top: $medium-padding;
190
- }
186
+ #{$form-class-field-label} {
187
+ text-align: right;
188
+ border: 1px solid transparent; // matches input sizes
189
+ padding-top: $medium-padding;
190
+ }
191
191
 
192
- .#{$vendor-prefix}field-col { padding-left: $margin; }
192
+ #{$form-class-field-column} { padding-left: $margin; }
193
+ }
193
194
  }
194
195
 
195
- .#{$vendor-prefix}form--inline {
196
- margin-bottom: -($margin / 2);
196
+ @if index($form-modifiers, "inline") {
197
+ #{$form-class-modifier-inline} {
198
+ margin-bottom: -($margin / 2);
199
+
200
+ #{$form-class-field},
201
+ #{$form-class-fields} li,
202
+ #{$form-class-field-label},
203
+ #{$form-class-actions},
204
+ fieldset {
205
+ display: inline-block;
206
+ vertical-align: middle;
207
+ line-height: normal;
208
+ margin-right: $margin;
209
+ margin-bottom: $margin / 2;
210
+ }
197
211
 
198
- .#{$vendor-prefix}field,
199
- .#{$vendor-prefix}fields li,
200
- .#{$vendor-prefix}field-label,
201
- .#{$vendor-prefix}form-actions {
202
- display: inline-block;
203
- vertical-align: middle;
204
- line-height: normal;
205
- margin-right: $margin;
206
- margin-bottom: $margin / 2;
207
- }
212
+ fieldset {
213
+ border: 0;
214
+ margin: 0;
215
+ padding: 0;
216
+ }
208
217
 
209
- .#{$vendor-prefix}field-label { margin: 0 ($margin / 2) 0 0; }
210
- .#{$vendor-prefix}field-help { display: none; }
218
+ #{$form-class-field-label} { margin: 0 ($margin / 2) 0 0; }
211
219
 
212
- .#{$vendor-prefix}input-radio,
213
- .#{$vendor-prefix}input-checkbox {
214
- padding: $medium-padding 0;
220
+ legend,
221
+ #{$form-class-field-help} { display: none; }
215
222
  }
216
223
  }
@@ -1,150 +1,55 @@
1
1
  /**
2
- * @copyright 2010-2014, The Titon Project
2
+ * @copyright 2010-2015, The Titon Project
3
3
  * @license http://opensource.org/licenses/BSD-3-Clause
4
4
  * @link http://titon.io
5
5
  */
6
6
 
7
7
  @import "../common";
8
8
 
9
- %row { @include grid-row; }
10
- %col { @include grid-column; }
11
-
12
9
  // Row wrapper
13
- .#{$vendor-prefix}grid {
10
+ #{$grid-class} {
14
11
  @extend %row;
15
12
  }
16
13
 
17
14
  // These should be the same for all sizes
18
- .col[class*="span-"] {
15
+ #{$grid-class-column}[class*="span-"] {
19
16
  @extend %col;
20
17
  }
21
18
 
22
- @for $i from 1 through 12 {
23
- $span: grid-span($i, 12);
24
-
25
- .span-#{$i} { width: $span; }
26
- .push-#{$i} { left: $span; }
27
- .pull-#{$i} { right: $span; }
28
- }
29
-
30
- // Determine which grid to use
31
- @if $responsive-size == "device" or $responsive-size == "both" {
32
-
33
- // Mobile supports 3 columns
34
- @include in-mobile {
35
- .col[class*="mobile-"] {
36
- @include grid-column;
37
- }
38
-
39
- @for $i from 1 through $grid-columns-mobile {
40
- $span: grid-span($i, $grid-columns-mobile);
41
-
42
- .col.mobile-#{$i} { width: $span; }
43
-
44
- @if $grid-push-pull {
45
- .col.mobile-push-#{$i} { left: $span; }
46
- .col.mobile-pull-#{$i} { right: $span; }
47
- }
48
- }
49
- }
50
-
51
- // Tablet supports 6 columns
52
- @include in-tablet {
53
- .col[class*="tablet-"] {
54
- @include grid-column;
55
- }
56
-
57
- @for $i from 1 through $grid-columns-tablet {
58
- $span: grid-span($i, $grid-columns-tablet);
59
-
60
- .col.tablet-#{$i} { width: $span; }
61
-
62
- @if $grid-push-pull {
63
- .col.tablet-push-#{$i} { left: $span; }
64
- .col.tablet-pull-#{$i} { right: $span; }
65
- }
66
- }
67
- }
68
-
69
- // Desktop supports 12 columns
70
- @include in-desktop {
71
- .col[class*="desktop-"] {
72
- @include grid-column;
73
- }
74
-
75
- @for $i from 1 through $grid-columns-desktop {
76
- $span: grid-span($i, $grid-columns-desktop);
77
-
78
- .col.desktop-#{$i} { width: $span; }
19
+ // Global Push and pull classes
20
+ @if $grid-push-pull {
21
+ @for $i from 1 through 12 {
22
+ $span: grid-span($i, 12);
79
23
 
80
- @if $grid-push-pull {
81
- .col.desktop-push-#{$i} { left: $span; }
82
- .col.desktop-pull-#{$i} { right: $span; }
83
- }
84
- }
24
+ .push-#{$i} { left: $span; }
25
+ .pull-#{$i} { right: $span; }
85
26
  }
86
-
87
27
  }
88
28
 
89
- @if $responsive-size == "size" or $responsive-size == "both" {
29
+ // Grid sizes
30
+ @each $size, $options in $grid-sizes {
31
+ $size-columns: nth($options, 1);
90
32
 
91
- // Small supports 6 columns
92
- @include in-small {
93
- .col[class*="small-"] {
33
+ @include in-range(nth($options, 2)) {
34
+ #{$grid-class-column}[class*="#{$size}-"] {
94
35
  @include grid-column;
95
36
  }
96
37
 
97
- @for $i from 1 through $grid-columns-small {
98
- $span: grid-span($i, $grid-columns-small);
38
+ @for $i from 1 through $size-columns {
39
+ $span: grid-span($i, $size-columns);
99
40
 
100
- .col.small-#{$i} { width: $span; }
41
+ #{$grid-class-column}.#{$size}-#{$i} { width: $span; }
101
42
 
102
43
  @if $grid-push-pull {
103
- .col.small-push-#{$i} { left: $span; }
104
- .col.small-pull-#{$i} { right: $span; }
44
+ #{$grid-class-column}.#{$size}-push-#{$i} { left: $span; }
45
+ #{$grid-class-column}.#{$size}-pull-#{$i} { right: $span; }
105
46
  }
106
47
  }
107
48
  }
108
-
109
- // Medium supports 8 columns
110
- @include in-medium {
111
- .col[class*="medium-"] {
112
- @include grid-column;
113
- }
114
-
115
- @for $i from 1 through $grid-columns-medium {
116
- $span: grid-span($i, $grid-columns-medium);
117
-
118
- .col.medium-#{$i} { width: $span; }
119
-
120
- @if $grid-push-pull {
121
- .col.medium-push-#{$i} { left: $span; }
122
- .col.medium-pull-#{$i} { right: $span; }
123
- }
124
- }
125
- }
126
-
127
- // Large supports 12 columns
128
- @include in-large {
129
- .col[class*="large-"] {
130
- @include grid-column;
131
- }
132
-
133
- @for $i from 1 through $grid-columns-large {
134
- $span: grid-span($i, $grid-columns-large);
135
-
136
- .col.large-#{$i} { width: $span; }
137
-
138
- @if $grid-push-pull {
139
- .col.large-push-#{$i} { left: $span; }
140
- .col.large-pull-#{$i} { right: $span; }
141
- }
142
- }
143
- }
144
-
145
49
  }
146
50
 
147
- .col.end {
51
+ // End capping
52
+ #{$grid-class-column}#{$grid-class-end} {
148
53
  margin-right: 0 !important;
149
54
  float: right !important;
150
55
  }
@@ -1,28 +1,42 @@
1
1
  /**
2
- * @copyright 2010-2014, The Titon Project
2
+ * @copyright 2010-2015, The Titon Project
3
3
  * @license http://opensource.org/licenses/BSD-3-Clause
4
4
  * @link http://titon.io
5
5
  */
6
6
 
7
7
  @import "../common";
8
8
 
9
- [class*="icon-"] {
9
+ $icon-class-without-dot: remove-selector-char($icon-class);
10
+
11
+ [class*="#{$icon-class-without-dot}-"] {
10
12
  @include reset-inline-block;
11
13
  background-repeat: no-repeat;
12
14
 
13
- @include is-disabled { opacity: $disabled-opacity; }
15
+ &.is-disabled { opacity: $disabled-opacity; }
14
16
  }
15
17
 
16
- [class*="icon-12"] { width: 12px; height: 12px; }
17
- [class*="icon-16"] { width: 16px; height: 16px; }
18
- [class*="icon-24"] { width: 24px; height: 24px; }
19
- [class*="icon-32"] { width: 32px; height: 32px; }
20
- [class*="icon-64"] { width: 64px; height: 64px; }
18
+ @each $size in $icon-sizes {
19
+ [class*="#{$icon-class-without-dot}-#{$size}"] { width: #{$size}px; height: #{$size}px; }
20
+ }
21
21
 
22
22
  //-------------------- Modifiers --------------------//
23
23
 
24
- .icon--90deg { transform: rotate(90deg); }
25
- .icon--180deg { transform: rotate(180deg); }
26
- .icon--270deg { transform: rotate(270deg); }
27
- .icon--flip { transform: rotateY(180deg); }
28
- .icon--flip-vert { transform: rotateX(180deg); }
24
+ @if index($icon-modifiers, "90deg") {
25
+ #{$icon-class-modifier-90deg} { transform: rotate(90deg); }
26
+ }
27
+
28
+ @if index($icon-modifiers, "180deg") {
29
+ #{$icon-class-modifier-180deg} { transform: rotate(180deg); }
30
+ }
31
+
32
+ @if index($icon-modifiers, "270deg") {
33
+ #{$icon-class-modifier-270deg} { transform: rotate(270deg); }
34
+ }
35
+
36
+ @if index($icon-modifiers, "flip") {
37
+ #{$icon-class-modifier-flip} { transform: rotateY(180deg); }
38
+ }
39
+
40
+ @if index($icon-modifiers, "flip-vert") {
41
+ #{$icon-class-modifier-flip-vert} { transform: rotateX(180deg); }
42
+ }