m3-svelte 5.15.5 → 6.0.0

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 (73) hide show
  1. package/package/buttons/Button.svelte +137 -131
  2. package/package/buttons/ConnectedButtons.svelte +1 -1
  3. package/package/buttons/FAB.svelte +27 -20
  4. package/package/buttons/SplitButton.svelte +26 -19
  5. package/package/containers/BottomSheet.svelte +7 -7
  6. package/package/containers/Card.svelte +12 -12
  7. package/package/containers/Dialog.svelte +33 -44
  8. package/package/containers/Dialog.svelte.d.ts +0 -8
  9. package/package/containers/ListItem.svelte +43 -11
  10. package/package/containers/Menu.svelte +3 -3
  11. package/package/containers/MenuItem.svelte +13 -6
  12. package/package/containers/Snackbar.svelte +49 -45
  13. package/package/containers/Snackbar.svelte.d.ts +4 -17
  14. package/package/containers/SnackbarItem.svelte +6 -6
  15. package/package/containers/StandardSideSheet.svelte +11 -2
  16. package/package/forms/Checkbox.svelte +12 -12
  17. package/package/forms/Chip.svelte +28 -18
  18. package/package/forms/CircularProgress.svelte +3 -3
  19. package/package/forms/CircularProgressEstimate.svelte +2 -2
  20. package/package/forms/DateField.svelte +30 -18
  21. package/package/forms/DateFieldOutlined.svelte +39 -27
  22. package/package/forms/DatePickerDocked.svelte +2 -2
  23. package/package/forms/LinearProgress.svelte +5 -5
  24. package/package/forms/LinearProgressEstimate.svelte +4 -4
  25. package/package/forms/LoadingIndicator.svelte +4 -4
  26. package/package/forms/RadioAnim1.svelte +9 -9
  27. package/package/forms/RadioAnim2.svelte +9 -9
  28. package/package/forms/RadioAnim3.svelte +9 -9
  29. package/package/forms/Select.svelte +43 -35
  30. package/package/forms/SelectOutlined.svelte +44 -36
  31. package/package/forms/Slider.svelte +35 -30
  32. package/package/forms/Switch.svelte +27 -28
  33. package/package/forms/TextField.svelte +41 -29
  34. package/package/forms/TextFieldMultiline.svelte +41 -29
  35. package/package/forms/TextFieldOutlined.svelte +41 -29
  36. package/package/forms/TextFieldOutlinedMultiline.svelte +41 -29
  37. package/package/forms/WavyLinearProgress.svelte +2 -7
  38. package/package/forms/WavyLinearProgressEstimate.svelte +2 -7
  39. package/package/forms/_picker/CalendarPicker.svelte +9 -2
  40. package/package/forms/_picker/FocusPicker.svelte +9 -7
  41. package/package/forms/_picker/Header.svelte +12 -5
  42. package/package/forms/_picker/Item.svelte +15 -8
  43. package/package/index.d.ts +4 -8
  44. package/package/index.js +4 -7
  45. package/package/{utils → misc}/Divider.svelte +1 -1
  46. package/package/misc/Icon.svelte +0 -4
  47. package/package/misc/Layer.svelte +1 -1
  48. package/package/{utils → misc}/badge.js +8 -5
  49. package/package/misc/recommended-styles.css +9 -9
  50. package/package/misc/styles.css +160 -227
  51. package/package/misc/tailwind-styles.css +199 -107
  52. package/package/misc/utils.js +2 -4
  53. package/package/nav/NavCMLX.svelte +65 -29
  54. package/package/nav/NavCMLX.svelte.d.ts +1 -1
  55. package/package/nav/NavCMLXItem.svelte +359 -188
  56. package/package/nav/NavCMLXItem.svelte.d.ts +4 -7
  57. package/package/nav/Tabs.svelte +19 -10
  58. package/package/nav/TabsLink.svelte +19 -10
  59. package/package/nav/VariableTabs.svelte +18 -9
  60. package/package/nav/VariableTabsLink.svelte +18 -9
  61. package/package.json +16 -13
  62. package/package/containers/NewSnackbar.svelte +0 -113
  63. package/package/containers/NewSnackbar.svelte.d.ts +0 -7
  64. package/package/forms/CircularProgressIndeterminate.svelte +0 -62
  65. package/package/forms/CircularProgressIndeterminate.svelte.d.ts +0 -5
  66. package/package/forms/LinearProgressIndeterminate.svelte +0 -57
  67. package/package/forms/LinearProgressIndeterminate.svelte.d.ts +0 -5
  68. package/package/forms/SliderTicks.svelte +0 -12
  69. package/package/forms/SliderTicks.svelte.d.ts +0 -18
  70. /package/package/{utils → misc}/ChipChooser.svelte +0 -0
  71. /package/package/{utils → misc}/ChipChooser.svelte.d.ts +0 -0
  72. /package/package/{utils → misc}/Divider.svelte.d.ts +0 -0
  73. /package/package/{utils → misc}/badge.d.ts +0 -0
