PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.78
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.78
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 / extensions / Site_Preloader / assets / style.css

style.css in King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder 51.1.78, at includes/extensions/Site_Preloader/assets/style.css

533 lines 12.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Site Preloader Frontend Styles.
3 *
4 * Contains all preloader animations and styles for the frontend.
5 * Premium style inspired smooth animations and transitions.
6 *
7 * @package King_Addons
8 * @since 1.0.0
9 */
10
11 /* ===== CSS VARIABLES ===== */
12 :root {
13 --kng-preloader-accent: #0071e3;
14 --kng-preloader-size: 48px;
15 --kng-preloader-bg: #ffffff;
16 --kng-preloader-text: #1d1d1f;
17 --kng-preloader-transition: 400ms;
18 --kng-preloader-easing: cubic-bezier(0.25, 1, 0.5, 1);
19 }
20
21 /* ===== MAIN CONTAINER ===== */
22 .kng-site-preloader {
23 position: fixed;
24 inset: 0;
25 z-index: 999999;
26 display: flex;
27 align-items: center;
28 justify-content: center;
29 pointer-events: auto;
30 }
31
32 .kng-site-preloader--hidden {
33 pointer-events: none;
34 }
35
36 /* Overlay */
37 .kng-site-preloader__overlay {
38 position: absolute;
39 inset: 0;
40 background-color: var(--kng-preloader-bg);
41 }
42
43 /* Content wrapper */
44 .kng-site-preloader__content {
45 position: relative;
46 z-index: 1;
47 display: flex;
48 flex-direction: column;
49 align-items: center;
50 gap: 24px;
51 }
52
53 /* Logo */
54 .kng-site-preloader__logo {
55 display: flex;
56 align-items: center;
57 justify-content: center;
58 }
59
60 .kng-site-preloader__logo img {
61 max-width: 120px;
62 height: auto;
63 display: block;
64 }
65
66 /* Text */
67 .kng-site-preloader__text {
68 font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
69 font-size: 16px;
70 font-weight: 400;
71 color: var(--kng-preloader-text);
72 letter-spacing: -0.01em;
73 }
74
75 /* Animation container */
76 .kng-site-preloader__animation {
77 display: flex;
78 align-items: center;
79 justify-content: center;
80 }
81
82 /* ===== HIDE ANIMATIONS ===== */
83 .kng-site-preloader--fade-out {
84 animation: kngPreloaderFadeOut var(--kng-preloader-transition) var(--kng-preloader-easing) forwards;
85 }
86
87 .kng-site-preloader--slide-up {
88 animation: kngPreloaderSlideUp var(--kng-preloader-transition) var(--kng-preloader-easing) forwards;
89 }
90
91 .kng-site-preloader--blur-out {
92 animation: kngPreloaderBlurOut var(--kng-preloader-transition) var(--kng-preloader-easing) forwards;
93 }
94
95 .kng-site-preloader--scale-out {
96 animation: kngPreloaderScaleOut var(--kng-preloader-transition) var(--kng-preloader-easing) forwards;
97 }
98
99 @keyframes kngPreloaderFadeOut {
100 from {
101 opacity: 1;
102 }
103 to {
104 opacity: 0;
105 }
106 }
107
108 @keyframes kngPreloaderSlideUp {
109 from {
110 opacity: 1;
111 transform: translateY(0);
112 }
113 to {
114 opacity: 0;
115 transform: translateY(-100%);
116 }
117 }
118
119 @keyframes kngPreloaderBlurOut {
120 from {
121 opacity: 1;
122 filter: blur(0);
123 }
124 to {
125 opacity: 0;
126 filter: blur(20px);
127 }
128 }
129
130 @keyframes kngPreloaderScaleOut {
131 from {
132 opacity: 1;
133 transform: scale(1);
134 }
135 to {
136 opacity: 0;
137 transform: scale(1.1);
138 }
139 }
140
141 /* ===== SHOW ANIMATIONS ===== */
142 .kng-site-preloader--fade-in {
143 animation: kngPreloaderFadeIn var(--kng-preloader-transition) var(--kng-preloader-easing) forwards;
144 }
145
146 .kng-site-preloader--scale-in {
147 animation: kngPreloaderScaleIn var(--kng-preloader-transition) var(--kng-preloader-easing) forwards;
148 }
149
150 @keyframes kngPreloaderFadeIn {
151 from {
152 opacity: 0;
153 }
154 to {
155 opacity: 1;
156 }
157 }
158
159 @keyframes kngPreloaderScaleIn {
160 from {
161 opacity: 0;
162 transform: scale(0.95);
163 }
164 to {
165 opacity: 1;
166 transform: scale(1);
167 }
168 }
169
170 /* ===== PRESET: SPINNER CIRCLE ===== */
171 .kng-preloader-spinner-circle {
172 width: var(--kng-preloader-size);
173 height: var(--kng-preloader-size);
174 border: 3px solid rgba(0, 0, 0, 0.1);
175 border-top-color: var(--kng-preloader-accent);
176 border-radius: 50%;
177 animation: kngSpinnerRotate 0.8s linear infinite;
178 }
179
180 @keyframes kngSpinnerRotate {
181 to {
182 transform: rotate(360deg);
183 }
184 }
185
186 /* ===== PRESET: DUAL RING ===== */
187 .kng-preloader-dual-ring {
188 width: var(--kng-preloader-size);
189 height: var(--kng-preloader-size);
190 position: relative;
191 }
192
193 .kng-preloader-dual-ring::before,
194 .kng-preloader-dual-ring::after {
195 content: '';
196 position: absolute;
197 inset: 0;
198 border-radius: 50%;
199 border: 3px solid transparent;
200 }
201
202 .kng-preloader-dual-ring::before {
203 border-top-color: var(--kng-preloader-accent);
204 animation: kngDualRing 1s ease-in-out infinite;
205 }
206
207 .kng-preloader-dual-ring::after {
208 border-bottom-color: var(--kng-preloader-accent);
209 animation: kngDualRing 1s ease-in-out infinite reverse;
210 opacity: 0.5;
211 }
212
213 @keyframes kngDualRing {
214 0% {
215 transform: rotate(0deg);
216 }
217 100% {
218 transform: rotate(360deg);
219 }
220 }
221
222 /* ===== PRESET: DOTS BOUNCE ===== */
223 .kng-preloader-dots-bounce {
224 display: flex;
225 gap: calc(var(--kng-preloader-size) * 0.2);
226 }
227
228 .kng-preloader-dots-bounce span {
229 width: calc(var(--kng-preloader-size) * 0.25);
230 height: calc(var(--kng-preloader-size) * 0.25);
231 background-color: var(--kng-preloader-accent);
232 border-radius: 50%;
233 animation: kngDotsBounce 1.4s ease-in-out infinite both;
234 }
235
236 .kng-preloader-dots-bounce span:nth-child(1) {
237 animation-delay: -0.32s;
238 }
239
240 .kng-preloader-dots-bounce span:nth-child(2) {
241 animation-delay: -0.16s;
242 }
243
244 @keyframes kngDotsBounce {
245 0%, 80%, 100% {
246 transform: scale(0.6);
247 opacity: 0.5;
248 }
249 40% {
250 transform: scale(1);
251 opacity: 1;
252 }
253 }
254
255 /* ===== PRESET: BAR LOADER ===== */
256 .kng-preloader-bar-loader {
257 width: calc(var(--kng-preloader-size) * 3);
258 height: 4px;
259 background: rgba(0, 0, 0, 0.1);
260 border-radius: 2px;
261 overflow: hidden;
262 }
263
264 .kng-preloader-bar-loader__bar {
265 width: 40%;
266 height: 100%;
267 background: var(--kng-preloader-accent);
268 border-radius: 2px;
269 animation: kngBarLoader 1.5s ease-in-out infinite;
270 }
271
272 @keyframes kngBarLoader {
273 0% {
274 transform: translateX(-100%);
275 }
276 50% {
277 transform: translateX(200%);
278 }
279 100% {
280 transform: translateX(-100%);
281 }
282 }
283
284 /* ===== PRESET: PULSE LOGO ===== */
285 .kng-preloader-pulse-logo {
286 display: flex;
287 align-items: center;
288 justify-content: center;
289 animation: kngPulseLogo 1.5s ease-in-out infinite;
290 }
291
292 .kng-preloader-pulse-logo img {
293 max-width: var(--kng-preloader-size);
294 height: auto;
295 }
296
297 .kng-preloader-pulse-logo__circle {
298 width: var(--kng-preloader-size);
299 height: var(--kng-preloader-size);
300 background: var(--kng-preloader-accent);
301 border-radius: 50%;
302 }
303
304 @keyframes kngPulseLogo {
305 0%, 100% {
306 transform: scale(1);
307 opacity: 1;
308 }
309 50% {
310 transform: scale(1.1);
311 opacity: 0.8;
312 }
313 }
314
315 /* ===== PRESET: MINIMAL LINE ===== */
316 .kng-preloader-minimal-line {
317 width: calc(var(--kng-preloader-size) * 2.5);
318 }
319
320 .kng-preloader-minimal-line__track {
321 height: 2px;
322 background: rgba(0, 0, 0, 0.08);
323 border-radius: 1px;
324 overflow: hidden;
325 }
326
327 .kng-preloader-minimal-line__bar {
328 height: 100%;
329 width: 30%;
330 background: var(--kng-preloader-accent);
331 border-radius: 1px;
332 animation: kngMinimalLine 1.2s ease-in-out infinite;
333 }
334
335 @keyframes kngMinimalLine {
336 0% {
337 transform: translateX(-100%);
338 }
339 100% {
340 transform: translateX(400%);
341 }
342 }
343
344 /* ===== PRESET: GRADIENT SPINNER ===== */
345 .kng-preloader-gradient-spinner {
346 width: var(--kng-preloader-size);
347 height: var(--kng-preloader-size);
348 border-radius: 50%;
349 background: conic-gradient(
350 from 0deg,
351 transparent 0deg,
352 var(--kng-preloader-accent) 360deg
353 );
354 -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
355 mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 4px));
356 animation: kngSpinnerRotate 0.9s linear infinite;
357 }
358
359 /* ===== PRESET: FADE TEXT ===== */
360 .kng-preloader-fade-text {
361 display: flex;
362 font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
363 font-size: calc(var(--kng-preloader-size) * 0.5);
364 font-weight: 500;
365 color: var(--kng-preloader-accent);
366 letter-spacing: 0.05em;
367 }
368
369 .kng-preloader-fade-text span {
370 animation: kngFadeText 1.4s ease-in-out infinite;
371 }
372
373 @keyframes kngFadeText {
374 0%, 100% {
375 opacity: 0.3;
376 }
377 50% {
378 opacity: 1;
379 }
380 }
381
382 /* ===== PRESET: CUBE GRID ===== */
383 .kng-preloader-cube-grid {
384 width: var(--kng-preloader-size);
385 height: var(--kng-preloader-size);
386 display: grid;
387 grid-template-columns: repeat(3, 1fr);
388 gap: 3px;
389 }
390
391 .kng-preloader-cube-grid__cube {
392 background-color: var(--kng-preloader-accent);
393 border-radius: 2px;
394 animation: kngCubeGrid 1.3s ease-in-out infinite;
395 }
396
397 .kng-preloader-cube-grid__cube:nth-child(1) { animation-delay: 0.2s; }
398 .kng-preloader-cube-grid__cube:nth-child(2) { animation-delay: 0.3s; }
399 .kng-preloader-cube-grid__cube:nth-child(3) { animation-delay: 0.4s; }
400 .kng-preloader-cube-grid__cube:nth-child(4) { animation-delay: 0.1s; }
401 .kng-preloader-cube-grid__cube:nth-child(5) { animation-delay: 0.2s; }
402 .kng-preloader-cube-grid__cube:nth-child(6) { animation-delay: 0.3s; }
403 .kng-preloader-cube-grid__cube:nth-child(7) { animation-delay: 0s; }
404 .kng-preloader-cube-grid__cube:nth-child(8) { animation-delay: 0.1s; }
405 .kng-preloader-cube-grid__cube:nth-child(9) { animation-delay: 0.2s; }
406
407 @keyframes kngCubeGrid {
408 0%, 70%, 100% {
409 transform: scale3D(1, 1, 1);
410 }
411 35% {
412 transform: scale3D(0, 0, 1);
413 }
414 }
415
416 /* ===== PRESET: WAVE BARS ===== */
417 .kng-preloader-wave-bars {
418 display: flex;
419 align-items: center;
420 gap: calc(var(--kng-preloader-size) * 0.1);
421 height: var(--kng-preloader-size);
422 }
423
424 .kng-preloader-wave-bars__bar {
425 width: calc(var(--kng-preloader-size) * 0.12);
426 height: 60%;
427 background-color: var(--kng-preloader-accent);
428 border-radius: 3px;
429 animation: kngWaveBars 1s ease-in-out infinite;
430 }
431
432 .kng-preloader-wave-bars__bar:nth-child(1) { animation-delay: -0.45s; }
433 .kng-preloader-wave-bars__bar:nth-child(2) { animation-delay: -0.3s; }
434 .kng-preloader-wave-bars__bar:nth-child(3) { animation-delay: -0.15s; }
435 .kng-preloader-wave-bars__bar:nth-child(4) { animation-delay: -0.3s; }
436 .kng-preloader-wave-bars__bar:nth-child(5) { animation-delay: -0.45s; }
437
438 @keyframes kngWaveBars {
439 0%, 40%, 100% {
440 transform: scaleY(0.4);
441 }
442 20% {
443 transform: scaleY(1);
444 }
445 }
446
447 /* ===== PRESET: ROTATING SQUARES ===== */
448 .kng-preloader-rotating-squares {
449 width: var(--kng-preloader-size);
450 height: var(--kng-preloader-size);
451 position: relative;
452 }
453
454 .kng-preloader-rotating-squares__square {
455 position: absolute;
456 top: 50%;
457 left: 50%;
458 width: 45%;
459 height: 45%;
460 background-color: var(--kng-preloader-accent);
461 border-radius: 3px;
462 }
463
464 .kng-preloader-rotating-squares__square:nth-child(1) {
465 animation: kngSquare1 1.8s ease-in-out infinite;
466 }
467
468 .kng-preloader-rotating-squares__square:nth-child(2) {
469 animation: kngSquare2 1.8s ease-in-out infinite;
470 }
471
472 @keyframes kngSquare1 {
473 0% {
474 transform: translate(-50%, -50%) rotate(0deg);
475 }
476 50% {
477 transform: translate(-50%, -100%) rotate(180deg);
478 }
479 100% {
480 transform: translate(-50%, -50%) rotate(360deg);
481 }
482 }
483
484 @keyframes kngSquare2 {
485 0% {
486 transform: translate(-50%, -50%) rotate(0deg);
487 }
488 50% {
489 transform: translate(-50%, 0%) rotate(-180deg);
490 }
491 100% {
492 transform: translate(-50%, -50%) rotate(-360deg);
493 }
494 }
495
496 /* ===== PRESET: MORPHING CIRCLE ===== */
497 .kng-preloader-morphing-circle {
498 width: var(--kng-preloader-size);
499 height: var(--kng-preloader-size);
500 background-color: var(--kng-preloader-accent);
501 animation: kngMorphingCircle 2s ease-in-out infinite;
502 }
503
504 @keyframes kngMorphingCircle {
505 0%, 100% {
506 border-radius: 60% 40% 30% 70% / 60% 30% 70% 40%;
507 }
508 25% {
509 border-radius: 30% 60% 70% 40% / 50% 60% 30% 60%;
510 }
511 50% {
512 border-radius: 50% 60% 40% 60% / 30% 60% 70% 40%;
513 }
514 75% {
515 border-radius: 60% 40% 60% 40% / 70% 30% 50% 60%;
516 }
517 }
518
519 /* ===== BODY SCROLL LOCK ===== */
520 body.kng-preloader-no-scroll {
521 overflow: hidden !important;
522 }
523
524 /* ===== ACCESSIBILITY ===== */
525 @media (prefers-reduced-motion: reduce) {
526 .kng-site-preloader *,
527 .kng-site-preloader *::before,
528 .kng-site-preloader *::after {
529 animation-duration: 0.01ms !important;
530 animation-iteration-count: 1 !important;
531 }
532 }
533