PluginProbe
WebberZone Top 10 — Popular Posts / 4.5.2
WebberZone Top 10 — Popular Posts v4.5.2
4.5.2 4.5.1 4.5.0 4.4.3 4.4.2 4.4.1 4.4.0 4.3.4 4.3.3 4.3.2 4.3.1 4.3.0 trunk 1.0 1.0.1 1.1 1.2 1.3 1.4 1.4.1 1.5 1.5.1 1.5.2 1.5.3 1.6 All 118 releases
top-10 / includes / admin / settings / css / admin-style.css

admin-style.css in WebberZone Top 10 — Popular Posts 4.5.2, at includes/admin/settings/css/admin-style.css

677 lines 13.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* General styles for the repeater wrapper */
2 .wz-repeater-wrapper {
3 position: relative;
4 margin-bottom: 1.5rem;
5 }
6
7 /* Repeater items container */
8 .wz-repeater-wrapper .wz-repeater-item {
9 display: flex;
10 flex-direction: column;
11 background: #f9f9f9;
12 border: 1px solid #ddd;
13 padding: 1rem;
14 margin-bottom: 1rem;
15 border-radius: 4px;
16 }
17
18 .wz-repeater-item .repeater-item-header {
19 display: flex;
20 justify-content: space-between;
21 align-items: center;
22 width: 100%;
23 margin: 0;
24 background: transparent;
25 color: inherit;
26 font: inherit;
27 text-align: start;
28 border-bottom: 1px solid #ddd;
29 border-top: 0;
30 border-right: 0;
31 border-left: 0;
32 padding-bottom: 0.5rem;
33 cursor: pointer;
34 font-weight: bold;
35 }
36
37 .wz-repeater-item .repeater-item-header:focus-visible {
38 outline: 2px solid #2271b1;
39 outline-offset: 2px;
40 }
41
42 /* Header for repeater field */
43 .wz-repeater-field-header {
44 margin-bottom: 0.5rem;
45 }
46
47 .wz-repeater-field-label {
48 font-weight: bold;
49 font-size: 0.9rem;
50 }
51
52 /* Input field styles */
53 .wz-repeater-field-input {
54 margin-bottom: 1rem;
55 }
56
57 /* Repeater item actions (buttons) */
58 .repeater-item-actions {
59 display: flex;
60 gap: 0.5rem;
61 justify-content: flex-start;
62 margin-top: 1rem;
63 }
64
65 .repeater-item-actions .button {
66 display: inline-flex;
67 align-items: center;
68 gap: 0.25rem;
69 }
70
71 .repeater-item-actions .dashicons {
72 font-size: 16px;
73 }
74
75 /* Move up/down button styles */
76 .repeater-item-actions .move-up,
77 .repeater-item-actions .move-down {
78 background: #f4f4f4;
79 color: #333;
80 border: 1px solid #ddd;
81 border-radius: 3px;
82 padding: 0.5rem;
83 }
84
85 .repeater-item-actions .move-up:hover,
86 .repeater-item-actions .move-down:hover {
87 background: #e0e0e0;
88 }
89
90 /* Remove button styles */
91 .repeater-item-actions .remove-item {
92 background: #fdd;
93 border-color: #fbb;
94 }
95
96 .repeater-item-actions .remove-item:hover {
97 background: #fbb;
98 }
99
100 /* Add item button styling */
101 .wz-repeater-wrapper .add-item {
102 background-color: #0073aa;
103 color: #fff;
104 padding: 0.5rem 1rem;
105 border: none;
106 border-radius: 4px;
107 cursor: pointer;
108 font-size: 1rem;
109 margin-top: 1rem;
110 }
111
112 .wz-repeater-wrapper .add-item:hover {
113 background-color: #005177;
114 color: #fff;
115 border-color: #004063;
116 }
117
118 /* Template styling for new items (hidden template) */
119 .repeater-template {
120 display: none;
121 }
122
123 /* Disabled / pro-gated repeater: the subfields and the repeater's own buttons each
124 carry a disabled attribute, which is what actually blocks interaction. These rules
125 only supply the matching visual affordance on the wrapper, which cannot be disabled. */
126 .wz-repeater-disabled .add-item,
127 .wz-repeater-disabled .repeater-item-actions .button {
128 pointer-events: none;
129 opacity: 0.5;
130 cursor: not-allowed;
131 }
132
133 .wz-repeater-disabled .add-item:hover {
134 background-color: #0073aa;
135 }
136
137 /* Responsiveness for smaller screens */
138 @media screen and (max-width: 768px) {
139 .wz-repeater-wrapper {
140 margin-bottom: 1rem;
141 }
142
143 .wz-repeater-item {
144 flex-direction: column;
145 }
146
147 .repeater-item-actions {
148 flex-direction: column;
149 align-items: flex-start;
150 }
151
152 .repeater-item-actions .button {
153 margin-bottom: 0.5rem;
154 }
155 }
156
157 /* Field input responsive tweaks */
158 @media screen and (max-width: 480px) {
159 .wz-repeater-field-label {
160 font-size: 0.85rem;
161 }
162
163 .wz-repeater-field-input {
164 font-size: 0.85rem;
165 }
166
167 .repeater-item-actions .button {
168 font-size: 0.85rem;
169 }
170
171 .add-item {
172 font-size: 1rem;
173 padding: 0.5rem;
174 }
175 }
176
177 /* Repeater Fields */
178 .wz-repeater-item {
179 background: #fff;
180 border: 1px solid #ccd0d4;
181 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
182 margin-bottom: 15px;
183 border-radius: 3px;
184 }
185
186 .repeater-item-content {
187 padding: 15px;
188 }
189
190 .wz-repeater-field {
191 margin-bottom: 15px;
192 }
193
194 .wz-repeater-field:last-child {
195 margin-bottom: 0;
196 }
197
198 .wz-repeater-field-header {
199 margin-bottom: 8px;
200 }
201
202 .wz-repeater-field-label {
203 display: block;
204 font-weight: 600;
205 margin-bottom: 4px;
206 }
207
208 .wz-repeater-field-description {
209 color: #666;
210 font-style: italic;
211 margin: 4px 0 0;
212 font-size: 13px;
213 }
214
215 .wz-repeater-field-input input[type="text"],
216 .wz-repeater-field-input input[type="url"],
217 .wz-repeater-field-input input[type="number"],
218 .wz-repeater-field-input input[type="password"],
219 .wz-repeater-field-input input[type="email"],
220 .wz-repeater-field-input textarea,
221 .wz-repeater-field-input select {
222 width: 100%;
223 max-width: 100%;
224 }
225
226 .repeater-item-footer {
227 background: #f5f5f5;
228 border-top: 1px solid #ddd;
229 padding: 10px 15px;
230 text-align: right;
231 }
232
233 .repeater-item-footer .remove-item {
234 color: #b32d2e;
235 }
236
237 .repeater-item-footer .remove-item:hover {
238 color: #dc3232;
239 }
240
241 .repeater-item-footer .dashicons {
242 margin-top: 4px;
243 }
244
245 /* Required field indicator */
246 .required {
247 color: #d63638;
248 font-weight: bold;
249 margin-left: 2px;
250 font-size: 1.3em;
251 }
252
253 /* Tom Select Customizations */
254 .ts-wrapper.loading .spinner {
255 display: inline-block;
256 visibility: visible;
257 float: none;
258 margin: 5px auto;
259 }
260
261 .ts-wrapper .no-results {
262 padding: 5px 10px;
263 color: #666;
264 font-style: italic;
265 }
266
267 .ts-wrapper.form-control {
268 border: 1px solid #8c8f94;
269 border-radius: 4px;
270 min-height: 30px;
271 }
272
273 .ts-wrapper.focus {
274 border-color: #2271b1;
275 box-shadow: 0 0 0 1px #2271b1;
276 outline: 2px solid transparent;
277 }
278
279 .ts-dropdown {
280 border: 1px solid #8c8f94;
281 border-radius: 4px;
282 box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
283 }
284
285 .ts-dropdown .option {
286 padding: 6px 10px;
287 }
288
289 .ts-dropdown .active {
290 background-color: #2271b1;
291 color: #fff;
292 }
293
294 .ts-wrapper.single.plugin-clear_button {
295 position: relative;
296 }
297
298 .ts-wrapper.single .clear-button {
299 position: absolute;
300 top: 50%;
301 right: 8px;
302 transform: translateY(-50%);
303 font-size: 2em;
304 }
305 /* Toggle switch field type. */
306 .wz-toggle {
307 position: relative;
308 display: inline-block;
309 width: 40px;
310 height: 22px;
311 vertical-align: middle;
312 }
313
314 .wz-toggle input[type="checkbox"] {
315 position: absolute;
316 opacity: 0;
317 width: 100%;
318 height: 100%;
319 margin: 0;
320 cursor: pointer;
321 }
322
323 .wz-toggle .wz-toggle-slider {
324 position: absolute;
325 inset: 0;
326 background-color: #8c8f94;
327 border-radius: 11px;
328 transition: background-color 0.2s ease;
329 pointer-events: none;
330 }
331
332 .wz-toggle .wz-toggle-slider::before {
333 content: "";
334 position: absolute;
335 top: 2px;
336 left: 2px;
337 width: 18px;
338 height: 18px;
339 background-color: #fff;
340 border-radius: 50%;
341 transition: transform 0.2s ease;
342 }
343
344 .wz-toggle input[type="checkbox"]:checked + .wz-toggle-slider {
345 background-color: #2271b1;
346 }
347
348 .wz-toggle input[type="checkbox"]:checked + .wz-toggle-slider::before {
349 transform: translateX(18px);
350 }
351
352 .wz-toggle input[type="checkbox"]:focus-visible + .wz-toggle-slider {
353 outline: 2px solid #2271b1;
354 outline-offset: 2px;
355 }
356
357 .wz-toggle input[type="checkbox"]:disabled {
358 cursor: not-allowed;
359 }
360
361 .wz-toggle input[type="checkbox"]:disabled + .wz-toggle-slider {
362 opacity: 0.5;
363 }
364
365 /*
366 * Settings page layout: content + sidebar, side by side.
367 *
368 * WP core lays out #post-body-content and #postbox-container-1 via floats, but a float can
369 * only avoid floats that precede it in source order — #post-body-content comes first, so it
370 * has nothing to avoid and renders at full width, overlapping the sidebar that floats beside
371 * it. Flexbox sidesteps the ordering problem entirely and (with align-items: flex-start) still
372 * lets the sidebar be shorter than the tab content, matching the old float layout's look.
373 */
374 #post-body.wz-settings-post-body {
375 display: flex;
376 align-items: flex-start;
377 gap: 24px;
378 }
379
380 #post-body.wz-settings-post-body > #postbox-container-1 {
381 flex: 0 0 280px;
382 width: 280px;
383 }
384
385 /* Vertical settings tabs. */
386 .wz-vertical-tabs {
387 display: flex;
388 align-items: flex-start;
389 flex: 1 1 auto;
390 min-width: 0;
391 gap: 24px;
392 }
393
394 .wz-vertical-tabs > ul.nav-tab-wrapper {
395 flex: 0 0 auto;
396 width: fit-content;
397 min-width: 160px;
398 max-width: 260px;
399 display: flex;
400 flex-direction: column;
401 gap: 2px;
402 align-self: flex-start;
403 margin: 0;
404 padding: 8px;
405 background: #fff;
406 border: 1px solid #c3c4c7;
407 border-radius: 4px;
408 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
409 position: sticky;
410 top: 46px;
411 }
412
413 .wz-vertical-tabs > ul.nav-tab-wrapper li {
414 margin: 0;
415 padding: 0;
416 border: 0;
417 background: transparent;
418 list-style: none;
419 }
420
421 .wz-vertical-tabs > ul.nav-tab-wrapper .nav-tab {
422 display: block;
423 float: none;
424 margin: 0;
425 padding: 8px 12px;
426 border: none;
427 border-radius: 3px;
428 background: transparent;
429 color: #2c3338;
430 font-weight: 500;
431 transition: background-color 0.15s ease, color 0.15s ease;
432 }
433
434 .wz-vertical-tabs > ul.nav-tab-wrapper .nav-tab:hover {
435 background-color: #f0f0f1;
436 color: #2271b1;
437 box-shadow: none;
438 }
439
440 .wz-vertical-tabs > ul.nav-tab-wrapper .nav-tab:focus-visible {
441 outline: 2px solid #2271b1;
442 outline-offset: -2px;
443 box-shadow: none;
444 }
445
446 .wz-vertical-tabs > ul.nav-tab-wrapper .nav-tab-active,
447 .wz-vertical-tabs > ul.nav-tab-wrapper .nav-tab-active:hover,
448 .wz-vertical-tabs > ul.nav-tab-wrapper .nav-tab-active:focus {
449 background-color: #2271b1;
450 color: #fff;
451 }
452
453 .wz-vertical-tabs > form {
454 flex: 1;
455 min-width: 0;
456 margin-top: 0;
457 }
458
459 /* Keep the CodeMirror CSS editor within its column on narrow screens. */
460 .wz-vertical-tabs .CodeMirror {
461 max-width: 100%;
462 }
463
464 /* Horizontal tabs on small screens (WP admin breakpoint); pills keep their style. */
465 @media screen and (max-width: 782px) {
466 #post-body.wz-settings-post-body {
467 display: block;
468 }
469
470 .wz-vertical-tabs {
471 display: block;
472 }
473
474 .wz-vertical-tabs > ul.nav-tab-wrapper {
475 flex-direction: row;
476 flex-wrap: wrap;
477 width: auto;
478 max-width: none;
479 position: static;
480 margin-bottom: 16px;
481 }
482
483 .wz-vertical-tabs > ul.nav-tab-wrapper .wz-settings-search-wrap {
484 flex: 1 1 100%;
485 }
486 }
487
488 /* Settings search. */
489 .wz-vertical-tabs > ul.nav-tab-wrapper .wz-settings-search-wrap {
490 margin: 0 0 8px;
491 padding: 0;
492 }
493
494 .wz-settings-search-box {
495 position: relative;
496 display: block;
497 }
498
499 .wz-settings-search {
500 width: 100%;
501 margin: 0;
502 padding: 4px 28px 4px 8px;
503 border: 1px solid #8c8f94;
504 border-radius: 3px;
505 font-size: 13px;
506 line-height: 1.6;
507 }
508
509 .wz-settings-search:focus {
510 border-color: #2271b1;
511 box-shadow: 0 0 0 1px #2271b1;
512 outline: none;
513 }
514
515 /* Hide the native WebKit clear control; the plugin renders its own clear button. */
516 .wz-settings-search::-webkit-search-cancel-button {
517 -webkit-appearance: none;
518 appearance: none;
519 }
520
521 .wz-settings-search-clear {
522 position: absolute;
523 top: 50%;
524 right: 4px;
525 transform: translateY(-50%);
526 margin: 0;
527 padding: 0 6px;
528 border: 0;
529 border-radius: 2px;
530 background: transparent;
531 color: #646970;
532 cursor: pointer;
533 font-size: 18px;
534 line-height: 1.2;
535 }
536
537 .wz-settings-search-clear:hover {
538 color: #d63638;
539 }
540
541 .wz-settings-search-clear:focus-visible {
542 outline: 2px solid #2271b1;
543 outline-offset: 1px;
544 }
545
546 .wz-settings-search-clear[hidden] {
547 display: none;
548 }
549
550 /* Rows filtered out by the search. */
551 .wz-search-hidden {
552 display: none !important;
553 }
554
555 /* While searching, show every tab panel that has matches and hide the rest. */
556 .wz-vertical-tabs.wz-searching > form > div {
557 display: none !important;
558 }
559
560 .wz-vertical-tabs.wz-searching > form > div.wz-has-matches {
561 display: block !important;
562 margin-bottom: 24px;
563 }
564
565 /* Hide the per-tab button rows and legends while searching; a single save bar is shown instead. */
566 .wz-vertical-tabs.wz-searching > form > div.wz-has-matches > p {
567 display: none;
568 }
569
570 .wz-vertical-tabs.wz-searching > form > div.wz-has-matches > table.form-table {
571 margin-top: 0;
572 }
573
574 /* Per-tab section title: hidden normally, shown while searching to identify each group of results. */
575 .wz-section-title {
576 display: none;
577 }
578
579 .wz-vertical-tabs.wz-searching .wz-section-title {
580 display: block;
581 margin: 0;
582 padding: 6px 10px;
583 background: #f0f0f1;
584 border-left: 4px solid #2271b1;
585 color: #50575e;
586 font-size: 13px;
587 font-weight: 600;
588 text-transform: uppercase;
589 letter-spacing: 0.5px;
590 }
591
592 /* Single sticky save bar shown while search results are displayed. */
593 .wz-search-actions {
594 position: sticky;
595 bottom: 0;
596 margin: 0;
597 padding: 12px 0;
598 background: linear-gradient(to bottom, rgba(240, 240, 241, 0), #f0f0f1 40%);
599 }
600
601 /* Match-count badge on the navigation tabs. */
602 .wz-tab-count {
603 display: inline-block;
604 margin-left: 6px;
605 padding: 0 6px;
606 border-radius: 9px;
607 background-color: #2271b1;
608 color: #fff;
609 font-size: 11px;
610 line-height: 18px;
611 vertical-align: middle;
612 }
613
614 .wz-vertical-tabs > ul.nav-tab-wrapper .nav-tab-active .wz-tab-count {
615 background-color: #fff;
616 color: #2271b1;
617 }
618
619 .wz-vertical-tabs > ul.nav-tab-wrapper .wz-tab-no-matches {
620 opacity: 0.45;
621 }
622
623 /* Highlighted search term in row labels. */
624 mark.wz-search-mark {
625 padding: 0;
626 background-color: #fff3ad;
627 color: inherit;
628 }
629
630 /* No results message. */
631 .wz-search-no-results {
632 margin: 16px 0;
633 padding: 12px;
634 background: #fff;
635 border-left: 4px solid #dba617;
636 box-shadow: 0 1px 1px rgba(0, 0, 0, 0.04);
637 }
638
639 /* Modified-from-default indicator. */
640 .wz-modified-dot {
641 display: inline-block;
642 width: 8px;
643 height: 8px;
644 margin: 0 6px 0 2px;
645 border-radius: 50%;
646 background-color: #dba617;
647 vertical-align: middle;
648 }
649
650 .wz-modified-legend {
651 margin-top: 4px;
652 color: #646970;
653 font-size: 12px;
654 }
655
656 .wz-modified-legend .wz-modified-dot {
657 margin-left: 0;
658 }
659
660 /* Hide the legend on tabs where nothing is modified. */
661 form > div:not(:has(.form-table .wz-modified-dot)) .wz-modified-legend {
662 display: none;
663 }
664
665 /* Default value note below field descriptions. */
666 .wz-default-value {
667 color: #646970;
668 font-size: 12px;
669 }
670
671 .wz-default-value code {
672 font-size: 11px;
673 padding: 1px 5px;
674 overflow-wrap: anywhere;
675 word-break: break-word;
676 }
677