titon-toolkit 1.5.3 → 2.0.0.pre.rc.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ }