@materializecss/materialize 2.2.1 → 2.2.2

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 (49) hide show
  1. package/README.md +8 -11
  2. package/dist/css/materialize.css +2790 -2140
  3. package/dist/css/materialize.min.css +3 -5
  4. package/dist/css/materialize.min.css.map +1 -1
  5. package/dist/js/materialize.cjs.js +528 -215
  6. package/dist/js/materialize.d.ts +115 -13
  7. package/dist/js/materialize.js +528 -215
  8. package/dist/js/materialize.min.js +3 -3
  9. package/dist/js/materialize.mjs +528 -215
  10. package/package.json +5 -3
  11. package/sass/components/_badges.scss +1 -1
  12. package/sass/components/_breadcrumb.scss +27 -0
  13. package/sass/components/_buttons.scss +60 -167
  14. package/sass/components/_cards.scss +36 -17
  15. package/sass/components/_carousel.scss +16 -18
  16. package/sass/components/_chips.scss +6 -14
  17. package/sass/components/_collapsible.scss +8 -5
  18. package/sass/components/_collection.scss +2 -3
  19. package/sass/components/_color-variables.scss +35 -3
  20. package/sass/components/_datepicker.scss +95 -48
  21. package/sass/components/_dropdown.scss +11 -7
  22. package/sass/components/_global.scss +22 -111
  23. package/sass/components/_grid.scss +3 -1
  24. package/sass/components/_materialbox.scss +5 -6
  25. package/sass/components/_modal.scss +11 -4
  26. package/sass/components/_navbar.scss +17 -16
  27. package/sass/components/_pagination.scss +47 -0
  28. package/sass/components/_preloader.scss +3 -1
  29. package/sass/components/_pulse.scss +3 -3
  30. package/sass/components/_sidenav.scss +15 -17
  31. package/sass/components/_slider.scss +2 -4
  32. package/sass/components/_tabs.scss +45 -33
  33. package/sass/components/_tapTarget.scss +10 -11
  34. package/sass/components/_timepicker.scss +62 -47
  35. package/sass/components/_toast.scss +3 -0
  36. package/sass/components/_tooltip.scss +0 -8
  37. package/sass/components/_transitions.scss +2 -3
  38. package/sass/components/_typography.scss +5 -5
  39. package/sass/components/_variables.scss +3 -2
  40. package/sass/components/forms/_checkboxes.scss +1 -2
  41. package/sass/components/forms/_file-input.scss +7 -9
  42. package/sass/components/forms/_forms.scss +8 -14
  43. package/sass/components/forms/_input-fields.scss +17 -11
  44. package/sass/components/forms/_range.scss +6 -1
  45. package/sass/components/forms/_select.scss +11 -103
  46. package/sass/components/forms/_switches.scss +2 -0
  47. package/sass/components/mixins.module.scss +159 -0
  48. package/sass/materialize.scss +39 -43
  49. package/sass/components/_color-classes.scss +0 -32
@@ -1,5 +1,4 @@
1
- /* Checkboxes
2
- ========================================================================== */
1
+ /* Checkboxes */
3
2
 
4
3
  /* Remove default checkbox */
5
4
  [type="checkbox"]:not(:checked),
@@ -1,9 +1,8 @@
1
1
  .file-field {
2
- //position: relative;
3
2
  display: grid;
4
3
  grid-template-columns: min-content auto;
5
4
  gap: 10px;
6
-
5
+ //position: relative;
7
6
 
8
7
  .file-path-wrapper {
9
8
  overflow: hidden;
@@ -21,17 +20,11 @@
21
20
  }
22
21
 
23
22
  input[type=file] {
24
- // Needed to override webkit button
25
- &::-webkit-file-upload-button {
26
- display: none;
27
- }
28
-
29
23
  position: absolute;
30
24
  top: 0;
31
25
  right: 0;
32
26
  left: 0;
33
- bottom: 0;
34
-
27
+ bottom: 0;
35
28
  cursor: pointer;
36
29
  width: 100%;
37
30
  margin: 0;
@@ -39,5 +32,10 @@
39
32
  opacity: 0;
40
33
  font-size: 20px;
41
34
  filter: alpha(opacity=0);
35
+
36
+ // Needed to override webkit button
37
+ &::-webkit-file-upload-button {
38
+ display: none;
39
+ }
42
40
  }
43
41
  }