@@ -70,8 +70,8 @@
70
70
  <style>
71
71
  @layer tokens {
72
72
  :root {
73
- --m3-switch-track-shape: var(--m3-util-rounding-full);
74
- --m3-switch-handle-shape: var(--m3-util-rounding-full);
73
+ --m3-switch-track-shape: var(--m3-shape-full);
74
+ --m3-switch-handle-shape: var(--m3-shape-full);
75
75
  }
76
76
  }
77
77
  .m3-container {
@@ -87,10 +87,10 @@
87
87
  margin: 0;
88
88
  border-radius: var(--m3-switch-track-shape);
89
89
 
90
- background-color: rgb(var(--m3-scheme-surface-container-highest));
91
- border: solid 0.125rem rgb(var(--m3-scheme-outline));
90
+ background-color: var(--m3c-surface-container-highest);
91
+ border: solid 0.125rem var(--m3c-outline);
92
92
  cursor: pointer;
93
- transition: var(--m3-util-easing);
93
+ transition: var(--m3-easing);
94
94
  }
95
95
  .handle {
96
96
  position: absolute;
@@ -98,11 +98,10 @@
98
98
  height: 1rem;
99
99
  border-radius: var(--m3-switch-handle-shape);
100
100
 
101
- background-color: rgb(var(--m3-scheme-outline));
102
- /* Fallback for those without on on primary */
103
- color: rgb(var(--m3-scheme-on-on-primary, var(--m3-scheme-on-primary-container)));
101
+ background-color: var(--m3c-outline);
102
+ color: var(--m3c-on-on-primary);
104
103
  cursor: pointer;
105
- transition: var(--m3-util-easing-fast-spatial);
104
+ transition: var(--m3-easing-fast-spatial);
106
105
 
107
106
  left: 0.5rem;
108
107
  top: 50%;
@@ -116,13 +115,13 @@
116
115
  height: 1rem;
117
116
  opacity: 0;
118
117
  transition:
119
- opacity var(--m3-util-easing-fast-spatial),
120
- scale var(--m3-util-easing-fast-spatial);
118
+ opacity var(--m3-easing-fast-spatial),
119
+ scale var(--m3-easing-fast-spatial);
121
120
  }
