@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.
- package/package.json +2 -1
- package/sass/_date-picker.sass +147 -0
- package/sass/_index.sass +34 -0
- package/sass/_input-date.sass +25 -0
- package/sass/_m-components.sass +110 -0
- package/sass/_menu.sass +132 -0
- package/sass/_reset.sass +186 -0
- package/sass/animations/_index.sass +13 -0
- package/sass/animations/_registry.sass +51 -0
- package/sass/animations/background/_energy.sass +91 -0
- package/sass/animations/background/_gradient.sass +104 -0
- package/sass/animations/background/_index.sass +9 -0
- package/sass/animations/background/_nature.sass +110 -0
- package/sass/animations/background/_new-effects.sass +292 -0
- package/sass/animations/background/_particle.sass +122 -0
- package/sass/animations/background/_tech.sass +124 -0
- package/sass/functions/_functions.sass +107 -0
- package/sass/mixins/_backdrops.sass +230 -0
- package/sass/mixins/_backgrounds.sass +214 -0
- package/sass/mixins/_borders.sass +93 -0
- package/sass/mixins/_breakpoints.sass +68 -0
- package/sass/mixins/_button.sass +46 -0
- package/sass/mixins/_checkbox.sass +128 -0
- package/sass/mixins/_colors.sass +121 -0
- package/sass/mixins/_control.sass +13 -0
- package/sass/mixins/_device.sass +22 -0
- package/sass/mixins/_display.sass +210 -0
- package/sass/mixins/_flex.sass +104 -0
- package/sass/mixins/_form.sass +68 -0
- package/sass/mixins/_grid.sass +273 -0
- package/sass/mixins/_header.sass +71 -0
- package/sass/mixins/_index.sass +29 -0
- package/sass/mixins/_input.sass +132 -0
- package/sass/mixins/_interactive.sass +19 -0
- package/sass/mixins/_label.sass +25 -0
- package/sass/mixins/_layout.sass +251 -0
- package/sass/mixins/_links.sass +85 -0
- package/sass/mixins/_lists.sass +377 -0
- package/sass/mixins/_overflow.sass +121 -0
- package/sass/mixins/_position.sass +181 -0
- package/sass/mixins/_radio.sass +205 -0
- package/sass/mixins/_sizing.sass +181 -0
- package/sass/mixins/_spacing.sass +59 -0
- package/sass/mixins/_text.sass +159 -0
- package/sass/mixins/_toggle.sass +240 -0
- package/sass/mixins/_typography.sass +6 -0
- package/sass/mixins/_utilities.sass +70 -0
- package/sass/utilities/_backdrops.sass +228 -0
- package/sass/utilities/_backgrounds.sass +285 -0
- package/sass/utilities/_borders.sass +138 -0
- package/sass/utilities/_colors.sass +166 -0
- package/sass/utilities/_display.sass +308 -0
- package/sass/utilities/_flex.sass +91 -0
- package/sass/utilities/_grid.sass +502 -0
- package/sass/utilities/_index.sass +17 -0
- package/sass/utilities/_input.sass +14 -0
- package/sass/utilities/_links.sass +136 -0
- package/sass/utilities/_lists.sass +4 -0
- package/sass/utilities/_popup.sass +73 -0
- package/sass/utilities/_position.sass +88 -0
- package/sass/utilities/_sizing.sass +277 -0
- package/sass/utilities/_spacing.sass +121 -0
- package/sass/utilities/_text.sass +207 -0
- package/sass/variables/_animations.sass +5 -0
- package/sass/variables/_borders.sass +25 -0
- package/sass/variables/_colors.sass +93 -0
- package/sass/variables/_index.sass +6 -0
- package/sass/variables/_number.sass +1 -0
- package/sass/variables/_spacing.sass +28 -0
- package/sass/variables/_typography.sass +40 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
// Particle/Object Background Animations
|
|
2
|
+
// Contains: particles, geometric, crystal
|
|
3
|
+
|
|
4
|
+
// Animation: Floating Particles
|
|
5
|
+
@mixin particles-animation()
|
|
6
|
+
.m-jumbotron__background
|
|
7
|
+
background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%)
|
|
8
|
+
|
|
9
|
+
&::before,
|
|
10
|
+
&::after
|
|
11
|
+
content: ''
|
|
12
|
+
position: absolute
|
|
13
|
+
border-radius: 50%
|
|
14
|
+
background: rgba(255, 255, 255, 0.1)
|
|
15
|
+
animation: floatParticles 12s infinite linear
|
|
16
|
+
|
|
17
|
+
&::before
|
|
18
|
+
width: 20px
|
|
19
|
+
height: 20px
|
|
20
|
+
top: 20%
|
|
21
|
+
left: 10%
|
|
22
|
+
animation-delay: 0s
|
|
23
|
+
|
|
24
|
+
&::after
|
|
25
|
+
width: 15px
|
|
26
|
+
height: 15px
|
|
27
|
+
top: 70%
|
|
28
|
+
right: 20%
|
|
29
|
+
animation-delay: -6s
|
|
30
|
+
|
|
31
|
+
// Animation: Geometric Shapes
|
|
32
|
+
@mixin geometric-animation()
|
|
33
|
+
.m-jumbotron__background
|
|
34
|
+
background: linear-gradient(60deg, #f093fb 0%, #f5576c 100%)
|
|
35
|
+
|
|
36
|
+
&::before,
|
|
37
|
+
&::after
|
|
38
|
+
content: ''
|
|
39
|
+
position: absolute
|
|
40
|
+
border: 2px solid rgba(255, 255, 255, 0.2)
|
|
41
|
+
animation: rotateGeometric 15s linear infinite
|
|
42
|
+
|
|
43
|
+
&::before
|
|
44
|
+
width: 100px
|
|
45
|
+
height: 100px
|
|
46
|
+
top: 10%
|
|
47
|
+
left: 15%
|
|
48
|
+
transform-origin: center
|
|
49
|
+
|
|
50
|
+
&::after
|
|
51
|
+
width: 60px
|
|
52
|
+
height: 60px
|
|
53
|
+
bottom: 20%
|
|
54
|
+
right: 15%
|
|
55
|
+
border-radius: 50%
|
|
56
|
+
animation-direction: reverse
|
|
57
|
+
|
|
58
|
+
// Animation: Crystal Formation
|
|
59
|
+
@mixin crystal-animation()
|
|
60
|
+
.m-jumbotron__background
|
|
61
|
+
background: linear-gradient(135deg, #667db6 0%, #0082c8 25%, #667db6 50%, #0082c8 75%, #667db6 100%)
|
|
62
|
+
background-size: 200% 200%
|
|
63
|
+
animation: crystalShimmer 12s ease-in-out infinite
|
|
64
|
+
|
|
65
|
+
&::before,
|
|
66
|
+
&::after
|
|
67
|
+
content: ''
|
|
68
|
+
position: absolute
|
|
69
|
+
clip-path: polygon(50% 0%, 0% 100%, 100% 100%)
|
|
70
|
+
background: linear-gradient(45deg, rgba(255, 255, 255, 0.2), transparent)
|
|
71
|
+
animation: crystalGrow 8s ease-in-out infinite
|
|
72
|
+
|
|
73
|
+
&::before
|
|
74
|
+
width: 60px
|
|
75
|
+
height: 60px
|
|
76
|
+
top: 15%
|
|
77
|
+
left: 15%
|
|
78
|
+
animation-delay: 0s
|
|
79
|
+
|
|
80
|
+
&::after
|
|
81
|
+
width: 40px
|
|
82
|
+
height: 40px
|
|
83
|
+
bottom: 20%
|
|
84
|
+
right: 20%
|
|
85
|
+
animation-delay: -4s
|
|
86
|
+
|
|
87
|
+
// Keyframe animations for particle effects
|
|
88
|
+
@keyframes floatParticles
|
|
89
|
+
0%
|
|
90
|
+
transform: translateY(100vh) rotate(0deg)
|
|
91
|
+
opacity: 0
|
|
92
|
+
10%
|
|
93
|
+
opacity: 1
|
|
94
|
+
90%
|
|
95
|
+
opacity: 1
|
|
96
|
+
100%
|
|
97
|
+
transform: translateY(-100px) rotate(360deg)
|
|
98
|
+
opacity: 0
|
|
99
|
+
|
|
100
|
+
@keyframes rotateGeometric
|
|
101
|
+
0%
|
|
102
|
+
transform: rotate(0deg) scale(1)
|
|
103
|
+
50%
|
|
104
|
+
transform: rotate(180deg) scale(1.2)
|
|
105
|
+
100%
|
|
106
|
+
transform: rotate(360deg) scale(1)
|
|
107
|
+
|
|
108
|
+
@keyframes crystalShimmer
|
|
109
|
+
0%, 100%
|
|
110
|
+
background-position: 0% 50%
|
|
111
|
+
filter: brightness(1)
|
|
112
|
+
50%
|
|
113
|
+
background-position: 100% 50%
|
|
114
|
+
filter: brightness(1.3)
|
|
115
|
+
|
|
116
|
+
@keyframes crystalGrow
|
|
117
|
+
0%, 100%
|
|
118
|
+
transform: scale(1) rotate(0deg)
|
|
119
|
+
opacity: 0.2
|
|
120
|
+
50%
|
|
121
|
+
transform: scale(1.5) rotate(45deg)
|
|
122
|
+
opacity: 0.6
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
// Tech-themed Background Animations
|
|
2
|
+
// Contains: matrix, cyber, hologram
|
|
3
|
+
|
|
4
|
+
// Animation: Matrix Rain
|
|
5
|
+
@mixin matrix-animation()
|
|
6
|
+
.m-jumbotron__background
|
|
7
|
+
background: linear-gradient(135deg, #0d1117 0%, #1a1f2e 100%)
|
|
8
|
+
|
|
9
|
+
&::before,
|
|
10
|
+
&::after
|
|
11
|
+
content: '01101010'
|
|
12
|
+
position: absolute
|
|
13
|
+
color: rgba(0, 255, 0, 0.1)
|
|
14
|
+
font-family: 'Courier New', monospace
|
|
15
|
+
font-size: 12px
|
|
16
|
+
line-height: 1
|
|
17
|
+
white-space: pre
|
|
18
|
+
animation: matrixRain 15s linear infinite
|
|
19
|
+
|
|
20
|
+
&::before
|
|
21
|
+
top: -100px
|
|
22
|
+
left: 10%
|
|
23
|
+
animation-delay: 0s
|
|
24
|
+
|
|
25
|
+
&::after
|
|
26
|
+
top: -100px
|
|
27
|
+
right: 20%
|
|
28
|
+
animation-delay: -7s
|
|
29
|
+
|
|
30
|
+
// Animation: Cyberpunk Grid
|
|
31
|
+
@mixin cyber-animation()
|
|
32
|
+
.m-jumbotron__background
|
|
33
|
+
background: linear-gradient(135deg, #0f0f23 0%, #1a1a2e 50%, #16213e 100%)
|
|
34
|
+
|
|
35
|
+
&::before
|
|
36
|
+
content: ''
|
|
37
|
+
position: absolute
|
|
38
|
+
top: 0
|
|
39
|
+
left: 0
|
|
40
|
+
right: 0
|
|
41
|
+
bottom: 0
|
|
42
|
+
background-image: linear-gradient(rgba(0, 255, 255, 0.1) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 255, 255, 0.1) 1px, transparent 1px)
|
|
43
|
+
background-size: 50px 50px
|
|
44
|
+
animation: cyberGrid 20s linear infinite
|
|
45
|
+
|
|
46
|
+
&::after
|
|
47
|
+
content: ''
|
|
48
|
+
position: absolute
|
|
49
|
+
width: 100%
|
|
50
|
+
height: 2px
|
|
51
|
+
top: 30%
|
|
52
|
+
left: 0
|
|
53
|
+
background: linear-gradient(90deg, transparent, #00ffff, transparent)
|
|
54
|
+
animation: cyberScan 6s ease-in-out infinite
|
|
55
|
+
|
|
56
|
+
// Animation: Hologram Effect
|
|
57
|
+
@mixin hologram-animation()
|
|
58
|
+
.m-jumbotron__background
|
|
59
|
+
background: linear-gradient(135deg, #001122 0%, #003366 50%, #004488 100%)
|
|
60
|
+
|
|
61
|
+
&::before
|
|
62
|
+
content: ''
|
|
63
|
+
position: absolute
|
|
64
|
+
top: 0
|
|
65
|
+
left: 0
|
|
66
|
+
right: 0
|
|
67
|
+
bottom: 0
|
|
68
|
+
background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0, 255, 255, 0.03) 2px, rgba(0, 255, 255, 0.03) 4px)
|
|
69
|
+
animation: hologramScan 3s linear infinite
|
|
70
|
+
|
|
71
|
+
&::after
|
|
72
|
+
content: ''
|
|
73
|
+
position: absolute
|
|
74
|
+
width: 100%
|
|
75
|
+
height: 100%
|
|
76
|
+
top: 0
|
|
77
|
+
left: 0
|
|
78
|
+
background: linear-gradient(90deg, transparent, rgba(0, 255, 255, 0.1), transparent)
|
|
79
|
+
transform: translateX(-100%)
|
|
80
|
+
animation: hologramSweep 8s ease-in-out infinite
|
|
81
|
+
|
|
82
|
+
// Keyframe animations for tech effects
|
|
83
|
+
@keyframes matrixRain
|
|
84
|
+
0%
|
|
85
|
+
transform: translateY(-100px)
|
|
86
|
+
opacity: 0
|
|
87
|
+
10%
|
|
88
|
+
opacity: 1
|
|
89
|
+
90%
|
|
90
|
+
opacity: 1
|
|
91
|
+
100%
|
|
92
|
+
transform: translateY(calc(100vh + 100px))
|
|
93
|
+
opacity: 0
|
|
94
|
+
|
|
95
|
+
@keyframes cyberGrid
|
|
96
|
+
0%
|
|
97
|
+
transform: translate(0, 0)
|
|
98
|
+
100%
|
|
99
|
+
transform: translate(50px, 50px)
|
|
100
|
+
|
|
101
|
+
@keyframes cyberScan
|
|
102
|
+
0%, 100%
|
|
103
|
+
transform: translateX(-100%)
|
|
104
|
+
opacity: 0
|
|
105
|
+
10%
|
|
106
|
+
opacity: 1
|
|
107
|
+
90%
|
|
108
|
+
opacity: 1
|
|
109
|
+
100%
|
|
110
|
+
transform: translateX(100%)
|
|
111
|
+
|
|
112
|
+
@keyframes hologramScan
|
|
113
|
+
0%
|
|
114
|
+
transform: translateY(-100%)
|
|
115
|
+
100%
|
|
116
|
+
transform: translateY(100vh)
|
|
117
|
+
|
|
118
|
+
@keyframes hologramSweep
|
|
119
|
+
0%
|
|
120
|
+
transform: translateX(-100%)
|
|
121
|
+
50%
|
|
122
|
+
transform: translateX(0%)
|
|
123
|
+
100%
|
|
124
|
+
transform: translateX(100%)
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// Utility Functions
|
|
2
|
+
@use 'sass:math'
|
|
3
|
+
@use 'sass:map'
|
|
4
|
+
@use 'sass:string'
|
|
5
|
+
@use '../variables' as *
|
|
6
|
+
|
|
7
|
+
// Color Functions
|
|
8
|
+
@function tint-color($color, $weight)
|
|
9
|
+
@return mix(white, $color, $weight)
|
|
10
|
+
|
|
11
|
+
@function shade-color($color, $weight)
|
|
12
|
+
@return mix(black, $color, $weight)
|
|
13
|
+
|
|
14
|
+
@function shift-color($color, $weight)
|
|
15
|
+
@if $weight > 0
|
|
16
|
+
@return shade-color($color, $weight)
|
|
17
|
+
@else
|
|
18
|
+
@return tint-color($color, -$weight)
|
|
19
|
+
|
|
20
|
+
// Map Functions
|
|
21
|
+
@function map-deep-get($map, $keys...)
|
|
22
|
+
@each $key in $keys
|
|
23
|
+
$map: map.get($map, $key)
|
|
24
|
+
@return $map
|
|
25
|
+
|
|
26
|
+
// String Functions
|
|
27
|
+
@function str-replace($string, $search, $replace: '')
|
|
28
|
+
$index: string.index($string, $search)
|
|
29
|
+
|
|
30
|
+
@if $index
|
|
31
|
+
@return string.slice($string, 1, $index - 1) + $replace + str-replace(string.slice($string, $index + string.length($search)), $search, $replace)
|
|
32
|
+
|
|
33
|
+
@return $string
|
|
34
|
+
|
|
35
|
+
// Unit Functions
|
|
36
|
+
@function strip-unit($value)
|
|
37
|
+
@if type-of($value) != 'number'
|
|
38
|
+
@return $value
|
|
39
|
+
@return math.div($value, ($value * 0 + 1))
|
|
40
|
+
|
|
41
|
+
@function to-rem($value, $base: 16)
|
|
42
|
+
@if unit($value) == 'rem'
|
|
43
|
+
@return $value
|
|
44
|
+
@if unit($value) == 'px'
|
|
45
|
+
@return math.div(strip-unit($value), $base) * 1rem
|
|
46
|
+
@return $value
|
|
47
|
+
|
|
48
|
+
@function to-px($value, $base: 16)
|
|
49
|
+
@if unit($value) == 'px'
|
|
50
|
+
@return $value
|
|
51
|
+
@if unit($value) == 'rem'
|
|
52
|
+
@return strip-unit($value) * $base * 1px
|
|
53
|
+
@return $value
|
|
54
|
+
|
|
55
|
+
// Spacing Functions
|
|
56
|
+
@function spacer($key)
|
|
57
|
+
@return map.get($spacers, $key)
|
|
58
|
+
|
|
59
|
+
// Breakpoint Functions
|
|
60
|
+
@function breakpoint-min($name, $breakpoints: $grid-breakpoints)
|
|
61
|
+
$min: map.get($breakpoints, $name)
|
|
62
|
+
@if $min != 0
|
|
63
|
+
@return $min
|
|
64
|
+
@else
|
|
65
|
+
@return null
|
|
66
|
+
|
|
67
|
+
@function breakpoint-max($name, $breakpoints: $grid-breakpoints)
|
|
68
|
+
$max: map.get($breakpoints, $name)
|
|
69
|
+
@if $max and $max > 0
|
|
70
|
+
@return $max - 0.02
|
|
71
|
+
@else
|
|
72
|
+
@return null
|
|
73
|
+
|
|
74
|
+
@function breakpoint-infix($name, $breakpoints: $grid-breakpoints)
|
|
75
|
+
@if breakpoint-min($name, $breakpoints) == null
|
|
76
|
+
@return ''
|
|
77
|
+
@else
|
|
78
|
+
@return '-#{$name}'
|
|
79
|
+
|
|
80
|
+
// Control Sizing Functions
|
|
81
|
+
@function derive-control-height($size)
|
|
82
|
+
@return calc(#{$size} * 2)
|
|
83
|
+
|
|
84
|
+
@function derive-control-radius($size)
|
|
85
|
+
@return calc(#{$size} * 0.4)
|
|
86
|
+
|
|
87
|
+
@function derive-control-border($size)
|
|
88
|
+
@return max(1px, calc(#{$size} * 0.0625))
|
|
89
|
+
|
|
90
|
+
@function derive-control-gap($size)
|
|
91
|
+
@return calc(#{$size} * 0.375)
|
|
92
|
+
|
|
93
|
+
@function derive-control-margin($size)
|
|
94
|
+
@return calc(#{$size} * 0.5)
|
|
95
|
+
|
|
96
|
+
@function derive-control-icon-size($size)
|
|
97
|
+
@return calc(#{$size} * 1.1)
|
|
98
|
+
|
|
99
|
+
@function derive-control-padding-x($size, $scale: 1)
|
|
100
|
+
@return calc(#{$size} * 1.25 * #{$scale})
|
|
101
|
+
|
|
102
|
+
@function derive-control-padding-y($size, $scale: 1)
|
|
103
|
+
@return calc(#{$size} * 0.625 * #{$scale})
|
|
104
|
+
|
|
105
|
+
@function derive-badge-size($size)
|
|
106
|
+
@return calc(#{$size} * 0.6)
|
|
107
|
+
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
// Backdrop utilities and mixins
|
|
2
|
+
@use '../variables/colors' as colors
|
|
3
|
+
|
|
4
|
+
// Basic backdrop mixins
|
|
5
|
+
@mixin backdrop-filter($value)
|
|
6
|
+
backdrop-filter: $value
|
|
7
|
+
-webkit-backdrop-filter: $value
|
|
8
|
+
|
|
9
|
+
@mixin backdrop($blur: 10px, $opacity: 0.8, $color: colors.$backdrop-standard)
|
|
10
|
+
backdrop-filter: blur($blur)
|
|
11
|
+
-webkit-backdrop-filter: blur($blur)
|
|
12
|
+
background-color: $color
|
|
13
|
+
opacity: $opacity
|
|
14
|
+
|
|
15
|
+
// Standard backdrop effects (theme-aware)
|
|
16
|
+
@mixin standard-backdrop
|
|
17
|
+
backdrop-filter: blur(20px)
|
|
18
|
+
-webkit-backdrop-filter: blur(20px)
|
|
19
|
+
background-color: colors.$backdrop-standard
|
|
20
|
+
border: 1px solid colors.$backdrop-border
|
|
21
|
+
|
|
22
|
+
@mixin glass-backdrop
|
|
23
|
+
backdrop-filter: blur(16px) saturate(180%)
|
|
24
|
+
-webkit-backdrop-filter: blur(16px) saturate(180%)
|
|
25
|
+
background-color: colors.$backdrop-glass
|
|
26
|
+
border: 1px solid colors.$backdrop-border
|
|
27
|
+
|
|
28
|
+
@mixin frosted-backdrop
|
|
29
|
+
backdrop-filter: blur(12px) brightness(1.1)
|
|
30
|
+
-webkit-backdrop-filter: blur(12px) brightness(1.1)
|
|
31
|
+
background-color: colors.$backdrop-frosted
|
|
32
|
+
|
|
33
|
+
@mixin theme-backdrop
|
|
34
|
+
backdrop-filter: blur(20px)
|
|
35
|
+
-webkit-backdrop-filter: blur(20px)
|
|
36
|
+
background-color: colors.$backdrop-theme
|
|
37
|
+
border: 1px solid colors.$backdrop-border
|
|
38
|
+
|
|
39
|
+
@mixin tinted-backdrop($color: colors.$backdrop-mm)
|
|
40
|
+
backdrop-filter: blur(15px)
|
|
41
|
+
-webkit-backdrop-filter: blur(15px)
|
|
42
|
+
background-color: $color
|
|
43
|
+
|
|
44
|
+
// Blur variations
|
|
45
|
+
@mixin backdrop-blur-none
|
|
46
|
+
backdrop-filter: blur(0px)
|
|
47
|
+
-webkit-backdrop-filter: blur(0px)
|
|
48
|
+
|
|
49
|
+
@mixin backdrop-blur-sm
|
|
50
|
+
backdrop-filter: blur(4px)
|
|
51
|
+
-webkit-backdrop-filter: blur(4px)
|
|
52
|
+
|
|
53
|
+
@mixin backdrop-blur
|
|
54
|
+
backdrop-filter: blur(8px)
|
|
55
|
+
-webkit-backdrop-filter: blur(8px)
|
|
56
|
+
|
|
57
|
+
@mixin backdrop-blur-md
|
|
58
|
+
backdrop-filter: blur(12px)
|
|
59
|
+
-webkit-backdrop-filter: blur(12px)
|
|
60
|
+
|
|
61
|
+
@mixin backdrop-blur-lg
|
|
62
|
+
backdrop-filter: blur(16px)
|
|
63
|
+
-webkit-backdrop-filter: blur(16px)
|
|
64
|
+
|
|
65
|
+
@mixin backdrop-blur-xl
|
|
66
|
+
backdrop-filter: blur(24px)
|
|
67
|
+
-webkit-backdrop-filter: blur(24px)
|
|
68
|
+
|
|
69
|
+
@mixin backdrop-blur-2xl
|
|
70
|
+
backdrop-filter: blur(40px)
|
|
71
|
+
-webkit-backdrop-filter: blur(40px)
|
|
72
|
+
|
|
73
|
+
@mixin backdrop-blur-3xl
|
|
74
|
+
backdrop-filter: blur(64px)
|
|
75
|
+
-webkit-backdrop-filter: blur(64px)
|
|
76
|
+
|
|
77
|
+
// Brightness variations
|
|
78
|
+
@mixin backdrop-brightness($value: 1.0)
|
|
79
|
+
backdrop-filter: brightness($value)
|
|
80
|
+
-webkit-backdrop-filter: brightness($value)
|
|
81
|
+
|
|
82
|
+
@mixin backdrop-brightness-50
|
|
83
|
+
backdrop-filter: brightness(0.5)
|
|
84
|
+
-webkit-backdrop-filter: brightness(0.5)
|
|
85
|
+
|
|
86
|
+
@mixin backdrop-brightness-75
|
|
87
|
+
backdrop-filter: brightness(0.75)
|
|
88
|
+
-webkit-backdrop-filter: brightness(0.75)
|
|
89
|
+
|
|
90
|
+
@mixin backdrop-brightness-125
|
|
91
|
+
backdrop-filter: brightness(1.25)
|
|
92
|
+
-webkit-backdrop-filter: brightness(1.25)
|
|
93
|
+
|
|
94
|
+
@mixin backdrop-brightness-150
|
|
95
|
+
backdrop-filter: brightness(1.5)
|
|
96
|
+
-webkit-backdrop-filter: brightness(1.5)
|
|
97
|
+
|
|
98
|
+
// Contrast variations
|
|
99
|
+
@mixin backdrop-contrast($value: 1.0)
|
|
100
|
+
backdrop-filter: contrast($value)
|
|
101
|
+
-webkit-backdrop-filter: contrast($value)
|
|
102
|
+
|
|
103
|
+
@mixin backdrop-contrast-50
|
|
104
|
+
backdrop-filter: contrast(0.5)
|
|
105
|
+
-webkit-backdrop-filter: contrast(0.5)
|
|
106
|
+
|
|
107
|
+
@mixin backdrop-contrast-75
|
|
108
|
+
backdrop-filter: contrast(0.75)
|
|
109
|
+
-webkit-backdrop-filter: contrast(0.75)
|
|
110
|
+
|
|
111
|
+
@mixin backdrop-contrast-125
|
|
112
|
+
backdrop-filter: contrast(1.25)
|
|
113
|
+
-webkit-backdrop-filter: contrast(1.25)
|
|
114
|
+
|
|
115
|
+
@mixin backdrop-contrast-150
|
|
116
|
+
backdrop-filter: contrast(1.5)
|
|
117
|
+
-webkit-backdrop-filter: contrast(1.5)
|
|
118
|
+
|
|
119
|
+
// Saturation variations
|
|
120
|
+
@mixin backdrop-saturate($value: 1.0)
|
|
121
|
+
backdrop-filter: saturate($value)
|
|
122
|
+
-webkit-backdrop-filter: saturate($value)
|
|
123
|
+
|
|
124
|
+
@mixin backdrop-saturate-50
|
|
125
|
+
backdrop-filter: saturate(0.5)
|
|
126
|
+
-webkit-backdrop-filter: saturate(0.5)
|
|
127
|
+
|
|
128
|
+
@mixin backdrop-saturate-150
|
|
129
|
+
backdrop-filter: saturate(1.5)
|
|
130
|
+
-webkit-backdrop-filter: saturate(1.5)
|
|
131
|
+
|
|
132
|
+
@mixin backdrop-saturate-200
|
|
133
|
+
backdrop-filter: saturate(2.0)
|
|
134
|
+
-webkit-backdrop-filter: saturate(2.0)
|
|
135
|
+
|
|
136
|
+
// Combined theme-aware effects
|
|
137
|
+
@mixin backdrop-glass-enhanced
|
|
138
|
+
backdrop-filter: blur(10px) brightness(1.1) saturate(1.5)
|
|
139
|
+
-webkit-backdrop-filter: blur(10px) brightness(1.1) saturate(1.5)
|
|
140
|
+
background-color: colors.$backdrop-theme
|
|
141
|
+
|
|
142
|
+
@mixin backdrop-frosted-glass
|
|
143
|
+
backdrop-filter: blur(16px) brightness(1.1) saturate(1.8) contrast(1.1)
|
|
144
|
+
-webkit-backdrop-filter: blur(16px) brightness(1.1) saturate(1.8) contrast(1.1)
|
|
145
|
+
background-color: colors.$backdrop-glass
|
|
146
|
+
border: 1px solid colors.$backdrop-border
|
|
147
|
+
|
|
148
|
+
// Use ThemeStore CSS vars (--m-backdrop-*) for theme-adaptive backdrops instead
|
|
149
|
+
@mixin backdrop-theme-adaptive($bg: colors.$backdrop-standard)
|
|
150
|
+
backdrop-filter: blur(20px)
|
|
151
|
+
-webkit-backdrop-filter: blur(20px)
|
|
152
|
+
background-color: $bg
|
|
153
|
+
|
|
154
|
+
// Modal and overlay backdrops (theme-aware)
|
|
155
|
+
@mixin modal-backdrop
|
|
156
|
+
backdrop-filter: blur(5px) brightness(0.5)
|
|
157
|
+
-webkit-backdrop-filter: blur(5px) brightness(0.5)
|
|
158
|
+
background-color: colors.$backdrop-modal
|
|
159
|
+
|
|
160
|
+
@mixin premium-backdrop
|
|
161
|
+
backdrop-filter: blur(24px) saturate(180%)
|
|
162
|
+
-webkit-backdrop-filter: blur(24px) saturate(180%)
|
|
163
|
+
// rgba() cannot wrap a var() color — guaranteed solid base, gradient on top
|
|
164
|
+
background-color: colors.$backdrop-modal
|
|
165
|
+
background-image: radial-gradient(circle at center, color-mix(in srgb, #{colors.$backdrop-modal} 40%, transparent) 0%, color-mix(in srgb, #{colors.$backdrop-modal} 80%, transparent) 100%)
|
|
166
|
+
|
|
167
|
+
@mixin overlay-backdrop
|
|
168
|
+
backdrop-filter: blur(3px)
|
|
169
|
+
-webkit-backdrop-filter: blur(3px)
|
|
170
|
+
background-color: colors.$backdrop-overlay
|
|
171
|
+
|
|
172
|
+
@mixin popup-backdrop
|
|
173
|
+
backdrop-filter: blur(8px)
|
|
174
|
+
-webkit-backdrop-filter: blur(8px)
|
|
175
|
+
background-color: colors.$backdrop-popup
|
|
176
|
+
border: 1px solid colors.$backdrop-border
|
|
177
|
+
box-shadow: 0 8px 32px colors.$backdrop-shadow
|
|
178
|
+
|
|
179
|
+
// Navigation backdrops (theme-aware)
|
|
180
|
+
@mixin nav-backdrop
|
|
181
|
+
backdrop-filter: blur(15px) saturate(1.2)
|
|
182
|
+
-webkit-backdrop-filter: blur(15px) saturate(1.2)
|
|
183
|
+
background-color: colors.$backdrop-nav
|
|
184
|
+
border-bottom: 1px solid colors.$backdrop-border
|
|
185
|
+
|
|
186
|
+
@mixin sidebar-backdrop
|
|
187
|
+
backdrop-filter: blur(20px) brightness(1.05)
|
|
188
|
+
-webkit-backdrop-filter: blur(20px) brightness(1.05)
|
|
189
|
+
background-color: colors.$backdrop-overlay
|
|
190
|
+
border-right: 1px solid colors.$backdrop-border
|
|
191
|
+
|
|
192
|
+
// Card and surface backdrops (theme-aware)
|
|
193
|
+
@mixin card-backdrop
|
|
194
|
+
backdrop-filter: blur(12px) saturate(1.3)
|
|
195
|
+
-webkit-backdrop-filter: blur(12px) saturate(1.3)
|
|
196
|
+
background-color: colors.$backdrop-card
|
|
197
|
+
border: 1px solid colors.$backdrop-border
|
|
198
|
+
box-shadow: 0 4px 16px colors.$backdrop-shadow
|
|
199
|
+
|
|
200
|
+
@mixin surface-backdrop
|
|
201
|
+
backdrop-filter: blur(8px)
|
|
202
|
+
-webkit-backdrop-filter: blur(8px)
|
|
203
|
+
background-color: colors.$backdrop-surface
|
|
204
|
+
|
|
205
|
+
// Fallback for unsupported browsers
|
|
206
|
+
@mixin backdrop-fallback($fallback-bg: rgba(255, 255, 255, 0.9))
|
|
207
|
+
background-color: $fallback-bg
|
|
208
|
+
|
|
209
|
+
@supports (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))
|
|
210
|
+
background-color: rgba(255, 255, 255, 0.1)
|
|
211
|
+
backdrop-filter: blur(10px)
|
|
212
|
+
-webkit-backdrop-filter: blur(10px)
|
|
213
|
+
|
|
214
|
+
// Disable backdrop filters (for performance)
|
|
215
|
+
@mixin backdrop-none
|
|
216
|
+
backdrop-filter: none
|
|
217
|
+
-webkit-backdrop-filter: none
|
|
218
|
+
|
|
219
|
+
// Conditional backdrop based on user preferences
|
|
220
|
+
@mixin backdrop-reduced-motion
|
|
221
|
+
@media (prefers-reduced-motion: reduce)
|
|
222
|
+
backdrop-filter: none
|
|
223
|
+
-webkit-backdrop-filter: none
|
|
224
|
+
|
|
225
|
+
// Print-friendly backdrops
|
|
226
|
+
@mixin backdrop-print-safe
|
|
227
|
+
@media print
|
|
228
|
+
backdrop-filter: none !important
|
|
229
|
+
-webkit-backdrop-filter: none !important
|
|
230
|
+
background-color: transparent !important
|