PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.83
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.83
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 / Live_Chat / assets / frontend.css

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

734 lines 14.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Live Chat Frontend Styles
3 *
4 * Floating chat widget styles.
5 *
6 * @package King_Addons
7 */
8
9 /* CSS Variables (defaults) */
10 .ka-live-chat {
11 --ka-chat-btn-size: 60px;
12 --ka-chat-btn-color: #0066ff;
13 --ka-chat-width: 380px;
14 --ka-chat-height: 520px;
15 --ka-chat-header-bg: #0066ff;
16 --ka-chat-header-text: #ffffff;
17 --ka-chat-bg: #ffffff;
18 --ka-chat-visitor-bg: #e8f4fd;
19 --ka-chat-visitor-text: #1d1d1f;
20 --ka-chat-admin-bg: #0066ff;
21 --ka-chat-admin-text: #ffffff;
22 --ka-chat-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
23 --ka-chat-radius: 20px;
24 }
25
26 /* Container */
27 .ka-live-chat {
28 position: fixed;
29 font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, sans-serif;
30 font-size: 14px;
31 line-height: 1.5;
32 z-index: 9999;
33 }
34
35 .ka-live-chat * {
36 box-sizing: border-box;
37 }
38
39 /* Floating Button */
40 .ka-live-chat__button {
41 width: var(--ka-chat-btn-size);
42 height: var(--ka-chat-btn-size);
43 border-radius: 50%;
44 background: var(--ka-chat-btn-color);
45 border: none;
46 cursor: pointer;
47 display: flex;
48 align-items: center;
49 justify-content: center;
50 box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
51 transition: transform 0.3s ease, box-shadow 0.3s ease;
52 position: relative;
53 }
54
55 .ka-live-chat__button:hover {
56 transform: scale(1.05);
57 box-shadow: 0 6px 25px rgba(0, 0, 0, 0.25);
58 }
59
60 .ka-live-chat__button:active {
61 transform: scale(0.95);
62 }
63
64 .ka-live-chat__icon {
65 width: 26px;
66 height: 26px;
67 color: #fff;
68 transition: opacity 0.2s, transform 0.2s;
69 }
70
71 .ka-live-chat__icon--close {
72 position: absolute;
73 opacity: 0;
74 transform: rotate(-90deg);
75 }
76
77 .ka-live-chat--open .ka-live-chat__icon--chat {
78 opacity: 0;
79 transform: rotate(90deg);
80 }
81
82 .ka-live-chat--open .ka-live-chat__icon--close {
83 opacity: 1;
84 transform: rotate(0);
85 }
86
87 /* Unread Badge */
88 .ka-live-chat__badge {
89 position: absolute;
90 top: -4px;
91 right: -4px;
92 background: #ff3b30;
93 color: #fff;
94 font-size: 11px;
95 font-weight: 600;
96 min-width: 20px;
97 height: 20px;
98 border-radius: 10px;
99 display: flex;
100 align-items: center;
101 justify-content: center;
102 padding: 0 6px;
103 animation: ka-chat-badge-pulse 2s infinite;
104 }
105
106 @keyframes ka-chat-badge-pulse {
107 0%, 100% { transform: scale(1); }
108 50% { transform: scale(1.1); }
109 }
110
111 /* Chat Panel */
112 .ka-live-chat__panel {
113 position: absolute;
114 bottom: calc(var(--ka-chat-btn-size) + 16px);
115 width: var(--ka-chat-width);
116 height: var(--ka-chat-height);
117 background: var(--ka-chat-bg);
118 border-radius: var(--ka-chat-radius);
119 box-shadow: var(--ka-chat-shadow);
120 display: flex;
121 flex-direction: column;
122 overflow: hidden;
123 opacity: 0;
124 visibility: hidden;
125 transform: translateY(20px) scale(0.95);
126 transition: opacity 0.3s ease, transform 0.3s ease, visibility 0.3s;
127 }
128
129 .ka-live-chat--right .ka-live-chat__panel {
130 right: 0;
131 }
132
133 .ka-live-chat--left .ka-live-chat__panel {
134 left: 0;
135 }
136
137 .ka-live-chat--open .ka-live-chat__panel {
138 opacity: 1;
139 visibility: visible;
140 transform: translateY(0) scale(1);
141 }
142
143 /* Header */
144 .ka-live-chat__header {
145 background: var(--ka-chat-header-bg);
146 color: var(--ka-chat-header-text);
147 padding: 20px;
148 display: flex;
149 justify-content: space-between;
150 align-items: flex-start;
151 flex-shrink: 0;
152 }
153
154 .ka-live-chat__header-title {
155 font-size: 18px;
156 font-weight: 600;
157 margin: 0 0 4px;
158 }
159
160 .ka-live-chat__header-subtitle {
161 font-size: 13px;
162 opacity: 0.9;
163 display: flex;
164 align-items: center;
165 gap: 6px;
166 }
167
168 .ka-live-chat__status-dot {
169 width: 8px;
170 height: 8px;
171 border-radius: 50%;
172 background: rgba(255, 255, 255, 0.5);
173 }
174
175 .ka-live-chat__status-dot--online {
176 background: #34c759;
177 animation: ka-status-pulse 2s infinite;
178 }
179
180 @keyframes ka-status-pulse {
181 0%, 100% { opacity: 1; }
182 50% { opacity: 0.5; }
183 }
184
185 .ka-live-chat__close {
186 background: rgba(255, 255, 255, 0.2);
187 border: none;
188 border-radius: 8px;
189 padding: 8px;
190 cursor: pointer;
191 color: inherit;
192 transition: background 0.2s;
193 }
194
195 .ka-live-chat__close:hover {
196 background: rgba(255, 255, 255, 0.3);
197 }
198
199 .ka-live-chat__close svg {
200 width: 18px;
201 height: 18px;
202 display: block;
203 }
204
205 /* Pre-chat Form */
206 .ka-live-chat__prechat {
207 padding: 20px;
208 flex: 1;
209 display: flex;
210 flex-direction: column;
211 gap: 16px;
212 overflow-y: auto;
213 }
214
215 .ka-live-chat--chatting .ka-live-chat__prechat {
216 display: none;
217 }
218
219 .ka-live-chat__field label {
220 display: block;
221 font-size: 13px;
222 font-weight: 500;
223 color: #6e6e73;
224 margin-bottom: 6px;
225 }
226
227 .ka-live-chat__field input {
228 width: 100%;
229 padding: 12px 14px;
230 border: 1px solid #e5e5ea;
231 border-radius: 10px;
232 font-size: 14px;
233 transition: border-color 0.2s, box-shadow 0.2s;
234 }
235
236 .ka-live-chat__field input:focus {
237 outline: none;
238 border-color: var(--ka-chat-btn-color);
239 box-shadow: 0 0 0 3px rgba(0, 102, 255, 0.1);
240 }
241
242 /* Honeypot - hide from humans */
243 .ka-live-chat__hp {
244 position: absolute;
245 left: -9999px;
246 }
247
248 .ka-live-chat__start {
249 background: var(--ka-chat-btn-color);
250 color: #fff;
251 border: none;
252 border-radius: 10px;
253 padding: 14px 20px;
254 font-size: 14px;
255 font-weight: 500;
256 cursor: pointer;
257 transition: background 0.2s, transform 0.1s;
258 margin-top: auto;
259 }
260
261 .ka-live-chat__start:hover {
262 filter: brightness(1.1);
263 }
264
265 .ka-live-chat__start:active {
266 transform: scale(0.98);
267 }
268
269 .ka-live-chat__start:disabled {
270 opacity: 0.6;
271 cursor: not-allowed;
272 }
273
274 /* Messages Area */
275 .ka-live-chat__messages {
276 flex: 1;
277 overflow-y: auto;
278 display: none;
279 flex-direction: column;
280 }
281
282 .ka-live-chat--chatting .ka-live-chat__messages {
283 display: flex;
284 }
285
286 .ka-live-chat__messages-list {
287 padding: 16px;
288 display: flex;
289 flex-direction: column;
290 gap: 12px;
291 min-height: 100%;
292 }
293
294 /* Message Bubbles */
295 .ka-live-chat__message {
296 max-width: 80%;
297 padding: 12px 16px;
298 border-radius: 16px;
299 animation: ka-message-appear 0.3s ease;
300 }
301
302 @keyframes ka-message-appear {
303 from {
304 opacity: 0;
305 transform: translateY(10px);
306 }
307 to {
308 opacity: 1;
309 transform: translateY(0);
310 }
311 }
312
313 .ka-live-chat__message--visitor {
314 background: var(--ka-chat-visitor-bg);
315 color: var(--ka-chat-visitor-text);
316 align-self: flex-end;
317 border-bottom-right-radius: 4px;
318 }
319
320 .ka-live-chat__message--admin {
321 background: var(--ka-chat-admin-bg);
322 color: var(--ka-chat-admin-text);
323 align-self: flex-start;
324 border-bottom-left-radius: 4px;
325 }
326
327 .ka-live-chat__message--welcome {
328 background: #f5f5f7;
329 color: #1d1d1f;
330 align-self: flex-start;
331 border-bottom-left-radius: 4px;
332 }
333
334 .ka-live-chat__message-text {
335 word-wrap: break-word;
336 white-space: pre-wrap;
337 }
338
339 .ka-live-chat__message-time {
340 font-size: 11px;
341 opacity: 0.7;
342 margin-top: 4px;
343 }
344
345 /* Typing Indicator */
346 .ka-live-chat__typing {
347 padding: 12px 16px;
348 background: #f5f5f7;
349 border-radius: 16px;
350 border-bottom-left-radius: 4px;
351 align-self: flex-start;
352 display: none;
353 }
354
355 .ka-live-chat__typing-dots {
356 display: flex;
357 gap: 4px;
358 }
359
360 .ka-live-chat__typing-dot {
361 width: 8px;
362 height: 8px;
363 background: #86868b;
364 border-radius: 50%;
365 animation: ka-typing-bounce 1.4s infinite ease-in-out;
366 }
367
368 .ka-live-chat__typing-dot:nth-child(1) { animation-delay: 0s; }
369 .ka-live-chat__typing-dot:nth-child(2) { animation-delay: 0.2s; }
370 .ka-live-chat__typing-dot:nth-child(3) { animation-delay: 0.4s; }
371
372 @keyframes ka-typing-bounce {
373 0%, 60%, 100% { transform: translateY(0); }
374 30% { transform: translateY(-4px); }
375 }
376
377 /* Input Area */
378 .ka-live-chat__input {
379 padding: 16px;
380 border-top: 1px solid #f1f1f4;
381 display: none;
382 gap: 12px;
383 align-items: flex-end;
384 background: var(--ka-chat-bg);
385 }
386
387 .ka-live-chat--chatting .ka-live-chat__input {
388 display: flex;
389 }
390
391 .ka-live-chat__input textarea {
392 flex: 1;
393 padding: 12px 14px;
394 border: 1px solid #e5e5ea;
395 border-radius: 12px;
396 font-size: 14px;
397 font-family: inherit;
398 resize: none;
399 max-height: 100px;
400 transition: border-color 0.2s;
401 }
402
403 .ka-live-chat__input textarea:focus {
404 outline: none;
405 border-color: var(--ka-chat-btn-color);
406 }
407
408 .ka-live-chat__send {
409 width: 44px;
410 height: 44px;
411 background: var(--ka-chat-btn-color);
412 border: none;
413 border-radius: 12px;
414 cursor: pointer;
415 display: flex;
416 align-items: center;
417 justify-content: center;
418 color: #fff;
419 transition: transform 0.1s, background 0.2s;
420 flex-shrink: 0;
421 }
422
423 .ka-live-chat__send:hover {
424 filter: brightness(1.1);
425 }
426
427 .ka-live-chat__send:active {
428 transform: scale(0.95);
429 }
430
431 .ka-live-chat__send:disabled {
432 opacity: 0.6;
433 cursor: not-allowed;
434 }
435
436 .ka-live-chat__send svg {
437 width: 20px;
438 height: 20px;
439 }
440
441 /* Offline Message */
442 .ka-live-chat__offline {
443 padding: 12px 16px;
444 background: #fff3cd;
445 color: #856404;
446 font-size: 13px;
447 text-align: center;
448 display: none;
449 }
450
451 .ka-live-chat[data-online="false"] .ka-live-chat__offline {
452 display: block;
453 }
454
455 /* Error State */
456 .ka-live-chat__error {
457 padding: 12px 16px;
458 background: #f8d7da;
459 color: #721c24;
460 font-size: 13px;
461 text-align: center;
462 display: none;
463 align-items: center;
464 justify-content: center;
465 gap: 8px;
466 }
467
468 .ka-live-chat__error button {
469 background: #721c24;
470 color: #fff;
471 border: none;
472 border-radius: 6px;
473 padding: 6px 12px;
474 font-size: 12px;
475 cursor: pointer;
476 }
477
478 /* Loading */
479 .ka-live-chat__loading {
480 display: flex;
481 align-items: center;
482 justify-content: center;
483 padding: 20px;
484 }
485
486 .ka-live-chat__spinner {
487 width: 24px;
488 height: 24px;
489 border: 2px solid #f1f1f4;
490 border-top-color: var(--ka-chat-btn-color);
491 border-radius: 50%;
492 animation: ka-spin 0.8s linear infinite;
493 }
494
495 @keyframes ka-spin {
496 to { transform: rotate(360deg); }
497 }
498
499 /* Mobile Responsive */
500 @media (max-width: 480px) {
501 .ka-live-chat__panel {
502 position: fixed;
503 top: 0;
504 left: 0;
505 right: 0;
506 bottom: 0;
507 width: 100%;
508 height: 100%;
509 border-radius: 0;
510 max-height: 100%;
511 }
512
513 .ka-live-chat--open .ka-live-chat__button {
514 display: none;
515 }
516 }
517
518 /* Reduced Motion */
519 @media (prefers-reduced-motion: reduce) {
520 .ka-live-chat__panel,
521 .ka-live-chat__button,
522 .ka-live-chat__message,
523 .ka-live-chat__icon {
524 transition: none;
525 animation: none;
526 }
527 }
528
529 /* Contact Form Mode */
530 .ka-live-chat__contact-form {
531 padding: 20px;
532 display: flex;
533 flex-direction: column;
534 gap: 16px;
535 flex: 1;
536 overflow-y: auto;
537 }
538
539 .ka-live-chat__contact-form textarea {
540 width: 100%;
541 padding: 12px 14px;
542 border: 1px solid #e5e5ea;
543 border-radius: 10px;
544 font-size: 14px;
545 font-family: inherit;
546 resize: vertical;
547 min-height: 100px;
548 transition: border-color 0.2s, box-shadow 0.2s;
549 }
550
551 .ka-live-chat__contact-form textarea:focus {
552 outline: none;
553 border-color: var(--ka-chat-btn-color);
554 box-shadow: 0 0 0 3px rgba(0, 102, 255, 0.1);
555 }
556
557 .ka-live-chat__submit {
558 background: var(--ka-chat-btn-color);
559 color: #fff;
560 border: none;
561 border-radius: 10px;
562 padding: 14px 20px;
563 font-size: 14px;
564 font-weight: 500;
565 cursor: pointer;
566 transition: background 0.2s, transform 0.1s;
567 }
568
569 .ka-live-chat__submit:hover {
570 filter: brightness(1.1);
571 }
572
573 .ka-live-chat__submit:active {
574 transform: scale(0.98);
575 }
576
577 .ka-live-chat__submit:disabled {
578 opacity: 0.6;
579 cursor: not-allowed;
580 }
581
582 /* Success State */
583 .ka-live-chat__success {
584 padding: 40px 20px;
585 text-align: center;
586 display: flex;
587 flex-direction: column;
588 align-items: center;
589 justify-content: center;
590 gap: 16px;
591 flex: 1;
592 }
593
594 .ka-live-chat__success svg {
595 width: 64px;
596 height: 64px;
597 color: #34c759;
598 stroke-width: 1.5;
599 }
600
601 .ka-live-chat__success p {
602 font-size: 16px;
603 color: #1d1d1f;
604 line-height: 1.5;
605 margin: 0;
606 }
607
608 .ka-live-chat__new-message {
609 background: transparent;
610 color: var(--ka-chat-btn-color);
611 border: 1px solid var(--ka-chat-btn-color);
612 border-radius: 8px;
613 padding: 10px 20px;
614 font-size: 14px;
615 cursor: pointer;
616 transition: all 0.2s;
617 margin-top: 8px;
618 }
619
620 .ka-live-chat__new-message:hover {
621 background: var(--ka-chat-btn-color);
622 color: #fff;
623 }
624
625 /* Dark Theme for Widget (user preference) */
626 @media (prefers-color-scheme: dark) {
627 .ka-live-chat {
628 --ka-chat-bg: #1c1c1e;
629 --ka-chat-visitor-bg: #2c2c2e;
630 --ka-chat-visitor-text: #f5f5f7;
631 }
632
633 .ka-live-chat__panel {
634 background: #1c1c1e;
635 }
636
637 .ka-live-chat__field input,
638 .ka-live-chat__field textarea,
639 .ka-live-chat__input textarea,
640 .ka-live-chat__contact-form textarea {
641 background: #2c2c2e;
642 border-color: #3c3c3e;
643 color: #f5f5f7;
644 }
645
646 .ka-live-chat__field input:focus,
647 .ka-live-chat__field textarea:focus,
648 .ka-live-chat__input textarea:focus,
649 .ka-live-chat__contact-form textarea:focus {
650 border-color: var(--ka-chat-btn-color);
651 background: #2c2c2e;
652 }
653
654 .ka-live-chat__field label {
655 color: #a1a1a6;
656 }
657
658 .ka-live-chat__input {
659 border-top-color: #3c3c3e;
660 background: #1c1c1e;
661 }
662
663 .ka-live-chat__message--welcome {
664 background: #2c2c2e;
665 color: #f5f5f7;
666 }
667
668 .ka-live-chat__success p {
669 color: #f5f5f7;
670 }
671
672 .ka-live-chat__typing {
673 background: #2c2c2e;
674 }
675
676 .ka-live-chat__typing-dot {
677 background: #6e6e73;
678 }
679 }
680
681 /* Manual dark theme class */
682 .ka-live-chat--dark {
683 --ka-chat-bg: #1c1c1e;
684 --ka-chat-visitor-bg: #2c2c2e;
685 --ka-chat-visitor-text: #f5f5f7;
686 }
687
688 .ka-live-chat--dark .ka-live-chat__panel {
689 background: #1c1c1e;
690 }
691
692 .ka-live-chat--dark .ka-live-chat__field input,
693 .ka-live-chat--dark .ka-live-chat__field textarea,
694 .ka-live-chat--dark .ka-live-chat__input textarea,
695 .ka-live-chat--dark .ka-live-chat__contact-form textarea {
696 background: #2c2c2e;
697 border-color: #3c3c3e;
698 color: #f5f5f7;
699 }
700
701 .ka-live-chat--dark .ka-live-chat__field input:focus,
702 .ka-live-chat--dark .ka-live-chat__field textarea:focus,
703 .ka-live-chat--dark .ka-live-chat__input textarea:focus,
704 .ka-live-chat--dark .ka-live-chat__contact-form textarea:focus {
705 border-color: var(--ka-chat-btn-color);
706 background: #2c2c2e;
707 }
708
709 .ka-live-chat--dark .ka-live-chat__field label {
710 color: #a1a1a6;
711 }
712
713 .ka-live-chat--dark .ka-live-chat__input {
714 border-top-color: #3c3c3e;
715 background: #1c1c1e;
716 }
717
718 .ka-live-chat--dark .ka-live-chat__message--welcome {
719 background: #2c2c2e;
720 color: #f5f5f7;
721 }
722
723 .ka-live-chat--dark .ka-live-chat__success p {
724 color: #f5f5f7;
725 }
726
727 .ka-live-chat--dark .ka-live-chat__typing {
728 background: #2c2c2e;
729 }
730
731 .ka-live-chat--dark .ka-live-chat__typing-dot {
732 background: #6e6e73;
733 }
734