mtl 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/Gemfile +9 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +104 -0
  6. data/Rakefile +6 -0
  7. data/app/assets/javascripts/mtl/clickables.coffee +25 -0
  8. data/app/assets/javascripts/mtl/collapsible.coffee +43 -0
  9. data/app/assets/javascripts/mtl/configuration.coffee.erb +1 -0
  10. data/app/assets/javascripts/mtl/document_modal.coffee +130 -0
  11. data/app/assets/javascripts/mtl/dropdown.coffee +24 -0
  12. data/app/assets/javascripts/mtl/hooks.coffee +14 -0
  13. data/app/assets/javascripts/mtl/icon.coffee.erb +17 -0
  14. data/app/assets/javascripts/mtl/modal.coffee +32 -0
  15. data/app/assets/javascripts/mtl/select.coffee +44 -0
  16. data/app/assets/javascripts/mtl/templates.coffee +4 -0
  17. data/app/assets/javascripts/mtl/toc.coffee +31 -0
  18. data/app/assets/javascripts/mtl.js +42 -0
  19. data/app/assets/stylesheets/mtl/all.scss +69 -0
  20. data/app/assets/stylesheets/mtl/extend/_avatars.scss +37 -0
  21. data/app/assets/stylesheets/mtl/extend/_buttons.scss +31 -0
  22. data/app/assets/stylesheets/mtl/extend/_cards.scss +21 -0
  23. data/app/assets/stylesheets/mtl/extend/_chips.scss +3 -0
  24. data/app/assets/stylesheets/mtl/extend/_collection-files.scss +108 -0
  25. data/app/assets/stylesheets/mtl/extend/_document-modals.scss +95 -0
  26. data/app/assets/stylesheets/mtl/extend/_dropdown.scss +12 -0
  27. data/app/assets/stylesheets/mtl/extend/_forms.scss +66 -0
  28. data/app/assets/stylesheets/mtl/extend/_global.scss +77 -0
  29. data/app/assets/stylesheets/mtl/extend/_grid.scss +25 -0
  30. data/app/assets/stylesheets/mtl/extend/_material-icons.scss +37 -0
  31. data/app/assets/stylesheets/mtl/extend/_mixins.scss +10 -0
  32. data/app/assets/stylesheets/mtl/extend/_roboto-rails.scss +49 -0
  33. data/app/assets/stylesheets/mtl/extend/_side-nav.scss +22 -0
  34. data/app/assets/stylesheets/mtl/extend/_toc.scss +12 -0
  35. data/app/assets/stylesheets/mtl/extend/_typography.scss +32 -0
  36. data/app/assets/stylesheets/mtl/extend/forms/_input-fields.scss +50 -0
  37. data/app/assets/stylesheets/mtl/layouts/_default.scss +220 -0
  38. data/app/assets/stylesheets/mtl/layouts/_single.scss +25 -0
  39. data/app/views/mtl/header.html.erb +25 -0
  40. data/bin/coffeelint.rb +16 -0
  41. data/lib/generators/mtl/install_generator.rb +20 -0
  42. data/lib/generators/mtl/templates/_color.scss +410 -0
  43. data/lib/generators/mtl/templates/_variables.scss +330 -0
  44. data/lib/generators/mtl/templates/mtl.scss +8 -0
  45. data/lib/generators/mtl/templates/simple_form.rb +211 -0
  46. data/lib/mtl/rails/card_file_presenter.rb +70 -0
  47. data/lib/mtl/rails/view_helpers.rb +412 -0
  48. data/lib/mtl/simple_form/suffix.rb +52 -0
  49. data/lib/mtl/version.rb +6 -0
  50. data/lib/mtl.rb +38 -0
  51. data/mtl.gemspec +35 -0
  52. data/package.json +11 -0
  53. data/spec/mtl/rails/card_file_presenter_spec.rb +126 -0
  54. data/spec/mtl/rails/view_helpers_spec.rb +193 -0
  55. data/spec/mtl/simple_form/suffix_spec.rb +39 -0
  56. data/spec/mtl_spec.rb +34 -0
  57. data/spec/spec_helper.rb +18 -0
  58. data/spec/support/dom.rb +15 -0
  59. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.eot +0 -0
  60. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.ijmap +1 -0
  61. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.svg +2373 -0
  62. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.ttf +0 -0
  63. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.woff +0 -0
  64. data/vendor/assets/fonts/material-icons/MaterialIcons-Regular.woff2 +0 -0
  65. data/vendor/assets/fonts/roboto/Roboto-Bold.eot +0 -0
  66. data/vendor/assets/fonts/roboto/Roboto-Bold.ttf +0 -0
  67. data/vendor/assets/fonts/roboto/Roboto-Bold.woff +0 -0
  68. data/vendor/assets/fonts/roboto/Roboto-Bold.woff2 +0 -0
  69. data/vendor/assets/fonts/roboto/Roboto-Light.eot +0 -0
  70. data/vendor/assets/fonts/roboto/Roboto-Light.ttf +0 -0
  71. data/vendor/assets/fonts/roboto/Roboto-Light.woff +0 -0
  72. data/vendor/assets/fonts/roboto/Roboto-Light.woff2 +0 -0
  73. data/vendor/assets/fonts/roboto/Roboto-Medium.eot +0 -0
  74. data/vendor/assets/fonts/roboto/Roboto-Medium.ttf +0 -0
  75. data/vendor/assets/fonts/roboto/Roboto-Medium.woff +0 -0
  76. data/vendor/assets/fonts/roboto/Roboto-Medium.woff2 +0 -0
  77. data/vendor/assets/fonts/roboto/Roboto-Regular.eot +0 -0
  78. data/vendor/assets/fonts/roboto/Roboto-Regular.ttf +0 -0
  79. data/vendor/assets/fonts/roboto/Roboto-Regular.woff +0 -0
  80. data/vendor/assets/fonts/roboto/Roboto-Regular.woff2 +0 -0
  81. data/vendor/assets/fonts/roboto/Roboto-Thin.eot +0 -0
  82. data/vendor/assets/fonts/roboto/Roboto-Thin.ttf +0 -0
  83. data/vendor/assets/fonts/roboto/Roboto-Thin.woff +0 -0
  84. data/vendor/assets/fonts/roboto/Roboto-Thin.woff2 +0 -0
  85. data/vendor/assets/javascripts/lodash.js +16607 -0
  86. data/vendor/assets/javascripts/materialize/animation.js +9 -0
  87. data/vendor/assets/javascripts/materialize/buttons.js +91 -0
  88. data/vendor/assets/javascripts/materialize/cards.js +26 -0
  89. data/vendor/assets/javascripts/materialize/carousel.js +454 -0
  90. data/vendor/assets/javascripts/materialize/character_counter.js +72 -0
  91. data/vendor/assets/javascripts/materialize/chips.js +267 -0
  92. data/vendor/assets/javascripts/materialize/collapsible.js +160 -0
  93. data/vendor/assets/javascripts/materialize/date_picker/picker.date.js +1430 -0
  94. data/vendor/assets/javascripts/materialize/date_picker/picker.js +1123 -0
  95. data/vendor/assets/javascripts/materialize/dropdown.js +265 -0
  96. data/vendor/assets/javascripts/materialize/forms.js +681 -0
  97. data/vendor/assets/javascripts/materialize/global.js +45 -0
  98. data/vendor/assets/javascripts/materialize/hammer.min.js +1 -0
  99. data/vendor/assets/javascripts/materialize/init.js +173 -0
  100. data/vendor/assets/javascripts/materialize/initial.js +11 -0
  101. data/vendor/assets/javascripts/materialize/jquery.easing.1.3.js +205 -0
  102. data/vendor/assets/javascripts/materialize/jquery.hammer.js +33 -0
  103. data/vendor/assets/javascripts/materialize/jquery.timeago.min.js +1 -0
  104. data/vendor/assets/javascripts/materialize/leanModal.js +192 -0
  105. data/vendor/assets/javascripts/materialize/materialbox.js +269 -0
  106. data/vendor/assets/javascripts/materialize/parallax.js +58 -0
  107. data/vendor/assets/javascripts/materialize/prism.js +8 -0
  108. data/vendor/assets/javascripts/materialize/pushpin.js +71 -0
  109. data/vendor/assets/javascripts/materialize/scrollFire.js +48 -0
  110. data/vendor/assets/javascripts/materialize/scrollspy.js +283 -0
  111. data/vendor/assets/javascripts/materialize/sideNav.js +352 -0
  112. data/vendor/assets/javascripts/materialize/slider.js +321 -0
  113. data/vendor/assets/javascripts/materialize/tabs.js +148 -0
  114. data/vendor/assets/javascripts/materialize/toasts.js +136 -0
  115. data/vendor/assets/javascripts/materialize/tooltip.js +230 -0
  116. data/vendor/assets/javascripts/materialize/transitions.js +169 -0
  117. data/vendor/assets/javascripts/materialize/velocity.min.js +5 -0
  118. data/vendor/assets/javascripts/materialize/waves.js +338 -0
  119. data/vendor/assets/javascripts/pdfobject.js +254 -0
  120. data/vendor/assets/stylesheets/materialize/_buttons.scss +211 -0
  121. data/vendor/assets/stylesheets/materialize/_cards.scss +185 -0
  122. data/vendor/assets/stylesheets/materialize/_carousel.scss +85 -0
  123. data/vendor/assets/stylesheets/materialize/_chips.scss +74 -0
  124. data/vendor/assets/stylesheets/materialize/_collapsible.scss +90 -0
  125. data/vendor/assets/stylesheets/materialize/_color.scss +412 -0
  126. data/vendor/assets/stylesheets/materialize/_dropdown.scss +57 -0
  127. data/vendor/assets/stylesheets/materialize/_global.scss +781 -0
  128. data/vendor/assets/stylesheets/materialize/_grid.scss +147 -0
  129. data/vendor/assets/stylesheets/materialize/_icons-material-design.scss +5 -0
  130. data/vendor/assets/stylesheets/materialize/_materialbox.scss +42 -0
  131. data/vendor/assets/stylesheets/materialize/_mixins.scss +5 -0
  132. data/vendor/assets/stylesheets/materialize/_modal.scss +90 -0
  133. data/vendor/assets/stylesheets/materialize/_navbar.scss +182 -0
  134. data/vendor/assets/stylesheets/materialize/_normalize.scss +424 -0
  135. data/vendor/assets/stylesheets/materialize/_prefixer.scss +384 -0
  136. data/vendor/assets/stylesheets/materialize/_preloader.scss +334 -0
  137. data/vendor/assets/stylesheets/materialize/_roboto.scss +49 -0
  138. data/vendor/assets/stylesheets/materialize/_sideNav.scss +219 -0
  139. data/vendor/assets/stylesheets/materialize/_slider.scss +92 -0
  140. data/vendor/assets/stylesheets/materialize/_table_of_contents.scss +33 -0
  141. data/vendor/assets/stylesheets/materialize/_tabs.scss +56 -0
  142. data/vendor/assets/stylesheets/materialize/_toast.scss +65 -0
  143. data/vendor/assets/stylesheets/materialize/_tooltip.scss +32 -0
  144. data/vendor/assets/stylesheets/materialize/_typography.scss +61 -0
  145. data/vendor/assets/stylesheets/materialize/_variables.scss +313 -0
  146. data/vendor/assets/stylesheets/materialize/_waves.scss +177 -0
  147. data/vendor/assets/stylesheets/materialize/date_picker/_default.date.scss +435 -0
  148. data/vendor/assets/stylesheets/materialize/date_picker/_default.scss +201 -0
  149. data/vendor/assets/stylesheets/materialize/date_picker/_default.time.scss +125 -0
  150. data/vendor/assets/stylesheets/materialize/forms/_checkboxes.scss +220 -0
  151. data/vendor/assets/stylesheets/materialize/forms/_file-input.scss +38 -0
  152. data/vendor/assets/stylesheets/materialize/forms/_forms.scss +22 -0
  153. data/vendor/assets/stylesheets/materialize/forms/_input-fields.scss +273 -0
  154. data/vendor/assets/stylesheets/materialize/forms/_radio-buttons.scss +119 -0
  155. data/vendor/assets/stylesheets/materialize/forms/_range.scss +159 -0
  156. data/vendor/assets/stylesheets/materialize/forms/_select.scss +116 -0
  157. data/vendor/assets/stylesheets/materialize/forms/_switches.scss +78 -0
  158. metadata +309 -0
