PluginProbe
PatternsWP – Gutenberg Block Patterns & Page Templates Library / 1.1.0
PatternsWP – Gutenberg Block Patterns & Page Templates Library v1.1.0
1.1.0 trunk 1.0.0 1.0.1 1.0.10 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9
patternswp / assets / css / patternswp-editor.css

patternswp-editor.css in PatternsWP – Gutenberg Block Patterns & Page Templates Library 1.1.0, at assets/css/patternswp-editor.css

1,345 lines 26.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * PatternsWP editor modal.
3 * Relies on WordPress / Gutenberg component classes where possible.
4 */
5
6 .patternswp-modal .components-modal__content {
7 display: flex;
8 flex-direction: column;
9 padding: 0;
10 overflow: hidden;
11 margin-bottom: 0;
12 min-height: 0;
13 }
14
15 .patternswp-modal .components-modal__children-container {
16 display: flex;
17 flex-direction: column;
18 flex: 1;
19 min-height: 0;
20 }
21
22 .patternswp-modal .components-modal__header {
23 margin: 0;
24 padding: 0 24px;
25 border-bottom: 1px solid #e0e0e0;
26 }
27
28 .patternswp-library-sync {
29 margin-right: 4px;
30 min-width: auto;
31 }
32
33 .patternswp-library-sync.is-busy {
34 pointer-events: none;
35 }
36
37 .patternswp-library-sync .components-spinner {
38 width: 16px;
39 height: 16px;
40 margin: 0 6px 0 0;
41 }
42
43 .patternswp-layout {
44 display: flex;
45 flex-direction: row;
46 flex: 1;
47 min-height: 0;
48 width: 100%;
49 background: #fff;
50 }
51
52 /* ---- Sidebar ---- */
53 .patternswp-sidebar {
54 display: flex;
55 flex-direction: column;
56 width: 260px;
57 min-width: 220px;
58 flex-shrink: 0;
59 padding: 20px 12px;
60 border-right: 1px solid #e0e0e0;
61 overflow: auto;
62 background: #fff;
63 }
64
65 .patternswp-sidebar__section {
66 margin-bottom: 20px;
67 }
68
69 .patternswp-sidebar__section-title {
70 margin: 0 0 6px;
71 padding: 0 12px;
72 color: #757575;
73 font-size: 11px;
74 font-weight: 600;
75 letter-spacing: 0.04em;
76 text-transform: uppercase;
77 }
78
79 .patternswp-sidebar__section-toggle {
80 display: flex;
81 align-items: center;
82 justify-content: space-between;
83 width: 100%;
84 margin: 0 0 6px;
85 padding: 4px 0;
86 border: none;
87 border-radius: 2px;
88 background: transparent;
89 cursor: pointer;
90 text-align: left;
91 }
92
93 .patternswp-sidebar__section-toggle:hover,
94 .patternswp-sidebar__section-toggle:focus-visible {
95 background: #f0f0f0;
96 outline: none;
97 }
98
99 .patternswp-sidebar__section-toggle .patternswp-sidebar__section-title {
100 margin: 0;
101 flex: 1;
102 }
103
104 .patternswp-sidebar__section-toggle-icon {
105 flex-shrink: 0;
106 margin-right: 8px;
107 color: #757575;
108 }
109
110 .patternswp-sidebar__section.is-collapsed .patternswp-sidebar__section-toggle {
111 margin-bottom: 0;
112 }
113
114 .patternswp-sidebar__section-panel {
115 margin-top: 2px;
116 }
117
118 .patternswp-sidebar__nav {
119 display: flex;
120 flex-direction: column;
121 gap: 2px;
122 margin: 0;
123 padding: 0;
124 list-style: none;
125 }
126
127 .patternswp-sidebar__nav-item {
128 display: block;
129 width: 100%;
130 margin: 0;
131 padding: 8px 12px;
132 border: none;
133 border-radius: 2px;
134 background: transparent;
135 color: #1e1e1e;
136 font-size: 13px;
137 font-weight: 400;
138 line-height: 1.4;
139 text-align: left;
140 cursor: pointer;
141 }
142
143 .patternswp-sidebar__nav-item:hover {
144 background: #f0f0f0;
145 }
146
147 .patternswp-sidebar__nav-item.is-active {
148 background: #e8f0fe;
149 color: #1e1e1e;
150 font-weight: 500;
151 }
152
153 .patternswp-sidebar__link {
154 display: block;
155 padding: 8px 12px;
156 color: #1e1e1e;
157 font-size: 13px;
158 text-decoration: none;
159 }
160
161 .patternswp-sidebar__link:hover {
162 color: var(--wp-admin-theme-color, #3858e9);
163 }
164
165 .patternswp-sidebar__footer {
166 margin-top: auto;
167 padding-top: 12px;
168 }
169
170 /* ---- Main ---- */
171 .patternswp-main {
172 display: flex;
173 flex-direction: column;
174 flex: 1;
175 min-width: 0;
176 min-height: 0;
177 background: #fff;
178 }
179
180 .patternswp-main--detail {
181 background: #f0f0f0;
182 }
183
184 .patternswp-detail {
185 display: flex;
186 flex-direction: column;
187 flex: 1;
188 min-height: 0;
189 }
190
191 .patternswp-detail__header {
192 display: flex;
193 align-items: center;
194 gap: 12px;
195 padding: 12px 20px;
196 border-bottom: 1px solid #e0e0e0;
197 background: #fff;
198 }
199
200 .patternswp-detail__back.components-button {
201 display: inline-flex !important;
202 align-items: center;
203 justify-content: center;
204 flex-shrink: 0;
205 width: 28px;
206 height: 28px;
207 min-width: 28px !important;
208 padding: 0 !important;
209 border: none !important;
210 border-radius: 4px;
211 color: #1e1e1e !important;
212 background: transparent !important;
213 box-shadow: none !important;
214 }
215
216 .patternswp-detail__back.components-button:hover,
217 .patternswp-detail__back.components-button:focus-visible {
218 color: #1e1e1e !important;
219 background: #f0f0f0 !important;
220 }
221
222 .patternswp-detail__back .components-icon,
223 .patternswp-detail__back svg {
224 display: block;
225 width: 18px;
226 height: 18px;
227 flex-shrink: 0;
228 fill: currentColor;
229 }
230
231 .patternswp-detail__title {
232 flex: 1;
233 min-width: 0;
234 margin: 0;
235 overflow: hidden;
236 text-overflow: ellipsis;
237 white-space: nowrap;
238 font-size: 15px;
239 font-weight: 600;
240 line-height: 1.4;
241 color: #1e1e1e;
242 }
243
244 .patternswp-detail__badge {
245 flex-shrink: 0;
246 padding: 2px 8px;
247 border-radius: 2px;
248 background: #1e1e1e;
249 color: #fff;
250 font-size: 11px;
251 font-weight: 600;
252 letter-spacing: 0.02em;
253 text-transform: uppercase;
254 }
255
256 .patternswp-detail__actions {
257 display: flex;
258 align-items: center;
259 flex-shrink: 0;
260 gap: 8px;
261 }
262
263 .patternswp-detail__actions .components-button.is-pressed {
264 color: #cc1818;
265 background: transparent !important;
266 }
267
268 .patternswp-detail__actions .components-button.is-primary.has-icon svg,
269 .patternswp-detail__actions .components-button.is-primary.has-icon .components-icon {
270 width: 14px;
271 height: 14px;
272 }
273
274 .patternswp-detail__body {
275 flex: 1;
276 min-height: 0;
277 overflow: auto;
278 padding: 32px 24px;
279 }
280
281 .patternswp-detail__canvas {
282 margin: 0 auto;
283 padding: 24px;
284 border: 1px solid #e0e0e0;
285 border-radius: 2px;
286 background: #fff;
287 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
288 }
289
290 .patternswp-detail__preview {
291 position: relative;
292 width: 100%;
293 overflow: visible;
294 }
295
296 /* Gutenberg BlockPreview caps iframe/content at 2000px (ScaledBlockPreview
297 MAX_HEIGHT). Detail view must show short and long templates in full. */
298 .patternswp-detail__canvas .block-editor-block-preview__container {
299 overflow: visible !important;
300 max-height: none !important;
301 }
302
303 .patternswp-detail__canvas .block-editor-block-preview__content {
304 overflow: visible !important;
305 max-height: none !important;
306 }
307
308 .patternswp-detail__canvas .block-editor-iframe__container,
309 .patternswp-detail__canvas .block-editor-iframe__scale-container {
310 overflow: visible !important;
311 max-height: none !important;
312 height: 100%;
313 }
314
315 .patternswp-detail__canvas iframe {
316 max-height: none !important;
317 }
318
319 .patternswp-toolbar {
320 display: flex;
321 flex-wrap: wrap;
322 align-items: center;
323 gap: 12px;
324 padding: 16px 24px;
325 border-bottom: 1px solid #e0e0e0;
326 }
327
328 .patternswp-toolbar__search {
329 flex: 1;
330 min-width: 200px;
331 max-width: 480px;
332 }
333
334 .patternswp-toolbar__search .components-base-control__field {
335 margin-bottom: 0;
336 }
337
338 .patternswp-toolbar__actions {
339 display: flex;
340 flex-wrap: wrap;
341 align-items: center;
342 gap: 4px;
343 margin-left: auto;
344 }
345
346 .patternswp-toolbar__actions .components-button.has-icon {
347 height: auto;
348 padding: 4px 8px;
349 gap: 4px;
350 color: #1e1e1e;
351 background: transparent;
352 box-shadow: none;
353 }
354
355 .patternswp-toolbar__actions .components-button.has-icon svg {
356 width: 18px;
357 height: 18px;
358 }
359
360 .patternswp-toolbar__actions .components-button.has-icon:hover {
361 background: #f0f0f0;
362 color: #1e1e1e;
363 }
364
365 .patternswp-toolbar__actions .components-button.has-icon:focus:not(:disabled),
366 .patternswp-toolbar__actions .components-button.has-icon:focus-visible:not(:disabled) {
367 box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #3858e9);
368 }
369
370 /* Active: soft blue highlight — not solid black */
371 .patternswp-toolbar__actions .components-button.is-pressed,
372 .patternswp-toolbar__actions .components-button.is-pressed:hover:not(:disabled),
373 .patternswp-toolbar__actions .components-button.is-pressed:focus:not(:disabled) {
374 background: #e8f0fe !important;
375 color: #1e1e1e !important;
376 box-shadow: none !important;
377 }
378
379 .patternswp-toolbar__meta {
380 margin-right: 8px;
381 color: #757575;
382 font-size: 12px;
383 }
384
385 .patternswp-bulk-bar {
386 display: flex;
387 align-items: center;
388 justify-content: space-between;
389 gap: 12px;
390 padding: 10px 24px;
391 border-bottom: 1px solid #e0e0e0;
392 background: #f6f7f7;
393 }
394
395 .patternswp-bulk-bar__actions {
396 display: flex;
397 align-items: center;
398 gap: 8px;
399 }
400
401 /* ---- Grid (equal cells, not masonry) ---- */
402 .patternswp-grid-scroll {
403 flex: 1;
404 min-height: 0;
405 overflow: auto;
406 padding: 24px;
407 background: #fff;
408 }
409
410 .patternswp-grid {
411 display: grid;
412 gap: 24px;
413 grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
414 align-items: stretch;
415 }
416
417 .patternswp-grid.preview-size-1:not(.is-list):not(.is-tablet):not(.is-mobile) {
418 grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
419 }
420
421 .patternswp-grid.preview-size-2:not(.is-list):not(.is-tablet):not(.is-mobile) {
422 grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
423 }
424
425 .patternswp-grid.preview-size-3:not(.is-list):not(.is-tablet):not(.is-mobile) {
426 grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
427 }
428
429 .patternswp-grid.preview-size-4:not(.is-list):not(.is-tablet):not(.is-mobile) {
430 grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
431 }
432
433 .patternswp-grid.is-list {
434 grid-template-columns: 1fr !important;
435 max-width: 960px;
436 margin: 0 auto;
437 }
438
439 .patternswp-grid.is-tablet {
440 max-width: 790px;
441 margin: 0 auto;
442 grid-template-columns: 1fr;
443 }
444
445 .patternswp-grid.is-mobile {
446 max-width: 380px;
447 margin: 0 auto;
448 grid-template-columns: 1fr;
449 }
450
451 /* ---- Cards: one bordered unit (preview + footer) ---- */
452 .patternswp-card {
453 display: flex;
454 flex-direction: column;
455 height: 100%;
456 background: #fff;
457 border: 1px solid #ddd;
458 border-radius: 2px;
459 overflow: hidden;
460 transition: border-color 0.08s ease, box-shadow 0.08s ease;
461 }
462
463 .patternswp-card:hover,
464 .patternswp-card.is-selected,
465 .patternswp-card:focus-within {
466 border-color: var(--wp-admin-theme-color, #3858e9);
467 box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #3858e9);
468 }
469
470 .patternswp-card__preview {
471 position: relative;
472 display: flex;
473 align-items: flex-start;
474 justify-content: center;
475 flex: 1 1 auto;
476 height: 240px;
477 min-height: 240px;
478 max-height: 240px;
479 overflow: hidden;
480 background: #f0f0f0;
481 cursor: pointer;
482 }
483
484 .patternswp-grid.is-list .patternswp-card__preview {
485 height: auto;
486 min-height: 300px;
487 max-height: none;
488 }
489
490 .patternswp-card__preview .block-editor-block-preview__container {
491 pointer-events: none;
492 width: 100%;
493 }
494
495 .patternswp-card__badge {
496 position: absolute;
497 top: 10px;
498 right: 10px;
499 z-index: 1;
500 padding: 2px 8px;
501 border-radius: 2px;
502 background: var(--wp-admin-theme-color, #3858e9);
503 color: #fff;
504 font-size: 11px;
505 font-weight: 600;
506 line-height: 1.6;
507 }
508
509 .patternswp-card.is-locked .patternswp-card__preview {
510 cursor: pointer;
511 }
512
513 .patternswp-card.is-locked .patternswp-card__preview::after {
514 content: "";
515 position: absolute;
516 inset: 0;
517 z-index: 1;
518 background: linear-gradient(
519 180deg,
520 rgba(255, 255, 255, 0) 40%,
521 rgba(255, 255, 255, 0.35) 100%
522 );
523 pointer-events: none;
524 }
525
526 .patternswp-card.is-locked .patternswp-card__title {
527 color: #757575;
528 }
529
530 .patternswp-card__preview-locked,
531 .patternswp-detail__locked {
532 display: flex;
533 flex-direction: column;
534 align-items: center;
535 justify-content: center;
536 gap: 8px;
537 height: 100%;
538 min-height: 160px;
539 padding: 24px;
540 color: #1e1e1e;
541 background: repeating-linear-gradient(
542 -45deg,
543 #f6f7f7,
544 #f6f7f7 12px,
545 #fff 12px,
546 #fff 24px
547 );
548 text-align: center;
549 font-size: 13px;
550 }
551
552 .patternswp-detail__locked {
553 min-height: 280px;
554 }
555
556 .patternswp-card__footer {
557 display: flex;
558 align-items: center;
559 gap: 8px;
560 flex-shrink: 0;
561 min-height: 48px;
562 padding: 8px 12px;
563 border-top: 1px solid #ddd;
564 background: #fff;
565 }
566
567 .patternswp-card__select {
568 display: flex;
569 align-items: center;
570 flex-shrink: 0;
571 }
572
573 .patternswp-card__select .components-base-control {
574 margin-bottom: 0;
575 }
576
577 .patternswp-card__select .components-checkbox-control__input-container {
578 margin-right: 0;
579 }
580
581 .patternswp-card__title {
582 flex: 1;
583 min-width: 0;
584 overflow: hidden;
585 text-overflow: ellipsis;
586 white-space: nowrap;
587 font-size: 13px;
588 font-weight: 600;
589 line-height: 1.4;
590 color: #1e1e1e;
591 }
592
593 .patternswp-card__icons {
594 display: flex;
595 align-items: center;
596 flex-shrink: 0;
597 gap: 0;
598 margin-left: auto;
599 }
600
601 .patternswp-card__icons .components-button {
602 color: #1e1e1e;
603 min-width: 22px;
604 width: 22px;
605 height: 24px;
606 padding: 0;
607 }
608
609 .patternswp-card__icons .components-button svg {
610 width: 16px;
611 height: 16px;
612 }
613
614 .patternswp-card__icons .components-button:not(:last-child) {
615 margin-right: -2px;
616 }
617
618 .patternswp-card__icons .components-dropdown {
619 margin-left: -2px;
620 }
621
622 .patternswp-card__icons .components-button.is-pressed {
623 color: #cc1818;
624 background: transparent !important;
625 }
626
627 .patternswp-empty,
628 .patternswp-loading {
629 display: flex;
630 flex-direction: column;
631 align-items: center;
632 justify-content: center;
633 gap: 12px;
634 min-height: 280px;
635 color: #757575;
636 text-align: center;
637 }
638
639 .patternswp-sentinel {
640 display: flex;
641 justify-content: center;
642 padding: 24px 0 8px;
643 grid-column: 1 / -1;
644 }
645
646 /* Header toolbar — PatternsWP Library text button */
647 .patternswp-header-toolbar-slot {
648 display: inline-flex;
649 align-items: center;
650 margin-left: 8px;
651 }
652
653 .edit-post-header-toolbar .patternswp-toolbar-button,
654 .editor-document-tools .patternswp-toolbar-button,
655 .editor-document-tools__left .patternswp-toolbar-button,
656 .patternswp-header-toolbar-slot .patternswp-toolbar-button,
657 .editor-header-toolbar .patternswp-toolbar-button,
658 .editor-header__toolbar .patternswp-toolbar-button,
659 .edit-site-header-edit-mode__start .patternswp-toolbar-button {
660 height: 32px;
661 padding: 0 10px;
662 gap: 6px;
663 color: #1e1e1e;
664 display: inline-flex;
665 align-items: center;
666 }
667
668 .patternswp-toolbar-button__label {
669 margin-left: 6px;
670 white-space: nowrap;
671 }
672
673 /* Canvas editor — PatternsWP icon next to the + block inserter */
674 .patternswp-appender-slot {
675 display: inline-flex;
676 align-items: center;
677 flex-shrink: 0;
678 }
679
680 /* Removed flex override that broke Gutenberg layout */
681
682 /* P button — matches the + inserter toggle style */
683 .patternswp-appender-button.components-button.block-editor-inserter__toggle.has-icon,
684 .patternswp-appender-button.components-button.has-icon,
685 button.patternswp-appender-button {
686 display: inline-flex;
687 align-items: center;
688 justify-content: center;
689 flex-shrink: 0;
690 padding: 0;
691 min-width: 24px;
692 height: 24px;
693 border: none;
694 background: #1e1e1e;
695 color: #fff;
696 cursor: pointer;
697 border-radius: 2px;
698 }
699
700 .patternswp-appender-button.components-button .components-icon,
701 .patternswp-appender-button.components-button svg,
702 button.patternswp-appender-button svg {
703 width: 20px;
704 height: 20px;
705 fill: #fff;
706 }
707
708 button.patternswp-appender-button:hover {
709 background: #000;
710 color: #fff;
711 }
712
713 button.patternswp-appender-button:focus {
714 box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus, 1.5px) var(--wp-admin-theme-color, #3858e9);
715 outline: 1px solid transparent;
716 }
717
718 /* Header toolbar P button — icon + text label, tertiary style */
719 .patternswp-toolbar-button.components-button {
720 display: inline-flex;
721 align-items: center;
722 gap: 6px;
723 }
724
725 .patternswp-toolbar-button__label {
726 margin-left: 6px;
727 white-space: nowrap;
728 }
729
730 @media (max-width: 782px) {
731 .patternswp-layout {
732 flex-direction: column;
733 }
734
735 .patternswp-sidebar {
736 width: 100%;
737 min-width: 0;
738 max-height: 34vh;
739 border-right: none;
740 border-bottom: 1px solid #e0e0e0;
741 }
742
743 .patternswp-toolbar__search {
744 max-width: none;
745 width: 100%;
746 }
747
748 .patternswp-toolbar__actions {
749 margin-left: 0;
750 width: 100%;
751 justify-content: flex-end;
752 }
753 }
754
755 /* ---- Pattern Library block (inserter launcher) ---- */
756 /* Must load via enqueue_block_assets / editor_style so it reaches the canvas iframe. */
757 .patternswp-library-block {
758 --pwp-lb-ink: #0f172a;
759 --pwp-lb-muted: #64748b;
760 --pwp-lb-line: rgba(15, 23, 42, 0.1);
761 --pwp-lb-accent: #2563eb;
762 --pwp-lb-accent-deep: #1d4ed8;
763 --pwp-lb-surface: #ffffff;
764 --pwp-lb-fill: #f1f5f9;
765
766 position: relative;
767 box-sizing: border-box;
768 width: 100%;
769 max-width: 560px;
770 margin: 8px auto;
771 overflow: visible;
772 border: 1px solid var(--pwp-lb-line);
773 border-radius: 14px;
774 background:
775 radial-gradient(120% 80% at 100% 0%, rgba(37, 99, 235, 0.14), transparent 55%),
776 radial-gradient(90% 70% at 0% 100%, rgba(14, 165, 233, 0.1), transparent 50%),
777 linear-gradient(180deg, #f8fafc 0%, #e8eef6 100%);
778 color: var(--pwp-lb-ink);
779 box-shadow:
780 0 1px 2px rgba(15, 23, 42, 0.04),
781 0 12px 28px rgba(15, 23, 42, 0.08);
782 font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
783 text-align: center;
784 }
785
786 .patternswp-library-block *,
787 .patternswp-library-block *::before,
788 .patternswp-library-block *::after {
789 box-sizing: border-box;
790 }
791
792 .patternswp-library-block__close.components-button {
793 position: absolute;
794 top: 10px;
795 right: 10px;
796 z-index: 2;
797 display: inline-flex !important;
798 align-items: center;
799 justify-content: center;
800 width: 32px;
801 height: 32px;
802 min-width: 32px !important;
803 padding: 0 !important;
804 border: none !important;
805 border-radius: 8px !important;
806 background: rgba(255, 255, 255, 0.55) !important;
807 color: var(--pwp-lb-muted) !important;
808 box-shadow: none !important;
809 }
810
811 .patternswp-library-block__close.components-button:hover,
812 .patternswp-library-block__close.components-button:focus {
813 background: rgba(255, 255, 255, 0.9) !important;
814 color: var(--pwp-lb-ink) !important;
815 }
816
817 .patternswp-library-block__close .components-icon,
818 .patternswp-library-block__close svg {
819 width: 16px;
820 height: 16px;
821 }
822
823 .patternswp-library-block__inner {
824 position: relative;
825 z-index: 1;
826 display: flex;
827 flex-direction: column;
828 align-items: center;
829 gap: 20px;
830 padding: 28px 28px 24px;
831 overflow: visible;
832 }
833
834 .patternswp-library-block__header {
835 display: flex;
836 flex-direction: column;
837 align-items: center;
838 gap: 10px;
839 margin: 0;
840 max-width: 360px;
841 }
842
843 .patternswp-library-block__logo {
844 display: inline-flex;
845 align-items: center;
846 justify-content: center;
847 flex-shrink: 0;
848 width: 44px;
849 height: 44px;
850 border-radius: 12px;
851 background: linear-gradient(145deg, #1e293b 0%, #0f172a 100%);
852 color: #fff;
853 box-shadow:
854 0 1px 0 rgba(255, 255, 255, 0.1) inset,
855 0 6px 14px rgba(15, 23, 42, 0.2);
856 }
857
858 .patternswp-library-block__logo .components-icon,
859 .patternswp-library-block__logo svg {
860 width: 20px;
861 height: 20px;
862 fill: currentColor;
863 }
864
865 .patternswp-library-block__title {
866 margin: 0;
867 color: var(--pwp-lb-ink);
868 font-size: 17px;
869 font-weight: 600;
870 letter-spacing: -0.01em;
871 line-height: 1.3;
872 }
873
874 .patternswp-library-block__desc {
875 margin: 0;
876 color: var(--pwp-lb-muted);
877 font-size: 13px;
878 line-height: 1.45;
879 }
880
881 .patternswp-library-block__instant {
882 width: 100%;
883 padding: 18px;
884 border: 1px solid rgba(37, 99, 235, 0.18);
885 border-radius: 14px;
886 background: rgba(255, 255, 255, 0.88);
887 box-shadow:
888 0 1px 0 rgba(255, 255, 255, 0.9) inset,
889 0 10px 24px rgba(37, 99, 235, 0.1);
890 backdrop-filter: blur(8px);
891 text-align: left;
892 overflow: visible;
893 }
894
895 .patternswp-library-block__instant-head {
896 margin: 0 0 12px;
897 text-align: center;
898 }
899
900 .patternswp-library-block__instant-label {
901 display: block;
902 margin: 0 0 4px;
903 color: var(--pwp-lb-accent);
904 font-size: 11px;
905 font-weight: 700;
906 letter-spacing: 0.08em;
907 text-transform: uppercase;
908 }
909
910 .patternswp-library-block__instant-help {
911 margin: 0;
912 color: var(--pwp-lb-muted);
913 font-size: 12px;
914 line-height: 1.4;
915 }
916
917 .patternswp-library-block__search-wrap {
918 position: relative;
919 z-index: 5;
920 overflow: visible;
921 }
922
923 .patternswp-library-block__search-input {
924 display: block;
925 width: 100%;
926 height: 48px;
927 padding: 0 48px 0 16px;
928 border: 1.5px solid rgba(37, 99, 235, 0.28);
929 border-radius: 12px;
930 background: #fff;
931 color: var(--pwp-lb-ink);
932 font-size: 15px;
933 line-height: 1.4;
934 text-align: left;
935 box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.08);
936 transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
937 }
938
939 .patternswp-library-block__search-input::placeholder {
940 color: #94a3b8;
941 }
942
943 .patternswp-library-block__search-input:hover {
944 border-color: rgba(37, 99, 235, 0.45);
945 }
946
947 .patternswp-library-block__search-input:focus {
948 border-color: var(--pwp-lb-accent);
949 background: #fff;
950 box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.18);
951 outline: none;
952 }
953
954 .patternswp-library-block__search-icon {
955 position: absolute;
956 top: 0;
957 right: 0;
958 display: flex;
959 align-items: center;
960 justify-content: center;
961 width: 48px;
962 height: 48px;
963 color: var(--pwp-lb-accent);
964 pointer-events: none;
965 }
966
967 .patternswp-library-block__search-icon .components-spinner {
968 margin: 0;
969 width: 18px;
970 height: 18px;
971 }
972
973 .patternswp-library-block__search-icon .components-icon,
974 .patternswp-library-block__search-icon svg {
975 width: 18px;
976 height: 18px;
977 }
978
979 .patternswp-library-block__results {
980 position: relative;
981 z-index: 5;
982 top: auto;
983 left: auto;
984 right: auto;
985 margin-top: 10px;
986 max-height: 280px;
987 overflow-x: hidden;
988 overflow-y: auto;
989 border: 1px solid #d0d7de;
990 border-radius: 12px;
991 background: #ffffff;
992 box-shadow: 0 8px 24px rgba(15, 23, 42, 0.12);
993 text-align: left;
994 color: #0f172a;
995 }
996
997 .patternswp-library-block__results-empty {
998 padding: 14px 16px;
999 color: var(--pwp-lb-muted);
1000 font-size: 13px;
1001 text-align: center;
1002 background: #fff;
1003 }
1004
1005 .patternswp-library-block__result {
1006 display: flex;
1007 align-items: center;
1008 justify-content: space-between;
1009 gap: 12px;
1010 width: 100%;
1011 margin: 0;
1012 padding: 12px 16px;
1013 border: none;
1014 border-bottom: 1px solid #eef2f7;
1015 background: #ffffff;
1016 color: #0f172a;
1017 font-size: 13px;
1018 font-weight: 500;
1019 line-height: 1.4;
1020 text-align: left;
1021 cursor: pointer;
1022 }
1023
1024 .patternswp-library-block__result:last-child {
1025 border-bottom: none;
1026 }
1027
1028 .patternswp-library-block__result:hover,
1029 .patternswp-library-block__result:focus {
1030 background: #eff6ff;
1031 outline: none;
1032 }
1033
1034 .patternswp-library-block__result-title {
1035 flex: 1;
1036 min-width: 0;
1037 overflow: hidden;
1038 text-overflow: ellipsis;
1039 white-space: nowrap;
1040 color: #0f172a;
1041 }
1042
1043 .patternswp-library-block__result-badge {
1044 flex-shrink: 0;
1045 padding: 2px 7px;
1046 border-radius: 999px;
1047 background: #0f172a;
1048 color: #fff;
1049 font-size: 10px;
1050 font-weight: 700;
1051 letter-spacing: 0.03em;
1052 text-transform: uppercase;
1053 }
1054
1055 .patternswp-card.no-preview .patternswp-card__footer {
1056 border-top: none;
1057 }
1058
1059 .patternswp-card__title.is-empty {
1060 flex: 1;
1061 }
1062
1063 /* ---- Appearance popover ---- */
1064 .patternswp-appearance-dropdown .components-popover__content {
1065 min-width: 300px;
1066 padding: 0;
1067 border-radius: 8px;
1068 overflow: hidden;
1069 }
1070
1071 .patternswp-toolbar__actions .patternswp-appearance-toggle svg {
1072 width: 24px;
1073 height: 24px;
1074 fill: currentColor;
1075 }
1076
1077 .patternswp-appearance {
1078 width: 300px;
1079 padding: 16px;
1080 background: #fff;
1081 color: #1e1e1e;
1082 }
1083
1084 .patternswp-appearance__header {
1085 display: flex;
1086 align-items: center;
1087 justify-content: space-between;
1088 gap: 12px;
1089 margin-bottom: 16px;
1090 }
1091
1092 .patternswp-appearance__title {
1093 margin: 0;
1094 font-size: 13px;
1095 font-weight: 600;
1096 line-height: 1.4;
1097 }
1098
1099 .patternswp-appearance__reset {
1100 height: auto;
1101 padding: 0;
1102 color: #757575 !important;
1103 font-size: 12px;
1104 box-shadow: none !important;
1105 background: transparent !important;
1106 }
1107
1108 .patternswp-appearance__reset:hover {
1109 color: var(--wp-admin-theme-color, #3858e9) !important;
1110 }
1111
1112 .patternswp-appearance__label {
1113 display: block;
1114 margin-bottom: 8px;
1115 color: #757575;
1116 font-size: 11px;
1117 font-weight: 500;
1118 letter-spacing: 0.04em;
1119 text-transform: uppercase;
1120 }
1121
1122 .patternswp-appearance__row {
1123 display: flex;
1124 gap: 12px;
1125 margin-bottom: 16px;
1126 }
1127
1128 .patternswp-appearance__field {
1129 flex: 1;
1130 min-width: 0;
1131 }
1132
1133 .patternswp-appearance__field--order {
1134 flex: 0 0 auto;
1135 }
1136
1137 .patternswp-appearance__order .components-button {
1138 min-width: 36px;
1139 justify-content: center;
1140 }
1141
1142 .patternswp-appearance__section {
1143 margin-bottom: 16px;
1144 }
1145
1146 .patternswp-appearance__section:last-child {
1147 margin-bottom: 0;
1148 }
1149
1150 .patternswp-appearance__per-page {
1151 display: flex;
1152 width: 100%;
1153 }
1154
1155 .patternswp-appearance__per-page .components-button {
1156 flex: 1;
1157 justify-content: center;
1158 min-width: 0;
1159 }
1160
1161 .patternswp-appearance__per-page .components-button.is-pressed,
1162 .patternswp-appearance__order .components-button.is-pressed {
1163 background: #f0f0f0 !important;
1164 color: #1e1e1e !important;
1165 box-shadow: inset 0 0 0 1px #ddd !important;
1166 }
1167
1168 .patternswp-appearance__properties {
1169 border: 1px solid #ddd;
1170 border-radius: 2px;
1171 overflow: hidden;
1172 }
1173
1174 .patternswp-appearance__property {
1175 display: flex;
1176 align-items: center;
1177 gap: 10px;
1178 width: 100%;
1179 margin: 0;
1180 padding: 10px 12px;
1181 border: none;
1182 border-bottom: 1px solid #ddd;
1183 background: #fff;
1184 color: #1e1e1e;
1185 font-size: 13px;
1186 text-align: left;
1187 cursor: pointer;
1188 }
1189
1190 .patternswp-appearance__property:last-child {
1191 border-bottom: none;
1192 }
1193
1194 .patternswp-appearance__property:hover {
1195 background: #f6f7f7;
1196 }
1197
1198 .patternswp-appearance__property-check {
1199 display: inline-flex;
1200 align-items: center;
1201 justify-content: center;
1202 width: 20px;
1203 height: 20px;
1204 color: #1e1e1e;
1205 }
1206
1207 .patternswp-appearance__property-check svg {
1208 width: 18px;
1209 height: 18px;
1210 fill: currentColor;
1211 }
1212
1213 .patternswp-appearance__property:not(.is-active) .patternswp-appearance__property-check {
1214 opacity: 0.2;
1215 }
1216
1217 /* Segmented preview size control (4 clickable segments, white breaks) */
1218 .patternswp-preview-size {
1219 outline: none;
1220 padding: 10px 0 6px;
1221 user-select: none;
1222 }
1223
1224 .patternswp-preview-size__track {
1225 position: relative;
1226 height: 8px;
1227 border-radius: 999px;
1228 background: #e0e0e0;
1229 overflow: visible;
1230 }
1231
1232 .patternswp-preview-size__fill {
1233 position: absolute;
1234 top: 0;
1235 left: 0;
1236 height: 100%;
1237 border-radius: 999px;
1238 background: var(--wp-admin-theme-color, #3858e9);
1239 pointer-events: none;
1240 z-index: 1;
1241 }
1242
1243 .patternswp-preview-size__breaks {
1244 position: absolute;
1245 inset: 0;
1246 z-index: 2;
1247 pointer-events: none;
1248 }
1249
1250 .patternswp-preview-size__breaks span {
1251 position: absolute;
1252 top: 0;
1253 bottom: 0;
1254 width: 3px;
1255 background: #fff;
1256 transform: translateX(-50%);
1257 }
1258
1259 .patternswp-preview-size__breaks span:nth-child(1) {
1260 left: 25%;
1261 }
1262
1263 .patternswp-preview-size__breaks span:nth-child(2) {
1264 left: 50%;
1265 }
1266
1267 .patternswp-preview-size__breaks span:nth-child(3) {
1268 left: 75%;
1269 }
1270
1271 .patternswp-preview-size__thumb {
1272 position: absolute;
1273 top: 50%;
1274 width: 16px;
1275 height: 16px;
1276 margin-left: -8px;
1277 border: 2px solid #fff;
1278 border-radius: 50%;
1279 background: var(--wp-admin-theme-color, #3858e9);
1280 box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12);
1281 transform: translateY(-50%);
1282 pointer-events: none;
1283 z-index: 3;
1284 }
1285
1286 .patternswp-preview-size__hits {
1287 position: absolute;
1288 inset: -12px 0;
1289 display: flex;
1290 z-index: 4;
1291 }
1292
1293 .patternswp-preview-size__hit {
1294 flex: 1;
1295 margin: 0;
1296 padding: 0;
1297 border: none;
1298 background: transparent;
1299 cursor: pointer;
1300 }
1301
1302 .patternswp-preview-size__hit:focus-visible {
1303 outline: 2px solid var(--wp-admin-theme-color, #3858e9);
1304 outline-offset: -2px;
1305 }
1306
1307 .patternswp-preview-size:focus-visible .patternswp-preview-size__track {
1308 box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #3858e9);
1309 }
1310
1311 .patternswp-library-block__result.is-locked .patternswp-library-block__result-badge {
1312 background: #dc2626;
1313 }
1314
1315 .patternswp-library-block__browse {
1316 display: flex;
1317 justify-content: center;
1318 }
1319
1320 .patternswp-library-block__browse-link {
1321 margin: 0;
1322 padding: 0;
1323 border: none;
1324 background: transparent;
1325 color: var(--pwp-lb-muted);
1326 font-size: 12px;
1327 font-weight: 500;
1328 line-height: 1.4;
1329 text-decoration: underline;
1330 text-underline-offset: 2px;
1331 cursor: pointer;
1332 }
1333
1334 .patternswp-library-block__browse-link:hover,
1335 .patternswp-library-block__browse-link:focus {
1336 color: var(--pwp-lb-accent);
1337 outline: none;
1338 }
1339
1340 @media (max-width: 600px) {
1341 .patternswp-library-block__inner {
1342 padding: 22px 18px 18px;
1343 }
1344 }
1345