@shohojdhara/atomix 0.5.2 → 0.5.5

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 (61) hide show
  1. package/atomix.config.ts +33 -33
  2. package/dist/atomix.css +3213 -159
  3. package/dist/atomix.css.map +1 -1
  4. package/dist/atomix.min.css +5 -5
  5. package/dist/atomix.min.css.map +1 -1
  6. package/dist/config.d.ts +187 -112
  7. package/dist/config.js +2 -47
  8. package/dist/config.js.map +1 -1
  9. package/dist/index.d.ts +1958 -900
  10. package/dist/index.esm.js +2279 -382
  11. package/dist/index.esm.js.map +1 -1
  12. package/dist/index.js +2332 -413
  13. package/dist/index.js.map +1 -1
  14. package/dist/index.min.js +1 -1
  15. package/dist/index.min.js.map +1 -1
  16. package/dist/theme.d.ts +1390 -276
  17. package/dist/theme.js +2125 -621
  18. package/dist/theme.js.map +1 -1
  19. package/package.json +1 -1
  20. package/scripts/cli/internal/config-loader.js +30 -20
  21. package/src/lib/config/index.ts +38 -362
  22. package/src/lib/config/loader.ts +422 -0
  23. package/src/lib/config/public-api.ts +43 -0
  24. package/src/lib/config/types.ts +389 -0
  25. package/src/lib/config/validator.ts +305 -0
  26. package/src/lib/theme/adapters/index.ts +1 -1
  27. package/src/lib/theme/adapters/themeAdapter.ts +358 -229
  28. package/src/lib/theme/components/ThemeToggle.tsx +276 -0
  29. package/src/lib/theme/config/configLoader.ts +351 -0
  30. package/src/lib/theme/config/loader.ts +221 -0
  31. package/src/lib/theme/core/createTheme.ts +126 -50
  32. package/src/lib/theme/core/createThemeObject.ts +7 -4
  33. package/src/lib/theme/hooks/useThemeSwitcher.ts +164 -0
  34. package/src/lib/theme/index.ts +322 -38
  35. package/src/lib/theme/runtime/ThemeProvider.tsx +44 -10
  36. package/src/lib/theme/runtime/__tests__/ThemeProvider.test.tsx +44 -393
  37. package/src/lib/theme/runtime/useTheme.ts +1 -0
  38. package/src/lib/theme/tokens/tokens.ts +101 -1
  39. package/src/lib/theme/types.ts +91 -0
  40. package/src/lib/theme/utils/performanceMonitor.ts +315 -0
  41. package/src/lib/theme/utils/responsive.ts +280 -0
  42. package/src/lib/theme/utils/themeUtils.ts +531 -117
  43. package/src/styles/01-settings/_settings.background.scss +34 -5
  44. package/src/styles/02-tools/_tools.background.scss +330 -52
  45. package/src/styles/05-objects/_objects.masonry-grid.scss +3 -3
  46. package/src/styles/06-components/_components.accordion.scss +2 -2
  47. package/src/styles/06-components/_components.badge.scss +1 -1
  48. package/src/styles/06-components/_components.button.scss +2 -2
  49. package/src/styles/06-components/_components.callout.scss +2 -2
  50. package/src/styles/06-components/_components.card.scss +1 -1
  51. package/src/styles/06-components/_components.dropdown.scss +1 -1
  52. package/src/styles/06-components/_components.dynamic-background.scss +69 -0
  53. package/src/styles/06-components/_components.edge-panel.scss +2 -2
  54. package/src/styles/06-components/_components.input.scss +3 -3
  55. package/src/styles/06-components/_components.messages.scss +6 -6
  56. package/src/styles/06-components/_components.modal.scss +1 -1
  57. package/src/styles/06-components/_components.navbar.scss +1 -1
  58. package/src/styles/06-components/_components.popover.scss +1 -1
  59. package/src/styles/06-components/_components.toggle.scss +1 -1
  60. package/src/styles/06-components/_components.tooltip.scss +3 -3
  61. package/src/styles/06-components/_index.scss +1 -0