122
121
  input:not(:checked) + :global(.handle:has(:nth-child(2))) {
123
122
  scale: 1.5;
124
123
  > :global(svg) {
125
- color: rgb(var(--m3-scheme-surface-container-highest));
124
+ color: var(--m3c-surface-container-highest);
126
125
  scale: 0.667;
127
126
  opacity: 1;
128
127
  }
@@ -137,10 +136,10 @@
137
136
  position: absolute;
138
137
  width: 3rem;
139
138
  height: 3rem;
140
- border-radius: var(--m3-util-rounding-full);
139
+ border-radius: var(--m3-shape-full);
141
140
 
142
141
  cursor: pointer;
143
- transition: var(--m3-util-easing-fast);
142
+ transition: var(--m3-easing-fast);
144
143
 
145
144
  left: 1rem;
146
145
  top: 50%;
@@ -152,26 +151,26 @@
152
151
 
153
152
  .m3-container:hover > input:not(:checked):not(:disabled) + .handle,
154
153
  .m3-container:active > input:not(:checked):not(:disabled) + .handle {
155
- background-color: rgb(var(--m3-scheme-on-surface-variant));
154
+ background-color: var(--m3c-on-surface-variant);
156
155
  }
157
156
  .m3-container:hover > input:enabled:checked + .handle,
158
157
  .m3-container > input:enabled:checked:is(:global(:active, :focus-visible)) + .handle {
159
- background-color: rgb(var(--m3-scheme-primary-container));
160
- color: rgb(var(--m3-scheme-on-primary-container));
158
+ background-color: var(--m3c-primary-container);
159
+ color: var(--m3c-on-primary-container);
161
160
  }
162
161
  .m3-container:hover > input ~ .hover {
163
- background-color: rgb(var(--m3-scheme-on-surface) / 0.08);
162
+ background-color: oklab(from var(--m3c-on-surface) l a b / 0.08);
164
163
  }
165
164
  .m3-container:hover > input:checked ~ .hover {
166
- background-color: rgb(var(--m3-scheme-primary) / 0.08);
165
+ background-color: oklab(from var(--m3c-primary) l a b / 0.08);
167
166
  }
168
167
 
169
168
  input:checked {
170
- background-color: rgb(var(--m3-scheme-primary));
171
- border-color: rgb(var(--m3-scheme-primary));
169
+ background-color: var(--m3c-primary);
170
+ border-color: var(--m3c-primary);
172
171
  }
173
172
  input:checked + .handle {
174
- background-color: rgb(var(--m3-scheme-on-primary));
173
+ background-color: var(--m3c-on-primary);
175
174
  scale: 1.5;
176
175
  left: 1.75rem;
177
176
  }
@@ -190,23 +189,23 @@
190
189
  }
191
190
 
192
191
  input:disabled {
193
- background-color: rgb(var(--m3-scheme-surface-container-highest) / 0.12);
194
- border-color: rgb(var(--m3-scheme-outline) / 0.12);
192
+ background-color: oklab(from var(--m3c-surface-container-highest) l a b / 0.12);
193
+ border-color: oklab(from var(--m3c-outline) l a b / 0.12);
195
194
  cursor: auto;
196
195
  }
197
196
  input:disabled:checked {
198
- background-color: rgb(var(--m3-scheme-on-surface) / 0.12);
197
+ background-color: oklab(from var(--m3c-on-surface) l a b / 0.12);
199
198
  border-color: transparent;
200
199
  }
201
200
  input:disabled + .handle {
202
- background-color: rgb(var(--m3-scheme-on-surface) / 0.38);
201
+ background-color: oklab(from var(--m3c-on-surface) l a b / 0.38);
203
202
  cursor: auto;
204
203
  }
205
204
  input:disabled:checked + .handle {
206
- background-color: rgb(var(--m3-scheme-surface));
205
+ background-color: var(--m3c-surface);
207
206
  }
208
207
  input:disabled:checked + .handle > :global(svg) {
209
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
208
+ color: oklab(from var(--m3c-on-surface) l a b / 0.38);
210
209
  }
