@fest-lib/veela 0.1.20 → 1.0.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 (141) hide show
  1. package/dist/veela.js +4 -33
  2. package/package.json +9 -2
  3. package/src/scss/_layers.scss +6 -34
  4. package/src/scss/basic/{misc/_core-layout.scss → _core-layout.scss} +1 -1
  5. package/src/scss/basic/_layers.scss +1 -0
  6. package/src/scss/basic/{misc/_layout.scss → _layout.scss} +15 -15
  7. package/src/scss/basic/{misc/_normalize.scss → _normalize.scss} +5 -103
  8. package/src/scss/basic/{misc/_states.scss → _states.scss} +2 -2
  9. package/src/scss/{core/misc → basic}/_utilities.scss +4 -4
  10. package/src/scss/basic/design/_keyframes.scss +1 -1
  11. package/src/scss/basic/design/_shapes.scss +1 -1
  12. package/src/scss/basic/index.scss +14 -16
  13. package/src/scss/chrome.scss +2 -0
  14. package/src/scss/core/_color-mod.scss +24 -0
  15. package/src/scss/core/{misc/_color-properties.scss → _color-properties.scss} +1 -1
  16. package/src/scss/core/{misc/_tokens.scss → _tokens.scss} +10 -93
  17. package/src/scss/core/index.scss +13 -1
  18. package/src/scss/index.scss +7 -2
  19. package/src/scss/index.ts +1 -1
  20. package/src/scss/{core/interact → interact}/_viewport.scss +1 -1
  21. package/src/scss/interact/index.scss +18 -0
  22. package/src/scss/theme/_effects.scss +60 -0
  23. package/src/scss/theme/index.scss +8 -0
  24. package/src/scss/{advanced/index.ts → theme/loader.ts} +3 -4
  25. package/src/scss/ui/_bar.scss +268 -0
  26. package/src/scss/ui/_buttons.scss +215 -0
  27. package/src/scss/ui/_chrome-mixins.scss +104 -0
  28. package/src/scss/ui/_color.scss +3 -0
  29. package/src/scss/ui/_colorize.scss +5 -0
  30. package/src/scss/{advanced/layout → ui}/_content.scss +0 -1
  31. package/src/scss/ui/_core-layout.scss +4 -0
  32. package/src/scss/ui/_essentials-options.scss +2 -0
  33. package/src/scss/ui/_essentials.scss +707 -0
  34. package/src/scss/ui/_explorer-content.scss +417 -0
  35. package/src/scss/ui/_explorer.scss +274 -0
  36. package/src/scss/ui/_forms-bare-host-elements.scss +25 -0
  37. package/src/scss/ui/_forms-options.scss +2 -0
  38. package/src/scss/ui/_forms.scss +279 -0
  39. package/src/scss/ui/_forms_misc.scss +201 -0
  40. package/src/scss/ui/_gridbox.scss +298 -0
  41. package/src/scss/ui/_home-host.scss +192 -0
  42. package/src/scss/ui/_index.scss +23 -0
  43. package/src/scss/ui/_launcher-typography.scss +31 -0
  44. package/src/scss/ui/_layers.scss +48 -0
  45. package/src/scss/ui/_layout.scss +3 -0
  46. package/src/scss/ui/_markdown.scss +1634 -0
  47. package/src/scss/ui/_modal.scss +309 -0
  48. package/src/scss/ui/_motion.scss +3 -0
  49. package/src/scss/ui/_native-host-button-chrome.scss +31 -0
  50. package/src/scss/ui/_normalize.scss +5 -0
  51. package/src/scss/ui/_orientation-functions.scss +273 -0
  52. package/src/scss/ui/_orientbox.scss +97 -0
  53. package/src/scss/ui/_scrollbar.scss +257 -0
  54. package/src/scss/ui/_shared-overlays.scss +16 -0
  55. package/src/scss/ui/_shared.scss +4 -0
  56. package/src/scss/ui/_sidebar.scss +478 -0
  57. package/src/scss/ui/_speed-dial.scss +47 -0
  58. package/src/scss/ui/_states.scss +4 -0
  59. package/src/scss/ui/_tables.scss +28 -0
  60. package/src/scss/ui/_tabs.scss +405 -0
  61. package/src/scss/ui/_taskbar.scss +215 -0
  62. package/src/scss/ui/_toolbars.scss +167 -0
  63. package/src/scss/ui/_typography.scss +11 -0
  64. package/src/scss/ui/_utils.scss +8 -0
  65. package/src/scss/ui/_viewport.scss +470 -0
  66. package/src/scss/ui/_window-frame.scss +658 -0
  67. package/src/scss/ui/components/app-menu.scss +817 -0
  68. package/src/scss/ui/components/appearance-desktop.scss +14 -0
  69. package/src/scss/ui/components/appearance-mobile.scss +14 -0
  70. package/src/scss/ui/components/calendar/flyout.scss +194 -0
  71. package/src/scss/ui/components/calendar/index.scss +627 -0
  72. package/src/scss/ui/components/explorer-settings.scss +232 -0
  73. package/src/scss/ui/components/file-manager-content.scss +2 -0
  74. package/src/scss/ui/components/file-manager.scss +2 -0
  75. package/src/scss/ui/components/launcher-icon-mask.scss +34 -0
  76. package/src/scss/ui/components/navbar.scss +133 -0
  77. package/src/scss/ui/components/quick-settings.scss +321 -0
  78. package/src/scss/ui/components/scrollframe.scss +58 -0
  79. package/src/scss/ui/components/slider.scss +188 -0
  80. package/src/scss/ui/components/speed-dial.scss +2288 -0
  81. package/src/scss/ui/components/statusbar.scss +255 -0
  82. package/src/scss/ui/components/task.scss +118 -0
  83. package/src/scss/ui/components/taskbar.scss +514 -0
  84. package/src/scss/ui/components/text.scss +241 -0
  85. package/src/scss/ui/components/window.scss +601 -0
  86. package/src/scss/ui/home-host-apply.scss +10 -0
  87. package/src/scss/ui/index.scss +7 -0
  88. package/src/scss/ui/native-controls.scss +17 -0
  89. package/src/scss/advanced/_index.scss +0 -0
  90. package/src/scss/advanced/animation/_motion.scss +0 -323
  91. package/src/scss/advanced/color/_color.scss +0 -328
  92. package/src/scss/advanced/color/_colorize.scss +0 -325
  93. package/src/scss/advanced/design/_design-tokens.scss +0 -118
  94. package/src/scss/advanced/design/_effects.scss +0 -275
  95. package/src/scss/advanced/design/_shadow.scss +0 -359
  96. package/src/scss/advanced/design/_surfaces.scss +0 -76
  97. package/src/scss/advanced/effects/_animations.scss +0 -124
  98. package/src/scss/advanced/effects/_shadows.scss +0 -50
  99. package/src/scss/advanced/font/_typography.scss +0 -601
  100. package/src/scss/advanced/index.scss +0 -11
  101. package/src/scss/advanced/layout/_index.scss +0 -5
  102. package/src/scss/advanced/layout/_normalize.scss +0 -543
  103. package/src/scss/advanced/layout/_shared-overlays.scss +0 -162
  104. package/src/scss/advanced/md3/_md3.scss +0 -506
  105. package/src/scss/advanced/md3/_utils.scss +0 -114
  106. package/src/scss/advanced/misc/_config.scss +0 -119
  107. package/src/scss/advanced/misc/_initials.scss +0 -298
  108. package/src/scss/advanced/misc/_mixins.scss +0 -179
  109. package/src/scss/advanced/misc/_rendering.scss +0 -82
  110. package/src/scss/advanced/misc/_tokens.scss +0 -74
  111. package/src/scss/advanced/theme/_shared.scss +0 -232
  112. package/src/scss/advanced/theme/_states.scss +0 -332
  113. package/src/scss/advanced/theme/_variants.scss +0 -354
  114. package/src/scss/advanced/tokens/_material-color.scss +0 -120
  115. package/src/scss/advanced/tokens/_variables.scss +0 -171
  116. package/src/scss/basic/misc/_index.scss +0 -18
  117. package/src/scss/basic/misc/_mixins.scss +0 -179
  118. package/src/scss/basic/misc/_queries.scss +0 -34
  119. package/src/scss/basic/misc/_tokens.scss +0 -78
  120. package/src/scss/basic/misc/_veela.scss +0 -12
  121. package/src/scss/core/misc/_index.scss +0 -6
  122. /package/src/scss/basic/{misc/_motion.scss → _motion.scss} +0 -0
  123. /package/src/scss/{advanced/misc → basic}/_queries.scss +0 -0
  124. /package/src/scss/basic/{misc/_shared.scss → _shared.scss} +0 -0
  125. /package/src/scss/core/{misc/_config.scss → _config.scss} +0 -0
  126. /package/src/scss/core/{misc/_functions.scss → _functions.scss} +0 -0
  127. /package/src/scss/core/{misc/_icons.scss → _icons.scss} +0 -0
  128. /package/src/scss/core/{misc/_layout.scss → _layout.scss} +0 -0
  129. /package/src/scss/core/{misc/_mixins.scss → _mixins.scss} +0 -0
  130. /package/src/scss/core/{misc/_properties.scss → _properties.scss} +0 -0
  131. /package/src/scss/core/{misc/_utils.scss → _utils.scss} +0 -0
  132. /package/src/scss/{core/interact → interact}/_draggable.scss +0 -0
  133. /package/src/scss/{core/interact → interact}/_position.scss +0 -0
  134. /package/src/scss/{core/interact → interact}/_ps-anchor.scss +0 -0
  135. /package/src/scss/{core/interact → interact}/_ps-centered.scss +0 -0
  136. /package/src/scss/{core/interact → interact}/_ps-cursor.scss +0 -0
  137. /package/src/scss/{core/interact → interact}/_ps-draggable.scss +0 -0
  138. /package/src/scss/{core/interact → interact}/_ps-mechanic.scss +0 -0
  139. /package/src/scss/{core/interact → interact}/_ps-properties.scss +0 -0
  140. /package/src/scss/{core/interact → interact}/_ps-resizable.scss +0 -0
  141. /package/src/scss/{core/interact → interact}/_resizable.scss +0 -0