@@ -1,7 +1,36 @@
1
1
  // Global effect toggles
2
- $background-enable-gradient-overlay: false !default;
3
- $background-transparency-enable: false !default;
4
- $background-enable-with-shadow: false !default;
2
+ $background-enable-gradient-overlay: true !default;
3
+ $background-transparency-enable: true !default;
4
+ $background-enable-with-shadow: true !default;
5
+ $background-enable-mesh-gradient: false !default;
6
+ $background-enable-noise-texture: false !default;
7
+ $background-enable-shimmer: false !default;
5
8
 
6
- // Core transparency levels (used in dynamic-background-core defaults)
7
- $background-transparency: 0.5 !default;
9
+ // Core transparency levels
10
+ $background-transparency: 0.65 !default;
11
+ $background-transparency-hover: 0.8 !default;
12
+ $background-transparency-active: 0.9 !default;
13
+
14
+ // Gradient configuration
15
+ $background-gradient-angle: 135deg !default;
16
+ $background-gradient-stops: 4 !default;
17
+ $background-gradient-intensity: 1.2 !default;
18
+
19
+ // Shadow configuration
20
+ $background-shadow-layers: 3 !default;
21
+ $background-shadow-intensity: 0.2 !default;
22
+ $background-shadow-blur-base: 8px !default;
23
+ $background-shadow-spread: 2px !default;
24
+
25
+ // Border configuration
26
+ $background-border-width: 1px !default;
27
+ $background-border-opacity: 0.2 !default;
28
+ $background-border-gradient-enable: true !default;
29
+
30
+ // Noise texture (for glass-like grain)
31
+ $background-noise-opacity: 0.03 !default;
32
+ $background-noise-scale: 200 !default;
33
+
34
+ // Shimmer effect
35
+ $background-shimmer-duration: 3s !default;
36
+ $background-shimmer-intensity: 0.15 !default;
@@ -3,73 +3,351 @@
3
3
  @use 'sass:math';
4
4
  @use 'sass:color';
5
5
  @use 'sass:map';
6
+ @use 'sass:list';
6
7
  @use '../01-settings/settings.background' as *;
7
8
  @use '../01-settings/settings.config' as *;
9
+ @use '../01-settings/settings.colors' as *;
8
10
  @use '../02-tools/tools.to-rgb' as *;
9
11
 
