@stackific/md3 0.1.0 → 0.1.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 (113) hide show
  1. package/README.md +1 -43
  2. package/dist/md3.css +1 -1
  3. package/dist/md3.js +1 -621
  4. package/package.json +2 -5
  5. package/src/main.js +0 -5
  6. package/src/runtime/elements/dialogs.js +0 -72
  7. package/src/runtime/elements/fields.js +0 -181
  8. package/src/runtime/elements/menus.js +0 -42
  9. package/src/runtime/elements/pages.js +0 -7
  10. package/src/runtime/elements/progress.js +0 -35
  11. package/src/runtime/elements/sliders.js +0 -78
  12. package/src/runtime/elements/snackbars.js +0 -27
  13. package/src/runtime/helpers/ripples.js +0 -46
  14. package/src/runtime/md3.js +0 -141
  15. package/src/runtime/palette.js +0 -64
  16. package/src/runtime/settings/theme.js +0 -194
  17. package/src/runtime/utils.js +0 -165
  18. package/src/styles/_config.scss +0 -142
  19. package/src/styles/_mixins.scss +0 -80
  20. package/src/styles/elements/_badges.scss +0 -65
  21. package/src/styles/elements/_bars.scss +0 -83
  22. package/src/styles/elements/_buttons.scss +0 -119
  23. package/src/styles/elements/_cards.scss +0 -32
  24. package/src/styles/elements/_chips.scss +0 -46
  25. package/src/styles/elements/_dialogs.scss +0 -143
  26. package/src/styles/elements/_dividers.scss +0 -46
  27. package/src/styles/elements/_expansions.scss +0 -19
  28. package/src/styles/elements/_fields.scss +0 -458
  29. package/src/styles/elements/_grids.scss +0 -35
  30. package/src/styles/elements/_icons.scss +0 -70
  31. package/src/styles/elements/_layouts.scss +0 -24
  32. package/src/styles/elements/_lists.scss +0 -76
  33. package/src/styles/elements/_main-layouts.scss +0 -45
  34. package/src/styles/elements/_media.scss +0 -104
  35. package/src/styles/elements/_menus.scss +0 -289
  36. package/src/styles/elements/_navigations.scss +0 -450
  37. package/src/styles/elements/_overlays.scss +0 -34
  38. package/src/styles/elements/_pages.scss +0 -28
  39. package/src/styles/elements/_progress.scss +0 -141
  40. package/src/styles/elements/_selections.scss +0 -248
  41. package/src/styles/elements/_shapes.scss +0 -151
  42. package/src/styles/elements/_sliders.scss +0 -336
  43. package/src/styles/elements/_snackbars.scss +0 -44
  44. package/src/styles/elements/_tables.scss +0 -67
  45. package/src/styles/elements/_tabs.scss +0 -49
  46. package/src/styles/elements/_tooltips.scss +0 -125
  47. package/src/styles/helpers/_alignments.scss +0 -29
  48. package/src/styles/helpers/_blurs.scss +0 -26
  49. package/src/styles/helpers/_colors.scss +0 -39
  50. package/src/styles/helpers/_directions.scss +0 -30
  51. package/src/styles/helpers/_elevates.scss +0 -20
  52. package/src/styles/helpers/_forms.scss +0 -76
  53. package/src/styles/helpers/_margins.scss +0 -39
  54. package/src/styles/helpers/_opacities.scss +0 -18
  55. package/src/styles/helpers/_paddings.scss +0 -35
  56. package/src/styles/helpers/_positions.scss +0 -44
  57. package/src/styles/helpers/_responsive.scss +0 -24
  58. package/src/styles/helpers/_ripples.scss +0 -40
  59. package/src/styles/helpers/_scrolls.scss +0 -7
  60. package/src/styles/helpers/_shadows.scss +0 -22
  61. package/src/styles/helpers/_sizes.scss +0 -34
  62. package/src/styles/helpers/_spaces.scss +0 -22
  63. package/src/styles/helpers/_typography.scss +0 -132
  64. package/src/styles/helpers/_waves.scss +0 -52
  65. package/src/styles/helpers/_zoom.scss +0 -18
  66. package/src/styles/md3.scss +0 -61
  67. package/src/styles/settings/_fonts.scss +0 -42
  68. package/src/styles/settings/_globals.scss +0 -104
  69. package/src/styles/settings/_reset.scss +0 -82
  70. package/src/styles/settings/_theme.scss +0 -126
  71. package/src/styles/settings/_themes.scss +0 -1525
  72. /package/dist/{shapes → assets}/arch.svg +0 -0
  73. /package/dist/{shapes → assets}/arrow.svg +0 -0
  74. /package/dist/{shapes → assets}/boom.svg +0 -0
  75. /package/dist/{shapes → assets}/bun.svg +0 -0
  76. /package/dist/{shapes → assets}/burst.svg +0 -0
  77. /package/dist/{shapes → assets}/circle.svg +0 -0
  78. /package/dist/{shapes → assets}/clamshell.svg +0 -0
  79. /package/dist/{shapes → assets}/diamond.svg +0 -0
  80. /package/dist/{shapes → assets}/fan.svg +0 -0
  81. /package/dist/{shapes → assets}/flower.svg +0 -0
  82. /package/dist/{shapes → assets}/gem.svg +0 -0
  83. /package/dist/{shapes → assets}/ghost-ish.svg +0 -0
  84. /package/dist/{shapes → assets}/heart.svg +0 -0
  85. /package/dist/{shapes → assets}/leaf-clover4.svg +0 -0
  86. /package/dist/{shapes → assets}/leaf-clover8.svg +0 -0
  87. /package/dist/{shapes → assets}/loading-indicator.svg +0 -0
  88. /package/dist/{fonts → assets}/material-symbols-outlined.woff2 +0 -0
  89. /package/dist/{fonts → assets}/material-symbols-rounded.woff2 +0 -0
  90. /package/dist/{fonts → assets}/material-symbols-sharp.woff2 +0 -0
  91. /package/dist/{fonts → assets}/material-symbols-subset.woff2 +0 -0
  92. /package/dist/{shapes → assets}/oval.svg +0 -0
  93. /package/dist/{shapes → assets}/pentagon.svg +0 -0
  94. /package/dist/{shapes → assets}/pill.svg +0 -0
  95. /package/dist/{shapes → assets}/pixel-circle.svg +0 -0
  96. /package/dist/{shapes → assets}/pixel-triangle.svg +0 -0
  97. /package/dist/{shapes → assets}/puffy-diamond.svg +0 -0
  98. /package/dist/{shapes → assets}/puffy.svg +0 -0
  99. /package/dist/{shapes → assets}/semicircle.svg +0 -0
  100. /package/dist/{shapes → assets}/sided-cookie12.svg +0 -0
  101. /package/dist/{shapes → assets}/sided-cookie4.svg +0 -0
  102. /package/dist/{shapes → assets}/sided-cookie6.svg +0 -0
  103. /package/dist/{shapes → assets}/sided-cookie7.svg +0 -0
  104. /package/dist/{shapes → assets}/sided-cookie9.svg +0 -0
  105. /package/dist/{shapes → assets}/slanted.svg +0 -0
  106. /package/dist/{shapes → assets}/soft-boom.svg +0 -0
  107. /package/dist/{shapes → assets}/soft-burst.svg +0 -0
  108. /package/dist/{shapes → assets}/square.svg +0 -0
  109. /package/dist/{shapes → assets}/sunny.svg +0 -0
  110. /package/dist/{shapes → assets}/triangle.svg +0 -0
  111. /package/dist/{shapes → assets}/very-sunny.svg +0 -0
  112. /package/dist/{shapes → assets}/wavy-circle.svg +0 -0
  113. /package/dist/{shapes → assets}/wavy.svg +0 -0