@@ -1,506 +0,0 @@
1
- @use "sass:map";
2
- @use "sass:list";
3
- @use "sass:math";
4
- @use "sass:meta";
5
- @use "sass:string";
6
-
7
- @use "utils" as _;
8
- @use "shadow" as _shadow;
9
-
10
- //
11
- // Space function
12
- @function md3-space($token) {
13
- @return _.md3-fetch($md3-space-scale, $token, "space token");
14
- }
15
-
16
- //
17
- // Radius function
18
- @function md3-radius($token) {
19
- @if map.has-key($md3-radius-scale, $token) {
20
- @return map.get($md3-radius-scale, $token);
21
- }
22
-
23
- @if map.has-key($md3-radius-aliases, $token) {
24
- $alias: map.get($md3-radius-aliases, $token);
25
- @return map.get($md3-radius-scale, $alias);
26
- }
27
-
28
- @return _.md3-fetch($md3-radius-scale, $token, "radius token");
29
- }
30
-
31
- //
32
- // Gap function
33
- @function md3-gap($token) { @return md3-space($token); }
34
-
35
- //
36
- // Export gap vars mixin
37
- @mixin md3-export-gap-vars() {
38
- @each $token, $value in $md3-space-scale {
39
- --gap-#{$token}: #{$value};
40
- }
41
- }
42
-
43
- //
44
- // Padding function
45
- @function md3-padding($token) { @return md3-space($token); }
46
-
47
- //
48
- // Export padding vars mixin
49
- @mixin md3-export-padding-vars() {
50
- @each $token, $value in $md3-space-scale {
51
- --padding-#{$token}: #{$value};
52
- }
53
- }
54
-
55
- //
56
- // Radius function
57
- @function md3-shape($token) {
58
- @if map.has-key($md3-shape-scale, $token) {
59
- @return map.get($md3-shape-scale, $token);
60
- }
61
-
62
- @if map.has-key($md3-shape-aliases, $token) {
63
- $alias: map.get($md3-shape-aliases, $token);
64
- @return map.get($md3-shape-scale, $alias);
65
- }
66
-
67
- @error "Unknown MD3 shape token `#{$token}`. Available: #{map.keys($md3-shape-scale)}";
68
- }
69
-
70
- //
71
- // State function
72
- @function md3-opacity-state($state) {
73
- @return _.md3-fetch($md3-state-opacity, $state, "state token");
74
- }
75
-
76
- //
77
- // Icon size function
78
- @function md3-icon-size($token: md) {
79
- @return _.md3-fetch($md3-icon-sizes, $token, "icon size");
80
- }
81
-
82
- //
83
- // Avatar size function
84
- @function md3-avatar-size($token: md) {
85
- @return _.md3-fetch($md3-avatar-sizes, $token, "avatar size");
86
- }
87
-
88
- //
89
- // Export layout vars mixin
90
- @mixin md3-export-density-vars() {
91
- @each $token, $value in $md3-space-scale {
92
- --md3-space-#{$token}: #{$value};
93
- }
94
- }
95
-
96
-
97
-
98
- @mixin md3-export-scale-vars() {
99
- --u: 1rem;
100
- --pxu: 1px;
101
- --cqi: 1cqi;
102
- --cqb: 1cqb;
103
-
104
- --size-scale: 1;
105
- --font-scale: 1;
106
-
107
- --container-max-width: min(100%, 110rem);
108
- --container-padding: clamp(1rem, 3vw, 2rem);
109
-
110
- @each $name, $value in $md3-breakpoints {
111
- --breakpoint-#{$name}: #{$value};
112
- }
113
-
114
- @container (inline-size < $md3-container-compact-max) {
115
- --size-scale: 0.92;
116
- --font-scale: 0.96;
117
- }
118
-
119
- @container ($md3-container-compact-max <= inline-size < $md3-container-cozy-max) {
120
- --size-scale: 1;
121
- --font-scale: 1;
122
- }
123
-
124
- @container (inline-size >= $md3-container-cozy-max) {
125
- --size-scale: 1.05;
126
- --font-scale: 1.04;
127
- }
128
-
129
- --sidebar-width: min(clamp(16.25rem, 28vw, 22.5rem), 100cqi);
130
- --sidebar-width-collapsed: min(clamp(10rem, 20vw, 12.5rem), 100cqi);
131
- --sidebar-width-mobile: min(clamp(17.5rem, 35vw, 20rem), 100cqi);
132
- --sidebar-width-mobile-small: min(clamp(18.75rem, 40vw, 21.25rem), 100cqi);
133
-
134
- @media (max-inline-size: #{map.get($md3-breakpoints, md)}) {
135
- --sidebar-width: var(--sidebar-width-mobile);
136
- }
137
-
138
- @media (max-inline-size: #{map.get($md3-breakpoints, sm)}) {
139
- --sidebar-width: var(--sidebar-width-mobile-small);
140
- }
141
- }
142
-
143
-
144
-
145
-
146
- //
147
- // Export layout vars mixin
148
- @mixin md3-export-layout-vars() {
149
- // Spacing tokens
150
- @each $token, $value in $md3-space-scale {
151
- --space-#{$token}-base: #{$value};
152
- }
153
-
154
-
155
-
156
- // Icon & avatar sizes
157
- --icon-size-xs: #{md3-icon-size(xs)};
158
- --icon-size-sm: #{md3-icon-size(sm)};
159
- --icon-size-md: #{md3-icon-size(md)};
160
- --icon-size-lg: #{md3-icon-size(lg)};
161
- --icon-size-xl: #{md3-icon-size(xl)};
162
- --icon-size-2xl: #{md3-icon-size(2xl)};
163
-
164
- --avatar-size-sm: #{md3-avatar-size(sm)};
165
- --avatar-size: #{md3-avatar-size(md)};
166
- --avatar-size-lg: #{md3-avatar-size(lg)};
167
-
168
- --text-opacity-disabled: #{md3-state(disabled)};
169
- }
170
-
171
-
172
- //
173
- // Spacing variables
174
- $spacing-xs: #{md3-space(xs)};
175
- $spacing-sm: #{md3-space(sm)};
176
- $spacing-md: #{md3-space(md)};
177
- $spacing-lg: #{md3-space(lg)};
178
- $spacing-xl: #{md3-space(xl)};
179
- $spacing-2xl: #{md3-space(2xl)};
180
- $spacing-3xl: #{md3-space(3xl)};
181
- $spacing-4xl: #{md3-space(4xl)};
182
-
183
- //
184
- // Border radius variables
185
- $border-radius-sm: #{md3-radius(sm)};
186
- $border-radius-md: #{md3-radius(md)};
187
- $border-radius-lg: #{md3-radius(lg)};
188
- $border-radius-xl: #{md3-radius(xl)};
189
- $border-radius-2xl: #{md3-radius(2xl)};
190
- $border-radius-3xl: #{md3-radius(3xl)};
191
- $border-radius-4xl: #{md3-radius(4xl)};
192
- $border-radius-full: #{md3-radius(full)};
193
-
194
- //
195
- // Z-index variables
196
- $z-dropdown: 1000;
197
- $z-sticky: 1020;
198
- $z-fixed: 1030;
199
- $z-modal-backdrop: 1040;
200
- $z-modal: 1050;
201
- $z-popover: 1060;
202
- $z-tooltip: 1070;
203
-
204
- //
205
- // Breakpoint variables
206
- $breakpoint-sm: map.get($md3-breakpoints, sm);
207
- $breakpoint-md: map.get($md3-breakpoints, md);
208
- $breakpoint-lg: map.get($md3-breakpoints, lg);
209
- $breakpoint-xl: map.get($md3-breakpoints, xl);
210
- $breakpoint-2xl: map.get($md3-breakpoints, 2xl);
211
-
212
- //
213
- // Container max width
214
- $container-max-width: min(100%, 110rem);
215
-
216
- //
217
- // Backdrop blur variables
218
- $backdrop-blur-sm: blur(6px);
219
- $backdrop-blur-md: blur(12px);
220
- $backdrop-blur-lg: blur(18px);
221
-
222
- //
223
- // UI radius variables
224
- $ui-radius-sm: #{md3-radius(sm)} !default;
225
- $ui-radius-md: #{md3-radius(md)} !default;
226
- $ui-radius-lg: #{md3-radius(lg)} !default;
227
- $ui-radius-xl: #{md3-radius(xl)} !default;
228
- $ui-radius-2xl: #{md3-radius(2xl)} !default;
229
- $ui-radius-3xl: #{md3-radius(3xl)} !default;
230
- $ui-radius-4xl: #{md3-radius(4xl)} !default;
231
- $ui-radius-full: #{md3-radius(full)} !default;
232
- $ui-border-width: 1px !default;
233
-
234
- //
235
- // UI spacing variables
236
- $ui-spacing-2xs: #{md3-space(2xs)} !default;
237
- $ui-spacing-xs: #{md3-space(xs)} !default;
238
- $ui-spacing-sm: #{md3-space(sm)} !default;
239
- $ui-spacing-md: #{md3-space(md)} !default;
240
- $ui-spacing-lg: #{md3-space(lg)} !default;
241
- $ui-spacing-xl: #{md3-space(xl)} !default;
242
- $ui-spacing-2xl: #{md3-space(2xl)} !default;
243
- $ui-spacing-3xl: #{md3-space(3xl)} !default;
244
- $ui-spacing-4xl: #{md3-space(4xl)} !default;
245
-
246
- //
247
- // UI titlebar height
248
- $ui-titlebar-height: 32px !default;
249
- $ui-font-title-size: #{md3-type("title-small", size)} !default;
250
- $ui-font-subtitle-size: #{md3-type("label-large", size)} !default;
251
-
252
- //
253
- // Mobile width
254
- $mobile-width: 9in;
255
-
256
- //
257
- // Is touch
258
- $is-touch: "screen and (hover: none) and (pointer: coarse)";
259
- $is-not-wide: "(width < #{$mobile-width})";
260
- $is-desktop: "(width >= #{$mobile-width})";
261
- $is-deskinset-block-start: "(((hover: hover) or (pointer: fine)) and ((width >= #{$mobile-width}) or (orientation: landscape)))";
262
- $is-mobile: "not #{$is-desktop}";
263
- $is-windowed: "@container u2-windowed #{$is-not-wide}";
264
-
265
-
266
- //
267
- // Space function
268
- @function md3-space($token) {
269
- @return _.md3-fetch($md3-space-scale, $token, "space token");
270
- }
271
-
272
- //
273
- // Radius function
274
- @function md3-radius($token) {
275
- @if map.has-key($md3-radius-scale, $token) {
276
- @return map.get($md3-radius-scale, $token);
277
- }
278
-
279
- @if map.has-key($md3-radius-aliases, $token) {
280
- $alias: map.get($md3-radius-aliases, $token);
281
- @return map.get($md3-radius-scale, $alias);
282
- }
283
-
284
- @return _.md3-fetch($md3-radius-scale, $token, "radius token");
285
- }
286
-
287
- //
288
- // Gap function
289
- @function md3-gap($token) { @return md3-space($token); }
290
-
291
- //
292
- // Export gap vars mixin
293
- @mixin md3-export-gap-vars() {
294
- @each $token, $value in $md3-space-scale {
295
- --gap-#{$token}: #{$value};
296
- }
297
- }
298
-
299
- //
300
- // Padding function
301
- @function md3-padding($token) { @return md3-space($token); }
302
-
303
- //
304
- // Export padding vars mixin
305
- @mixin md3-export-padding-vars() {
306
- @each $token, $value in $md3-space-scale {
307
- --padding-#{$token}: #{$value};
308
- }
309
- }
310
-
311
- //
312
- // Radius function
313
- @function md3-shape($token) {
314
- @if map.has-key($md3-shape-scale, $token) {
315
- @return map.get($md3-shape-scale, $token);
316
- }
317
-
318
- @if map.has-key($md3-shape-aliases, $token) {
319
- $alias: map.get($md3-shape-aliases, $token);
320
- @return map.get($md3-shape-scale, $alias);
321
- }
322
-
323
- @error "Unknown MD3 shape token `#{$token}`. Available: #{map.keys($md3-shape-scale)}";
324
- }
325
-
326
- //
327
- // State function
328
- @function md3-opacity-state($state) {
329
- @return _.md3-fetch($md3-state-opacity, $state, "state token");
330
- }
331
-
332
- //
333
- // Icon size function
334
- @function md3-icon-size($token: md) {
335
- @return _.md3-fetch($md3-icon-sizes, $token, "icon size");
336
- }
337
-
338
- //
339
- // Avatar size function
340
- @function md3-avatar-size($token: md) {
341
- @return _.md3-fetch($md3-avatar-sizes, $token, "avatar size");
342
- }
343
-
344
- //
345
- // Export layout vars mixin
346
- @mixin md3-export-density-vars() {
347
- @each $token, $value in $md3-space-scale {
348
- --md3-space-#{$token}: #{$value};
349
- }
350
- }
351
-
352
-
353
-
354
- @mixin md3-export-scale-vars() {
355
- --u: 1rem;
356
- --pxu: 1px;
357
- --cqi: 1cqi;
358
- --cqb: 1cqb;
359
-
360
- --size-scale: 1;
361
- --font-scale: 1;
362
-
363
- --container-max-width: min(100%, 110rem);
364
- --container-padding: clamp(1rem, 3vw, 2rem);
365
-
366
- @each $name, $value in $md3-breakpoints {
367
- --breakpoint-#{$name}: #{$value};
368
- }
369
-
370
- @container (inline-size < $md3-container-compact-max) {
371
- --size-scale: 0.92;
372
- --font-scale: 0.96;
373
- }
374
-
375
- @container ($md3-container-compact-max <= inline-size < $md3-container-cozy-max) {
376
- --size-scale: 1;
377
- --font-scale: 1;
378
- }
379
-
380
- @container (inline-size >= $md3-container-cozy-max) {
381
- --size-scale: 1.05;
382
- --font-scale: 1.04;
383
- }
384
-
385
- --sidebar-width: min(clamp(16.25rem, 28vw, 22.5rem), 100cqi);
386
- --sidebar-width-collapsed: min(clamp(10rem, 20vw, 12.5rem), 100cqi);
387
- --sidebar-width-mobile: min(clamp(17.5rem, 35vw, 20rem), 100cqi);
388
- --sidebar-width-mobile-small: min(clamp(18.75rem, 40vw, 21.25rem), 100cqi);
389
-
390
- @media (max-inline-size: #{map.get($md3-breakpoints, md)}) {
391
- --sidebar-width: var(--sidebar-width-mobile);
392
- }
393
-
394
- @media (max-inline-size: #{map.get($md3-breakpoints, sm)}) {
395
- --sidebar-width: var(--sidebar-width-mobile-small);
396
- }
397
- }
398
-
399
-
400
-
401
-
402
- //
403
- // Export layout vars mixin
404
- @mixin md3-export-layout-vars() {
405
- // Spacing tokens
406
- @each $token, $value in $md3-space-scale {
407
- --space-#{$token}-base: #{$value};
408
- }
409
-
410
-
411
-
412
- // Icon & avatar sizes
413
- --icon-size-xs: #{md3-icon-size(xs)};
414
- --icon-size-sm: #{md3-icon-size(sm)};
415
- --icon-size-md: #{md3-icon-size(md)};
416
- --icon-size-lg: #{md3-icon-size(lg)};
417
- --icon-size-xl: #{md3-icon-size(xl)};
418
- --icon-size-2xl: #{md3-icon-size(2xl)};
419
-
420
- --avatar-size-sm: #{md3-avatar-size(sm)};
421
- --avatar-size: #{md3-avatar-size(md)};
422
- --avatar-size-lg: #{md3-avatar-size(lg)};
423
-
424
- --text-opacity-disabled: #{md3-state(disabled)};
425
- }
426
-
427
-
428
- //
429
- // Spacing variables
430
- $spacing-xs: #{md3-space(xs)};
431
- $spacing-sm: #{md3-space(sm)};
432
- $spacing-md: #{md3-space(md)};
433
- $spacing-lg: #{md3-space(lg)};
434
- $spacing-xl: #{md3-space(xl)};
435
- $spacing-2xl: #{md3-space(2xl)};
436
- $spacing-3xl: #{md3-space(3xl)};
437
- $spacing-4xl: #{md3-space(4xl)};
438
-
439
- //
440
- // Border radius variables
441
- $border-radius-sm: #{md3-radius(sm)};
442
- $border-radius-md: #{md3-radius(md)};
443
- $border-radius-lg: #{md3-radius(lg)};
444
- $border-radius-xl: #{md3-radius(xl)};
445
- $border-radius-2xl: #{md3-radius(2xl)};
446
- $border-radius-3xl: #{md3-radius(3xl)};
447
- $border-radius-4xl: #{md3-radius(4xl)};
448
- $border-radius-full: #{md3-radius(full)};
449
-
450
- //
451
- // Z-index variables
452
- $z-dropdown: 1000;
453
- $z-sticky: 1020;
454
- $z-fixed: 1030;
455
- $z-modal-backdrop: 1040;
456
- $z-modal: 1050;
457
- $z-popover: 1060;
458
- $z-tooltip: 1070;
459
-
460
- //
461
- // Breakpoint variables
462
- $breakpoint-sm: map.get($md3-breakpoints, sm);
463
- $breakpoint-md: map.get($md3-breakpoints, md);
464
- $breakpoint-lg: map.get($md3-breakpoints, lg);
465
- $breakpoint-xl: map.get($md3-breakpoints, xl);
466
- $breakpoint-2xl: map.get($md3-breakpoints, 2xl);
467
-
468
- //
469
- // Container max width
470
- $container-max-width: min(100%, 110rem);
471
-
472
- //
473
- // Backdrop blur variables
474
- $backdrop-blur-sm: blur(6px);
475
- $backdrop-blur-md: blur(12px);
476
- $backdrop-blur-lg: blur(18px);
477
-
478
- //
479
- // UI radius variables
480
- $ui-radius-sm: #{md3-radius(sm)} !default;
481
- $ui-radius-md: #{md3-radius(md)} !default;
482
- $ui-radius-lg: #{md3-radius(lg)} !default;
483
- $ui-radius-xl: #{md3-radius(xl)} !default;
484
- $ui-radius-2xl: #{md3-radius(2xl)} !default;
485
- $ui-radius-3xl: #{md3-radius(3xl)} !default;
486
- $ui-radius-4xl: #{md3-radius(4xl)} !default;
487
- $ui-radius-full: #{md3-radius(full)} !default;
488
- $ui-border-width: 1px !default;
489
-
490
- //
491
- // UI spacing variables
492
- $ui-spacing-2xs: #{md3-space(2xs)} !default;
493
- $ui-spacing-xs: #{md3-space(xs)} !default;
494
- $ui-spacing-sm: #{md3-space(sm)} !default;
495
- $ui-spacing-md: #{md3-space(md)} !default;
496
- $ui-spacing-lg: #{md3-space(lg)} !default;
497
- $ui-spacing-xl: #{md3-space(xl)} !default;
498
- $ui-spacing-2xl: #{md3-space(2xl)} !default;
499
- $ui-spacing-3xl: #{md3-space(3xl)} !default;
500
- $ui-spacing-4xl: #{md3-space(4xl)} !default;
501
-
502
- //
503
- // UI titlebar height
504
- $ui-titlebar-height: 32px !default;
505
- $ui-font-title-size: #{md3-type("title-small", size)} !default;
506
- $ui-font-subtitle-size: #{md3-type("label-large", size)} !default;
@@ -1,114 +0,0 @@
1
- @use "sass:list";
2
- @use "sass:map";
3
- @use "sass:math";
4
- @use "sass:meta";
5
- @use "sass:string";
6
-
7
- //
8
- @function option-or($options, $key, $fallback) {
9
- $value: map.get($options, $key);
10
- @return if(sass($value == null): $fallback; else: $value);
11
- }
12
-
13
- //
14
- // Fetch function
15
- @function md3-fetch($source, $token, $label: "token") {
16
- @if map.has-key($source, $token) {
17
- @return map.get($source, $token);
18
- }
19
-
20
- @error "Unknown #{$label} `#{$token}`. Available: #{map.keys($source)}";
21
- }
22
-
23
- //
24
- @mixin when-hover($selector: "&") {
25
- @media (hover: hover) and (pointer: fine) { #{$selector}:hover { @content; } }
26
- @media (hover: none) and (pointer: coarse) { #{$selector}:active { @content; } }
27
- }
28
-
29
- //
30
- @mixin when-active($selector: "&") {
31
- @media (hover: hover) and (pointer: fine) { #{$selector}:active { @content; } }
32
- }
33
-
34
- //
35
- @mixin when-focus($selector: "&") {
36
- @media (hover: hover) and (pointer: fine) { #{$selector}:focus-visible { @content; } }
37
- @media (hover: none) and (pointer: coarse) { #{$selector}:focus { @content; } }
38
- }
39
-
40
- //
41
- @mixin when-focus-visible($selector: "&") {
42
- @media (hover: hover) and (pointer: fine) { #{$selector}:focus-visible { @content; } }
43
- @media (hover: none) and (pointer: coarse) { #{$selector}:focus-visible { @content; } }
44
- }
45
-
46
- //
47
- @mixin when-disabled($selector: "&") {
48
- @media (hover: hover) and (pointer: fine) { #{$selector}:disabled, #{$selector}[aria-disabled="true"] { @content; } }
49
- @media (hover: none) and (pointer: coarse) { #{$selector}:disabled, #{$selector}[aria-disabled="true"] { @content; } }
50
- }
51
-
52
- //
53
- @mixin when-selected($selector: "&") {
54
- @media (hover: hover) and (pointer: fine) { #{$selector}::selection, #{$selector}:checked, #{$selector}[aria-selected="true"] { @content; } }
55
- @media (hover: none) and (pointer: coarse) { #{$selector}::selection, #{$selector}:checked, #{$selector}[aria-selected="true"] { @content; } }
56
- }
57
-
58
- //
59
- @mixin when-autofill($selector: "&") {
60
- #{$selector}:-webkit-autofill { @content; }
61
- #{$selector}:autofill { @content; }
62
- #{$selector}:auto-fill { @content; }
63
- }
64
-
65
- // State layer mixin
66
- @mixin md3-state-layer($role: primary, $state: hover, $selector: "&::after") {
67
- $opacity: md3-opacity-state($state);
68
- $role-var: md3-var($role);
69
- $weight: calc(100% * #{$opacity});//math.percentage($opacity);
70
-
71
- @if $selector == "&::after" or $selector == "&::before" {
72
- position: relative;
73
- overflow: hidden;
74
- }
75
-
76
- #{$selector} {
77
- content: "";
78
- position: absolute;
79
- inset: 0;
80
- background-color: color-mix(in oklch, var(#{$role-var}) #{$weight}, transparent);
81
- opacity: 0;
82
- pointer-events: none;
83
- transition: opacity var(--duration-fast) var(--ease-out);
84
- }
85
-
86
- @include when-hover {
87
- #{$selector} { opacity: $opacity; }
88
- }
89
-
90
- @include when-active {
91
- #{$selector} { opacity: $opacity; }
92
- }
93
-
94
- @include when-focus {
95
- #{$selector} { opacity: $opacity; }
96
- }
97
-
98
- @include when-focus-visible {
99
- #{$selector} { opacity: $opacity; }
100
- }
101
-
102
- @include when-disabled {
103
- #{$selector} { opacity: $opacity; }
104
- }
105
-
106
- @include when-selected {
107
- #{$selector} { opacity: $opacity; }
108
- }
109
- }
110
-
111
- @mixin hover($selector: "&") {
112
- @include when-hover { #{$selector}:hover { @content; } }
113
- @include when-active { #{$selector}:active { @content; } }
114
- }