12
+ /// Dynamic background mixin with glass morphism effects
13
+ /// @param {Color} $color - Base color for the background
14
+ /// @param {Number} $transparency [0.65] - Transparency level (0-1)
15
+ /// @param {Boolean} $enable-transparency [true] - Enable transparency effects
16
+ /// @param {Boolean} $enable-gradient [true] - Enable gradient overlay
17
+ /// @param {Boolean} $enable-shadow [true] - Enable shadow layers
18
+ /// @param {Boolean} $enable-border [false] - Enable border gradient
19
+ /// @param {Boolean} $enable-noise [false] - Enable noise texture
20
+ /// @param {String} $variant ['glass'] - Variant: 'glass', 'solid', 'mesh', 'shimmer'
10
21
  @mixin dynamic-background(
11
22
  $color,
12
23
  $transparency: $background-transparency,
13
- $background-transparency-enable: $background-transparency-enable
24
+ $enable-transparency: $background-transparency-enable,
25
+ $enable-gradient: $background-enable-gradient-overlay,
26
+ $enable-shadow: $background-enable-with-shadow,
27
+ $enable-border: false,
28
+ $enable-noise: $background-enable-noise-texture,
29
+ $variant: 'glass'
14
30
  ) {
15
- // Validate inputs
16
- @if $transparency < 0 or $transparency > 1 {
17
- @error 'Transparency must be between 0 and 1, got #{$transparency}';
18
- }
31
+ // Base positioning for pseudo-elements
32
+ position: relative;
33
+ isolation: isolate;
19
34
 
20
- // Apply background based on transparency settings
21
- @if $background-transparency-enable and $transparency > 0 {
22
- @if $background-enable-gradient-overlay {
23
- background:
24
- // Top highlight layer
25
- linear-gradient(
26
- 135deg,
27
- rgba(255, 255, 255, 0.15) 0%,
28
- rgba(255, 255, 255, 0.05) 25%,
29
- transparent 50%
30
- ),
31
- // Main liquid glass layer
32
- linear-gradient(
33
- to bottom,
34
- color-mix(in srgb, #{$color} #{math.percentage($transparency * 1.2)}, transparent) 0%,
35
- color-mix(in srgb, #{$color} #{math.percentage($transparency)}, transparent) 35%,
36
- color-mix(in srgb, #{$color} #{math.percentage($transparency * 0.8)}, transparent) 65%,
37
- color-mix(in srgb, #{$color} #{math.percentage($transparency * 1.1)}, transparent) 100%
35
+ // ─── Glass Variant (Default) ────────────────────────────────────────────────
36
+ @if $variant == 'glass' {
37
+ @if $enable-transparency {
38
+ @if $enable-gradient {
39
+ background:
40
+ // Shimmer highlight
41
+ linear-gradient(
42
+ 110deg,
43
+ transparent 0%,
44
+ rgba(255, 255, 255, 0.08) 45%,
45
+ rgba(255, 255, 255, 0.12) 50%,
46
+ rgba(255, 255, 255, 0.08) 55%,
47
+ transparent 100%
48
+ ),
49
+ // Top edge highlight
50
+ linear-gradient(
51
+ 180deg,
52
+ rgba(255, 255, 255, 0.15) 0%,
53
+ rgba(255, 255, 255, 0.05) 15%,
54
+ transparent 30%
55
+ ),
56
+ // Main glass layer with depth
57
+ linear-gradient(
58
+ $background-gradient-angle,
59
+ color-mix(in srgb, #{$color} 78%, transparent) 0%,
60
+ color-mix(in srgb, #{$color} 65%, transparent) 40%,
61
+ color-mix(in srgb, #{$color} 55%, transparent) 70%,
62
+ color-mix(in srgb, #{$color} 68%, transparent) 100%
38
63
  ),
39
- // Bottom shadow layer
40
- radial-gradient(
41
- ellipse at bottom,
42
- color-mix(in srgb, #{$color} #{math.percentage($transparency * 0.3)}, transparent) 0%,
43
- transparent 70%
64
+ // Bottom ambient shadow
65
+ radial-gradient(
66
+ ellipse 120% 80% at 50% 120%,
67
+ color-mix(in srgb, #{$color} 26%, transparent) 0%,
68
+ transparent 60%
44
69
  );
70
+ backdrop-filter: blur(12px) saturate(1.4);
71
+ -webkit-backdrop-filter: blur(12px) saturate(1.4);
72
+ } @else {
73
+ background-color: color-mix(
74
+ in srgb,
75
+ #{$color} 65%,
76
+ transparent
77
+ );
78
+ backdrop-filter: blur(8px);
79
+ -webkit-backdrop-filter: blur(8px);
80
+ }
45
81
  } @else {
46
- background-color: color-mix(
47
- in srgb,
48
- #{$color} #{math.percentage($transparency)},
49
- transparent
50
- );
82
+ background-color: $color;
83
+ }
84
+
85
+ // Glass border gradient
86
+ @if $enable-border {
87
+ &::before {
88
+ content: '';
89
+ position: absolute;
90
+ inset: 0;
91
+ border-radius: inherit;
92
+ padding: $background-border-width;
93
+ background: linear-gradient(
94
+ $background-gradient-angle,
95
+ rgba(255, 255, 255, $background-border-opacity * 1.2) 0%,
96
+ rgba(255, 255, 255, $background-border-opacity * 0.6) 50%,
97
+ rgba(255, 255, 255, $background-border-opacity * 0.3) 100%
98
+ );
99
+ -webkit-mask:
100
+ linear-gradient(#fff 0 0) content-box,
101
+ linear-gradient(#fff 0 0);
102
+ -webkit-mask-composite: xor;
103
+ mask-composite: exclude;
104
+ pointer-events: none;
105
+ z-index: 1;
106
+ }
51
107
  }
52
- } @else {
108
+
109
+ // Noise texture overlay
110
+ @if $enable-noise {
111
+ &::after {
112
+ content: '';
113
+ position: absolute;
114
+ inset: 0;
115
+ border-radius: inherit;
116
+ opacity: $background-noise-opacity;
117
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 #{$background-noise-scale} #{$background-noise-scale}' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' /%3E%3C/svg%3E");
118
+ background-size: #{$background-noise-scale}px;
119
+ pointer-events: none;
120
+ mix-blend-mode: overlay;
121
+ z-index: 2;
122
+ }
123
+ }
124
+ }
125
+
126
+ // ─── Solid Variant ──────────────────────────────────────────────────────────
127
+ @else if $variant == 'solid' {
53
128
  background-color: $color;
129
+ @if $enable-gradient {
130
+ background: linear-gradient(
131
+ $background-gradient-angle,
132
+ color.adjust($color, $lightness: 5%) 0%,
133
+ $color 50%,
134
+ color.adjust($color, $lightness: -5%) 100%
135
+ );
136
+ }
137
+ }
138
+
139
+ // ─── Mesh Gradient Variant ──────────────────────────────────────────────────
140
+ @else if $variant == 'mesh' {
141
+ background:
142
+ radial-gradient(
143
+ circle at 20% 30%,
144
+ color-mix(in srgb, #{$color} 40%, transparent) 0%,
145
+ transparent 50%
146
+ ),
147
+ radial-gradient(
148
+ circle at 80% 70%,
149
+ color-mix(in srgb, #{$color} 35%, transparent) 0%,
150
+ transparent 50%
151
+ ),
152
+ radial-gradient(
153
+ circle at 50% 50%,
154
+ color-mix(in srgb, #{$color} 65%, transparent) 0%,
155
+ color-mix(in srgb, #{$color} 39%, transparent) 100%
156
+ );
157
+ backdrop-filter: blur(16px);
158
+ -webkit-backdrop-filter: blur(16px);
159
+ }
160
+
161
+ // ─── Shimmer Variant ────────────────────────────────────────────────────────
162
+ @else if $variant == 'shimmer' {
163
+ background: color-mix(
164
+ in srgb,
165
+ #{$color} 75%,
166
+ transparent
167
+ );
168
+ overflow: hidden;
169
+
170
+ &::before {
171
+ content: '';
172
+ position: absolute;
173
+ inset: 0;
174
+ background: linear-gradient(
175
+ 110deg,
176
+ transparent 0%,
177
+ rgba(255, 255, 255, $background-shimmer-intensity) 50%,
178
+ transparent 100%
179
+ );
180
+ transform: translateX(-100%);
181
+ animation: shimmer $background-shimmer-duration infinite;
182
+ pointer-events: none;
183
+ }
184
+ }
185
+
186
+ // ─── Shadow Layers ──────────────────────────────────────────────────────────
187
+ @if $enable-shadow {
188
+ $shadow-list: ();
189
+
190
+ // Inner glow
191
+ $shadow-list: list.append(
192
+ $shadow-list,
193
+ inset 0 1px 0 rgba(255, 255, 255, 0.1),
194
+ comma
195
+ );
196
+
197
+ // Layered outer shadows
198
+ @for $i from 1 through $background-shadow-layers {
199
+ $blur: $background-shadow-blur-base * $i;
200
+ $spread: if($i == 1, $background-shadow-spread, 0);
201
+ $opacity: math.div($background-shadow-intensity, $i);
202
+
203
+ $shadow-list: list.append(
204
+ $shadow-list,
205
+ 0 #{$blur} #{$blur * 2} #{$spread} color-mix(in srgb, #{$color} #{math.percentage($opacity * 100)}, transparent),
206
+ comma
207
+ );
208
+ }
209
+
210
+ // Ambient shadow
211
+ $shadow-list: list.append(
212
+ $shadow-list,
213
+ 0 2px 4px rgba(0, 0, 0, 0.05),
214
+ comma
215
+ );
216
+
217
+ box-shadow: $shadow-list;
218
+ }
219
+
220
+ // ─── Hover & Active States ──────────────────────────────────────────────────
221
+ transition:
222
+ background 0.3s cubic-bezier(0.4, 0, 0.2, 1),
223
+ box-shadow 0.3s cubic-bezier(0.4, 0, 0.2, 1),
224
+ transform 0.2s cubic-bezier(0.4, 0, 0.2, 1);
225
+
226
+ @media (hover: hover) {
227
+ &:hover {
228
+ @if $variant == 'glass' and $enable-transparency {
229
+ & {
230
+ background:
231
+ linear-gradient(
232
+ 110deg,
233
+ transparent 0%,
234
+ rgba(255, 255, 255, 0.1) 45%,
235
+ rgba(255, 255, 255, 0.15) 50%,
236
+ rgba(255, 255, 255, 0.1) 55%,
237
+ transparent 100%
238
+ ),
239
+ linear-gradient(
240
+ 180deg,
241
+ rgba(255, 255, 255, 0.18) 0%,
242
+ rgba(255, 255, 255, 0.08) 15%,
243
+ transparent 30%
244
+ ),
245
+ linear-gradient(
246
+ $background-gradient-angle,
247
+ color-mix(in srgb, #{$color} 96%, transparent) 0%,
248
+ color-mix(in srgb, #{$color} 80%, transparent) 40%,
249
+ color-mix(in srgb, #{$color} 68%, transparent) 70%,
250
+ color-mix(in srgb, #{$color} 84%, transparent) 100%
251
+ ),
252
+ radial-gradient(
253
+ ellipse 120% 80% at 50% 120%,
254
+ color-mix(in srgb, #{$color} 40%, transparent) 0%,
255
+ transparent 60%
256
+ );
257
+ }
258
+ }
259
+
260
+ @if $enable-shadow {
261
+ & {
262
+ box-shadow:
263
+ inset 0 1px 0 rgba(255, 255, 255, 0.15),
264
+ 0 #{$background-shadow-blur-base * 1.5} #{$background-shadow-blur-base * 3} #{$background-shadow-spread} color-mix(in srgb, #{$color} #{math.percentage($background-shadow-intensity * 150)}, transparent),
265
+ 0 #{$background-shadow-blur-base * 2.5} #{$background-shadow-blur-base * 5} 0 color-mix(in srgb, #{$color} #{math.percentage($background-shadow-intensity * 100)}, transparent),
266
+ 0 2px 4px rgba(0, 0, 0, 0.08);
267
+ }
268
+ }
269
+ }
270
+ }
271
+
272
+ &:active {
273
+ @if $variant == 'glass' and $enable-transparency {
274
+ & {
275
+ background:
276
+ linear-gradient(
277
+ 180deg,
278
+ rgba(255, 255, 255, 0.12) 0%,
279
+ rgba(255, 255, 255, 0.05) 20%,
280
+ transparent 40%
281
+ ),
282
+ linear-gradient(
283
+ $background-gradient-angle,
284
+ color-mix(in srgb, #{$color} 108%, transparent) 0%,
285
+ color-mix(in srgb, #{$color} 90%, transparent) 50%,
286
+ color-mix(in srgb, #{$color} 81%, transparent) 100%
287
+ );
288
+ }
289
+ }
290
+ & {
291
+ transform: scale(0.98);
292
+ }
54
293
  }
294
+ }
55
295
 
56
- @if $background-enable-with-shadow {
57
- box-shadow:
58
- var(--atomix-box-shadow-inset),
59
- // Inner glow
60
- // inset
61
- // 0
62
- // 1px
63
- // 0
64
- // rgba(255, 255, 255, 0.25),
65
- // inset 0 -1px 0 color-mix(in srgb, #{$color} 10%, transparent),
66
- // Outer depth
67
- 4px
68
- 8px
69
- 32px
70
- color-mix(in srgb, #{$color} 20%, transparent),
71
- 0 1px 2px rgba(0, 0, 0, 0.1),
72
- 0 8px 20px color-mix(in srgb, #{$color} 20%, transparent),
73
- 0 1px 2px rgba(0, 0, 0, 0.1);
296
+ // ─── Shimmer Animation ──────────────────────────────────────────────────────
297
+ @keyframes shimmer {
298
+ 0% {
299
+ transform: translateX(-100%);
300
+ }
301
+ 100% {
302
+ transform: translateX(200%);
74
303
  }
75
304
  }
305
+
306
+ /// Simplified dynamic background for quick usage
307
+ /// @param {Color} $color - Base color
308
+ /// @param {Number} $transparency [0.65] - Transparency level
309
+ @mixin glass-background($color, $transparency: $background-transparency) {
310
+ @include dynamic-background(
311
+ $color: $color,
312
+ $transparency: $transparency,
313
+ $enable-transparency: true,
314
+ $enable-gradient: true,
315
+ $enable-shadow: true,
316
+ $variant: 'glass'
317
+ );
318
+ }
319
+
320
+ /// Solid background with subtle gradient
321
+ /// @param {Color} $color - Base color
322
+ @mixin solid-background($color) {
323
+ @include dynamic-background(
324
+ $color: $color,
325
+ $variant: 'solid',
326
+ $enable-gradient: true,
327
+ $enable-shadow: false
328
+ );
329
+ }
330
+
331
+ /// Mesh gradient background
332
+ /// @param {Color} $color - Base color
333
+ /// @param {Number} $transparency [0.65] - Transparency level
334
+ @mixin mesh-background($color, $transparency: $background-transparency) {
335
+ @include dynamic-background(
336
+ $color: $color,
337
+ $transparency: $transparency,
338
+ $variant: 'mesh',
339
+ $enable-shadow: true
340
+ );
341
+ }
342
+
343
+ /// Shimmer effect background
344
+ /// @param {Color} $color - Base color
345
+ /// @param {Number} $transparency [0.65] - Transparency level
346
+ @mixin shimmer-background($color, $transparency: $background-transparency) {
347
+ @include dynamic-background(
348
+ $color: $color,
349
+ $transparency: $transparency,
350
+ $variant: 'shimmer',
351
+ $enable-shadow: false
352
+ );
353
+ }
@@ -131,12 +131,12 @@
131
131
  opacity: 0;
132
132
  // CSS @property for smoother opacity transitions
133
133
  @supports (property: opacity) and (animation-timeline: view()) {
134
+ opacity: var(--masonry-img-opacity);
134
135
  @property --masonry-img-opacity {
135
136
  syntax: '<number>';
136
137
  inherits: false;
137
138
  initial-value: 0;
138
139
  }
139
- opacity: var(--masonry-img-opacity);
140
140
  }
141
141
  }
142
142
  }
@@ -149,13 +149,13 @@
149
149
 
150
150
  // CSS @property for precise opacity control
151
151
  @supports (property: opacity) and (animation-timeline: view()) {
152
+ opacity: var(--masonry-img-opacity);
153
+ animation: masonry-item-fade-in-advanced masonry.$masonry-grid-item-animation-duration masonry.$masonry-grid-item-animation-timing forwards;
152
154
  @property --masonry-img-opacity {
153
155
  syntax: '<number>';
154
156
  inherits: false;
155
157
  initial-value: 0;
156
158
  }
157
- opacity: var(--masonry-img-opacity);
158
- animation: masonry-item-fade-in-advanced masonry.$masonry-grid-item-animation-duration masonry.$masonry-grid-item-animation-timing forwards;
159
159
  }
160
160
  }
161
161
  }
@@ -146,13 +146,13 @@
146
146
  #{$root}__header {
147
147
  @include dynamic-background(
148
148
  var(--#{config.$prefix}accordion-header-bg),
149
- $background-transparency-enable: true
149
+ $enable-transparency: true
150
150
  );
151
151
  }
152
152
  #{$root}__body {
153
153
  @include dynamic-background(
154
154
  var(--#{config.$prefix}accordion-header-bg),
155
- $background-transparency-enable: true
155
+ $enable-transparency: true
156
156
  );
157
157
  }
158
158
  }
@@ -46,7 +46,7 @@
46
46
  &--glass {
47
47
  @include dynamic-background(
48
48
  var(--#{$prefix}tag-bg-color),
49
- $background-transparency-enable: true,
49
+ $enable-transparency: true,
50
50
  $transparency: 0.2
51
51
  );
52
52
  border: 1px solid color-mix(in srgb, var(--#{$prefix}tag-color) 50%, transparent);
@@ -231,13 +231,13 @@
231
231
  &--glass {
232
232
  @include dynamic-background(
233
233
  var(--#{config.$prefix}btn-bg),
234
- $background-transparency-enable: true
234
+ $enable-transparency: true
235
235
  );
236
236
 
237
237
  &:hover {
238
238
  @include dynamic-background(
239
239
  var(--#{config.$prefix}btn-hover-bg),
240
- $background-transparency-enable: true
240
+ $enable-transparency: true
241
241
  );
242
242
  }
243
243
  }
@@ -220,7 +220,7 @@
220
220
  width: 100%;
221
221
  @include dynamic-background(
222
222
  var(--#{config.$prefix}callout-bg),
223
- $background-transparency-enable: true
223
+ $enable-transparency: true
224
224
  );
225
225
  }
226
226
 
@@ -237,7 +237,7 @@
237
237
  &#{$root}--toast {
238
238
  @include dynamic-background(
239
239
  var(--#{config.$prefix}callout-bg),
240
- $background-transparency-enable: true
240
+ $enable-transparency: true
241
241
  );
242
242
  box-shadow:
243
243
  0 8px 32px rgba(0, 0, 0, 0.1),
@@ -222,7 +222,7 @@
222
222
 
223
223
  &--glass {
224
224
  max-width: none;
225
- @include dynamic-background(var(--#{$prefix}card-bg), $background-transparency-enable: true);
225
+ @include dynamic-background(var(--#{$prefix}card-bg), $enable-transparency: true);
226
226
  }
227
227
 
228
228
  &--outlined {
@@ -194,7 +194,7 @@
194
194
  &--glass {
195
195
  @include dynamic-background(
196
196
  var(--#{$prefix}dropdown-bg),
197
- $background-transparency-enable: true
197
+ $enable-transparency: true
198
198
  );
199
199
  box-shadow: var(--#{$prefix}dropdown-box-shadow);
200
200
  }
@@ -0,0 +1,69 @@
1
+ @use '../../styles/01-settings/settings.colors' as *;
2
+ @use '../../styles/01-settings/settings.background' as *;
3
+ @use '../../styles/02-tools/tools.background' as *;
4
+
5
+ .c-dynamic-background {
6
+ // Base styles
7
+ min-height: 200px;
8
+ border-radius: 16px;
9
+
10
+ // Glass variant (default)
11
+ &--glass {
12
+ @include glass-background($primary-6, $background-transparency);
13
+ }
14
+
15
+ // Solid variant
16
+ &--solid {
17
+ @include solid-background($primary-6);
18
+ }
19
+
20
+ // Mesh variant
21
+ &--mesh {
22
+ @include mesh-background($primary-6, $background-transparency);
23
+ }
24
+
25
+ // Shimmer variant
26
+ &--shimmer {
27
+ @include shimmer-background($primary-6, $background-transparency);
28
+ }
29
+
30
+ // Border modifier
31
+ &--with-border {
32
+ &::before {
33
+ content: '';
34
+ position: absolute;
35
+ inset: 0;
36
+ border-radius: inherit;
37
+ padding: $background-border-width;
38
+ background: linear-gradient(
39
+ $background-gradient-angle,
40
+ rgba(255, 255, 255, $background-border-opacity * 1.2) 0%,
41
+ rgba(255, 255, 255, $background-border-opacity * 0.6) 50%,
42
+ rgba(255, 255, 255, $background-border-opacity * 0.3) 100%
43
+ );
44
+ -webkit-mask:
45
+ linear-gradient(#fff 0 0) content-box,
46
+ linear-gradient(#fff 0 0);
47
+ -webkit-mask-composite: xor;
48
+ mask-composite: exclude;
49
+ pointer-events: none;
50
+ z-index: 1;
51
+ }
52
+ }
53
+
54
+ // Noise modifier
55
+ &--with-noise {
56
+ &::after {
57
+ content: '';
58
+ position: absolute;
59
+ inset: 0;
60
+ border-radius: inherit;
61
+ opacity: $background-noise-opacity;
62
+ background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 #{$background-noise-scale} #{$background-noise-scale}' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' /%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' /%3E%3C/svg%3E");
63
+ background-size: #{$background-noise-scale}px;
64
+ pointer-events: none;
65
+ mix-blend-mode: overlay;
66
+ z-index: 2;
67
+ }
68
+ }
69
+ }
@@ -373,7 +373,7 @@
373
373
  transition: opacity 0.3s ease;
374
374
  @include dynamic-background(
375
375
  var(--#{$prefix}edge-panel-bg),
376
- $background-transparency-enable: true
376
+ $enable-transparency: true
377
377
  );
378
378
  }
379
379
 
@@ -406,7 +406,7 @@
406
406
  .c-edge-panel__backdrop {
407
407
  @include dynamic-background(
408
408
  var(--#{$prefix}edge-panel-backdrop-bg),
409
- $background-transparency-enable: true
409
+ $enable-transparency: true
410
410
  );
411
411
  animation: fadeIn 0.3s ease forwards;
412
412
  z-index: map.get($z-layers, 1);
@@ -108,7 +108,7 @@
108
108
 
109
109
  // Glass morphism effect styles
110
110
  &--glass {
111
- @include dynamic-background(var(--#{$prefix}input-bg), $background-transparency-enable: true);
111
+ @include dynamic-background(var(--#{$prefix}input-bg), $enable-transparency: true);
112
112
  box-shadow:
113
113
  0 8px 32px rgba(0, 0, 0, 0.1),
114
114
  0 0 0 1px rgba(255, 255, 255, 0.1) inset;
@@ -118,7 +118,7 @@
118
118
  &:hover {
119
119
  @include dynamic-background(
120
120
  var(--#{$prefix}input-bg),
121
- $background-transparency-enable: true,
121
+ $enable-transparency: true,
122
122
  $transparency: 0.9
123
123
  );
124
124
  }
@@ -130,7 +130,7 @@
130
130
  // Glass disabled state
131
131
  &:disabled,
132
132
  &.is-disabled {
133
- @include dynamic-background(var(--#{$prefix}input-bg), $background-transparency-enable: true);
133
+ @include dynamic-background(var(--#{$prefix}input-bg), $enable-transparency: true);
134
134
  opacity: 0.6;
135
135
  }
136
136
  }