@@ -1,248 +0,0 @@
1
- // .checkbox / .radio / .switch — all three share size-scaling and focus/hover ripples.
2
-
3
- .checkbox,
4
- .radio,
5
- .switch {
6
- --_size: 1.5rem;
7
- inline-size: auto;
8
- block-size: auto;
9
- line-height: normal;
10
- white-space: nowrap;
11
- cursor: pointer;
12
- display: inline-flex;
13
- align-items: center;
14
- }
15
-
16
- .switch {
17
- direction: ltr;
18
- }
19
-
20
- $-selection-sizes: (
21
- "small": 1rem,
22
- "large": 2rem,
23
- "extra": 2.5rem,
24
- );
25
-
26
- @each $name, $value in $-selection-sizes {
27
- :is(.checkbox, .radio, .switch).#{$name} {
28
- --_size: #{$value};
29
- }
30
- }
31
-
32
- :is(.checkbox, .radio) > input {
33
- inline-size: var(--_size);
34
- block-size: var(--_size);
35
- opacity: 0;
36
- }
37
-
38
- .switch > input {
39
- inline-size: 3.25rem;
40
- block-size: 2rem;
41
- opacity: 0;
42
- }
43
-
44
- :is(.checkbox, .radio, .switch) > span {
45
- display: inline-flex;
46
- align-items: center;
47
- color: var(--on-surface);
48
- font-size: 0.875rem;
49
- }
50
-
51
- :is(.checkbox, .radio) > span:not(:empty) {
52
- padding-inline-start: 0.25rem;
53
- }
54
-
55
- :is(.checkbox, .radio, .switch) > span::before,
56
- :is(.checkbox, .radio, .switch) > span > i,
57
- :is(.checkbox, .radio) > span::after {
58
- --_size: inherit;
59
- content: "";
60
- inline-size: var(--_size);
61
- block-size: var(--_size);
62
- box-sizing: border-box;
63
- margin: 0 auto;
64
- outline: none;
65
- color: var(--primary);
66
- position: absolute;
67
- inset: auto auto auto calc(var(--_size, 0) * -1);
68
- border-radius: 50%;
69
- user-select: none;
70
- z-index: 1;
71
- }
72
-
73
- [dir="rtl"] :is(.checkbox, .radio) > span::before,
74
- [dir="rtl"] :is(.checkbox, .radio) > span > i,
75
- [dir="rtl"] :is(.checkbox, .radio) > span::after {
76
- --_size: inherit;
77
- inset: auto calc(var(--_size, 0) * -1) auto auto;
78
- }
79
-
80
- .switch > span::before,
81
- .switch.icon > span > i {
82
- position: absolute;
83
- inset: 50% auto auto 0;
84
- display: inline-flex;
85
- align-items: center;
86
- justify-content: center;
87
- border-radius: 50%;
88
- transition: all var(--speed2);
89
- font-size: calc(var(--_size, 0) - 0.5rem);
90
- user-select: none;
91
- min-inline-size: var(--_size);
92
- min-block-size: var(--_size);
93
- content: "";
94
- color: var(--surface-variant);
95
- background-color: var(--outline);
96
- }
97
-
98
- .switch > span::before,
99
- .switch.icon > span > i {
100
- transform: translate(-3rem, -50%) scale(0.6);
101
- }
102
-
103
- .switch.icon > span > i {
104
- transform: translate(-3rem, -50%) scale(1);
105
- }
106
-
107
- // icon glyphs per control
108
- .checkbox > span::before { content: "check_box_outline_blank"; }
109
- .checkbox > input:checked + span::before {
110
- content: "check_box";
111
- font-variation-settings: "FILL" 1;
112
- }
113
- .checkbox > input:indeterminate + span::before { content: "indeterminate_check_box"; }
114
-
115
- .radio > span::before { content: "radio_button_unchecked"; }
116
- .radio > input:checked + span::before { content: "radio_button_checked"; }
117
-
118
- :is(.radio, .checkbox, .switch).icon > span::before {
119
- content: "" !important;
120
- font-variation-settings: unset !important;
121
- }
122
-
123
- :is(.checkbox, .radio) > span::after {
124
- transition: all var(--speed1);
125
- background-color: currentColor;
126
- box-shadow: 0 0 0 0 currentColor;
127
- opacity: 0;
128
- }
129
-
130
- :is(.checkbox, .radio):is(:hover) > input:not(:disabled) + span::after,
131
- :is(.checkbox, .radio) > input:not(:disabled):is(:focus) + span::after {
132
- box-shadow: 0 0 0 0.5rem currentColor;
133
- opacity: 0.1;
134
- }
135
-
136
- .switch > input:not(:disabled):is(:focus, :hover) + span::before,
137
- .switch.icon > input:not(:disabled):is(:focus, :hover) + span > i {
138
- box-shadow: 0 0 0 0.5rem var(--active);
139
- }
140
-
141
- :is(.checkbox, .radio) > input:checked + span::before,
142
- :is(.checkbox, .radio).icon > input:checked + span > i {
143
- color: var(--primary);
144
- }
145
-
146
- .icon > input:checked + span > i:first-child,
147
- .icon > span > i:last-child {
148
- opacity: 0;
149
- }
150
-
151
- .icon > input:checked + span > i:last-child,
152
- .icon > span > i:first-child {
153
- opacity: 1;
154
- }
155
-
156
- .switch > input:checked + span::after {
157
- border: none;
158
- background-color: var(--primary);
159
- }
160
-
161
- .switch > input:checked + span::before,
162
- .switch.icon > input:checked + span > i {
163
- content: "check";
164
- color: var(--primary);
165
- background-color: var(--on-primary);
166
- transform: translate(-1.75rem, -50%) scale(1);
167
- }
168
-
169
- [dir="rtl"] .switch > input:checked + span::before,
170
- [dir="rtl"] .switch.icon > input:checked + span > i {
171
- transform: translate(-1.75rem, -50%) scale(-1);
172
- }
173
-
174
- .switch > input:active:not(:disabled) + span::before,
175
- .switch.icon > input:active:not(:disabled) + span > i {
176
- transform: translate(-3rem, -50%) scale(1.2);
177
- }
178
-
179
- [dir="rtl"] .switch > input:active:not(:disabled) + span::before,
180
- [dir="rtl"] .switch.icon > input:active:not(:disabled) + span > i {
181
- transform: translate(-3rem, -50%) scale(-1.2);
182
- }
183
-
184
- .switch > input:active:checked:not(:disabled) + span::before,
185
- .switch.icon > input:active:checked:not(:disabled) + span > i {
186
- transform: translate(-1.75rem, -50%) scale(1.2);
187
- }
188
-
189
- [dir="rtl"] .switch > input:active:checked:not(:disabled) + span::before,
190
- [dir="rtl"] .switch.icon > input:active:checked:not(:disabled) + span > i {
191
- transform: translate(-1.75rem, -50%) scale(-1.2);
192
- }
193
-
194
- :is(.checkbox, .radio, .switch) > input:disabled + span {
195
- opacity: 0.5;
196
- cursor: not-allowed;
197
- }
198
-
199
- .switch > span::after {
200
- content: "";
201
- position: absolute;
202
- inset: 50% auto auto 0;
203
- background-color: var(--active);
204
- border: 0.125rem solid var(--outline);
205
- box-sizing: border-box;
206
- inline-size: 3.25rem;
207
- block-size: 2rem;
208
- border-radius: 2rem;
209
- transform: translate(-3.25rem, -50%);
210
- }
211
-
212
- .field > :is(nav, .row) {
213
- flex-grow: 1;
214
- padding: 0 1rem;
215
- }
216
-
217
- .field.round > :is(nav, .row) {
218
- flex-grow: 1;
219
- padding: 0 1.5rem;
220
- }
221
-
222
- [dir="rtl"] .switch {
223
- transform: scale(-1);
224
- }
225
-
226
- [dir="rtl"] .switch > span::before,
227
- [dir="rtl"] .switch.icon > span > i {
228
- transform: translate(-3rem, -50%) scale(-0.6);
229
- }
230
-
231
- [dir="rtl"] .switch.icon > span > i {
232
- transform: translate(-3rem, -50%) scale(-1);
233
- }
234
-
235
- [dir="rtl"] .switch > input:checked + span::before,
236
- [dir="rtl"] .switch.icon > input:checked + span > i {
237
- transform: translate(-1.75rem, -50%) scale(-1);
238
- }
239
-
240
- .switch > :focus-visible + span::after {
241
- outline: 0.125rem solid var(--primary);
242
- outline-offset: 0.25rem;
243
- }
244
-
245
- :is(.checkbox, .radio) > :focus-visible + span::before {
246
- outline: 0.125rem solid var(--primary);
247
- outline-offset: 0.375rem;
248
- }
@@ -1,151 +0,0 @@
1
- // .shape — SVG-masked decorative shape. Each variant points at a public/shapes/*.svg.
2
- // One @each over $-shapes replaces ~40 hand-written mask-image rules in upstream.
3
-
4
- @use "sass:list";
5
-
6
- .shape {
7
- display: flex;
8
- align-items: center;
9
- justify-content: center;
10
- color: var(--on-primary);
11
- background-color: var(--primary);
12
- mask-repeat: no-repeat;
13
- mask-position: center;
14
- mask-size: contain;
15
- border-radius: 0;
16
- block-size: 3.5rem;
17
- inline-size: 3.5rem;
18
- margin: 0 !important;
19
- padding: 0 !important;
20
- border: 0 !important;
21
- }
22
-
23
- .transparent > .shape > i {
24
- filter: invert(1);
25
- }
26
-
27
- $-shape-mask-sizes: (
28
- "tiny-space": 90%,
29
- "space": 80%,
30
- "small-space": 80%,
31
- "medium-space": 70%,
32
- "large-space": 60%,
33
- "extra-space": 50%,
34
- );
35
-
36
- @each $name, $value in $-shape-mask-sizes {
37
- .shape.#{$name} { mask-size: $value; }
38
- }
39
-
40
- $-shape-sizes: (
41
- "tiny": 2.5rem,
42
- "medium": 4.5rem,
43
- "large": 5.5rem,
44
- "extra": 6.5rem,
45
- );
46
-
47
- @each $name, $value in $-shape-sizes {
48
- .shape.#{$name} {
49
- block-size: $value;
50
- inline-size: $value;
51
- }
52
- }
53
-
54
- .shape.max,
55
- .shape > .responsive,
56
- .shape > .responsive > .responsive {
57
- position: absolute;
58
- inset: 0;
59
- block-size: 100%;
60
- inline-size: 100%;
61
- margin: 0 !important;
62
- padding: 0 !important;
63
- border: 0 !important;
64
- }
65
-
66
- .shape > .responsive {
67
- background: inherit;
68
- color: inherit;
69
- }
70
-
71
- $-shape-rotations: (
72
- "": 12s,
73
- "fast": 6s,
74
- "slow": 24s,
75
- );
76
-
77
- @each $name, $duration in $-shape-rotations {
78
- @if $name == "" {
79
- .shape.rotate {
80
- animation: linear to-rotate infinite #{$duration};
81
-
82
- > * {
83
- animation: linear to-rotate infinite #{$duration} reverse;
84
- }
85
- }
86
- } @else {
87
- .shape.#{$name}-rotate {
88
- animation: linear to-rotate infinite #{$duration};
89
-
90
- > * {
91
- animation: linear to-rotate infinite #{$duration} reverse;
92
- }
93
- }
94
- }
95
- }
96
-
97
- :is(button, .button, .chip):has(> .shape) > .responsive {
98
- border: none;
99
- }
100
-
101
- // All shape mask images. Note: `leaft-clover8` is a verbatim typo from upstream
102
- // (the file is `leaf-clover8.svg`) — preserved for 1:1 class-name parity.
103
- // Each entry is (class-name, file-stem). They diverge only for "leaft-clover8"
104
- // → leaf-clover8.svg (verbatim typo from upstream).
105
- $-shapes: (
106
- ("arch", "arch"),
107
- ("arrow", "arrow"),
108
- ("boom", "boom"),
109
- ("bun", "bun"),
110
- ("burst", "burst"),
111
- ("circle", "circle"),
112
- ("clamshell", "clamshell"),
113
- ("diamond", "diamond"),
114
- ("fan", "fan"),
115
- ("flower", "flower"),
116
- ("gem", "gem"),
117
- ("ghost-ish", "ghost-ish"),
118
- ("heart", "heart"),
119
- ("leaf-clover4", "leaf-clover4"),
120
- ("leaft-clover8", "leaf-clover8"),
121
- ("loading-indicator", "loading-indicator"),
122
- ("oval", "oval"),
123
- ("pentagon", "pentagon"),
124
- ("pill", "pill"),
125
- ("pixel-circle", "pixel-circle"),
126
- ("pixel-triangle", "pixel-triangle"),
127
- ("puffy", "puffy"),
128
- ("puffy-diamond", "puffy-diamond"),
129
- ("semicircle", "semicircle"),
130
- ("sided-cookie4", "sided-cookie4"),
131
- ("sided-cookie6", "sided-cookie6"),
132
- ("sided-cookie7", "sided-cookie7"),
133
- ("sided-cookie9", "sided-cookie9"),
134
- ("sided-cookie12", "sided-cookie12"),
135
- ("slanted", "slanted"),
136
- ("soft-boom", "soft-boom"),
137
- ("soft-burst", "soft-burst"),
138
- ("square", "square"),
139
- ("sunny", "sunny"),
140
- ("triangle", "triangle"),
141
- ("very-sunny", "very-sunny"),
142
- );
143
-
144
- @each $entry in $-shapes {
145
- $class: list.nth($entry, 1);
146
- $file: list.nth($entry, 2);
147
-
148
- .shape.#{$class} {
149
- mask-image: url("/shapes/#{$file}.svg");
150
- }
151
- }