@@ -1,24 +1,18 @@
1
+ @forward 'input-fields';
2
+ @forward 'radio-buttons';
3
+ @forward 'checkboxes';
4
+ @forward 'switches';
5
+ @forward 'select';
6
+ @forward 'file-input';
7
+ @forward 'range';
8
+
1
9
  // Remove Focus Boxes
2
10
  select:focus {
3
11
  outline: 1px solid var(--md-ref-palette-primary80);
4
12
  }
5
13
 
6
- /*
7
- button:focus {
8
- outline: none;
9
- background-color: $button-background-focus;
10
- }
11
- */
12
-
13
14
  label {
14
15
  font-size: .8rem;
15
16
  color: var(--md-sys-color-on-surface-variant);
16
17
  }
17
18
 
18
- @import 'input-fields';
19
- @import 'radio-buttons';
20
- @import 'checkboxes';
21
- @import 'switches';
22
- @import 'select';
23
- @import 'file-input';
24
- @import 'range';
@@ -1,3 +1,5 @@
1
+ @use '../variables' as *;
2
+
1
3
  /* Style Placeholders */
2
4
  ::placeholder {
3
5
  color: var(--md-sys-color-on-surface-variant);
@@ -23,15 +25,18 @@ textarea.materialize-textarea {
23
25
  width: 100%;
24
26
  font-size: $md_sys_typescale_body-large_size; //16px; // => 16 dp
25
27
  height: 56px; // 56dp
28
+ background-color: transparent;
26
29
  }
27
30
 
28
31
  %invalid-input-style {
29
32
  border-bottom: 2px solid var(--md-sys-color-error);
30
33
  box-shadow: 0 1px 0 0 var(--md-sys-color-error);
31
34
  }
35
+
32
36
  %hidden-text > span {
33
37
  display: none
34
38
  }
39
+
35
40
  %custom-error-message {
36
41
  content: attr(data-error);
37
42
  color: var(--md-sys-color-error);
@@ -47,12 +52,9 @@ textarea.materialize-textarea {
47
52
 
48
53
  input, textarea {
49
54
  box-sizing: border-box; /* https://stackoverflow.com/questions/1377719/padding-within-inputs-breaks-width-100*/
50
-
51
55
  padding: 0 16px;
52
56
  padding-top: 20px;
53
-
54
- background-color: var(--md-sys-color-surface);
55
-
57
+ //background-color: transparent; //background-color: var(--md-sys-color-surface);
56
58
  border: none; // reset
57
59
  border-radius: 4px; // md.sys.shape.corner.extra-small.top
58
60
  border-bottom: 1px solid var(--md-sys-color-on-surface-variant);
@@ -173,13 +175,14 @@ textarea.materialize-textarea {
173
175
 
174
176
  // Outlined
175
177
 
178
+ // todo: use this approach for floating labels with outline
179
+ // https://dev.to/icyjoseph/use-more-html-elements-floating-from-field-37o9
180
+
176
181
  &.outlined {
177
182
 
178
183
  input, textarea {
179
184
  padding-top: 0;
180
-
181
- background-color: var(--md-sys-color-background);
182
-
185
+ background-color: transparent; //(--md-sys-color-background);
183
186
  border: 1px solid var(--md-sys-color-on-surface-variant);
184
187
  border-radius: 4px; // md.sys.shape.corner.extra-small
185
188
 
@@ -189,6 +192,7 @@ textarea.materialize-textarea {
189
192
  margin-left: -1px; // subtract border-width
190
193
 
191
194
  }
195
+
192
196
  // Label
193
197
  &:focus:not([readonly]) + label {
194
198
  color: var(--input-color);
@@ -200,14 +204,13 @@ textarea.materialize-textarea {
200
204
  left: 16px;
201
205
  margin-left: -4px;
202
206
  padding: 0 4px;
203
- background-color: var(--md-sys-color-background);
207
+ background-color: transparent; //var(--md-sys-color-background);
204
208
  }
205
209
 
206
210
  &:disabled, &[readonly="readonly"] {
207
211
  color: rgba(var(--md_sys_color_on-surface), 0.38);
208
212
  border-color: rgba(var(--md_sys_color_on-surface), 0.12);
209
213
  }
210
-
211
214
  }
212
215
  }
213
216
 
@@ -234,11 +237,15 @@ textarea.materialize-textarea {
234
237
  }
235
238
  }
236
239
 
240
+ /* Inline */
241
+ .inline {
242
+ display: inline-block;
243
+ }
244
+
237
245
  /* Search Field */
238
246
  .searchbar {
239
247
  .prefix {
240
248
  position: absolute;
241
- //left: 12px;
242
249
  padding-left: 1rem;
243
250
  top: 0;
244
251
  user-select: none;
@@ -307,7 +314,6 @@ textarea {
307
314
  word-wrap: break-word;
308
315
  overflow-wrap: break-word; /* future version of deprecated 'word-wrap' */
309
316
  padding-top: 1.2rem; /* prevents text jump on Enter keypress */
310
-
311
317
  // Reduces repaints
312
318
  position: absolute;
313
319
  top: 0;
@@ -1,3 +1,6 @@
1
+ @use '../global' as *;
2
+ @use '../colors.module.scss' as *;
3
+
1
4
  .range-field {
2
5
  position: relative;
3
6
  }
@@ -10,12 +13,13 @@ input[type=range] + .thumb {
10
13
 
11
14
  input[type=range] {
12
15
  position: relative;
13
- background-color: transparent;
16
+ background: linear-gradient(var(--md-sys-color-outline-variant), var(--md-sys-color-outline-variant));
14
17
  border: none;
15
18
  outline: none;
16
19
  width: 100%;
17
20
  margin: 15px 0;
18
21
  padding: 0;
22
+ height: 3px;
19
23
 
20
24
  &:focus {
21
25
  outline: none;
@@ -75,6 +79,7 @@ input[type=range] + .thumb {
75
79
 
76
80
  // WebKit
77
81
  input[type=range] {
82
+ appearance: none;
78
83
  -webkit-appearance: none;
79
84
  }
80
85
 
@@ -1,10 +1,14 @@
1
+ @use '../variables' as *;
2
+
1
3
  select.browser-default {
2
4
  opacity: 1;
3
5
  color: var(--md-sys-color-on-background);
4
6
  }
5
7
 
8
+ // TODO: Change to ".select" and not use tag name directly
9
+ // Keep selects useable without javascript
10
+
6
11
  select {
7
- opacity: 0;
8
12
  background-color: var(--md-sys-color-surface);
9
13
  width: 100%;
10
14
  padding: 5px;
@@ -13,68 +17,14 @@ select {
13
17
  height: 3rem;
14
18
  }
15
19
 
16
- .select-wrapper {
17
- /*
18
- &.valid .helper-text[data-success],
19
- &.invalid ~ .helper-text[data-error] {
20
- @extend %hidden-text;
21
- }
22
-
23
- &.valid {
24
- & > input.select-dropdown {
25
- @extend %valid-input-style;
26
- }
27
- & ~ .helper-text:after {
28
- //@extend %custom-success-message;
29
- }
30
- }
31
-
32
- &.invalid {
33
- & > input.select-dropdown,
34
- & > input.select-dropdown:focus {
35
- @extend %invalid-input-style;
36
- }
37
- & ~ .helper-text:after {
38
- //@extend %custom-error-message;
39
- }
40
- }
41
-
42
- &.valid + label,
43
- &.invalid + label {
44
- width: 100%;
45
- pointer-events: none;
46
- }
47
- & + label:after {
48
- //@extend %input-after-style;
49
- }
50
- */
20
+ .select-wrapper:focus-within {
21
+ outline: 2px solid var(--md-sys-color-primary);
22
+ border-radius: 4px;
23
+ }
51
24
 
25
+ .select-wrapper {
52
26
  position: relative;
53
27
 
54
- /*
55
- input.select-dropdown {
56
- &:focus {
57
- border-bottom: 1px solid var(--md-sys-color-primary);
58
- }
59
- position: relative;
60
- cursor: pointer;
61
- background-color: transparent;
62
- border: none;
63
- border-bottom: 2px solid var(--md-sys-color-on-surface-variant);
64
- outline: none;
65
- height: 3rem;
66
- line-height: 3rem;
67
- width: 100%;
68
- font-size: 16px;
69
- margin: 0 0 8px 0;
70
- padding: 0;
71
- display: block;
72
- user-select:none;
73
- z-index: 1;
74
- color: var(--md-sys-color-on-background);
75
- }
76
- */
77
-
78
28
  .caret {
79
29
  position: absolute;
80
30
  right: 0;
@@ -83,6 +33,7 @@ select {
83
33
  margin: auto 0;
84
34
  z-index: 0;
85
35
  fill: var(--md-sys-color-on-background);
36
+ pointer-events: none;
86
37
  }
87
38
 
88
39
  // Hide select with overflow hidden instead of using display none
@@ -127,43 +78,6 @@ select:disabled {
127
78
  //background-color: transparent;
128
79
  }
129
80
 
130
- /*
131
- body.keyboard-focused {
132
- .select-dropdown.dropdown-content li:focus {
133
- //background-color: $select-option-focus;
134
- }
135
- }
136
-
137
- .select-dropdown.dropdown-content {
138
- li {
139
- &:hover:not(.disabled) {
140
- //background-color: $select-option-hover;
141
- }
142
-
143
- &.selected:not(.disabled) {
144
- //background-color: $select-option-selected;
145
- }
146
- }
147
- }
148
- */
149
-
150
- /*
151
- // Prefix Icons
152
- .prefix ~ .select-wrapper {
153
- margin-left: 3rem;
154
- width: 92%;
155
- width: calc(100% - 3rem);
156
- }
157
- .prefix ~ label { margin-left: 3rem; }
158
- // Suffix Icons
159
- .suffix ~ .select-wrapper {
160
- margin-right: 3rem;
161
- width: 92%;
162
- width: calc(100% - 3rem);
163
- }
164
- .suffix ~ label { margin-right: 3rem; }
165
- */
166
-
167
81
  // Icons
168
82
  .select-dropdown li {
169
83
  img {
@@ -187,9 +101,3 @@ body.keyboard-focused {
187
101
  padding-left: 1rem;
188
102
  }
189
103
  }
190
-
191
- /*
192
- .select-dropdown .selected {
193
- color: red;
194
- }
195
- */
@@ -1,3 +1,5 @@
1
+ @use '../colors.module.scss' as *;
2
+
1
3
  .switch {
2
4
  --track-height: 32px;
3
5
  --track-width: 52px;
@@ -0,0 +1,159 @@
1
+ @use './variables' as *;
2
+ @use './global' as *;
3
+
4
+ @mixin btn(
5
+ $height: var(--btn-height),
6
+ $border-radius: var(--btn-border-radius),
7
+ $padding-left: var(--btn-padding),
8
+ $padding-right: var(--btn-padding),
9
+ $font-size: var(--btn-font-size),
10
+ ) {
11
+ height: $height;
12
+ border-radius: $border-radius;
13
+ padding-left: $padding-left;
14
+ padding-right: $padding-right;
15
+ font-size: $font-size;
16
+ font-weight: 500;
17
+ text-decoration: none;
18
+ display: inline-flex;
19
+ align-items: center;
20
+ border: none;
21
+ cursor: pointer;
22
+ -webkit-tap-highlight-color: transparent; // Gets rid of tap active state
23
+ white-space: nowrap;
24
+ outline: 0;
25
+ user-select: none;
26
+ transition: background-color .2s ease-out;
27
+
28
+ &:focus {
29
+ background-color: var(--md-sys-color-primary-container);
30
+ }
31
+ }
32
+
33
+ @mixin btn-filled {
34
+ color: var(--md-sys-color-on-primary);
35
+ background-color: var(--md-sys-color-primary);
36
+
37
+ &:hover,
38
+ &:focus {
39
+ color: var(--md-sys-color-on-primary);
40
+ }
41
+
42
+ &:hover {
43
+ @extend .z-depth-1;
44
+ background-color: color-mix(in srgb, var(--md-sys-color-primary), var(--md-sys-color-on-primary) 16%);
45
+ }
46
+
47
+ &:focus {
48
+ @extend .z-depth-0;
49
+ background-color: color-mix(in srgb, var(--md-sys-color-primary), var(--md-sys-color-on-primary) 20%);
50
+ }
51
+
52
+ @include focus-visible();
53
+ }
54
+
55
+ @mixin btn-tonal {
56
+ color: var(--md-sys-color-on-secondary-container);
57
+ background-color: var(--md-sys-color-secondary-container);
58
+
59
+ &:hover,
60
+ &:focus {
61
+ color: var(--md-sys-color-on-secondary-container);
62
+ }
63
+
64
+ &:hover {
65
+ @extend .z-depth-1;
66
+ background-color: color-mix(in srgb, var(--md-sys-color-secondary-container), var(--md-sys-color-on-secondary-container) 16%);
67
+ }
68
+
69
+ &:focus {
70
+ @extend .z-depth-0;
71
+ background-color: color-mix(in srgb, var(--md-sys-color-secondary-container), var(--md-sys-color-on-secondary-container) 20%);
72
+ }
73
+
74
+ @include focus-visible();
75
+ }
76
+
77
+ @mixin btn-elevated {
78
+ color: var(--md-sys-color-on-secondary-container);
79
+ background-color: var(--md-sys-color-secondary-container);
80
+ @extend .z-depth-1;
81
+
82
+ &:hover,
83
+ &:focus {
84
+ color: var(--md-sys-color-primary);
85
+ }
86
+
87
+ &:hover {
88
+ @extend .z-depth-2;
89
+ background-color: color-mix(in srgb, var(--md-sys-color-secondary-container), var(--md-sys-color-on-secondary-container) 16%);
90
+ }
91
+
92
+ &:focus {
93
+ @extend .z-depth-1;
94
+ background-color: color-mix(in srgb, var(--md-sys-color-secondary-container), var(--md-sys-color-primary) 20%);
95
+ }
96
+
97
+ @include focus-visible();
98
+ }
99
+
100
+ @mixin btn-outlined {
101
+ background-color: transparent;
102
+ color: var(--md-sys-color-primary);
103
+ border: 1px solid var(--md-sys-color-outline);
104
+
105
+ &:hover,
106
+ &:focus {
107
+ color: var(--md-sys-color-primary);
108
+ }
109
+
110
+ &:hover {
111
+ background-color: color-mix(in srgb, transparent, var(--md-sys-color-primary) 16%);
112
+ }
113
+
114
+ &:focus {
115
+ background-color: color-mix(in srgb, transparent, var(--md-sys-color-primary) 20%);
116
+ border: 1px solid var(--md-sys-color-primary);
117
+ }
118
+
119
+ @include focus-visible();
120
+ }
121
+
122
+ @mixin btn-flat {
123
+ @extend .z-depth-0;
124
+ color: var(--md-sys-color-primary);
125
+ background-color: transparent;
126
+
127
+ &:hover,
128
+ &:focus {
129
+ color: var(--md-sys-color-primary);
130
+ }
131
+
132
+ &:hover {
133
+ background-color: color-mix(in srgb, var(--md-sys-color-primary) 16%, transparent);
134
+ }
135
+
136
+ &:focus {
137
+ background-color: color-mix(in srgb, transparent, var(--md-sys-color-primary) 20%);
138
+ }
139
+
140
+ @include focus-visible();
141
+ }
142
+
143
+ @mixin btn-disabled {
144
+ @extend .z-depth-0;
145
+ color: color-mix(in srgb, transparent, var(--md-sys-color-on-surface) 76%);
146
+ background-color: color-mix(in srgb, transparent, var(--md-sys-color-on-surface) 24%);
147
+ pointer-events: none;
148
+ box-shadow: none;
149
+ cursor: default;
150
+ }
151
+
152
+ // Focus with Keyboard
153
+ @mixin focus-visible {
154
+ &:focus-visible {
155
+ outline: 3px solid var(--md-sys-color-secondary);
156
+ outline-offset: 2px;
157
+ }
158
+ }
159
+
@@ -1,47 +1,43 @@
1
1
  @charset "UTF-8";
2
2
 
3
- @import "components/tokens.module";
4
- @import "components/theme.module";
5
- //@import "components/_theme_variables";
6
- @import "components/colors.module";
7
- @import "components/typography.module";
8
-
9
- // Color
10
- @import "components/color-variables";
11
- @import "components/color-classes";
12
- // Variables;
13
- @import "components/variables";
14
-
15
- // Reset
16
- @import "components/normalize";
3
+ @forward "components/tokens.module";
4
+ @forward "components/theme.module";
5
+ //@forward "components/_theme_variables";
6
+ @forward "components/colors.module";
7
+ @forward "components/typography.module";
8
+ @forward "components/mixins.module";
9
+ @forward "components/color-variables";
10
+ @forward "components/variables";
11
+ @forward "components/normalize";
17
12
 
18
13
  // components
19
- @import "components/global";
20
- @import "components/collection";
21
- @import "components/badges";
22
- @import "components/icons-material-design";
23
- @import "components/grid";
24
- @import "components/navbar";
25
- @import "components/typography";
26
- @import "components/transitions";
27
- @import "components/cards";
28
- @import "components/toast";
29
- @import "components/tabs";
30
- @import "components/tooltip";
31
- @import "components/buttons";
32
- @import "components/dropdown";
33
-
34
- @import "components/modal";
35
- @import "components/collapsible";
36
- @import "components/chips";
37
- @import "components/materialbox";
38
- @import "components/forms/forms";
39
- @import "components/table_of_contents";
40
- @import "components/sidenav";
41
- @import "components/preloader";
42
- @import "components/slider";
43
- @import "components/carousel";
44
- @import "components/tapTarget";
45
- @import "components/pulse";
46
- @import "components/datepicker";
47
- @import "components/timepicker";
14
+ @forward "components/global";
15
+ @forward "components/typography";
16
+ @forward "components/buttons";
17
+ @forward "components/collection";
18
+ @forward "components/badges";
19
+ @forward "components/icons-material-design";
20
+ @forward "components/grid";
21
+ @forward "components/navbar";
22
+ @forward "components/transitions";
23
+ @forward "components/cards";
24
+ @forward "components/toast";
25
+ @forward "components/tabs";
26
+ @forward "components/tooltip";
27
+ @forward "components/dropdown";
28
+ @forward "components/modal";
29
+ @forward "components/collapsible";
30
+ @forward "components/chips";
31
+ @forward "components/materialbox";
32
+ @forward "components/forms/forms";
33
+ @forward "components/table_of_contents";
34
+ @forward "components/sidenav";
35
+ @forward "components/preloader";
36
+ @forward "components/slider";
37
+ @forward "components/carousel";
38
+ @forward "components/tapTarget";
39
+ @forward "components/pulse";
40
+ @forward "components/datepicker";
41
+ @forward "components/timepicker";
42
+ @forward "components/breadcrumb";
43
+ @forward "components/pagination";
@@ -1,32 +0,0 @@
1
- // Color Classes
2
-
3
- @each $color_name, $color in $colors {
4
- @each $color_type, $color_value in $color {
5
- @if $color_type == "base" {
6
- .#{$color_name} {
7
- background-color: $color_value !important;
8
- }
9
- .#{$color_name}-text {
10
- color: $color_value !important;
11
- }
12
- }
13
- @else if $color_name != "shades" {
14
- .#{$color_name}.#{$color_type} {
15
- background-color: $color_value !important;
16
- }
17
- .#{$color_name}-text.text-#{$color_type} {
18
- color: $color_value !important;
19
- }
20
- }
21
- }
22
- }
23
-
24
- // Shade classes
25
- @each $color, $color_value in $shades {
26
- .#{$color} {
27
- background-color: $color_value !important;
28
- }
29
- .#{$color}-text {
30
- color: $color_value !important;
31
- }
32
- }