@magmonium/one 0.0.4 → 0.0.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 (70) hide show
  1. package/package.json +2 -1
  2. package/sass/_date-picker.sass +147 -0
  3. package/sass/_index.sass +34 -0
  4. package/sass/_input-date.sass +25 -0
  5. package/sass/_m-components.sass +110 -0
  6. package/sass/_menu.sass +132 -0
  7. package/sass/_reset.sass +186 -0
  8. package/sass/animations/_index.sass +13 -0
  9. package/sass/animations/_registry.sass +51 -0
  10. package/sass/animations/background/_energy.sass +91 -0
  11. package/sass/animations/background/_gradient.sass +104 -0
  12. package/sass/animations/background/_index.sass +9 -0
  13. package/sass/animations/background/_nature.sass +110 -0
  14. package/sass/animations/background/_new-effects.sass +292 -0
  15. package/sass/animations/background/_particle.sass +122 -0
  16. package/sass/animations/background/_tech.sass +124 -0
  17. package/sass/functions/_functions.sass +107 -0
  18. package/sass/mixins/_backdrops.sass +230 -0
  19. package/sass/mixins/_backgrounds.sass +214 -0
  20. package/sass/mixins/_borders.sass +93 -0
  21. package/sass/mixins/_breakpoints.sass +68 -0
  22. package/sass/mixins/_button.sass +46 -0
  23. package/sass/mixins/_checkbox.sass +128 -0
  24. package/sass/mixins/_colors.sass +121 -0
  25. package/sass/mixins/_control.sass +13 -0
  26. package/sass/mixins/_device.sass +22 -0
  27. package/sass/mixins/_display.sass +210 -0
  28. package/sass/mixins/_flex.sass +104 -0
  29. package/sass/mixins/_form.sass +68 -0
  30. package/sass/mixins/_grid.sass +273 -0
  31. package/sass/mixins/_header.sass +71 -0
  32. package/sass/mixins/_index.sass +29 -0
  33. package/sass/mixins/_input.sass +132 -0
  34. package/sass/mixins/_interactive.sass +19 -0
  35. package/sass/mixins/_label.sass +25 -0
  36. package/sass/mixins/_layout.sass +251 -0
  37. package/sass/mixins/_links.sass +85 -0
  38. package/sass/mixins/_lists.sass +377 -0
  39. package/sass/mixins/_overflow.sass +121 -0
  40. package/sass/mixins/_position.sass +181 -0
  41. package/sass/mixins/_radio.sass +205 -0
  42. package/sass/mixins/_sizing.sass +181 -0
  43. package/sass/mixins/_spacing.sass +59 -0
  44. package/sass/mixins/_text.sass +159 -0
  45. package/sass/mixins/_toggle.sass +240 -0
  46. package/sass/mixins/_typography.sass +6 -0
  47. package/sass/mixins/_utilities.sass +70 -0
  48. package/sass/utilities/_backdrops.sass +228 -0
  49. package/sass/utilities/_backgrounds.sass +285 -0
  50. package/sass/utilities/_borders.sass +138 -0
  51. package/sass/utilities/_colors.sass +166 -0
  52. package/sass/utilities/_display.sass +308 -0
  53. package/sass/utilities/_flex.sass +91 -0
  54. package/sass/utilities/_grid.sass +502 -0
  55. package/sass/utilities/_index.sass +17 -0
  56. package/sass/utilities/_input.sass +14 -0
  57. package/sass/utilities/_links.sass +136 -0
  58. package/sass/utilities/_lists.sass +4 -0
  59. package/sass/utilities/_popup.sass +73 -0
  60. package/sass/utilities/_position.sass +88 -0
  61. package/sass/utilities/_sizing.sass +277 -0
  62. package/sass/utilities/_spacing.sass +121 -0
  63. package/sass/utilities/_text.sass +207 -0
  64. package/sass/variables/_animations.sass +5 -0
  65. package/sass/variables/_borders.sass +25 -0
  66. package/sass/variables/_colors.sass +93 -0
  67. package/sass/variables/_index.sass +6 -0
  68. package/sass/variables/_number.sass +1 -0
  69. package/sass/variables/_spacing.sass +28 -0
  70. package/sass/variables/_typography.sass +40 -0
