forked from
quillmatiq.com/augment
Fork of Chiri for Astro for my blog
1<div class="variable-blur-mask">
2 <div class="blur-bottom">
3 <!-- Layer 1 -->
4 <div
5 class="blur-layer layer-1"
6 style={{
7 maskImage:
8 'linear-gradient(to top, rgba(0,0,0,0) 0%, rgba(255,255,255,1) 12.5%, rgba(255,255,255,1) 25%, rgba(0,0,0,0) 37.5%)',
9 WebkitMaskImage:
10 'linear-gradient(to top, rgba(0,0,0,0) 0%, rgba(255,255,255,1) 12.5%, rgba(255,255,255,1) 25%, rgba(0,0,0,0) 37.5%)'
11 }}
12 >
13 </div>
14 <!-- Layer 2 -->
15 <div
16 class="blur-layer layer-2"
17 style={{
18 maskImage:
19 'linear-gradient(to top, rgba(0,0,0,0) 12.5%, rgba(255,255,255,1) 25%, rgba(255,255,255,1) 37.5%, rgba(0,0,0,0) 50%)',
20 WebkitMaskImage:
21 'linear-gradient(to top, rgba(0,0,0,0) 12.5%, rgba(255,255,255,1) 25%, rgba(255,255,255,1) 37.5%, rgba(0,0,0,0) 50%)'
22 }}
23 >
24 </div>
25 <!-- Layer 3 -->
26 <div
27 class="blur-layer layer-3"
28 style={{
29 maskImage:
30 'linear-gradient(to top, rgba(0,0,0,0) 25%, rgba(255,255,255,1) 37.5%, rgba(255,255,255,1) 50%, rgba(0,0,0,0) 62.5%)',
31 WebkitMaskImage:
32 'linear-gradient(to top, rgba(0,0,0,0) 25%, rgba(255,255,255,1) 37.5%, rgba(255,255,255,1) 50%, rgba(0,0,0,0) 62.5%)'
33 }}
34 >
35 </div>
36 <!-- Layer 4 -->
37 <div
38 class="blur-layer layer-4"
39 style={{
40 maskImage:
41 'linear-gradient(to top, rgba(0,0,0,0) 37.5%, rgba(255,255,255,1) 50%, rgba(255,255,255,1) 62.5%, rgba(0,0,0,0) 75%)',
42 WebkitMaskImage:
43 'linear-gradient(to top, rgba(0,0,0,0) 37.5%, rgba(255,255,255,1) 50%, rgba(255,255,255,1) 62.5%, rgba(0,0,0,0) 75%)'
44 }}
45 >
46 </div>
47 <!-- Layer 5 -->
48 <div
49 class="blur-layer layer-5"
50 style={{
51 maskImage:
52 'linear-gradient(to top, rgba(0,0,0,0) 50%, rgba(255,255,255,1) 62.5%, rgba(255,255,255,1) 75%, rgba(0,0,0,0) 87.5%)',
53 WebkitMaskImage:
54 'linear-gradient(to top, rgba(0,0,0,0) 50%, rgba(255,255,255,1) 62.5%, rgba(255,255,255,1) 75%, rgba(0,0,0,0) 87.5%)'
55 }}
56 >
57 </div>
58 <!-- Layer 6 -->
59 <div
60 class="blur-layer layer-6"
61 style={{
62 maskImage:
63 'linear-gradient(to top, rgba(0,0,0,0) 62.5%, rgba(255,255,255,1) 75%, rgba(255,255,255,1) 87.5%, rgba(0,0,0,0) 100%)',
64 WebkitMaskImage:
65 'linear-gradient(to top, rgba(0,0,0,0) 62.5%, rgba(255,255,255,1) 75%, rgba(255,255,255,1) 87.5%, rgba(0,0,0,0) 100%)'
66 }}
67 >
68 </div>
69 <!-- Layer 7 -->
70 <div
71 class="blur-layer layer-7"
72 style={{
73 maskImage:
74 'linear-gradient(to top, rgba(0,0,0,0) 75%, rgba(255,255,255,1) 87.5%, rgba(255,255,255,1) 100%)',
75 WebkitMaskImage:
76 'linear-gradient(to top, rgba(0,0,0,0) 75%, rgba(255,255,255,1) 87.5%, rgba(255,255,255,1) 100%)'
77 }}
78 >
79 </div>
80 <!-- Layer 8 -->
81 <div
82 class="blur-layer layer-8"
83 style={{
84 maskImage: 'linear-gradient(to top, rgba(0,0,0,0) 87.5%, rgba(255,255,255,1) 100%)',
85 WebkitMaskImage: 'linear-gradient(to top, rgba(0,0,0,0) 87.5%, rgba(255,255,255,1) 100%)'
86 }}
87 >
88 </div>
89 </div>
90 <slot />
91</div>
92
93<style>
94 .variable-blur-mask {
95 position: fixed;
96 top: 0;
97 left: 0;
98 width: 100%;
99 height: 4rem;
100 z-index: 99;
101 pointer-events: none;
102 }
103
104 .blur-bottom {
105 position: absolute;
106 top: 0;
107 left: 0;
108 width: 100%;
109 height: 100%;
110 pointer-events: none;
111 }
112
113 .blur-layer {
114 position: absolute;
115 top: 0;
116 left: 0;
117 width: 100%;
118 height: 100%;
119 }
120
121 .layer-1 {
122 z-index: 1;
123 backdrop-filter: blur(0.5px);
124 }
125
126 .layer-2 {
127 z-index: 2;
128 backdrop-filter: blur(1px);
129 }
130
131 .layer-3 {
132 z-index: 3;
133 backdrop-filter: blur(2px);
134 }
135
136 .layer-4 {
137 z-index: 4;
138 backdrop-filter: blur(4px);
139 }
140
141 .layer-5 {
142 z-index: 5;
143 backdrop-filter: blur(8px);
144 }
145
146 .layer-6 {
147 z-index: 6;
148 backdrop-filter: blur(16px);
149 }
150
151 .layer-7 {
152 z-index: 7;
153 backdrop-filter: blur(32px);
154 }
155
156 .layer-8 {
157 z-index: 8;
158 backdrop-filter: blur(64px);
159 }
160</style>