211
210
  input:disabled ~ .hover {
212
211
  display: none;
@@ -35,7 +35,7 @@
35
35
  class:error
36
36
  >
37
37
  <input
38
- class="focus-none m3-font-body-large"
38
+ class="focus-none"
39
39
  placeholder=" "
40
40
  bind:value
41
41
  onkeydown={(e) => e.key == "Enter" && enter?.()}
@@ -43,10 +43,8 @@
43
43
  {disabled}
44
44
  {required}
45
45
  {...extra}
46
- defaultValue={extra.defaultValue}
47
46
  />
48
- <!-- TODO/deprecated: once https://github.com/sveltejs/svelte/pull/16481 is finished, remove the defaultvalue thing -->
49
- <label class="m3-font-body-large" for={id}>{label}</label>
47
+ <label for={id}>{label}</label>
50
48
  <div class="layer"></div>
51
49
  {#if leadingIcon}
52
50
  <Icon icon={leadingIcon} class="leading" />
@@ -63,11 +61,7 @@
63
61
  <style>
64
62
  @layer tokens {
65
63
  :root {
66
- /* "textfield" is deprecated */
67
- --m3-field-filled-shape: var(
68
- --m3-textfield-filled-shape,
69
- var(--m3-util-rounding-extra-small)
70
- );
64
+ --m3-field-filled-shape: var(--m3-shape-extra-small);
71
65
  }
72
66
  }
73
67
 
@@ -75,10 +69,17 @@
75
69
  display: inline-flex;
76
70
  position: relative;
77
71
  align-items: center;
78
- height: calc(3.5rem + var(--m3-util-density-term));
72
+ height: calc(3.5rem + (var(--m3v-density) * 0.25rem));
79
73
  min-width: 15rem;
80
74
  }
81
75
  input {
76
+
77
+ font-family: var(--m3-font);
78
+ font-size: 1rem;
79
+ line-height: 1.5;
80
+ letter-spacing: 0;
81
+ font-weight: 400;
82
+
82
83
  position: absolute;
83
84
  inset: 0;
84
85
  width: 100%;
@@ -87,30 +88,41 @@
87
88
  outline: none;
88
89
  padding: 1.5rem 1rem 0.5rem 1rem;
89
90
  border-radius: var(--m3-field-filled-shape) var(--m3-field-filled-shape) 0 0;
90
- background-color: rgb(var(--m3-scheme-surface-container-highest));
91
- color: rgb(var(--m3-scheme-on-surface));
91
+ background-color: var(--m3c-surface-container-highest);
92
+ color: var(--m3c-on-surface);
92
93
  }
93
94
  label {
95
+
96
+ font-family: var(--m3-font);
97
+ font-size: 1rem;
98
+ line-height: 1.5;
99
+ letter-spacing: 0;
100
+ font-weight: 400;
101
+
94
102
  position: absolute;
95
103
  inset-inline-start: 1rem;
96
104
  top: 50%;
97
105
  translate: 0 -50%;
98
- color: rgb(var(--error, var(--m3-scheme-on-surface-variant)));
106
+ color: var(--error, var(--m3c-on-surface-variant));
99
107
  &:is(input:hover ~ label) {
100
- color: rgb(var(--error, var(--m3-scheme-on-surface)));
108
+ color: var(--error, var(--m3c-on-surface));
101
109
  }
102
110
  &:is(input:focus ~ label) {
103
- color: rgb(var(--error, var(--m3-scheme-primary)));
111
+ color: var(--error, var(--m3c-primary));
104
112
  }
105
113
  &:is(input:disabled ~ label) {
106
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
114
+ color: oklab(from var(--m3c-on-surface) l a b / 0.38);
107
115
  }
108
116
  &:is(input:focus ~ label, input:not(:placeholder-shown) ~ label) {
117
+
118
+ font-family: var(--m3-font);
119
+ font-size: 0.75rem;
120
+ line-height: 1.333;
121
+ letter-spacing: 0.025rem;
122
+ font-weight: 400;
123
+
109
124
  top: 0.5rem;
110
125
  translate: 0 0;
111
- font-size: var(--m3-font-body-small-size);
112
- line-height: var(--m3-font-body-small-height);
113
- letter-spacing: var(--m3-font-body-small-tracking);
114
126
  }
115
127
  pointer-events: none;
116
128
  transition:
@@ -128,7 +140,7 @@
128
140
  pointer-events: none;
129
141
  transition: all 100ms;
130
142
  &:is(input:enabled:hover ~ .layer) {
131
- background-color: rgb(var(--m3-scheme-on-surface) / 0.08);
143
+ background-color: oklab(from var(--m3c-on-surface) l a b / 0.08);
132
144
  }
133
145
  }
134
146
  .layer::after {
@@ -139,13 +151,13 @@
139
151
  bottom: 0;
140
152
 
141
153
  height: 1px;
142
- background-color: rgb(var(--error, var(--m3-scheme-on-surface-variant)));
154
+ background-color: var(--error, var(--m3c-on-surface-variant));
143
155
  transition: all 100ms;
144
156
  }
145
157
  .m3-container :global(svg) {
146
158
  width: 1.5rem;
147
159
  height: 1.5rem;
148
- color: rgb(var(--m3-scheme-on-surface-variant));
160
+ color: var(--m3c-on-surface-variant);
149
161
  pointer-events: none;
150
162
  }
151
163
  .m3-container > :global(.leading) {
@@ -171,7 +183,7 @@
171
183
 
172
184
  input:focus ~ .layer::after {
173
185
  height: 0.125rem;
174
- background-color: rgb(var(--error, var(--m3-scheme-primary)));
186
+ background-color: var(--error, var(--m3c-primary));
175
187
  }
176
188
 
177
189
  .leading-icon > input {
@@ -184,21 +196,21 @@
184
196
  padding-inline-end: 3.25rem;
185
197
  }
186
198
  .error {
187
- --error: var(--m3-scheme-error);
199
+ --error: var(--m3c-error);
188
200
  }
189
201
  .error > input:hover ~ label,
190
202
  .error > input:hover ~ .layer {
191
- --error: var(--m3-scheme-on-error-container);
203
+ --error: var(--m3c-on-error-container);
192
204
  }
193
205
  input:disabled {
194
- background-color: rgb(var(--m3-scheme-on-surface) / 0.04);
195
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
206
+ background-color: oklab(from var(--m3c-on-surface) l a b / 0.04);
207
+ color: oklab(from var(--m3c-on-surface) l a b / 0.38);
196
208
  }
197
209
  input:disabled ~ .layer::after {
198
- background-color: rgb(var(--m3-scheme-on-surface) / 0.38);
210
+ background-color: oklab(from var(--m3c-on-surface) l a b / 0.38);
199
211
  }
200
212
  input:disabled ~ :global(svg) {
201
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
213
+ color: oklab(from var(--m3c-on-surface) l a b / 0.38);
202
214
  }
203
215
 
204
216
  .m3-container {
@@ -38,17 +38,15 @@
38
38
 
39
39
  <div class="m3-container" class:leading-icon={leadingIcon} class:error use:resize>
40
40
  <textarea
41
- class="focus-none m3-font-body-large"
41
+ class="focus-none"
42
42
  placeholder=" "
43
43
  bind:value
44
44
  {id}
45
45
  {disabled}
46
46
  {required}
47
47
  {...extra}
48
- defaultValue={extra.defaultValue}
49
48
  ></textarea>
50
- <!-- TODO/deprecated: once https://github.com/sveltejs/svelte/pull/16481 is finished, remove the defaultvalue thing -->
51
- <label class="m3-font-body-large" for={id}>{label}</label>
49
+ <label for={id}>{label}</label>
52
50
  <div class="layer"></div>
53
51
  {#if leadingIcon}
54
52
  <Icon icon={leadingIcon} />
@@ -58,21 +56,24 @@
58
56
  <style>
59
57
  @layer tokens {
60
58
  :root {
61
- /* "textfield" is deprecated */
62
- --m3-field-filled-shape: var(
63
- --m3-textfield-filled-shape,
64
- var(--m3-util-rounding-extra-small)
65
- );
59
+ --m3-field-filled-shape: var(--m3-shape-extra-small);
66
60
  }
67
61
  }
68
62
  .m3-container {
69
63
  display: inline-flex;
70
64
  position: relative;
71
65
  align-items: center;
72
- min-height: calc(5rem + var(--m3-util-density-term));
66
+ min-height: calc(5rem + (var(--m3v-density) * 0.25rem));
73
67
  min-width: 15rem;
74
68
  }
75
69
  textarea {
70
+
71
+ font-family: var(--m3-font);
72
+ font-size: 1rem;
73
+ line-height: 1.5;
74
+ letter-spacing: 0;
75
+ font-weight: 400;
76
+
76
77
  position: absolute;
77
78
  inset: 0;
78
79
  width: 100%;
@@ -81,31 +82,42 @@
81
82
  outline: none;
82
83
  padding: 1.5rem 1rem 0.5rem 1rem;
83
84
  border-radius: var(--m3-field-filled-shape) var(--m3-field-filled-shape) 0 0;
84
- background-color: rgb(var(--m3-scheme-surface-container-highest));
85
- color: rgb(var(--m3-scheme-on-surface));
85
+ background-color: var(--m3c-surface-container-highest);
86
+ color: var(--m3c-on-surface);
86
87
  resize: none;
87
88
  }
88
89
  label {
90
+
91
+ font-family: var(--m3-font);
92
+ font-size: 1rem;
93
+ line-height: 1.5;
94
+ letter-spacing: 0;
95
+ font-weight: 400;
96
+
89
97
  position: absolute;
90
98
  inset-inline-start: 1rem;
91
99
  top: 50%;
92
100
  translate: 0 -50%;
93
- color: rgb(var(--error, var(--m3-scheme-on-surface-variant)));
101
+ color: var(--error, var(--m3c-on-surface-variant));
94
102
  &:is(textarea:hover ~ label) {
95
- color: rgb(var(--error, var(--m3-scheme-on-surface)));
103
+ color: var(--error, var(--m3c-on-surface));
96
104
  }
97
105
  &:is(textarea:focus ~ label) {
98
- color: rgb(var(--error, var(--m3-scheme-primary)));
106
+ color: var(--error, var(--m3c-primary));
99
107
  }
100
108
  &:is(textarea:disabled ~ label) {
101
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
109
+ color: oklab(from var(--m3c-on-surface) l a b / 0.38);
102
110
  }
103
111
  &:is(textarea:focus ~ label, textarea:not(:placeholder-shown) ~ label) {
112
+
113
+ font-family: var(--m3-font);
114
+ font-size: 0.75rem;
115
+ line-height: 1.333;
116
+ letter-spacing: 0.025rem;
117
+ font-weight: 400;
118
+
104
119
  top: 0.5rem;
105
120
  translate: 0 0;
106
- font-size: var(--m3-font-body-small-size);
107
- line-height: var(--m3-font-body-small-height);
108
- letter-spacing: var(--m3-font-body-small-tracking);
109
121
  }
110
122
  pointer-events: none;
111
123
  transition:
@@ -123,7 +135,7 @@
123
135
  pointer-events: none;
124
136
  transition: all 100ms;
125
137
  &:is(textarea:enabled:hover ~ .layer) {
126
- background-color: rgb(var(--m3-scheme-on-surface) / 0.08);
138
+ background-color: oklab(from var(--m3c-on-surface) l a b / 0.08);
127
139
  }
128
140
  }
129
141
  .layer::after {
@@ -134,7 +146,7 @@
134
146
  bottom: 0;
135
147
 
136
148
  height: 1px;
137
- background-color: rgb(var(--error, var(--m3-scheme-on-surface-variant)));
149
+ background-color: var(--error, var(--m3c-on-surface-variant));
138
150
  transition: all 100ms;
139
151
  }
140
152
  .m3-container > :global(svg) {
@@ -142,13 +154,13 @@
142
154
  width: 1.5rem;
143
155
  height: 1.5rem;
144
156
  margin-inline-start: 0.75rem;
145
- color: rgb(var(--m3-scheme-on-surface-variant));
157
+ color: var(--m3c-on-surface-variant);
146
158
  pointer-events: none;
147
159
  }
148
160
 
149
161
  textarea:focus ~ .layer::after {
150
162
  height: 0.125rem;
151
- background-color: rgb(var(--error, var(--m3-scheme-primary)));
163
+ background-color: var(--error, var(--m3c-primary));
152
164
  }
153
165
 
154
166
  .leading-icon > textarea {
@@ -158,21 +170,21 @@
158
170
  inset-inline-start: 3.25rem;
159
171
  }
160
172
  .error {
161
- --error: var(--m3-scheme-error);
173
+ --error: var(--m3c-error);
162
174
  }
163
175
  .error > textarea:hover ~ label,
164
176
  .error > textarea:hover ~ .layer {
165
- --error: var(--m3-scheme-on-error-container);
177
+ --error: var(--m3c-on-error-container);
166
178
  }
167
179
  textarea:disabled {
168
- background-color: rgb(var(--m3-scheme-on-surface) / 0.04);
169
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
180
+ background-color: oklab(from var(--m3c-on-surface) l a b / 0.04);
181
+ color: oklab(from var(--m3c-on-surface) l a b / 0.38);
170
182
  }
171
183
  textarea:disabled ~ .layer::after {
172
- background-color: rgb(var(--m3-scheme-on-surface) / 0.38);
184
+ background-color: oklab(from var(--m3c-on-surface) l a b / 0.38);
173
185
  }
174
186
  textarea:disabled ~ :global(svg) {
175
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
187
+ color: oklab(from var(--m3c-on-surface) l a b / 0.38);
176
188
  }
177
189
 
178
190
  .m3-container {
@@ -35,7 +35,7 @@
35
35
  class:error
36
36
  >
37
37
  <input
38
- class="focus-none m3-font-body-large"
38
+ class="focus-none"
39
39
  placeholder=" "
40
40
  bind:value
41
41
  onkeydown={(e) => e.key == "Enter" && enter?.()}
@@ -43,11 +43,9 @@
43
43
  {disabled}
44
44
  {required}
45
45
  {...extra}
46
- defaultValue={extra.defaultValue}
47
46
  />
48
- <!-- TODO/deprecated: once https://github.com/sveltejs/svelte/pull/16481 is finished, remove the defaultvalue thing -->
49
47
  <div class="layer"></div>
50
- <label class="m3-font-body-large" for={id}>{label}</label>
48
+ <label for={id}>{label}</label>
51
49
  {#if leadingIcon}
52
50
  <Icon icon={leadingIcon} class="leading" />
53
51
  {/if}
@@ -63,25 +61,28 @@
63
61
  <style>
64
62
  /*
65
63
  want to customize the label's background?
66
- do this: <TextFieldOutlined --m3-util-background="rgb(var(--m3-scheme-surface-container))" />
64
+ do this: <TextFieldOutlined --m3v-background="var(--m3c-surface-container)" />
67
65
  */
68
66
  @layer tokens {
69
67
  :root {
70
- /* "textfield" is deprecated */
71
- --m3-field-outlined-shape: var(
72
- --m3-textfield-outlined-shape,
73
- var(--m3-util-rounding-extra-small)
74
- );
68
+ --m3-field-outlined-shape: var(--m3-shape-extra-small);
75
69
  }
76
70
  }
77
71
  .m3-container {
78
72
  display: inline-flex;
79
73
  position: relative;
80
74
  align-items: center;
81
- height: calc(3.5rem + var(--m3-util-density-term));
75
+ height: calc(3.5rem + (var(--m3v-density) * 0.25rem));
82
76
  min-width: 15rem;
83
77
  }
84
78
  input {
79
+
80
+ font-family: var(--m3-font);
81
+ font-size: 1rem;
82
+ line-height: 1.5;
83
+ letter-spacing: 0;
84
+ font-weight: 400;
85
+
85
86
  position: absolute;
86
87
  inset: 0;
87
88
  width: 100%;
@@ -91,30 +92,41 @@
91
92
  padding: 1rem;
92
93
  border-radius: var(--m3-field-outlined-shape);
93
94
  background-color: transparent;
94
- color: rgb(var(--m3-scheme-on-surface));
95
+ color: var(--m3c-on-surface);
95
96
  }
96
97
  label {
98
+
99
+ font-family: var(--m3-font);
100
+ font-size: 1rem;
101
+ line-height: 1.5;
102
+ letter-spacing: 0;
103
+ font-weight: 400;
104
+
97
105
  position: absolute;
98
106
  inset-inline-start: 0.75rem;
99
107
  top: 50%;
100
108
  translate: 0 -50%;
101
- color: rgb(var(--error, var(--m3-scheme-on-surface-variant)));
102
- background-color: var(--m3-util-background, rgb(var(--m3-scheme-surface)));
109
+ color: var(--error, var(--m3c-on-surface-variant));
110
+ background-color: var(--m3v-background);
103
111
  padding: 0 0.25rem;
104
112
  &:is(input:hover ~ label) {
105
- color: rgb(var(--error, var(--m3-scheme-on-surface)));
113
+ color: var(--error, var(--m3c-on-surface));
106
114
  }
107
115
  &:is(input:enabled:focus ~ label) {
108
- color: rgb(var(--error, var(--m3-scheme-primary)));
116
+ color: var(--error, var(--m3c-primary));
109
117
  }
110
118
  &:is(input:disabled ~ label) {
111
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
119
+ color: oklab(from var(--m3c-on-surface) l a b / 0.38);
112
120
  }
113
121
  &:is(input:focus ~ label, input:not(:placeholder-shown) ~ label) {
122
+
123
+ font-family: var(--m3-font);
124
+ font-size: 0.75rem;
125
+ line-height: 1.333;
126
+ letter-spacing: 0.025rem;
127
+ font-weight: 400;
128
+
114
129
  top: 0;
115
- font-size: var(--m3-font-body-small-size);
116
- line-height: var(--m3-font-body-small-height);
117
- letter-spacing: var(--m3-font-body-small-tracking);
118
130
  }
119
131
  pointer-events: none;
120
132
  transition:
@@ -127,22 +139,22 @@
127
139
  .layer {
128
140
  position: absolute;
129
141
  inset: 0;
130
- border: 1px solid rgb(var(--error, var(--m3-scheme-outline)));
142
+ border: 1px solid var(--error, var(--m3c-outline));
131
143
  border-radius: var(--m3-field-outlined-shape);
132
144
  pointer-events: none;
133
145
  transition: all 100ms;
134
146
  &:is(input:enabled:hover ~ .layer) {
135
- border-color: rgb(var(--error, var(--m3-scheme-on-surface)));
147
+ border-color: var(--error, var(--m3c-on-surface));
136
148
  }
137
149
  &:is(input:enabled:focus ~ .layer) {
138
- border-color: rgb(var(--error, var(--m3-scheme-primary)));
150
+ border-color: var(--error, var(--m3c-primary));
139
151
  border-width: 0.125rem;
140
152
  }
141
153
  }
142
154
  .m3-container :global(svg) {
143
155
  width: 1.5rem;
144
156
  height: 1.5rem;
145
- color: rgb(var(--m3-scheme-on-surface-variant));
157
+ color: var(--m3c-on-surface-variant);
146
158
  pointer-events: none;
147
159
  }
148
160
  .m3-container > :global(.leading) {
@@ -177,21 +189,21 @@
177
189
  }
178
190
 
179
191
  .error {
180
- --error: var(--m3-scheme-error);
192
+ --error: var(--m3c-error);
181
193
  }
182
194
  .error > input:hover ~ label,
183
195
  .error > input:hover ~ .layer {
184
- --error: var(--m3-scheme-on-error-container);
196
+ --error: var(--m3c-on-error-container);
185
197
  }
186
198
 
187
199
  input:disabled {
188
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
200
+ color: oklab(from var(--m3c-on-surface) l a b / 0.38);
189
201
  }
190
202
  input:disabled ~ .layer {
191
- border-color: rgb(var(--m3-scheme-on-surface) / 0.38);
203
+ border-color: oklab(from var(--m3c-on-surface) l a b / 0.38);
192
204
  }
193
205
  input:disabled ~ :global(svg) {
194
- color: rgb(var(--m3-scheme-on-surface) / 0.38);
206
+ color: oklab(from var(--m3c-on-surface) l a b / 0.38);
195
207
  }
196
208
 
197
209
  .m3-container {