PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.82
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.82
51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 51.1.46 51.1.47 51.1.49 All 37 releases
king-addons / includes / widgets / Interactive_Gradient_Mesh / style.css

style.css in King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder 51.1.82, at includes/widgets/Interactive_Gradient_Mesh/style.css

273 lines 7.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 .king-addons-gradient-mesh {
2 --kng-mesh-speed: 40;
3 --kng-mesh-saturate: 110%;
4 --kng-mesh-contrast: 105%;
5 --kng-mesh-blur: 0px;
6 --kng-mesh-brightness: 100%;
7 --kng-mesh-hue: 0deg;
8 --kng-mesh-noise-opacity: 0.12;
9 --kng-mesh-vignette-opacity: 0;
10 --kng-mesh-vignette-color: rgba(0, 0, 0, 0.6);
11
12 position: relative;
13 overflow: hidden;
14 display: flex;
15 align-items: center;
16 justify-content: center;
17 }
18
19 .king-addons-gradient-mesh--valign-top {
20 align-items: flex-start;
21 }
22
23 .king-addons-gradient-mesh--valign-bottom {
24 align-items: flex-end;
25 }
26
27 .king-addons-gradient-mesh::before,
28 .king-addons-gradient-mesh::after {
29 content: "";
30 position: absolute;
31 inset: 0;
32 pointer-events: none;
33 z-index: 1;
34 }
35
36 .king-addons-gradient-mesh::before {
37 background: radial-gradient(circle at center, transparent 0%, var(--kng-mesh-vignette-color) 85%);
38 opacity: var(--kng-mesh-vignette-opacity);
39 }
40
41 .king-addons-gradient-mesh::after {
42 background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.7'/%3E%3C/svg%3E");
43 opacity: 0;
44 mix-blend-mode: soft-light;
45 }
46
47 .king-addons-gradient-mesh.has-noise::after {
48 opacity: var(--kng-mesh-noise-opacity);
49 }
50
51 .king-addons-gradient-mesh__bg,
52 .king-addons-gradient-mesh__canvas {
53 position: absolute;
54 inset: 0;
55 width: 100%;
56 height: 100%;
57 z-index: 0;
58 }
59
60 .king-addons-gradient-mesh__bg,
61 .king-addons-gradient-mesh__canvas {
62 background-size: 200% 200%;
63 filter: saturate(var(--kng-mesh-saturate)) contrast(var(--kng-mesh-contrast)) blur(var(--kng-mesh-blur)) brightness(var(--kng-mesh-brightness)) hue-rotate(var(--kng-mesh-hue));
64 transition: filter 0.3s ease;
65 }
66
67 .king-addons-gradient-mesh__canvas {
68 display: none;
69 }
70
71 .king-addons-gradient-mesh.is-canvas .king-addons-gradient-mesh__bg {
72 opacity: 0;
73 }
74
75 .king-addons-gradient-mesh.is-canvas .king-addons-gradient-mesh__canvas {
76 display: block;
77 }
78
79 .king-addons-gradient-mesh.is-animated[data-motion="drift"] .king-addons-gradient-mesh__bg {
80 animation: kng-mesh-drift calc(80s - (var(--kng-mesh-speed) * 0.6s)) ease-in-out infinite;
81 }
82
83 .king-addons-gradient-mesh.is-animated[data-motion="pulse"] .king-addons-gradient-mesh__bg {
84 animation: kng-mesh-pulse calc(90s - (var(--kng-mesh-speed) * 0.6s)) ease-in-out infinite;
85 }
86
87 .king-addons-gradient-mesh.is-animated[data-motion="wave"] .king-addons-gradient-mesh__bg {
88 animation: kng-mesh-wave calc(70s - (var(--kng-mesh-speed) * 0.5s)) ease-in-out infinite;
89 }
90
91 @keyframes kng-mesh-drift {
92 0% {
93 background-position: 0% 0%;
94 }
95 50% {
96 background-position: 100% 100%;
97 }
98 100% {
99 background-position: 0% 0%;
100 }
101 }
102
103 @keyframes kng-mesh-pulse {
104 0% {
105 background-position: 40% 40%;
106 transform: scale(1);
107 }
108 50% {
109 background-position: 60% 60%;
110 transform: scale(1.02);
111 }
112 100% {
113 background-position: 40% 40%;
114 transform: scale(1);
115 }
116 }
117
118 @keyframes kng-mesh-wave {
119 0% {
120 background-position: 20% 30%;
121 }
122 50% {
123 background-position: 80% 40%;
124 }
125 100% {
126 background-position: 20% 30%;
127 }
128 }
129
130 @media (prefers-reduced-motion: reduce) {
131 .king-addons-gradient-mesh.is-animated .king-addons-gradient-mesh__bg {
132 animation: none;
133 }
134 }
135
136 .king-addons-gradient-mesh__overlay {
137 position: relative;
138 z-index: 2;
139 width: 100%;
140 text-align: center;
141 }
142
143 .king-addons-gradient-mesh--align-left .king-addons-gradient-mesh__overlay {
144 text-align: left;
145 }
146
147 .king-addons-gradient-mesh--align-right .king-addons-gradient-mesh__overlay {
148 text-align: right;
149 }
150
151 .king-addons-gradient-mesh__content {
152 max-width: 720px;
153 margin: 0 auto;
154 display: flex;
155 flex-direction: column;
156 gap: 10px;
157
158 /* The copy is white and the mesh can be any colour the user picks, including
159 very pale ones. This scrim sits only behind the text, fades out well before
160 the edges, and keeps the wording readable on any mesh. */
161 padding: 26px 22px;
162 background: radial-gradient(ellipse at center,
163 rgba(0, 0, 0, 0.34) 0%,
164 rgba(0, 0, 0, 0.20) 55%,
165 rgba(0, 0, 0, 0) 78%);
166 }
167
168 .king-addons-gradient-mesh__template {
169 width: 100%;
170 }
171
172 .king-addons-gradient-mesh--align-left .king-addons-gradient-mesh__content {
173 margin-left: 0;
174 }
175
176 .king-addons-gradient-mesh--align-right .king-addons-gradient-mesh__content {
177 margin-right: 0;
178 }
179
180 /* The mesh defaults to pale colours while the copy is white, so without this the
181 heading and eyebrow are close to invisible. A soft shadow restores legibility
182 over any mesh, and leaves the colours themselves to the widget's controls. */
183 .king-addons-gradient-mesh__subtitle,
184 .king-addons-gradient-mesh__title,
185 .king-addons-gradient-mesh__text {
186 text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55), 0 2px 14px rgba(0, 0, 0, 0.45);
187 }
188
189 .king-addons-gradient-mesh__subtitle {
190 font-size: 14px;
191 letter-spacing: 0.16em;
192 text-transform: uppercase;
193 color: rgba(255, 255, 255, 0.95);
194 }
195
196 .king-addons-gradient-mesh__title {
197 margin: 0;
198 font-size: 32px;
199 line-height: 1.2;
200 color: #ffffff;
201 }
202
203 .king-addons-gradient-mesh__text {
204 color: rgba(255, 255, 255, 0.94);
205 font-size: 16px;
206 line-height: 1.6;
207 }
208
209 .king-addons-gradient-mesh__actions {
210 margin-top: 8px;
211 }
212
213 .king-addons-gradient-mesh__button {
214 display: inline-flex;
215 align-items: center;
216 justify-content: center;
217 padding: 10px 20px;
218 background: rgba(255, 255, 255, 0.16);
219 color: #ffffff;
220 text-decoration: none;
221 border-radius: 999px;
222 border: 1px solid rgba(255, 255, 255, 0.3);
223 transition: transform 0.2s ease, background 0.2s ease;
224 }
225
226 .king-addons-gradient-mesh__button:hover {
227 transform: translateY(-1px);
228 background: rgba(255, 255, 255, 0.22);
229 }
230
231 .king-addons-gradient-mesh__export {
232 position: absolute;
233 right: 16px;
234 bottom: 16px;
235 z-index: 3;
236 background: rgba(15, 23, 42, 0.72);
237 border: 1px solid rgba(148, 163, 184, 0.3);
238 border-radius: 12px;
239 padding: 12px;
240 max-width: 320px;
241 color: #e2e8f0;
242 display: none;
243 gap: 8px;
244 }
245
246 .king-addons-gradient-mesh__export textarea {
247 width: 100%;
248 background: transparent;
249 color: inherit;
250 border: 1px solid rgba(148, 163, 184, 0.3);
251 border-radius: 8px;
252 padding: 8px;
253 font-size: 12px;
254 resize: vertical;
255 }
256
257 .king-addons-gradient-mesh__export-copy {
258 background: rgba(56, 189, 248, 0.24);
259 color: #e0f2fe;
260 border: 1px solid rgba(56, 189, 248, 0.5);
261 border-radius: 8px;
262 padding: 6px 10px;
263 cursor: pointer;
264 }
265
266 .king-addons-gradient-mesh.is-editor .king-addons-gradient-mesh__export {
267 display: grid;
268 }
269
270 .king-addons-gradient-mesh.is-fallback .king-addons-gradient-mesh__bg {
271 background-image: none !important;
272 }
273