PluginProbe
SupportCandy – AI Customer Support Ticket System & Live Chatbot Agent / 3.5.4
SupportCandy – AI Customer Support Ticket System & Live Chatbot Agent v3.5.4
3.5.4 3.5.3 3.5.2 3.5.1 3.4.9 3.5.0 3.4.8 3.4.7 trunk 2.3.1 3.3.6 3.3.7 3.3.8 3.3.9 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6
supportcandy / asset / css / ai-chatbot / chatbot.css

chatbot.css in SupportCandy – AI Customer Support Ticket System & Live Chatbot Agent 3.5.4, at asset/css/ai-chatbot/chatbot.css

760 lines 14.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 *,
2 *::before,
3 *::after {
4 box-sizing: border-box;
5 }
6
7 :host {
8 font-family: Arial, sans-serif;
9 }
10
11 /* Launcher */
12 .wpsc-chatbot-launcher {
13 position: fixed;
14 bottom: var(--wpsc-chatbot-offset-bottom, 20px);
15 right: var(--wpsc-chatbot-offset-right, 20px);
16 width: 56px;
17 height: 56px;
18 min-width: 56px;
19 min-height: 56px;
20 max-width: 56px;
21 max-height: 56px;
22 aspect-ratio: 1 / 1;
23 flex-shrink: 0;
24 border-radius: 50%;
25 padding: 0;
26 margin: 0;
27 border: none;
28 box-sizing: border-box;
29 display: flex;
30 align-items: center;
31 justify-content: center;
32 background: var(--wpsc-chatbot-launcher-bg, #2271b1);
33 color: var(--wpsc-chatbot-launcher-icon, #ffffff);
34 font-size: 22px;
35 line-height: 1;
36 cursor: pointer;
37 box-shadow: 0 6px 20px rgba(0,0,0,.28);
38 z-index: 999999;
39 will-change: transform;
40 }
41
42 /* Greeting Tooltip */
43 .wpsc-chatbot-tooltip {
44 position: fixed;
45 bottom: calc(var(--wpsc-chatbot-offset-bottom, 20px) + 66px);
46 right: var(--wpsc-chatbot-offset-right, 20px);
47 max-width: min(260px, calc(100vw - 40px));
48 display: flex;
49 align-items: flex-start;
50 gap: 6px;
51 background: #fff;
52 border: 1px solid #eee;
53 border-radius: 12px;
54 padding: 10px 8px 10px 14px;
55 box-shadow: 0 10px 28px rgba(0,0,0,.22);
56 z-index: 999998;
57 opacity: 0;
58 visibility: hidden;
59 pointer-events: none;
60 transform: translateY(8px) scale(.95);
61 transform-origin: bottom right;
62 transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
63 }
64
65 .wpsc-chatbot-tooltip.wpsc-chatbot-tooltip--active {
66 opacity: 1;
67 visibility: visible;
68 pointer-events: auto;
69 transform: translateY(0) scale(1);
70 animation: wpsc-chatbot-tooltip-pop .5s cubic-bezier(.34, 1.56, .64, 1) both;
71 }
72
73 /* A single, gentle bounce (no repeat) so the tooltip visibly pops into place
74 next to the launcher, drawing the eye toward it without being distracting. */
75 @keyframes wpsc-chatbot-tooltip-pop {
76 0% {
77 opacity: 0;
78 transform: translateY(14px) scale(.85);
79 }
80
81 60% {
82 opacity: 1;
83 transform: translateY(-3px) scale(1.04);
84 }
85
86 100% {
87 opacity: 1;
88 transform: translateY(0) scale(1);
89 }
90 }
91
92 .wpsc-chatbot-tooltip::after {
93 content: '';
94 position: absolute;
95 bottom: -6px;
96 right: 24px;
97 width: 12px;
98 height: 12px;
99 background: #fff;
100 border-right: 1px solid #eee;
101 border-bottom: 1px solid #eee;
102 transform: rotate(45deg);
103 }
104
105 .wpsc-chatbot-tooltip__message {
106 flex: 1;
107 background: none;
108 border: none;
109 padding: 0;
110 margin: 0;
111 font-family: inherit;
112 font-size: 14px;
113 line-height: 1.4;
114 color: #111827;
115 text-align: left;
116 cursor: pointer;
117 }
118
119 .wpsc-chatbot-tooltip__close {
120 flex-shrink: 0;
121 width: 28px;
122 height: 28px;
123 min-width: 28px;
124 display: flex;
125 align-items: center;
126 justify-content: center;
127 background: none;
128 border: none;
129 border-radius: 50%;
130 padding: 0;
131 font-size: 18px;
132 line-height: 1;
133 color: #6b7280;
134 cursor: pointer;
135 }
136
137 @media (hover: hover) {
138 .wpsc-chatbot-tooltip__close:hover {
139 background: rgba(0, 0, 0, .06);
140 color: #111827;
141 }
142 }
143
144 .wpsc-chatbot-tooltip__close:focus-visible,
145 .wpsc-chatbot-tooltip__message:focus-visible {
146 outline: 2px solid var(--wpsc-chatbot-launcher-bg, #2271b1);
147 outline-offset: 2px;
148 }
149
150 @media (prefers-reduced-motion: reduce) {
151 .wpsc-chatbot-tooltip {
152 transition: opacity .01ms linear;
153 transform: none;
154 }
155
156 .wpsc-chatbot-tooltip.wpsc-chatbot-tooltip--active {
157 animation: none;
158 }
159 }
160
161 /* Widget */
162 .wpsc-chatbot {
163 position: fixed;
164 bottom: var(--wpsc-chatbot-offset-bottom, 20px);
165 right: var(--wpsc-chatbot-offset-right, 20px);
166 width: min(400px, calc(100vw - 40px));
167 height: min(700px, calc(100vh - 120px));
168 display: flex;
169 flex-direction: column;
170 background: #fff;
171 border: 1px solid #ddd;
172 border-radius: 12px;
173 overflow: hidden;
174 box-shadow: 0 10px 32px rgba(0,0,0,.25);
175 z-index: 999999;
176 padding-bottom: env(safe-area-inset-bottom);
177 transform-origin: bottom right;
178 transform: scale(.8) translateY(20px);
179 opacity: 0;
180 visibility: hidden;
181 pointer-events: none;
182 }
183
184 .wpsc-chatbot.wpsc-chatbot--active {
185 transform: scale(1) translateY(0);
186 opacity: 1;
187 visibility: visible;
188 pointer-events: auto;
189 }
190
191 .wpsc-chatbot.active {
192 transform: scale(1) translateY(0);
193 opacity: 1;
194 visibility: visible;
195 pointer-events: auto;
196 }
197
198 .wpsc-chatbot-launcher {
199 opacity: 1;
200 transition: opacity .2s ease;
201 }
202
203 .wpsc-chatbot-launcher--hidden {
204 opacity: 0;
205 pointer-events: none;
206 }
207
208 /* Header Layout */
209 .wpsc-chatbot__header {
210 display: flex;
211 align-items: center;
212 justify-content: space-between;
213 gap: 12px;
214 flex-shrink: 0;
215 padding: 10px 16px;
216 background: var(--wpsc-chatbot-header-bg, #ffffff);
217 color: var(--wpsc-chatbot-header-fg, #111827);
218 border-bottom: 1px solid var(--wpsc-chatbot-header-border, #eeeeee);
219 }
220
221 .wpsc-chatbot__header-title {
222 flex: 1;
223 display: flex;
224 align-items: center;
225 gap: 5px;
226 min-width: 0;
227 font-size: 16px;
228 font-weight: 500;
229 overflow: hidden;
230 text-overflow: ellipsis;
231 white-space: nowrap;
232 }
233
234 /* Header Actions */
235 .wpsc-chatbot__header-actions {
236 display: flex;
237 align-items: center;
238 flex-shrink: 0;
239 gap: 4px;
240 }
241
242 .wpsc-chatbot__header-btn {
243 display: flex;
244 align-items: center;
245 justify-content: center;
246 width: 25px;
247 height: 25px;
248 padding: 0;
249 border: 0;
250 border-radius: 6px;
251 background: transparent;
252 color: var(--wpsc-chatbot-header-btn-fg, var(--wpsc-chatbot-header-fg, #111827));
253 cursor: pointer;
254 font-size: 18px;
255 line-height: 1;
256 transition: background-color .2s ease, color .2s ease;
257 }
258
259 .wpsc-chatbot__header-btn:hover {
260 background: var(--wpsc-chatbot-header-btn-hover, rgba(0, 0, 0, 0.08));
261 color: var(--wpsc-chatbot-header-btn-hover-fg, var(--wpsc-chatbot-header-fg, #111827));
262 }
263
264 .wpsc-chatbot__header-btn:focus-visible {
265 outline: 2px solid var(--wpsc-chatbot-header-btn-focus, #2271b1);
266 outline-offset: 2px;
267 }
268
269 .wpsc-chatbot__header-btn svg {
270 color: currentColor;
271 width: 15px;
272 height: 15px;
273 display: block;
274 }
275
276 .wpsc-chatbot__header-title svg {
277 color: currentColor;
278 fill: currentColor;
279 }
280
281 /* Minimize $ Maximize */
282 .wpsc-chatbot {
283 transition:
284 transform .50s ease,
285 opacity .50s ease,
286 visibility .50s ease,
287 height .30s ease;
288 }
289
290 .wpsc-chatbot__footer {
291 flex-shrink: 0;
292 background: #f5f5f5;
293 }
294
295 .wpsc-chatbot__body,
296 .wpsc-chatbot__footer {
297 transition:
298 opacity .25s ease,
299 transform .25s ease;
300 }
301
302 .wpsc-chatbot__compress,
303 .wpsc-chatbot--expanded .wpsc-chatbot__expand,
304 .wpsc-chatbot--expanded .wpsc-chatbot__minimize {
305 display: none;
306 }
307
308 .wpsc-chatbot--expanded .wpsc-chatbot__body,
309 .wpsc-chatbot--expanded .wpsc-chatbot__footer {
310 padding-left: 25vw;
311 padding-right: 25vw;
312 }
313
314 .wpsc-chatbot--expanded .wpsc-chatbot__compress {
315 display: inline-flex;
316 }
317
318 /* Fullscreen */
319 .wpsc-chatbot--fullscreen {
320 position: fixed;
321 top: 0;
322 right: 0;
323 bottom: 0;
324 left: 0;
325 width: 100vw;
326 height: 100dvh;
327 max-width: none;
328 max-height: none;
329 border-radius: 0;
330 z-index: 9999999;
331 }
332
333 .wpsc-chatbot--fullscreen .wpsc-chatbot__header-title svg {
334 width: 35px;
335 height: 35px;
336 display: block;
337 fill: currentColor;
338 }
339
340 .wpsc-chatbot--fullscreen .wpsc-chatbot__header-btn svg {
341 color: var(--wpsc-chatbot-header-fg, #666);
342 fill: currentColor;
343 width: 20px;
344 height: 20px;
345 display: block;
346 }
347
348 .wpsc-chatbot--fullscreen .wpsc-chatbot__header-btn {
349 width: 35px;
350 height: 35px;
351 }
352
353 /* Body */
354 .wpsc-chatbot__body {
355 background: #f5f5f5;
356 flex: 1;
357 min-height: 0;
358 display: flex;
359 flex-direction: column;
360 padding: 15px;
361 overflow-y: auto;
362 overflow-x: hidden;
363 word-break: break-word;
364 overflow-wrap: break-word;
365 opacity: 1;
366 transform: translateY(0);
367 scroll-behavior: smooth;
368 }
369
370 /* System Message */
371 .wpsc-chatbot__system__message {
372 display: block;
373 align-self: flex-start;
374 font-size: 13px;
375 margin: 5px 0;
376 padding: 8px 12px;
377 background: #fff;
378 border-radius: 1rem;
379 box-shadow: 0 .25rem 6px rgba(0, 0, 0, .25);
380 max-width: 80%;
381 word-break: break-word;
382 overflow-wrap: anywhere;
383 border-bottom-left-radius: 1px;
384 }
385
386 /* User Message */
387 .wpsc-chatbot__user__message {
388 display: block;
389 align-self: flex-end;
390 font-size: 13px;
391 margin: 5px 0;
392 padding: 8px 12px;
393 background: #2271b1;
394 color: #fff;
395 border-radius: 1rem;
396 box-shadow: 0 .25rem 6px rgba(0, 0, 0, .25);
397 max-width: 80%;
398 word-break: break-word;
399 overflow-wrap: anywhere;
400 border-bottom-right-radius: 1px;
401 }
402
403 .wpsc-chatbot__message-meta {
404 display: flex;
405 gap: 6px;
406 margin-top: 3px;
407 font-size: 10px;
408 }
409
410 .wpsc-chatbot__message-content p {
411 margin: 0;
412 }
413
414 .wpsc-chatbot__system__message .wpsc-chatbot__message-meta {
415 justify-content: flex-start;
416 color: #666;
417 }
418
419 .wpsc-chatbot__user__message .wpsc-chatbot__message-meta {
420 justify-content: flex-end;
421 color: #ffffff;
422 }
423
424 /* Footer */
425 /* Input */
426 .wpsc-chatbot__input {
427 flex: 1;
428 width: 100%;
429 height: 44px;
430 min-height: 44px;
431 max-height: 120px;
432 padding: 12px 14px;
433 border: 1px solid #e5e7eb;
434 border-radius: 6px;
435 background: #fff;
436 color: #1f2937;
437 font: inherit;
438 font-size: 14px;
439 line-height: 1.4;
440 resize: none;
441 overflow-y: hidden;
442 box-sizing: border-box;
443 box-shadow:
444 0 1px 2px rgba(0,0,0,.04),
445 0 1px 3px rgba(0,0,0,.08);
446 transition:
447 border-color .2s ease,
448 box-shadow .2s ease,
449 background-color .2s ease;
450 }
451
452 .wpsc-chatbot__input-group {
453 flex-shrink: 0;
454 padding: 5px 10px;
455 display: flex;
456 gap: 10px;
457 opacity: 1;
458 transform: translateY(0);
459 }
460
461 .wpsc-chatbot__input:hover {
462 border-color: #d1d5db;
463 }
464
465 .wpsc-chatbot__input:focus {
466 outline: none;
467 border-color: #2271b1;
468 box-shadow:
469 0 0 0 3px rgba(34,113,177,.15),
470 0 2px 8px rgba(0,0,0,.08);
471 }
472
473 .wpsc-chatbot__input::placeholder {
474 color: #9ca3af;
475 }
476
477 .wpsc-chatbot__powered-by {
478 display: flex;
479 align-items: center;
480 justify-content: center;
481 margin: 0px 0px 10px 0px;
482 font-size: 10px;
483 color: #9ca3af;
484 }
485
486 .wpsc-chatbot__warning-message {
487 text-align: center;
488 margin: 0;
489 padding: 5px 10px 0;
490 font-size: 9px;
491 line-height: 1.4;
492 color: #9ca3af;
493 }
494
495 .wpsc-chatbot__powered-by a {
496 display: flex;
497 align-items: center;
498 justify-content: center;
499 height: auto;
500 padding-left: 5px;
501 }
502
503 .wpsc-chatbot__powered-by svg {
504 width: 75px;
505 }
506
507 .wpsc-chatbot__input-conversation-end {
508 display: flex;
509 align-items: center;
510 justify-content: center;
511 padding-top: 10px;
512 font-size: 10px;
513 color: #9ca3af;
514 }
515
516 /* Send Button */
517 .wpsc-chatbot__send {
518 display: none;
519 align-self: center;
520 width: 40px;
521 height: 40px;
522 min-width: 40px;
523 min-height: 40px;
524 max-width: 40px;
525 max-height: 40px;
526 aspect-ratio: 1 / 1;
527 flex-shrink: 0;
528 box-sizing: border-box;
529 align-items: center;
530 justify-content: center;
531 color: var(--wpsc-chatbot-header-fg, #ffffff);
532 background-color: var(--wpsc-chatbot-header-bg, #5bb122);
533 padding: 0;
534 margin: 0;
535 border: none;
536 cursor: pointer;
537 border-color: var(--wpsc-chatbot-header-bg, #2271b1);
538 border-radius: 50%;
539 }
540
541 @media (hover: hover) {
542 .wpsc-chatbot__send:hover {
543 color: var(--wpsc-chatbot-header-fg, #ffffff);
544 border-color: color-mix(in srgb, var(--wpsc-chatbot-header-bg, #2271b1) 85%, black);
545 background-color: color-mix(in srgb, var(--wpsc-chatbot-header-bg, #2271b1) 85%, black);
546 box-shadow: 0 0 0 3px color-mix(in srgb, var(--wpsc-chatbot-header-bg, #2271b1) 25%, transparent);
547 }
548 }
549
550 .wpsc-chatbot__header-title svg,
551 .wpsc-chatbot__send svg {
552 width: 25px;
553 height: 25px;
554 display: block;
555 flex-shrink: 0;
556 pointer-events: none;
557 fill: currentColor;
558 }
559
560 .wpsc-chatbot-launcher svg {
561 width: 30px;
562 height: 30px;
563 flex-shrink: 0;
564 display: block;
565 fill: currentColor;
566 pointer-events: none;
567 }
568
569 /* Typing Indicator */
570 .wpsc-chatbot__typing {
571 display: inline-flex;
572 width: auto;
573 align-items: center;
574 gap: 4px;
575 padding: 10px 14px;
576 background: #f5f5f5;
577 border-radius: 18px;
578 max-width: 60px;
579 }
580
581 .wpsc-chatbot__typing span {
582 width: 5px;
583 height: 5px;
584 border-radius: 50%;
585 background: #7a7a7a;
586 animation: wpsc-chatbot-typing 1.2s infinite ease-in-out;
587 }
588
589 .wpsc-chatbot__typing span:nth-child(1) {
590 animation-delay: 0s;
591 }
592
593 .wpsc-chatbot__typing span:nth-child(2) {
594 animation-delay: 0.2s;
595 }
596
597 .wpsc-chatbot__typing span:nth-child(3) {
598 animation-delay: 0.4s;
599 }
600
601 @keyframes wpsc-chatbot-typing {
602 0%,
603 60%,
604 100% {
605 transform: translateY(0);
606 opacity: .5;
607 }
608
609 30% {
610 transform: translateY(-5px);
611 opacity: 1;
612 }
613 }
614
615 .wpsc-chatbot--disabled .wpsc-chatbot__body,
616 .wpsc-chatbot--disabled .wpsc-chatbot__footer,
617 .wpsc-chatbot--disabled .wpsc-chatbot__header {
618 opacity: .4;
619 user-select: none;
620 }
621
622 .wpsc-chatbot--disabled .wpsc-chatbot__body,
623 .wpsc-chatbot--disabled .wpsc-chatbot__footer {
624 pointer-events: none;
625 }
626
627 /* WebKit Browsers (Chrome, Edge, Safari) */
628 .wpsc-chatbot__input::-webkit-scrollbar,
629 .wpsc-chatbot__body::-webkit-scrollbar {
630 width: 8px;
631 }
632
633 .wpsc-chatbot__input::-webkit-scrollbar-track,
634 .wpsc-chatbot__body::-webkit-scrollbar-track {
635 background: transparent;
636 }
637
638 .wpsc-chatbot__input::-webkit-scrollbar-thumb,
639 .wpsc-chatbot__body::-webkit-scrollbar-thumb {
640 background: #d9d9d9;
641 border-radius: 999px;
642 }
643
644 .wpsc-chatbot__input::-webkit-scrollbar-thumb:hover,
645 .wpsc-chatbot__body::-webkit-scrollbar-thumb:hover {
646 background: #c5c5c5;
647 }
648
649 /* Firefox */
650 .wpsc-chatbot__input,
651 .wpsc-chatbot__body {
652 scrollbar-width: thin;
653 scrollbar-color: #d9d9d9 transparent;
654 }
655
656 /* Responsive */
657 @media (max-width: 768px) {
658
659 .wpsc-chatbot__expand,
660 .wpsc-chatbot__compress {
661 display: none;
662 }
663
664 .wpsc-chatbot__send {
665 display: flex;
666 }
667
668 .wpsc-chatbot__system__message,
669 .wpsc-chatbot__user__message {
670 font-size: 16px;
671 }
672
673 .wpsc-chatbot {
674 position: fixed;
675 top: 0;
676 right: 0;
677 bottom: 0;
678 left: 0;
679 width: 100vw;
680 height: 100dvh;
681 max-width: none;
682 max-height: none;
683 border-radius: 0;
684 z-index: 999999;
685 transition: transform .3s ease, opacity .3s ease, visibility .3s ease;
686 }
687
688 /* Prevent iOS Safari from auto-zooming the page when the textarea receives focus -
689 it requires the focused field's font-size to be at least 16px. */
690 .wpsc-chatbot__input {
691 font-size: 16px;
692 }
693
694 .wpsc-chatbot--fullscreen {
695 position: fixed;
696 right: 0;
697 bottom: 0;
698 left: 0;
699 width: 100vw;
700 height: 100dvh;
701 max-width: none;
702 max-height: none;
703 border-radius: 0;
704 z-index: 9999999;
705 }
706
707 .wpsc-chatbot--expanded .wpsc-chatbot__body {
708 padding-left: 2vw;
709 padding-right: 2vw;
710 }
711
712 .wpsc-chatbot--expanded .wpsc-chatbot__footer {
713 padding-left: 2vw;
714 padding-right: 2vw;
715 }
716
717 .wpsc-chatbot-launcher {
718 bottom: var(--wpsc-chatbot-offset-bottom, 16px);
719 right: var(--wpsc-chatbot-offset-right, 16px);
720 width: 52px;
721 height: 52px;
722 min-width: 52px;
723 min-height: 52px;
724 max-width: 52px;
725 max-height: 52px;
726 }
727
728 .wpsc-chatbot-launcher svg {
729 width: 26px;
730 height: 26px;
731 }
732
733 .wpsc-chatbot-tooltip {
734 bottom: calc(var(--wpsc-chatbot-offset-bottom, 16px) + 62px);
735 right: var(--wpsc-chatbot-offset-right, 16px);
736 max-width: min(240px, calc(100vw - 32px));
737 }
738
739 .wpsc-chatbot-tooltip__close {
740 width: 36px;
741 height: 36px;
742 min-width: 36px;
743 font-size: 20px;
744 }
745
746 .wpsc-chatbot__header {
747 padding: 12px;
748 }
749
750 .wpsc-chatbot__header-btn {
751 width: 36px;
752 height: 36px;
753 font-size: 20px;
754 }
755
756 .wpsc-chatbot__header-btn svg {
757 width: 18px;
758 height: 18px;
759 }
760 }