PluginProbe
WebberZone Top 10 — Popular Posts / trunk
WebberZone Top 10 — Popular Posts vtrunk
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 1.6.1 1.6.2 All 116 releases
top-10 / includes / admin / settings / css / admin-style.css

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

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