@@ -0,0 +1,273 @@
1
+ /* Text Inputs + Textarea
2
+ ========================================================================== */
3
+
4
+ /* Style Placeholders */
5
+
6
+ ::-webkit-input-placeholder {
7
+ color: $placeholder-text-color;
8
+ }
9
+
10
+ :-moz-placeholder { /* Firefox 18- */
11
+ color: $placeholder-text-color;
12
+ }
13
+
14
+ ::-moz-placeholder { /* Firefox 19+ */
15
+ color: $placeholder-text-color;
16
+ }
17
+
18
+ :-ms-input-placeholder {
19
+ color: $placeholder-text-color;
20
+ }
21
+
22
+ /* Text inputs */
23
+
24
+ input:not([type]),
25
+ input[type=text],
26
+ input[type=password],
27
+ input[type=email],
28
+ input[type=url],
29
+ input[type=time],
30
+ input[type=date],
31
+ input[type=datetime],
32
+ input[type=datetime-local],
33
+ input[type=tel],
34
+ input[type=number],
35
+ input[type=search],
36
+ textarea.materialize-textarea {
37
+
38
+ // General Styles
39
+ background-color: transparent;
40
+ border: none;
41
+ border-bottom: $input-border;
42
+ border-radius: 0;
43
+ outline: none;
44
+ height: $input-height;
45
+ width: 100%;
46
+ font-size: $input-font-size;
47
+ margin: $input-margin;
48
+ padding: $input-padding;
49
+ box-shadow: none;
50
+ box-sizing: content-box;
51
+ transition: $input-transition;
52
+
53
+ // Disabled input style
54
+ &:disabled,
55
+ &[readonly="readonly"] {
56
+ color: $input-disabled-color;
57
+ border-bottom: $input-disabled-border;
58
+ }
59
+
60
+ // Disabled label style
61
+ &:disabled+label,
62
+ &[readonly="readonly"]+label {
63
+ color: $input-disabled-color;
64
+ }
65
+
66
+ // Focused input style
67
+ &:focus:not([readonly]) {
68
+ border-bottom: 1px solid $input-focus-color;
69
+ box-shadow: 0 1px 0 0 $input-focus-color;
70
+ }
71
+
72
+ // Focused label style
73
+ &:focus:not([readonly])+label {
74
+ color: $input-focus-color;
75
+ }
76
+
77
+ // Valid Input Style
78
+ &.valid,
79
+ &:focus.valid {
80
+ border-bottom: 1px solid $input-success-color;
81
+ box-shadow: 0 1px 0 0 $input-success-color;
82
+ }
83
+
84
+ // Custom Success Message
85
+ &.valid + label:after,
86
+ &:focus.valid + label:after {
87
+ content: attr(data-success);
88
+ color: $input-success-color;
89
+ opacity: 1;
90
+ }
91
+
92
+ // Invalid Input Style
93
+ &.invalid,
94
+ &:focus.invalid {
95
+ border-bottom: $input-invalid-border;
96
+ box-shadow: 0 1px 0 0 $input-error-color;
97
+ }
98
+
99
+ // Custom Error message
100
+ &.invalid + label:after,
101
+ &:focus.invalid + label:after {
102
+ content: attr(data-error);
103
+ color: $input-error-color;
104
+ opacity: 1;
105
+ }
106
+
107
+ // Full width label when using validate for error messages
108
+ &.validate + label {
109
+ width: 100%;
110
+ pointer-events: none;
111
+ }
112
+
113
+ // Form Message Shared Styles
114
+ & + label:after {
115
+ display: block;
116
+ content: "";
117
+ position: absolute;
118
+ top: 60px;
119
+ opacity: 0;
120
+ transition: .2s opacity ease-out, .2s color ease-out;
121
+ }
122
+ }
123
+
124
+ // Styling for input field wrapper
125
+ .input-field {
126
+ // Gutter spacing
127
+ &.col {
128
+ label {
129
+ left: $gutter-width / 2;
130
+ }
131
+
132
+ .prefix ~ label,
133
+ .prefix ~ .validate ~ label {
134
+ width: calc(100% - 3rem - #{$gutter-width});
135
+ }
136
+ }
137
+
138
+ position: relative;
139
+ margin-top: 1rem;
140
+
141
+ label {
142
+ color: $input-border-color;
143
+ position: absolute;
144
+ top: 0.8rem;
145
+ font-size: 1rem;
146
+ cursor: text;
147
+ transition: .2s ease-out;
148
+ }
149
+
150
+ label.active {
151
+ font-size: $label-font-size;
152
+ transform: translateY(-140%);
153
+ }
154
+
155
+ // Prefix Icons
156
+ .prefix {
157
+ position: absolute;
158
+ width: $input-height;
159
+ font-size: 2rem;
160
+ transition: color .2s;
161
+
162
+ &.active { color: $input-focus-color; }
163
+ }
164
+
165
+ .prefix ~ input,
166
+ .prefix ~ textarea,
167
+ .prefix ~ label,
168
+ .prefix ~ .validate ~ label,
169
+ .prefix ~ .autocomplete-content {
170
+ margin-left: 3rem;
171
+ width: 92%;
172
+ width: calc(100% - 3rem);
173
+ }
174
+
175
+ .prefix ~ label { margin-left: 3rem; }
176
+
177
+ @media #{$medium-and-down} {
178
+ .prefix ~ input {
179
+ width: 86%;
180
+ width: calc(100% - 3rem);
181
+ }
182
+ }
183
+
184
+ @media #{$small-and-down} {
185
+ .prefix ~ input {
186
+ width: 80%;
187
+ width: calc(100% - 3rem);
188
+ }
189
+ }
190
+ }
191
+
192
+
193
+ /* Search Field */
194
+
195
+ .input-field input[type=search] {
196
+ display: block;
197
+ line-height: inherit;
198
+ padding-left: 4rem;
199
+ width: calc(100% - 4rem);
200
+
201
+ &:focus {
202
+ background-color: $input-background;
203
+ border: 0;
204
+ box-shadow: none;
205
+ color: #444;
206
+
207
+ & + label i,
208
+ & ~ .mdi-navigation-close,
209
+ & ~ .material-icons {
210
+ color: #444;
211
+ }
212
+ }
213
+
214
+ & + label {
215
+ left: 1rem;
216
+ }
217
+
218
+ & ~ .mdi-navigation-close,
219
+ & ~ .material-icons {
220
+ position: absolute;
221
+ top: 0;
222
+ right: 1rem;
223
+ color: transparent;
224
+ cursor: pointer;
225
+ font-size: 2rem;
226
+ transition: .3s color;
227
+ }
228
+ }
229
+
230
+
231
+ /* Textarea */
232
+
233
+ // Default textarea
234
+ textarea {
235
+ width: 100%;
236
+ height: $input-height;
237
+ background-color: transparent;
238
+
239
+ &.materialize-textarea {
240
+ overflow-y: hidden; /* prevents scroll bar flash */
241
+ padding: .8rem 0 1.6rem 0; /* prevents text jump on Enter keypress */
242
+ resize: none;
243
+ min-height: $input-height;
244
+ }
245
+ }
246
+
247
+ // For textarea autoresize
248
+ .hiddendiv {
249
+ display: none;
250
+ white-space: pre-wrap;
251
+ word-wrap: break-word;
252
+ overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */
253
+ padding-top: 1.2rem; /* prevents text jump on Enter keypress */
254
+ }
255
+
256
+
257
+ /* Autocomplete */
258
+ .autocomplete-content {
259
+ margin-top: -15px;
260
+ display: block;
261
+ opacity: 1;
262
+ position: static;
263
+
264
+ li {
265
+ .highlight { color: #444; }
266
+
267
+ img {
268
+ height: $dropdown-item-height - 10;
269
+ width: $dropdown-item-height - 10;
270
+ margin: 5px 15px;
271
+ }
272
+ }
273
+ }
@@ -0,0 +1,119 @@
1
+ /* Radio Buttons
2
+ ========================================================================== */
3
+
4
+ // Remove default Radio Buttons
5
+ [type="radio"]:not(:checked),
6
+ [type="radio"]:checked {
7
+ position: absolute;
8
+ left: -9999px;
9
+ opacity: 0;
10
+ }
11
+
12
+ [type="radio"]:not(:checked) + label,
13
+ [type="radio"]:checked + label {
14
+ position: relative;
15
+ padding-left: 35px;
16
+ cursor: pointer;
17
+ display: inline-block;
18
+ height: 25px;
19
+ line-height: 25px;
20
+ font-size: 1rem;
21
+ transition: .28s ease;
22
+
23
+ -khtml-user-select: none; /* webkit (konqueror) browsers */
24
+ user-select: none;
25
+ }
26
+
27
+ [type="radio"] + label:before,
28
+ [type="radio"] + label:after {
29
+ content: '';
30
+ position: absolute;
31
+ left: 0;
32
+ top: 0;
33
+ margin: 4px;
34
+ width: 16px;
35
+ height: 16px;
36
+ z-index: 0;
37
+ transition: .28s ease;
38
+ }
39
+
40
+ /* Unchecked styles */
41
+ [type="radio"]:not(:checked) + label:before,
42
+ [type="radio"]:not(:checked) + label:after,
43
+ [type="radio"]:checked + label:before,
44
+ [type="radio"]:checked + label:after,
45
+ [type="radio"].with-gap:checked + label:before,
46
+ [type="radio"].with-gap:checked + label:after {
47
+ border-radius: 50%;
48
+ }
49
+
50
+ [type="radio"]:not(:checked) + label:before,
51
+ [type="radio"]:not(:checked) + label:after {
52
+ border: 2px solid $radio-empty-color;
53
+ }
54
+
55
+ [type="radio"]:not(:checked) + label:after {
56
+ z-index: -1;
57
+ transform: scale(0);
58
+ }
59
+
60
+ /* Checked styles */
61
+ [type="radio"]:checked + label:before {
62
+ border: 2px solid transparent;
63
+ }
64
+
65
+ [type="radio"]:checked + label:after,
66
+ [type="radio"].with-gap:checked + label:before,
67
+ [type="radio"].with-gap:checked + label:after {
68
+ border: $radio-border;
69
+ }
70
+
71
+ [type="radio"]:checked + label:after,
72
+ [type="radio"].with-gap:checked + label:after {
73
+ background-color: $radio-fill-color;
74
+ z-index: 0;
75
+ }
76
+
77
+ [type="radio"]:checked + label:after {
78
+ transform: scale(1.02);
79
+ }
80
+
81
+ /* Radio With gap */
82
+ [type="radio"].with-gap:checked + label:after {
83
+ transform: scale(.5);
84
+ }
85
+
86
+ /* Focused styles */
87
+ [type="radio"].tabbed:focus + label:before {
88
+ box-shadow: 0 0 0 10px rgba(0,0,0,.1);
89
+ }
90
+
91
+ /* Disabled Radio With gap */
92
+ [type="radio"].with-gap:disabled:checked + label:before {
93
+ border: 2px solid $input-disabled-color;
94
+ }
95
+
96
+ [type="radio"].with-gap:disabled:checked + label:after {
97
+ border: none;
98
+ background-color: $input-disabled-color;
99
+ }
100
+
101
+ /* Disabled style */
102
+ [type="radio"]:disabled:not(:checked) + label:before,
103
+ [type="radio"]:disabled:checked + label:before {
104
+ background-color: transparent;
105
+ border-color: $input-disabled-color;
106
+ }
107
+
108
+ [type="radio"]:disabled + label {
109
+ color: $input-disabled-color;
110
+ }
111
+
112
+ [type="radio"]:disabled:not(:checked) + label:before {
113
+ border-color: $input-disabled-color;
114
+ }
115
+
116
+ [type="radio"]:disabled:checked + label:after {
117
+ background-color: $input-disabled-color;
118
+ border-color: $input-disabled-solid-color;
119
+ }
@@ -0,0 +1,159 @@
1
+ /* Range
2
+ ========================================================================== */
3
+
4
+ .range-field {
5
+ position: relative;
6
+ }
7
+
8
+ input[type=range],
9
+ input[type=range] + .thumb {
10
+ @extend .no-select;
11
+ cursor: pointer;
12
+ }
13
+
14
+ input[type=range] {
15
+ position: relative;
16
+ background-color: transparent;
17
+ border: none;
18
+ outline: none;
19
+ width: 100%;
20
+ margin: 15px 0;
21
+ padding: 0;
22
+
23
+ &:focus {
24
+ outline: none;
25
+ }
26
+ }
27
+
28
+ input[type=range] + .thumb {
29
+ position: absolute;
30
+ border: none;
31
+ height: 0;
32
+ width: 0;
33
+ border-radius: 50%;
34
+ background-color: $radio-fill-color;
35
+ top: 10px;
36
+ margin-left: -6px;
37
+
38
+ transform-origin: 50% 50%;
39
+ transform: rotate(-45deg);
40
+
41
+ .value {
42
+ display: block;
43
+ width: 30px;
44
+ text-align: center;
45
+ color: $radio-fill-color;
46
+ font-size: 0;
47
+ transform: rotate(45deg);
48
+ }
49
+
50
+ &.active {
51
+ border-radius: 50% 50% 50% 0;
52
+
53
+ .value {
54
+ color: $input-background;
55
+ margin-left: -1px;
56
+ margin-top: 8px;
57
+ font-size: 10px;
58
+ }
59
+ }
60
+ }
61
+
62
+ // WebKit
63
+ input[type=range] {
64
+ -webkit-appearance: none;
65
+ }
66
+
67
+ input[type=range]::-webkit-slider-runnable-track {
68
+ height: $track-height;
69
+ background: #c2c0c2;
70
+ border: none;
71
+ }
72
+
73
+ input[type=range]::-webkit-slider-thumb {
74
+ -webkit-appearance: none;
75
+ border: none;
76
+ height: $range-height;
77
+ width: $range-width;
78
+ border-radius: 50%;
79
+ background-color: $radio-fill-color;
80
+ transform-origin: 50% 50%;
81
+ margin: -5px 0 0 0;
82
+ transition: .3s;
83
+ }
84
+
85
+ input[type=range]:focus::-webkit-slider-runnable-track {
86
+ background: #ccc;
87
+ }
88
+
89
+ // FireFox
90
+ input[type=range] {
91
+ /* fix for FF unable to apply focus style bug */
92
+ border: 1px solid white;
93
+
94
+ /*required for proper track sizing in FF*/
95
+ }
96
+
97
+ input[type=range]::-moz-range-track {
98
+ height: $track-height;
99
+ background: #ddd;
100
+ border: none;
101
+ }
102
+
103
+ input[type=range]::-moz-range-thumb {
104
+ border: none;
105
+ height: $range-height;
106
+ width: $range-width;
107
+ border-radius: 50%;
108
+ background: $radio-fill-color;
109
+ margin-top: -5px;
110
+ }
111
+
112
+ // hide the outline behind the border
113
+ input[type=range]:-moz-focusring {
114
+ outline: 1px solid #fff;
115
+ outline-offset: -1px;
116
+ }
117
+
118
+ input[type=range]:focus::-moz-range-track {
119
+ background: #ccc;
120
+ }
121
+
122
+ // IE 10+
123
+ input[type=range]::-ms-track {
124
+ height: $track-height;
125
+
126
+ // remove bg colour from the track, we'll use ms-fill-lower and ms-fill-upper instead
127
+ background: transparent;
128
+
129
+ // leave room for the larger thumb to overflow with a transparent border */
130
+ border-color: transparent;
131
+ border-width: 6px 0;
132
+
133
+ /*remove default tick marks*/
134
+ color: transparent;
135
+ }
136
+
137
+ input[type=range]::-ms-fill-lower {
138
+ background: #777;
139
+ }
140
+
141
+ input[type=range]::-ms-fill-upper {
142
+ background: #ddd;
143
+ }
144
+
145
+ input[type=range]::-ms-thumb {
146
+ border: none;
147
+ height: $range-height;
148
+ width: $range-width;
149
+ border-radius: 50%;
150
+ background: $radio-fill-color;
151
+ }
152
+
153
+ input[type=range]:focus::-ms-fill-lower {
154
+ background: #888;
155
+ }
156
+
157
+ input[type=range]:focus::-ms-fill-upper {
158
+ background: #ccc;
159
+ }
@@ -0,0 +1,116 @@
1
+ /* Select Field
2
+ ========================================================================== */
3
+
4
+ select { display: none; }
5
+ select.browser-default { display: block; }
6
+
7
+ select {
8
+ background-color: $select-background;
9
+ width: 100%;
10
+ padding: $select-padding;
11
+ border: $select-border;
12
+ border-radius: $select-radius;
13
+ height: $input-height;
14
+ }
15
+
16
+ .select-label {
17
+ position: absolute;
18
+ }
19
+
20
+ .select-wrapper {
21
+ position: relative;
22
+
23
+ input.select-dropdown {
24
+ position: relative;
25
+ cursor: pointer;
26
+ background-color: transparent;
27
+ border: none;
28
+ border-bottom: $input-border;
29
+ outline: none;
30
+ height: $input-height;
31
+ line-height: $input-height;
32
+ width: 100%;
33
+ font-size: $input-font-size;
34
+ margin: $input-margin;
35
+ padding: 0;
36
+ display: block;
37
+ }
38
+
39
+ span.caret {
40
+ color: initial;
41
+ position: absolute;
42
+ right: 0;
43
+ top: 16px;
44
+ font-size: 10px;
45
+ &.disabled {
46
+ color: $input-disabled-color;
47
+ }
48
+ }
49
+
50
+ & + label {
51
+ position: absolute;
52
+ top: -14px;
53
+ font-size: $label-font-size;
54
+ }
55
+ }
56
+
57
+ // Disabled styles
58
+ select:disabled {
59
+ color: rgba(0,0,0,.3);
60
+ }
61
+
62
+ .select-wrapper input.select-dropdown:disabled {
63
+ color: rgba(0,0,0,.3);
64
+ cursor: default;
65
+ -webkit-user-select: none; /* webkit (safari, chrome) browsers */
66
+ -moz-user-select: none; /* mozilla browsers */
67
+ -ms-user-select: none; /* IE10+ */
68
+ border-bottom: 1px solid rgba(0,0,0,.3);
69
+ }
70
+
71
+ .select-wrapper i {
72
+ color: $select-disabled-color;
73
+ }
74
+
75
+ .select-dropdown li.disabled,
76
+ .select-dropdown li.disabled > span,
77
+ .select-dropdown li.optgroup {
78
+ color: $select-disabled-color;
79
+ background-color: transparent;
80
+ }
81
+
82
+ // Prefix Icons
83
+ .prefix ~ .select-wrapper {
84
+ margin-left: 3rem;
85
+ width: 92%;
86
+ width: calc(100% - 3rem);
87
+ }
88
+
89
+ .prefix ~ label { margin-left: 3rem; }
90
+
91
+ // Icons
92
+ .select-dropdown li {
93
+ img {
94
+ height: $dropdown-item-height - 10;
95
+ width: $dropdown-item-height - 10;
96
+ margin: 5px 15px;
97
+ float: right;
98
+ }
99
+ }
100
+
101
+ // Optgroup styles
102
+ .select-dropdown li.optgroup {
103
+ border-top: 1px solid $dropdown-hover-bg-color;
104
+
105
+ &.selected > span {
106
+ color: rgba(0, 0, 0, .7);
107
+ }
108
+
109
+ & > span {
110
+ color: rgba(0, 0, 0, .4);
111
+ }
112
+
113
+ & ~ li.optgroup-option {
114
+ padding-left: 1rem;
115
+ }
116
+ }