PluginProbe
Icon Element – Icon Pack for Elementor Page Builder (6718 icons) / trunk
Icon Element – Icon Pack for Elementor Page Builder (6718 icons) vtrunk
icon-element / admin / assets / css / admin-style.css

admin-style.css in Icon Element – Icon Pack for Elementor Page Builder (6718 icons) trunk, at admin/assets/css/admin-style.css

700 lines 19.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * React Admin Panel - Admin Styles
3 * Version: 8.0.0
4 */
5
6 /* ── Variables ──────────────────────────────────────────────────────────────── */
7 :root {
8 --rap-primary: #2271b1;
9 --rap-primary-hover: #135e96;
10 --rap-primary-light: #eaf1f8;
11 --rap-success: #008a20;
12 --rap-success-light: #edf9f0;
13 --rap-warning: #c07b00;
14 --rap-warning-light: #fef8ec;
15 --rap-error: #cc1818;
16 --rap-error-light: #fdf2f2;
17 --rap-border: #dcdcde;
18 --rap-bg: #f6f7f7;
19 --rap-bg-card: #ffffff;
20 --rap-text: #1d2327;
21 --rap-text-muted: #50575e;
22 --rap-text-faint: #8c8f94;
23 --rap-shadow-sm: 0 1px 3px rgba(0,0,0,.07);
24 --rap-shadow: 0 2px 8px rgba(0,0,0,.09);
25 --rap-shadow-md: 0 4px 18px rgba(0,0,0,.11);
26 --rap-radius: 6px;
27 --rap-radius-lg: 10px;
28 --rap-transition: all .18s ease;
29 }
30
31 /* ── Toast notifications ────────────────────────────────────────────────────── */
32 .rap-toast-container {
33 position: fixed;
34 bottom: 28px;
35 right: 28px;
36 z-index: 99999;
37 display: flex;
38 flex-direction: column;
39 gap: 10px;
40 pointer-events: none;
41 }
42
43 .rap-toast {
44 display: inline-flex;
45 align-items: center;
46 gap: 10px;
47 padding: 11px 18px;
48 border-radius: var(--rap-radius);
49 font-size: 13px;
50 font-weight: 600;
51 color: #fff;
52 box-shadow: var(--rap-shadow-md);
53 pointer-events: auto;
54 animation: rap-toast-in .22s ease;
55 max-width: 320px;
56 line-height: 1.4;
57 }
58 .rap-toast-success { background: #1a5e2e; }
59 .rap-toast-error { background: #7e1212; }
60
61 .rap-toast-icon {
62 display: flex;
63 align-items: center;
64 justify-content: center;
65 width: 20px;
66 height: 20px;
67 border-radius: 50%;
68 background: rgba(255,255,255,.18);
69 font-size: 11px;
70 flex-shrink: 0;
71 }
72
73 @keyframes rap-toast-in {
74 from { opacity: 0; transform: translateY(8px) scale(.96); }
75 to { opacity: 1; transform: translateY(0) scale(1); }
76 }
77
78 /* ── Page wrapper — centers the h1 title + panel together ───────────────────── */
79 .rap-page-wrap {
80 max-width: 1400px;
81 margin: 0 auto;
82 }
83
84 /* ── App shell ──────────────────────────────────────────────────────────────── */
85 .rap-app {
86 font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
87 }
88
89 .rap-panel {
90 margin-top: 16px;
91 }
92
93 /* ── States ─────────────────────────────────────────────────────────────────── */
94 .rap-loading {
95 display: flex;
96 align-items: center;
97 justify-content: center;
98 gap: 12px;
99 padding: 72px 24px;
100 color: var(--rap-text-muted);
101 font-size: 14px;
102 }
103
104 .rap-notice {
105 display: flex;
106 align-items: center;
107 gap: 10px;
108 padding: 14px 18px;
109 border-radius: var(--rap-radius);
110 font-size: 13px;
111 margin: 16px 0;
112 }
113 .rap-notice-error {
114 background: var(--rap-error-light);
115 border-left: 4px solid var(--rap-error);
116 color: var(--rap-error);
117 }
118
119 .rap-empty {
120 padding: 12px 0;
121 color: var(--rap-text-faint);
122 font-size: 13px;
123 }
124 .rap-empty-center {
125 display: flex;
126 flex-direction: column;
127 align-items: center;
128 justify-content: center;
129 padding: 64px 24px;
130 gap: 12px;
131 text-align: center;
132 }
133 .rap-empty-icon { font-size: 36px; opacity: .55; }
134
135 /* ── Spinners ───────────────────────────────────────────────────────────────── */
136 .rap-spinner {
137 display: inline-block;
138 width: 28px;
139 height: 28px;
140 border: 3px solid var(--rap-border);
141 border-top-color: var(--rap-primary);
142 border-radius: 50%;
143 animation: rap-spin .65s linear infinite;
144 flex-shrink: 0;
145 }
146
147 .rap-spinner-sm {
148 display: inline-block;
149 width: 13px;
150 height: 13px;
151 border: 2px solid rgba(255,255,255,.35);
152 border-top-color: #fff;
153 border-radius: 50%;
154 animation: rap-spin .65s linear infinite;
155 vertical-align: middle;
156 }
157
158 @keyframes rap-spin { to { transform: rotate(360deg); } }
159
160 /* ── Fallback tab bar ───────────────────────────────────────────────────────── */
161 .rap-nav-tabs {
162 display: flex;
163 gap: 2px;
164 padding: 0 6px;
165 background: var(--rap-bg);
166 border-bottom: 1px solid var(--rap-border);
167 border-radius: var(--rap-radius-lg) var(--rap-radius-lg) 0 0;
168 }
169
170 .rap-nav-tab {
171 padding: 12px 20px;
172 font-size: 13px;
173 font-weight: 600;
174 color: var(--rap-text-muted);
175 background: transparent;
176 border: none;
177 border-bottom: 3px solid transparent;
178 border-radius: var(--rap-radius) var(--rap-radius) 0 0;
179 cursor: pointer;
180 transition: var(--rap-transition);
181 margin-bottom: -1px;
182 letter-spacing: .01em;
183 }
184 .rap-nav-tab:hover { color: var(--rap-primary); background: var(--rap-primary-light); }
185 .rap-nav-tab.is-active { color: var(--rap-primary); border-bottom-color: var(--rap-primary); background: #fff; }
186
187 /* ── WordPress TabPanel overrides ──────────────────────────────────────────── */
188 .rap-tabs .components-tab-panel__tabs {
189 display: flex;
190 gap: 2px;
191 padding: 0 6px;
192 background: var(--rap-bg);
193 border-bottom: 1px solid var(--rap-border);
194 border-radius: var(--rap-radius-lg) var(--rap-radius-lg) 0 0;
195 }
196
197 .rap-tabs .components-tab-panel__tabs-item {
198 padding: 12px 20px;
199 font-size: 13px;
200 font-weight: 600;
201 color: var(--rap-text-muted);
202 background: transparent;
203 border: none;
204 border-bottom: 3px solid transparent;
205 border-radius: var(--rap-radius) var(--rap-radius) 0 0;
206 cursor: pointer;
207 transition: var(--rap-transition);
208 margin-bottom: -1px;
209 letter-spacing: .01em;
210 }
211 .rap-tabs .components-tab-panel__tabs-item:hover { color: var(--rap-primary); background: var(--rap-primary-light); }
212 .rap-tabs .components-tab-panel__tabs-item.is-active { color: var(--rap-primary); border-bottom-color: var(--rap-primary); background: #fff; box-shadow: none; }
213
214 /* ── Tab body ───────────────────────────────────────────────────────────────── */
215 .rap-tab-body {
216 background: var(--rap-bg-card);
217 border: 1px solid var(--rap-border);
218 border-top: none;
219 border-radius: 0 0 var(--rap-radius-lg) var(--rap-radius-lg);
220 padding: 28px;
221 }
222
223 /* ── Toolbar (stats + search) ───────────────────────────────────────────────── */
224 .rap-toolbar {
225 display: flex;
226 align-items: center;
227 justify-content: space-between;
228 flex-wrap: wrap;
229 gap: 12px;
230 margin-bottom: 20px;
231 }
232
233 .rap-chips {
234 display: flex;
235 align-items: center;
236 flex-wrap: wrap;
237 gap: 8px;
238 }
239
240 .rap-chip {
241 display: inline-flex;
242 align-items: center;
243 padding: 4px 12px;
244 font-size: 11px;
245 font-weight: 700;
246 border-radius: 20px;
247 letter-spacing: .04em;
248 text-transform: uppercase;
249 background: var(--rap-bg);
250 color: var(--rap-text-muted);
251 border: 1px solid var(--rap-border);
252 }
253 .rap-chip-primary { background: var(--rap-primary-light); color: var(--rap-primary); border-color: rgba(34,113,177,.2); }
254 .rap-chip-success { background: var(--rap-success-light); color: var(--rap-success); border-color: rgba(0,138,32,.2); }
255 .rap-chip-warning { background: var(--rap-warning-light); color: var(--rap-warning); border-color: rgba(192,123,0,.2); }
256
257 .rap-search {
258 padding: 8px 14px;
259 font-size: 13px;
260 border: 1px solid var(--rap-border);
261 border-radius: var(--rap-radius);
262 background: var(--rap-bg);
263 color: var(--rap-text);
264 min-width: 220px;
265 outline: none;
266 transition: var(--rap-transition);
267 }
268 .rap-search:focus {
269 border-color: var(--rap-primary);
270 background: #fff;
271 box-shadow: 0 0 0 2px rgba(34,113,177,.15);
272 }
273 .rap-search::placeholder { color: var(--rap-text-faint); }
274
275 /* ── Icon toggle grid ───────────────────────────────────────────────────────── */
276 .rap-icon-grid {
277 display: grid;
278 grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
279 gap: 10px;
280 }
281
282 .rap-toggle-item {
283 display: flex;
284 align-items: center;
285 justify-content: space-between;
286 gap: 10px;
287 padding: 11px 14px;
288 background: var(--rap-bg-card);
289 border: 1px solid var(--rap-border);
290 border-radius: var(--rap-radius);
291 transition: var(--rap-transition);
292 }
293 .rap-toggle-item:hover { border-color: var(--rap-primary); box-shadow: var(--rap-shadow-sm); }
294 .rap-toggle-item.is-enabled {
295 border-color: rgba(34,113,177,.25);
296 background: var(--rap-primary-light);
297 }
298
299 .rap-toggle-item-inner {
300 display: flex;
301 align-items: center;
302 gap: 10px;
303 flex: 1;
304 min-width: 0;
305 }
306 .rap-toggle-item-inner .components-toggle-control { margin-bottom: 0; flex: 1; }
307 .rap-toggle-item-inner .components-base-control__field { margin-bottom: 0; }
308 .rap-toggle-item-inner .components-flex { align-items: center; }
309
310 /* Custom fallback toggle */
311 .rap-toggle-switch {
312 display: inline-flex;
313 align-items: center;
314 gap: 10px;
315 cursor: pointer;
316 flex: 1;
317 min-width: 0;
318 }
319 .rap-toggle-switch input {
320 position: absolute;
321 opacity: 0;
322 width: 0;
323 height: 0;
324 }
325 .rap-toggle-track {
326 position: relative;
327 display: inline-block;
328 width: 38px;
329 height: 22px;
330 background: #c3c4c7;
331 border-radius: 11px;
332 transition: background .2s ease;
333 flex-shrink: 0;
334 }
335 .rap-toggle-switch input:checked ~ .rap-toggle-track { background: var(--rap-primary); }
336
337 .rap-toggle-thumb {
338 position: absolute;
339 top: 2px;
340 left: 2px;
341 width: 18px;
342 height: 18px;
343 background: #fff;
344 border-radius: 50%;
345 box-shadow: 0 1px 3px rgba(0,0,0,.22);
346 transition: transform .2s ease;
347 }
348 .rap-toggle-switch input:checked ~ .rap-toggle-track .rap-toggle-thumb {
349 transform: translateX(16px);
350 }
351
352 .rap-toggle-label {
353 font-size: 13px;
354 font-weight: 500;
355 color: var(--rap-text);
356 overflow: hidden;
357 text-overflow: ellipsis;
358 white-space: nowrap;
359 }
360
361 .rap-preview-btn {
362 display: inline-flex;
363 align-items: center;
364 padding: 4px 10px;
365 font-size: 11px;
366 font-weight: 600;
367 text-decoration: none;
368 color: var(--rap-primary);
369 background: var(--rap-primary-light);
370 border: 1px solid rgba(34,113,177,.2);
371 border-radius: var(--rap-radius);
372 transition: var(--rap-transition);
373 white-space: nowrap;
374 flex-shrink: 0;
375 letter-spacing: .01em;
376 }
377 .rap-preview-btn:hover {
378 background: var(--rap-primary);
379 color: #fff;
380 border-color: var(--rap-primary);
381 text-decoration: none;
382 }
383
384 /* ── Plugin grid ────────────────────────────────────────────────────────────── */
385 .rap-plugins-grid {
386 display: grid;
387 grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
388 gap: 16px;
389 }
390
391 /* ── Plugin card ────────────────────────────────────────────────────────────── */
392 .rap-plugin-card {
393 display: flex;
394 flex-direction: column;
395 background: var(--rap-bg-card);
396 border: 1px solid var(--rap-border);
397 border-radius: var(--rap-radius-lg);
398 overflow: hidden;
399 transition: var(--rap-transition);
400 position: relative;
401 }
402 .rap-plugin-card:hover {
403 box-shadow: var(--rap-shadow-md);
404 border-color: rgba(34,113,177,.3);
405 transform: translateY(-2px);
406 }
407
408 /* Active accent bar */
409 .rap-plugin-card.is-active::before {
410 content: '';
411 position: absolute;
412 inset: 0 0 auto 0;
413 height: 3px;
414 background: var(--rap-success);
415 border-radius: var(--rap-radius-lg) var(--rap-radius-lg) 0 0;
416 }
417 .rap-plugin-card.is-active { border-color: rgba(0,138,32,.25); }
418 .rap-plugin-card.is-installed { border-color: rgba(192,123,0,.25); }
419
420 .rap-plugin-card-top {
421 display: flex;
422 align-items: center;
423 gap: 14px;
424 padding: 18px 18px 14px;
425 }
426
427 /* Icon wrapper — flex-center so small images don't hug a corner */
428 .rap-plugin-icon-wrap {
429 width: 56px;
430 height: 56px;
431 flex-shrink: 0;
432 display: flex;
433 align-items: center;
434 justify-content: center;
435 border-radius: var(--rap-radius);
436 background: var(--rap-bg);
437 border: 1px solid var(--rap-border);
438 overflow: hidden;
439 }
440
441 .rap-plugin-icon {
442 max-width: 100%;
443 max-height: 100%;
444 width: auto;
445 height: auto;
446 object-fit: contain;
447 object-position: center;
448 display: block;
449 }
450
451 .rap-plugin-icon-fallback {
452 width: 56px;
453 height: 56px;
454 border-radius: var(--rap-radius);
455 background: linear-gradient(135deg, var(--rap-primary), var(--rap-primary-hover));
456 display: flex;
457 align-items: center;
458 justify-content: center;
459 font-size: 22px;
460 font-weight: 700;
461 color: #fff;
462 flex-shrink: 0;
463 }
464
465 .rap-plugin-header {
466 flex: 1;
467 min-width: 0;
468 }
469
470 .rap-plugin-name {
471 margin: 0 0 6px;
472 font-size: 14px;
473 font-weight: 700;
474 color: var(--rap-text);
475 line-height: 1.4;
476 }
477
478 .rap-plugin-meta-row {
479 display: flex;
480 flex-wrap: wrap;
481 gap: 6px;
482 }
483
484 /* Body section — description, woo badge, details link */
485 .rap-plugin-body {
486 padding: 0 18px 14px;
487 flex: 1;
488 display: flex;
489 flex-direction: column;
490 align-items: flex-start;
491 gap: 6px;
492 }
493
494 .rap-plugin-desc {
495 margin: 0;
496 font-size: 12.5px;
497 color: var(--rap-text-muted);
498 line-height: 1.65;
499 }
500
501 .rap-plugin-card-footer {
502 display: flex;
503 align-items: center;
504 justify-content: space-between;
505 padding: 11px 18px;
506 border-top: 1px solid var(--rap-border);
507 background: var(--rap-bg);
508 gap: 10px;
509 margin-top: auto;
510 }
511
512 /* Details link — sits below the short description */
513 .rap-details-link {
514 display: inline-flex;
515 align-items: center;
516 font-size: 11.5px;
517 font-weight: 600;
518 color: var(--rap-primary);
519 text-decoration: none;
520 letter-spacing: .01em;
521 transition: var(--rap-transition);
522 }
523 .rap-details-link:hover {
524 color: var(--rap-primary-hover);
525 text-decoration: underline;
526 }
527 /* Extra breathing room only when the link follows the badge */
528 .rap-woo-badge + .rap-details-link {
529 margin-top: 6px;
530 }
531
532 /* ── Star rating ────────────────────────────────────────────────────────────── */
533 .rap-star-rating {
534 display: inline-flex;
535 align-items: center;
536 gap: 1px;
537 }
538 .rap-star {
539 font-size: 15px;
540 color: #dcdcde;
541 line-height: 1;
542 user-select: none;
543 }
544 .rap-star.rap-star-on { color: #f0b429; }
545
546 /* ── WooCommerce required badge ─────────────────────────────────────────────── */
547 .rap-woo-badge {
548 display: inline-flex;
549 align-items: center;
550 gap: 6px;
551 padding: 4px 10px 4px 6px;
552 font-size: 11.5px;
553 font-weight: 600;
554 color: #7f54b3;
555 background: #f3eeff;
556 border: 1px solid rgba(127, 84, 179, .2);
557 border-radius: var(--rap-radius);
558 line-height: 1;
559 }
560 .rap-woo-icon {
561 display: inline-flex;
562 align-items: center;
563 justify-content: center;
564 width: 18px;
565 height: 18px;
566 font-size: 10px;
567 font-weight: 800;
568 color: #fff;
569 background: #7f54b3;
570 border-radius: 3px;
571 flex-shrink: 0;
572 letter-spacing: 0;
573 }
574
575 /* ── Status badge ───────────────────────────────────────────────────────────── */
576 .rap-badge {
577 display: inline-flex;
578 align-items: center;
579 gap: 6px;
580 padding: 5px 12px;
581 border-radius: 20px;
582 font-size: 11.5px;
583 font-weight: 700;
584 letter-spacing: .03em;
585 }
586 .rap-badge-active {
587 background: var(--rap-success-light);
588 color: var(--rap-success);
589 }
590 .rap-badge-dot {
591 width: 7px;
592 height: 7px;
593 border-radius: 50%;
594 background: var(--rap-success);
595 animation: rap-pulse 2s infinite;
596 }
597 @keyframes rap-pulse {
598 0%, 100% { opacity: 1; }
599 50% { opacity: .45; }
600 }
601
602 /* ── Buttons ────────────────────────────────────────────────────────────────── */
603 .rap-btn {
604 display: inline-flex;
605 align-items: center;
606 justify-content: center;
607 gap: 6px;
608 padding: 7px 16px;
609 font-size: 12.5px;
610 font-weight: 700;
611 border-radius: var(--rap-radius);
612 cursor: pointer;
613 border: 1px solid transparent;
614 transition: var(--rap-transition);
615 line-height: 1;
616 white-space: nowrap;
617 letter-spacing: .02em;
618 }
619 .rap-btn:disabled {
620 opacity: .6;
621 cursor: not-allowed;
622 transform: none !important;
623 box-shadow: none !important;
624 }
625 .rap-btn-inner {
626 display: inline-flex;
627 align-items: center;
628 gap: 6px;
629 }
630
631 .rap-btn-primary {
632 background: var(--rap-primary);
633 color: #fff;
634 border-color: var(--rap-primary);
635 }
636 .rap-btn-primary:hover:not(:disabled) {
637 background: var(--rap-primary-hover);
638 border-color: var(--rap-primary-hover);
639 transform: translateY(-1px);
640 box-shadow: 0 3px 10px rgba(34,113,177,.3);
641 }
642
643 .rap-btn-outline {
644 background: #fff;
645 color: var(--rap-primary);
646 border-color: var(--rap-primary);
647 }
648 .rap-btn-outline:hover:not(:disabled) {
649 background: var(--rap-primary);
650 color: #fff;
651 transform: translateY(-1px);
652 }
653
654 .rap-btn-lg {
655 padding: 10px 28px;
656 font-size: 13.5px;
657 }
658
659 /* ── Footer / save bar ──────────────────────────────────────────────────────── */
660 .rap-footer {
661 display: flex;
662 align-items: center;
663 gap: 16px;
664 margin-top: 20px;
665 padding: 16px 22px;
666 background: var(--rap-bg-card);
667 border: 1px solid var(--rap-border);
668 border-radius: var(--rap-radius-lg);
669 }
670
671 /* ── Responsive ─────────────────────────────────────────────────────────────── */
672 @media screen and (max-width: 782px) {
673 .rap-icon-grid,
674 .rap-plugins-grid { grid-template-columns: 1fr; }
675
676 .rap-toolbar {
677 flex-direction: column;
678 align-items: flex-start;
679 }
680 .rap-search { width: 100%; min-width: unset; }
681
682 .rap-tab-body { padding: 16px; }
683
684 .rap-nav-tab,
685 .rap-tabs .components-tab-panel__tabs-item { padding: 10px 12px; font-size: 12px; }
686
687 .rap-footer { padding: 12px 16px; }
688 }
689
690 @media screen and (max-width: 480px) {
691 .rap-toggle-item { flex-wrap: wrap; }
692 .rap-preview-btn { margin-top: 6px; }
693
694 .rap-toast-container { bottom: 12px; right: 12px; left: 12px; }
695 .rap-toast { max-width: unset; }
696 }
697
698 /* ── WordPress admin compatibility ──────────────────────────────────────────── */
699 .wp-core-ui .rap-panel .button-link { color: var(--rap-primary); }
700