@@ -0,0 +1,240 @@
1
+ @use 'flex' as flex
2
+ @use '../functions/functions' as f
3
+
4
+ // Base mixin using only the 4 required CSS variables
5
+ =toggle-container-base
6
+ display: inline-flex
7
+ align-items: center
8
+ $size: 1em
9
+ gap: #{f.derive-control-gap($size)}
10
+ cursor: pointer
11
+ user-select: none
12
+ position: relative
13
+
14
+ input[type="checkbox"]
15
+ appearance: none
16
+ -webkit-appearance: none
17
+ -moz-appearance: none
18
+ position: relative
19
+ width: calc(#{$size} * 1.6)
20
+ height: #{$size}
21
+ background-color: color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 15%, transparent 85%)
22
+ border-radius: calc(#{$size} / 2)
23
+ border: #{f.derive-control-border($size)} solid color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 20%, transparent 80%)
24
+ cursor: pointer
25
+ outline: none
26
+ box-sizing: content-box
27
+ flex-shrink: 0
28
+ margin: 0
29
+ transition: background-color 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.25s cubic-bezier(0.4, 0, 0.2, 1), border-color 0.2s ease
30
+ will-change: background-color, box-shadow
31
+
32
+ // Thumb (slider button)
33
+ &::after
34
+ content: ''
35
+ position: absolute
36
+ top: calc(1em / 8)
37
+ left: calc(1em / 8)
38
+ width: calc(1em * 0.75)
39
+ height: calc(1em * 0.75)
40
+ background-color: var(--m-toggle-input-color-contrast, #ffffff)
41
+ border-radius: 50%
42
+ transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.15s ease
43
+ will-change: transform
44
+ box-shadow: 0 calc(1em / 10) calc(1em / 6) rgba(0, 0, 0, 0.2), 0 calc(1em / 20) calc(1em / 12) rgba(0, 0, 0, 0.1)
45
+
46
+ label
47
+ font-size: calc(1em * 0.8)
48
+ line-height: 1.2
49
+ cursor: pointer
50
+ margin: 0
51
+ color: color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 70%, black 30%)
52
+ transition: color 0.2s ease, font-weight 0.15s ease
53
+
54
+ // Interactive states using only the 4 variables
55
+ =toggle-container-states
56
+ input[type="checkbox"]
57
+ // Hover state
58
+ &:hover:not(:disabled)
59
+ background-color: color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 25%, transparent 75%)
60
+ border-color: color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 40%, transparent 60%)
61
+
62
+ &::after
63
+ box-shadow: 0 calc(1em / 8) calc(1em / 5) rgba(0, 0, 0, 0.25), 0 calc(1em / 16) calc(1em / 10) rgba(0, 0, 0, 0.15)
64
+
65
+ // Focus state
66
+ &:focus
67
+ box-shadow: 0 0 0 calc(1em / 5) color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 20%, transparent 80%)
68
+ outline: none
69
+
70
+ // Active/pressed state
71
+ &:active:not(:disabled)
72
+ &::after
73
+ transform: scaleX(1.15)
74
+
75
+ // Checked state
76
+ &:checked
77
+ background-color: var(--m-toggle-input-color, #4169e1)
78
+ border-color: var(--m-toggle-input-color, #4169e1)
79
+
80
+ &::after
81
+ transform: translateX(calc(1em * 0.6))
82
+ background-color: var(--m-toggle-input-color-contrast, #ffffff)
83
+
84
+ &:hover:not(:disabled)
85
+ background-color: color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 90%, black 10%)
86
+ border-color: color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 90%, black 10%)
87
+
88
+ &:active:not(:disabled)
89
+ &::after
90
+ transform: translateX(calc(1em * 0.6)) scaleX(1.15)
91
+
92
+ &:focus
93
+ box-shadow: 0 0 0 calc(1em / 5) color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 25%, transparent 75%)
94
+
95
+ // Label changes when checked
96
+ + label
97
+ color: var(--m-toggle-input-color, #4169e1)
98
+
99
+ // Disabled state
100
+ &:disabled
101
+ opacity: 0.5
102
+ cursor: not-allowed
103
+ background-color: color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 10%, transparent 90%)
104
+ border-color: color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 15%, transparent 85%)
105
+
106
+ + label
107
+ opacity: 0.5
108
+ cursor: not-allowed
109
+
110
+ &:checked
111
+ background-color: color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 50%, transparent 50%)
112
+
113
+ // Complete toggle container mixin
114
+ =toggle-container
115
+ +toggle-container-base
116
+ +toggle-container-states
117
+
118
+ // Label position variants
119
+ =toggle-container-label-left
120
+ flex-direction: row-reverse
121
+
122
+ =toggle-container-label-right
123
+ flex-direction: row
124
+
125
+ =toggle-container-label-top
126
+ flex-direction: column-reverse
127
+ align-items: flex-start
128
+
129
+ =toggle-container-label-bottom
130
+ flex-direction: column
131
+ align-items: flex-start
132
+
133
+ // Toggle with icons
134
+ =toggle-container-with-icons
135
+ input[type="checkbox"]
136
+ &::before
137
+ content: attr(data-icon-off)
138
+ position: absolute
139
+ left: calc(1em / 3.5)
140
+ top: 50%
141
+ transform: translateY(-50%)
142
+ font-size: calc(1em * 0.5)
143
+ opacity: 0.7
144
+ transition: opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1), color 0.2s ease
145
+ z-index: 1
146
+ pointer-events: none
147
+ color: color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 60%, black 40%)
148
+
149
+ &::after
150
+ z-index: 2
151
+
152
+ &:checked::before
153
+ content: attr(data-icon-on)
154
+ left: auto
155
+ right: calc(1em / 3.5)
156
+ opacity: 1
157
+ color: var(--m-toggle-input-color-contrast, #ffffff)
158
+
159
+ &:hover:not(:disabled)::before
160
+ opacity: 0.9
161
+
162
+ // Toggle with opposite color thumb when checked
163
+ =toggle-container-opposite-thumb
164
+ input[type="checkbox"]
165
+ &:checked
166
+ &::after
167
+ background-color: var(--m-toggle-input-color-opposite, #e1b941)
168
+ box-shadow: 0 calc(1em / 10) calc(1em / 6) color-mix(in srgb, var(--m-toggle-input-color-opposite, #e1b941) 30%, black 70%), 0 calc(1em / 20) calc(1em / 12) rgba(0, 0, 0, 0.1)
169
+
170
+ &:hover:not(:disabled)::after
171
+ background-color: color-mix(in srgb, var(--m-toggle-input-color-opposite, #e1b941) 95%, white 5%)
172
+
173
+ // Toggle with gradient background
174
+ =toggle-container-gradient
175
+ input[type="checkbox"]
176
+ &:checked
177
+ background: linear-gradient(135deg, var(--m-toggle-input-color, #4169e1) 0%, color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 70%, var(--m-toggle-input-color-opposite, #e1b941) 30%) 100%)
178
+ border-color: transparent
179
+
180
+ &:hover:not(:disabled)
181
+ background: linear-gradient(135deg, color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 90%, black 10%) 0%, color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 65%, var(--m-toggle-input-color-opposite, #e1b941) 35%) 100%)
182
+
183
+ // Opposite color track when unchecked
184
+ =toggle-container-opposite-track
185
+ input[type="checkbox"]
186
+ &:not(:checked)
187
+ background-color: color-mix(in srgb, var(--m-toggle-input-color-opposite, #e1b941) 15%, transparent 85%)
188
+ border-color: color-mix(in srgb, var(--m-toggle-input-color-opposite, #e1b941) 20%, transparent 80%)
189
+
190
+ &:hover:not(:disabled)
191
+ background-color: color-mix(in srgb, var(--m-toggle-input-color-opposite, #e1b941) 25%, transparent 75%)
192
+ border-color: color-mix(in srgb, var(--m-toggle-input-color-opposite, #e1b941) 40%, transparent 60%)
193
+
194
+ // Animated toggle with smooth transitions
195
+ =toggle-container-animated
196
+ input[type="checkbox"]
197
+ &:checked
198
+ animation: toggle-pulse 0.4s cubic-bezier(0.4, 0, 0.2, 1)
199
+
200
+ &::after
201
+ animation: thumb-slide 0.3s cubic-bezier(0.4, 0, 0.2, 1)
202
+
203
+ @keyframes toggle-pulse
204
+ 0%, 100%
205
+ transform: scale(1)
206
+ 50%
207
+ transform: scale(1.02)
208
+
209
+ @keyframes thumb-slide
210
+ 0%
211
+ transform: translateX(0) scale(1)
212
+ 50%
213
+ transform: translateX(calc(1em * 0.3)) scale(0.9)
214
+ 100%
215
+ transform: translateX(calc(1em * 0.6)) scale(1)
216
+
217
+ // Toggle with enhanced shadow using input color
218
+ =toggle-container-shadow
219
+ input[type="checkbox"]
220
+ &:checked
221
+ box-shadow: 0 calc(1em / 10) calc(1em / 5) color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 30%, transparent 70%)
222
+
223
+ &:hover:not(:disabled)
224
+ box-shadow: 0 calc(1em / 8) calc(1em / 4) color-mix(in srgb, var(--m-toggle-input-color, #4169e1) 35%, transparent 65%)
225
+
226
+ // Pill-shaped toggle with rounder appearance
227
+ =toggle-container-pill
228
+ input[type="checkbox"]
229
+ width: calc(1em * 2)
230
+ border-radius: calc(1em * 0.6)
231
+
232
+ &::after
233
+ border-radius: calc(1em * 0.4)
234
+ width: calc(1em * 0.8)
235
+ height: calc(1em * 0.8)
236
+ top: calc(1em * 0.1)
237
+ left: calc(1em * 0.1)
238
+
239
+ &:checked::after
240
+ transform: translateX(calc(1em * 1))
@@ -0,0 +1,6 @@
1
+ @use '../variables' as v
2
+
3
+
4
+ =text($size: 14px)
5
+ font-family: v.$font-family-base
6
+ font-size: $size
@@ -0,0 +1,70 @@
1
+ @use 'sass:color'
2
+ // Utility Mixins
3
+ @use '../variables/colors' as *
4
+ @use '../variables/spacing' as *
5
+
6
+ // Note: Flexbox utilities have been moved to mixins/_flex.sass
7
+
8
+ // Note: Text utilities have been moved to mixins/_text.sass
9
+
10
+ // Visual Utilities
11
+ @mixin box-shadow($shadow: 0 0.125rem 0.25rem rgba($black, 0.075))
12
+ box-shadow: $shadow
13
+
14
+ @mixin transition($property: all, $duration: 0.15s, $timing-function: ease-in-out)
15
+ transition: $property $duration $timing-function
16
+
17
+ // Note: Position utilities have been moved to mixins/_position.sass
18
+ // Note: Size utilities have been moved to mixins/_sizing.sass
19
+
20
+ // Spacing Utilities
21
+ @mixin margin($top: 0, $right: 0, $bottom: 0, $left: 0)
22
+ margin: $top $right $bottom $left
23
+
24
+ @mixin padding($top: 0, $right: 0, $bottom: 0, $left: 0)
25
+ padding: $top $right $bottom $left
26
+
27
+ // Button Utilities
28
+ @mixin button-variant($color, $background, $border)
29
+ color: $color
30
+ background-color: $background
31
+ border-color: $border
32
+
33
+ &:hover
34
+ color: $color
35
+ background-color: color.adjust($background, $lightness: -7.5%)
36
+ border-color: color.adjust($border, $lightness: -10%)
37
+
38
+ &:focus,
39
+ &.focus
40
+ color: $color
41
+ background-color: color.adjust($background, $lightness: -7.5%)
42
+ border-color: color.adjust($border, $lightness: -10%)
43
+ box-shadow: 0 0 0 0.2rem rgba($border, 0.5)
44
+
45
+ &:active,
46
+ &.active
47
+ color: $color
48
+ background-color: color.adjust($background, $lightness: -10%)
49
+ border-color: color.adjust($border, $lightness: -12.5%)
50
+
51
+ &:disabled,
52
+ &.disabled
53
+ color: $color
54
+ background-color: $background
55
+ border-color: $border
56
+ opacity: 0.65
57
+
58
+ // Opacity Utility
59
+ @mixin opacity($value)
60
+ opacity: $value
61
+
62
+ // Note: Backdrop utilities have been moved to mixins/_backdrops.sass
63
+
64
+ =rounded($radius)
65
+ border-radius: $radius
66
+
67
+ =center
68
+ display: flex
69
+ align-items: center
70
+ justify-content: center
@@ -0,0 +1,228 @@
1
+ // Backdrop utility classes derived from mixins
2
+ @use '../mixins/backdrops' as backdrop
3
+
4
+ // Standard backdrop effects
5
+ .standard-backdrop
6
+ @include backdrop.standard-backdrop
7
+
8
+ .glass-backdrop
9
+ @include backdrop.glass-backdrop
10
+
11
+ .frosted-backdrop
12
+ @include backdrop.frosted-backdrop
13
+
14
+ .theme-backdrop
15
+ @include backdrop.theme-backdrop
16
+
17
+ .tinted-backdrop
18
+ @include backdrop.tinted-backdrop
19
+
20
+ // Blur variations
21
+ .backdrop-blur-none
22
+ @include backdrop.backdrop-blur-none
23
+
24
+ .backdrop-blur-sm
25
+ @include backdrop.backdrop-blur-sm
26
+
27
+ .backdrop-blur
28
+ @include backdrop.backdrop-blur
29
+
30
+ .backdrop-blur-md
31
+ @include backdrop.backdrop-blur-md
32
+
33
+ .backdrop-blur-lg
34
+ @include backdrop.backdrop-blur-lg
35
+
36
+ .backdrop-blur-xl
37
+ @include backdrop.backdrop-blur-xl
38
+
39
+ .backdrop-blur-2xl
40
+ @include backdrop.backdrop-blur-2xl
41
+
42
+ .backdrop-blur-3xl
43
+ @include backdrop.backdrop-blur-3xl
44
+
45
+ // Brightness variations
46
+ .backdrop-brightness-50
47
+ @include backdrop.backdrop-brightness-50
48
+
49
+ .backdrop-brightness-75
50
+ @include backdrop.backdrop-brightness-75
51
+
52
+ .backdrop-brightness-125
53
+ @include backdrop.backdrop-brightness-125
54
+
55
+ .backdrop-brightness-150
56
+ @include backdrop.backdrop-brightness-150
57
+
58
+ // Contrast variations
59
+ .backdrop-contrast-50
60
+ @include backdrop.backdrop-contrast-50
61
+
62
+ .backdrop-contrast-75
63
+ @include backdrop.backdrop-contrast-75
64
+
65
+ .backdrop-contrast-125
66
+ @include backdrop.backdrop-contrast-125
67
+
68
+ .backdrop-contrast-150
69
+ @include backdrop.backdrop-contrast-150
70
+
71
+ // Saturation variations
72
+ .backdrop-saturate-50
73
+ @include backdrop.backdrop-saturate-50
74
+
75
+ .backdrop-saturate-150
76
+ @include backdrop.backdrop-saturate-150
77
+
78
+ .backdrop-saturate-200
79
+ @include backdrop.backdrop-saturate-200
80
+
81
+ // Combined glass effects
82
+ .backdrop-glass-enhanced
83
+ @include backdrop.backdrop-glass-enhanced
84
+
85
+ .backdrop-frosted-glass
86
+ @include backdrop.backdrop-frosted-glass
87
+
88
+ // Modal and overlay backdrops
89
+ .modal-backdrop
90
+ @include backdrop.modal-backdrop
91
+
92
+ .overlay-backdrop
93
+ @include backdrop.overlay-backdrop
94
+
95
+ .popup-backdrop
96
+ @include backdrop.popup-backdrop
97
+
98
+ // Navigation backdrops
99
+ .nav-backdrop
100
+ @include backdrop.nav-backdrop
101
+
102
+ .sidebar-backdrop
103
+ @include backdrop.sidebar-backdrop
104
+
105
+ // Card and surface backdrops
106
+ .card-backdrop
107
+ @include backdrop.card-backdrop
108
+
109
+ .surface-backdrop
110
+ @include backdrop.surface-backdrop
111
+
112
+ // Themed backdrops
113
+ .backdrop-adaptive
114
+ @include backdrop.backdrop-theme-adaptive
115
+
116
+ .backdrop-adaptive-light
117
+ @include backdrop.backdrop-theme-adaptive(rgba(255, 255, 255, 0.3))
118
+
119
+ .backdrop-adaptive-heavy
120
+ @include backdrop.backdrop-theme-adaptive(rgba(255, 255, 255, 0.5))
121
+
122
+ // Disable backdrop
123
+ .backdrop-none
124
+ @include backdrop.backdrop-none
125
+
126
+ // Fallback for unsupported browsers
127
+ .backdrop-fallback
128
+ @include backdrop.backdrop-fallback
129
+
130
+ .backdrop-fallback-light
131
+ @include backdrop.backdrop-fallback(rgba(255, 255, 255, 0.95))
132
+
133
+ .backdrop-fallback-dark
134
+ @include backdrop.backdrop-fallback(rgba(0, 0, 0, 0.85))
135
+
136
+ // Print safe backdrops
137
+ .backdrop-print-safe
138
+ @include backdrop.backdrop-print-safe
139
+
140
+ // Reduced motion backdrops
141
+ .backdrop-reduced-motion
142
+ @include backdrop.backdrop-reduced-motion
143
+
144
+ // Component-specific backdrops
145
+ .menu-backdrop
146
+ @include backdrop.sidebar-backdrop
147
+
148
+ .dropdown-backdrop
149
+ @include backdrop.popup-backdrop
150
+
151
+ .dialog-backdrop
152
+ @include backdrop.modal-backdrop
153
+
154
+ .toast-backdrop
155
+ @include backdrop.glass-backdrop
156
+
157
+ .tooltip-backdrop
158
+ @include backdrop.surface-backdrop
159
+
160
+ // Intensity variations
161
+ .backdrop-subtle
162
+ @include backdrop.backdrop(5px, 0.9, rgba(255, 255, 255, 0.05))
163
+
164
+ .backdrop-medium
165
+ @include backdrop.backdrop(12px, 0.8, rgba(255, 255, 255, 0.15))
166
+
167
+ .backdrop-strong
168
+ @include backdrop.backdrop(25px, 0.7, rgba(255, 255, 255, 0.25))
169
+
170
+ // Color-themed backdrops
171
+ .backdrop-blue
172
+ @include backdrop.tinted-backdrop(rgba(0, 123, 255, 0.1))
173
+
174
+ .backdrop-green
175
+ @include backdrop.tinted-backdrop(rgba(40, 167, 69, 0.1))
176
+
177
+ .backdrop-red
178
+ @include backdrop.tinted-backdrop(rgba(220, 53, 69, 0.1))
179
+
180
+ .backdrop-yellow
181
+ @include backdrop.tinted-backdrop(rgba(255, 193, 7, 0.1))
182
+
183
+ .backdrop-purple
184
+ @include backdrop.tinted-backdrop(rgba(102, 16, 242, 0.1))
185
+
186
+ // Interactive states
187
+ .backdrop-hover
188
+ transition: all 0.3s ease-in-out
189
+
190
+ &:hover
191
+ @include backdrop.glass-backdrop
192
+
193
+ .backdrop-focus
194
+ &:focus
195
+ @include backdrop.frosted-backdrop
196
+
197
+ // Responsive backdrops
198
+ @media (max-width: 768px)
199
+ .backdrop-mobile-only
200
+ @include backdrop.standard-backdrop
201
+
202
+ .backdrop-mobile-light
203
+ @include backdrop.backdrop(8px, 0.9, rgba(255, 255, 255, 0.1))
204
+
205
+ @media (min-width: 769px)
206
+ .backdrop-desktop-only
207
+ @include backdrop.glass-backdrop
208
+
209
+ .backdrop-desktop-strong
210
+ @include backdrop.frosted-backdrop
211
+
212
+ // Animation classes (for JavaScript control)
213
+ .backdrop-animate-in
214
+ opacity: 0
215
+ backdrop-filter: blur(0px)
216
+ transition: all 0.3s ease-out
217
+
218
+ &.active
219
+ opacity: 1
220
+ @include backdrop.standard-backdrop
221
+
222
+ .backdrop-animate-out
223
+ @include backdrop.standard-backdrop
224
+ transition: all 0.3s ease-in
225
+
226
+ &.hiding
227
+ opacity: 0
228
+ backdrop-filter: blur(0px)