PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.13
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.13
2.0.13 2.0.12 2.0.11 2.0.10 2.0.9 trunk 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8
← All changes | assets/css/editor.css +1360 -1 2.0.42.0.13 View file →
@@ -3,8 +3,53 @@
3 3 * Common styles for all blocks in editor
4 4 */
5 5
6 6 /* ========================================
7 + Color Panel: Make PanelColorSettings
8 + collapsible (ToolsPanel → PanelBody style)
9 + ======================================== */
10 +
11 +/* The ToolsPanel header becomes our toggle trigger */
12 +.block-editor-panel-color-gradient-settings {
13 + border-top: 1px solid #e0e0e0;
14 +}
15 +
16 +.block-editor-panel-color-gradient-settings .components-tools-panel-header {
17 + cursor: pointer;
18 + user-select: none;
19 + position: relative;
20 + padding-right: 36px;
21 +}
22 +
23 +/* Chevron indicator */
24 +.block-editor-panel-color-gradient-settings .components-tools-panel-header::after {
25 + content: '';
26 + position: absolute;
27 + right: 16px;
28 + top: 50%;
29 + width: 6px;
30 + height: 6px;
31 + border-right: 2px solid #1e1e1e;
32 + border-bottom: 2px solid #1e1e1e;
33 + transform: translateY(-50%) rotate(45deg);
34 + transition: transform .2s ease;
35 +}
36 +
37 +/* Collapsed state */
38 +.block-editor-panel-color-gradient-settings.bkbg-panel-collapsed .components-tools-panel-header::after {
39 + transform: translateY(-50%) rotate(-45deg);
40 +}
41 +
42 +.block-editor-panel-color-gradient-settings.bkbg-panel-collapsed > *:not(.components-tools-panel-header) {
43 + display: none !important;
44 +}
45 +
46 +/* Hide the native ⋮ dropdown menu — we keep reset via our chevron */
47 +.block-editor-panel-color-gradient-settings .components-tools-panel-header .components-dropdown-menu {
48 + display: none;
49 +}
50 +
51 +/* ========================================
7 52 Block Inserter: BKB Badge on Icons
8 53 ======================================== */
9 54
10 55 /* Target Blockenberg blocks in block inserter */
@@ -18,9 +63,10 @@
18 63 content: 'BKB';
19 64 position: absolute;
20 65 bottom: -2px;
21 66 right: -2px;
22 - background: var(--wp-admin-theme-color, #007cba);
67 + background: var(--wp-admin-theme-color, #8668ff);
68 + background: #8668ff;
23 69 color: #fff;
24 70 font-size: 7px;
25 71 font-weight: 700;
26 72 padding: 1px 3px;
@@ -28,8 +74,13 @@
28 74 line-height: 1;
29 75 letter-spacing: 0.3px;
30 76 }
31 77
78 +/* .block-editor-block-types-list__item[class*="blockenberg-"] .block-editor-block-types-list__item-icon .dashicon:before,
79 +.block-editor-inserter__panel-content [class*="blockenberg-"] .block-editor-block-types-list__item-icon .dashicon:before {
80 + color: #8668ff;
81 +} */
82 +
32 83 /* ========================================
33 84 Editor: Block Wrapper & Hover States
34 85 ======================================== */
35 86 .editor-styles-wrapper .bkbg-editor-wrap,
@@ -406,4 +457,1312 @@
406 457 .editor-styles-wrapper .bkbg-tm-nav-bottom .bkbg-tm-nav-btn {
407 458 position: relative;
408 459 z-index: 11;
409 460 }
461 +
462 +/* ========================================
463 + Inspector Tabs: General / Advanced
464 + ======================================== */
465 +
466 +/* TabPanel: make tab buttons stretch equally */
467 +.bkbg-inspector-tab-panel > .components-tab-panel__tabs {
468 + display: flex;
469 + margin: 0;
470 +}
471 +
472 +.bkbg-inspector-tab-panel > .components-tab-panel__tabs .components-tab-panel__tabs-item {
473 + flex: 1;
474 + justify-content: center;
475 +}
476 +
477 +/* Advanced section heading */
478 +.bkbg-advanced-header {
479 + font-size: 11px;
480 + font-weight: 600;
481 + text-transform: uppercase;
482 + letter-spacing: 0.5px;
483 + color: #757575;
484 + padding: 16px 16px 8px;
485 +}
486 +
487 +/* Separator between control groups */
488 +.bkbg-adv-separator {
489 + height: 1px;
490 + background: #e0e0e0;
491 + margin: 16px 0;
492 +}
493 +
494 +/* ---- Tab visibility: toggle block panels vs. advanced panels ---- */
495 +
496 +/* When the Advanced tab is active, hide every PanelBody that is NOT ours */
497 +.block-editor-block-inspector[data-bkbg-tab="advanced"] .components-panel__body:not(.bkbg-adv-panel) {
498 + display: none !important;
499 +}
500 +
501 +/* Also hide the built-in WP "Advanced" section (HTML anchor / extra CSS classes) */
502 +.block-editor-block-inspector[data-bkbg-tab="advanced"] .block-editor-block-inspector__advanced {
503 + display: none !important;
504 +}
505 +
506 +/* ========================================
507 + Advanced Layout Controls
508 + ======================================== */
509 +
510 +/* --- Spacing Control (Margin / Padding) --- */
511 +
512 +.bkbg-spacing-control {
513 + margin-bottom: 16px;
514 + width: 100%;
515 + max-width: 100%;
516 + box-sizing: border-box;
517 +}
518 +
519 +.bkbg-spacing-header {
520 + display: flex;
521 + align-items: center;
522 + gap: 8px;
523 + margin-bottom: 10px;
524 +}
525 +
526 +.bkbg-spacing-label {
527 + font-size: 13px;
528 + font-weight: 500;
529 + color: #4f5b66;
530 + line-height: 1;
531 +}
532 +
533 +.bkbg-spacing-inputs {
534 + display: flex;
535 + align-items: flex-start;
536 + gap: 0;
537 + width: 100%;
538 + max-width: 100%;
539 + min-width: 0;
540 + box-sizing: border-box;
541 +}
542 +
543 +.bkbg-spacing-side {
544 + flex: 1;
545 + display: flex;
546 + flex-direction: column;
547 + align-items: center;
548 + min-width: 0;
549 +}
550 +
551 +.bkbg-spacing-side:first-child {
552 + margin-left: 0;
553 +}
554 +
555 +.bkbg-spacing-input {
556 + width: 100%;
557 + height: 32px;
558 + border: 1px solid #c8cdd4;
559 + border-radius: 0;
560 + border-right: 0;
561 + text-align: center;
562 + font-size: 13px;
563 + padding: 0 4px;
564 + background: #fff;
565 + color: #4f5b66;
566 + -moz-appearance: auto;
567 + appearance: auto;
568 + box-sizing: border-box;
569 +}
570 +
571 +.bkbg-spacing-side:first-child .bkbg-spacing-input {
572 + border-top-left-radius: 6px;
573 + border-bottom-left-radius: 6px;
574 +}
575 +
576 +.bkbg-spacing-side:last-of-type .bkbg-spacing-input {
577 + border-right: 1px solid #c8cdd4;
578 +}
579 +
580 +.bkbg-spacing-side .bkbg-spacing-input {
581 + border-radius: 0 !important;
582 + border-right: 0;
583 +}
584 +
585 +.bkbg-spacing-side:first-child .bkbg-spacing-input {
586 + border-top-left-radius: 6px !important;
587 + border-bottom-left-radius: 6px !important;
588 +}
589 +
590 +.bkbg-spacing-side:last-of-type .bkbg-spacing-input {
591 + border-top-right-radius: 0 !important;
592 + border-bottom-right-radius: 0 !important;
593 +}
594 +
595 +.bkbg-spacing-input::-webkit-inner-spin-button,
596 +.bkbg-spacing-input::-webkit-outer-spin-button {
597 + opacity: 0;
598 + pointer-events: none;
599 + margin: 0;
600 + transition: opacity .12s ease;
601 +}
602 +
603 +.bkbg-spacing-input:hover::-webkit-inner-spin-button,
604 +.bkbg-spacing-input:hover::-webkit-outer-spin-button,
605 +.bkbg-spacing-input:focus::-webkit-inner-spin-button,
606 +.bkbg-spacing-input:focus::-webkit-outer-spin-button {
607 + opacity: 1;
608 + pointer-events: auto;
609 +}
610 +
611 +.bkbg-spacing-input:focus {
612 + border-color: var(--wp-admin-theme-color, #007cba);
613 + box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #007cba);
614 + outline: none;
615 +}
616 +
617 +.bkbg-spacing-side-label {
618 + font-size: 11px;
619 + color: #7a8594;
620 + margin-top: 6px;
621 +}
622 +
623 +/* Link / Unlink Button */
624 +.bkbg-link-btn.components-button {
625 + min-width: 44px;
626 + width: 44px;
627 + height: 32px;
628 + padding: 0;
629 + display: flex;
630 + align-items: center;
631 + justify-content: center;
632 + border: 1px solid #c8cdd4;
633 + border-left: 0;
634 + border-top-right-radius: 6px;
635 + border-bottom-right-radius: 6px;
636 + border-top-left-radius: 0;
637 + border-bottom-left-radius: 0;
638 + background: #d2d7de;
639 + flex-shrink: 0;
640 + flex-grow: 0;
641 + flex-basis: 44px;
642 + align-self: flex-start;
643 + color: #1f2328;
644 +}
645 +
646 +.bkbg-link-btn.is-linked.components-button {
647 + background: #ccd2da;
648 + color: #1f2328;
649 +}
650 +
651 +.bkbg-link-btn.components-button:not(.is-linked) {
652 + background: #ffffff;
653 + color: #1f2328;
654 +}
655 +
656 +.bkbg-link-btn .dashicons,
657 +.bkbg-link-btn .dashicons-before:before,
658 +.bkbg-link-btn .dashicons-admin-links:before {
659 + font-size: 14px;
660 + width: 14px;
661 + height: 14px;
662 + line-height: 14px;
663 +}
664 +
665 +/* --- Device Switcher --- */
666 +
667 +.bkbg-device-switcher {
668 + position: relative;
669 + display: inline-flex;
670 +}
671 +
672 +.bkbg-device-btn.components-button {
673 + min-width: 24px;
674 + width: 24px;
675 + height: 24px;
676 + padding: 0;
677 + display: flex;
678 + align-items: center;
679 + justify-content: center;
680 + border: none;
681 + background: transparent;
682 + color: #949494;
683 +}
684 +
685 +.bkbg-device-btn.components-button:hover {
686 + background: transparent;
687 + color: #e50087;
688 +}
689 +
690 +.bkbg-device-popover .components-popover__content {
691 + padding: 6px;
692 + border-radius: 8px;
693 +}
694 +
695 +.bkbg-device-list {
696 + display: flex;
697 + flex-direction: column;
698 + gap: 4px;
699 + padding: 2px;
700 +}
701 +
702 +.bkbg-device-option.components-button {
703 + min-width: 36px;
704 + width: 36px;
705 + height: 36px;
706 + padding: 0;
707 + display: flex;
708 + align-items: center;
709 + justify-content: center;
710 + border-radius: 4px;
711 + border: none;
712 + background: transparent;
713 +}
714 +
715 +.bkbg-device-option.components-button:hover {
716 + background: #f0f0f0;
717 +}
718 +
719 +.bkbg-device-option.is-active.components-button {
720 + background: #f5e6f0;
721 +}
722 +
723 +/* --- Unit Selector --- */
724 +
725 +.bkbg-unit-selector {
726 + position: relative;
727 + display: inline-flex;
728 + margin-left: auto;
729 +}
730 +
731 +.bkbg-unit-btn.components-button {
732 + font-size: 13px;
733 + font-weight: 500;
734 + color: #4f5b66;
735 + padding: 0 2px;
736 + height: 24px;
737 + min-width: 0;
738 + border: none;
739 + background: transparent;
740 + line-height: 1;
741 + display: inline-flex;
742 + align-items: center;
743 + gap: 3px;
744 +}
745 +
746 +.bkbg-unit-btn.components-button:hover {
747 + color: #4f5b66;
748 + background: #f0f0f0;
749 +}
750 +
751 +.bkbg-unit-value {
752 + line-height: 1;
753 +}
754 +
755 +.bkbg-unit-caret.dashicons {
756 + font-size: 12px;
757 + width: 14px;
758 + height: 14px;
759 + line-height: 17px;
760 + margin: 0;
761 +}
762 +
763 +.bkbg-unit-popover .components-popover__content {
764 + padding: 6px 10px;
765 + border-radius: 8px;
766 +}
767 +
768 +.bkbg-unit-list {
769 + display: flex;
770 + flex-direction: column;
771 + gap: 2px;
772 + padding: 2px;
773 + min-width: 56px;
774 +}
775 +
776 +.bkbg-unit-option.components-button {
777 + width: 100%;
778 + height: 32px;
779 + padding: 0 12px;
780 + display: flex;
781 + align-items: center;
782 + justify-content: center;
783 + border-radius: 4px;
784 + border: none;
785 + background: transparent;
786 + font-size: 13px;
787 + color: #4f5b66;
788 +}
789 +
790 +.bkbg-unit-option.components-button:hover {
791 + background: #f0f0f0;
792 +}
793 +
794 +.bkbg-unit-option.is-active.components-button {
795 + color: #e50087;
796 + font-weight: 500;
797 +}
798 +
799 +/* --- Z-Index Control --- */
800 +
801 +.bkbg-zindex-control {
802 + margin-bottom: 18px;
803 + display: flex;
804 + gap: 12px;
805 + align-items: center;
806 + width: 100%;
807 + max-width: 100%;
808 + min-width: 0;
809 + box-sizing: border-box;
810 +}
811 +
812 +.bkbg-zindex-control .bkbg-spacing-header {
813 + margin-bottom: 0;
814 + flex: 0 0 108px;
815 + width: 108px;
816 +}
817 +
818 +.bkbg-zindex-control .bkbg-spacing-label {
819 + white-space: nowrap;
820 +}
821 +
822 +.bkbg-zindex-input-wrap {
823 + display: flex;
824 + justify-content: flex-start;
825 + flex: 1;
826 + width: 100%;
827 + max-width: 100%;
828 + min-width: 0;
829 + box-sizing: border-box;
830 +}
831 +
832 +.bkbg-zindex-input {
833 + width: 100%;
834 + max-width: 100%;
835 + min-width: 0;
836 + height: 32px;
837 + border: 1px solid #c8cdd4;
838 + border-radius: 6px;
839 + text-align: center;
840 + font-size: 13px;
841 + padding: 0 8px;
842 + background: #fff;
843 + color: #4f5b66;
844 + -moz-appearance: textfield;
845 + appearance: textfield;
846 + box-sizing: border-box;
847 +}
848 +
849 +.bkbg-zindex-input:focus {
850 + border-color: var(--wp-admin-theme-color, #007cba);
851 + box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #007cba);
852 + outline: none;
853 +}
854 +
855 +/* --- CSS ID / CSS Classes Control --- */
856 +
857 +.bkbg-css-control {
858 + margin-bottom: 18px;
859 + display: flex;
860 + gap: 12px;
861 + align-items: center;
862 + width: 100%;
863 + max-width: 100%;
864 + min-width: 0;
865 + box-sizing: border-box;
866 +}
867 +
868 +.bkbg-css-control .bkbg-spacing-header {
869 + margin-bottom: 0;
870 + flex: 0 0 108px;
871 + width: 108px;
872 +}
873 +
874 +.bkbg-css-control .bkbg-spacing-label {
875 + white-space: nowrap;
876 +}
877 +
878 +.bkbg-css-input-wrap {
879 + display: flex;
880 + align-items: center;
881 + gap: 0;
882 + flex: 1;
883 + width: 100%;
884 + max-width: 100%;
885 + min-width: 0;
886 + box-sizing: border-box;
887 +}
888 +
889 +.bkbg-css-input {
890 + flex: 1;
891 + width: 100%;
892 + max-width: 100%;
893 + min-width: 0;
894 + height: 32px;
895 + border: 1px solid #c8cdd4;
896 + border-radius: 6px;
897 + font-size: 13px;
898 + padding: 0 8px;
899 + background: #fff;
900 + color: #4f5b66;
901 + box-sizing: border-box;
902 +}
903 +
904 +.bkbg-css-input:focus {
905 + border-color: var(--wp-admin-theme-color, #007cba);
906 + box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #007cba);
907 + outline: none;
908 +}
909 +
910 +/* ========================================
911 + Background Panel Controls
912 + ======================================== */
913 +
914 +/* --- Normal / Hover State Tabs --- */
915 +
916 +.bkbg-bg-state-tabs {
917 + display: flex;
918 + gap: 0;
919 + margin-bottom: 16px;
920 + border: 1px solid #e0e0e0;
921 + border-radius: 6px;
922 + overflow: hidden;
923 +}
924 +
925 +.bkbg-bg-state-tab.components-button {
926 + flex: 1;
927 + justify-content: center;
928 + height: 34px;
929 + font-size: 12px;
930 + font-weight: 500;
931 + color: #4f5b66;
932 + border: none;
933 + border-radius: 0;
934 + background: #f7f7f7;
935 + transition: background 0.15s, color 0.15s;
936 +}
937 +
938 +.bkbg-bg-state-tab.components-button:not(:last-child) {
939 + border-right: 1px solid #e0e0e0;
940 +}
941 +
942 +.bkbg-bg-state-tab.components-button:hover {
943 + background: #eee;
944 +}
945 +
946 +.bkbg-bg-state-tab.is-active.components-button {
947 + background: #fff;
948 + color: #e50087;
949 + font-weight: 600;
950 +}
951 +
952 +/* --- Background Type Row --- */
953 +
954 +.bkbg-bg-type-row {
955 + display: flex;
956 + align-items: center;
957 + gap: 12px;
958 + margin-bottom: 16px;
959 +}
960 +
961 +.bkbg-bg-type-buttons {
962 + display: flex;
963 + gap: 4px;
964 + margin-left: auto;
965 +}
966 +
967 +.bkbg-bg-type-btn.components-button {
968 + width: 30px;
969 + height: 30px;
970 + min-width: 30px;
971 + padding: 0;
972 + display: flex;
973 + align-items: center;
974 + justify-content: center;
975 + border: 1px solid #d2d7de;
976 + border-radius: 4px;
977 + background: #fff;
978 + color: #757575;
979 + transition: all 0.15s;
980 +}
981 +
982 +.bkbg-bg-type-btn.components-button:hover {
983 + border-color: #949494;
984 + color: #4f5b66;
985 +}
986 +
987 +.bkbg-bg-type-btn.is-active.components-button {
988 + background: #e50087;
989 + border-color: #e50087;
990 + color: #fff;
991 +}
992 +
993 +/* --- Color Swatch Row --- */
994 +
995 +.bkbg-color-row {
996 + display: flex;
997 + align-items: center;
998 + gap: 10px;
999 + margin-bottom: 14px;
1000 +}
1001 +
1002 +.bkbg-color-controls {
1003 + display: flex;
1004 + align-items: center;
1005 + gap: 6px;
1006 + margin-left: auto;
1007 +}
1008 +
1009 +.bkbg-color-swatch {
1010 + width: 24px;
1011 + height: 24px;
1012 + border-radius: 50%;
1013 + border: 2px solid #d2d7de;
1014 + cursor: pointer;
1015 + transition: border-color 0.15s;
1016 + background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><defs><pattern id="c" width="8" height="8" patternUnits="userSpaceOnUse"><rect width="4" height="4" fill="%23ccc"/><rect x="4" y="4" width="4" height="4" fill="%23ccc"/></pattern></defs><rect fill="url(%23c)" width="24" height="24"/></svg>');
1017 + background-size: cover;
1018 + position: relative;
1019 + overflow: hidden;
1020 +}
1021 +
1022 +.bkbg-color-swatch:hover {
1023 + border-color: #e50087;
1024 +}
1025 +
1026 +.bkbg-color-popover .components-popover__content {
1027 + padding: 12px;
1028 + border-radius: 8px;
1029 + overflow: visible;
1030 + box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
1031 +}
1032 +
1033 +.bkbg-color-popover {
1034 + z-index: 1000001 !important;
1035 +}
1036 +
1037 +.bkbg-color-picker-wrap {
1038 + width: 240px;
1039 +}
1040 +
1041 +.bkbg-color-picker-wrap .components-color-picker {
1042 + width: 100%;
1043 +}
1044 +
1045 +.bkbg-color-clear.components-button {
1046 + width: 100%;
1047 + justify-content: center;
1048 + margin: 8px 0;
1049 + font-size: 12px;
1050 +}
1051 +
1052 +/* --- Image Upload Control --- */
1053 +
1054 +.bkbg-image-control {
1055 + margin-bottom: 14px;
1056 +}
1057 +
1058 +.bkbg-image-upload-area {
1059 + margin-top: 0;
1060 +}
1061 +
1062 +.bkbg-image-placeholder {
1063 + display: flex;
1064 + flex-direction: column;
1065 + align-items: center;
1066 + justify-content: center;
1067 + gap: 10px;
1068 + padding: 20px;
1069 + background: #f0f0f0;
1070 + border: 2px dashed #d2d7de;
1071 + border-radius: 6px;
1072 + cursor: pointer;
1073 + transition: border-color 0.15s, background 0.15s;
1074 + min-height: 80px;
1075 +}
1076 +
1077 +.bkbg-image-placeholder:hover {
1078 + border-color: #e50087;
1079 + background: #fdf2f8;
1080 +}
1081 +
1082 +.bkbg-image-plus {
1083 + font-size: 28px;
1084 + color: #949494;
1085 + line-height: 1;
1086 + font-weight: 300;
1087 +}
1088 +
1089 +.bkbg-image-choose.components-button {
1090 + font-size: 12px;
1091 +}
1092 +
1093 +.bkbg-image-preview {
1094 + position: relative;
1095 + border-radius: 6px;
1096 + overflow: hidden;
1097 + border: 1px solid #d2d7de;
1098 +}
1099 +
1100 +.bkbg-image-preview img {
1101 + display: block;
1102 + width: 100%;
1103 + height: auto;
1104 + max-height: 140px;
1105 + object-fit: cover;
1106 +}
1107 +
1108 +.bkbg-image-actions {
1109 + display: flex;
1110 + gap: 6px;
1111 + padding: 8px;
1112 + background: rgba(255, 255, 255, 0.9);
1113 + justify-content: center;
1114 +}
1115 +
1116 +.bkbg-image-replace.components-button,
1117 +.bkbg-image-remove.components-button {
1118 + font-size: 11px;
1119 +}
1120 +
1121 +/* --- Range Slider Control --- */
1122 +
1123 +.bkbg-range-control {
1124 + margin-bottom: 14px;
1125 +}
1126 +
1127 +.bkbg-range-unit {
1128 + font-size: 12px;
1129 + font-weight: 500;
1130 + color: #949494;
1131 + margin-left: auto;
1132 +}
1133 +
1134 +.bkbg-range-inputs {
1135 + display: flex;
1136 + align-items: center;
1137 + gap: 10px;
1138 +}
1139 +
1140 +.bkbg-range-slider {
1141 + flex: 1;
1142 + -webkit-appearance: none;
1143 + appearance: none;
1144 + height: 4px;
1145 + background: #d2d7de;
1146 + border-radius: 2px;
1147 + outline: none;
1148 + cursor: pointer;
1149 + min-width: 0;
1150 +}
1151 +
1152 +.bkbg-range-slider::-webkit-slider-thumb {
1153 + -webkit-appearance: none;
1154 + appearance: none;
1155 + width: 14px;
1156 + height: 14px;
1157 + border-radius: 50%;
1158 + background: #e50087;
1159 + cursor: pointer;
1160 + border: 2px solid #fff;
1161 + box-shadow: 0 1px 3px rgba(0,0,0,0.2);
1162 +}
1163 +
1164 +.bkbg-range-slider::-moz-range-thumb {
1165 + width: 14px;
1166 + height: 14px;
1167 + border-radius: 50%;
1168 + background: #e50087;
1169 + cursor: pointer;
1170 + border: 2px solid #fff;
1171 + box-shadow: 0 1px 3px rgba(0,0,0,0.2);
1172 +}
1173 +
1174 +.bkbg-range-number {
1175 + width: 56px;
1176 + height: 32px;
1177 + border: 1px solid #c8cdd4;
1178 + border-radius: 6px;
1179 + text-align: center;
1180 + font-size: 13px;
1181 + padding: 0 4px;
1182 + background: #fff;
1183 + color: #4f5b66;
1184 + flex-shrink: 0;
1185 + box-sizing: border-box;
1186 +}
1187 +
1188 +.bkbg-range-number:focus {
1189 + border-color: var(--wp-admin-theme-color, #007cba);
1190 + box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #007cba);
1191 + outline: none;
1192 +}
1193 +
1194 +/* --- Gradient Notice --- */
1195 +
1196 +.bkbg-grad-notice {
1197 + display: flex;
1198 + align-items: flex-start;
1199 + gap: 8px;
1200 + padding: 10px 12px;
1201 + background: #fff8e1;
1202 + border-left: 3px solid #f59e0b;
1203 + border-radius: 0 6px 6px 0;
1204 + margin-bottom: 16px;
1205 + font-size: 12px;
1206 + line-height: 1.5;
1207 + color: #78571c;
1208 +}
1209 +
1210 +.bkbg-grad-notice-icon {
1211 + flex-shrink: 0;
1212 + font-size: 14px;
1213 + line-height: 1.3;
1214 +}
1215 +
1216 +/* --- Gradient Type Dropdown --- */
1217 +
1218 +.bkbg-grad-type-row {
1219 + display: flex;
1220 + align-items: center;
1221 + gap: 12px;
1222 + margin-bottom: 14px;
1223 +}
1224 +
1225 +.bkbg-grad-type-select {
1226 + flex: 1;
1227 + min-width: 0;
1228 +}
1229 +
1230 +/* --- Transition Duration --- */
1231 +
1232 +.bkbg-transition-control {
1233 + margin-bottom: 4px;
1234 +}
1235 +
1236 +/* --- Dropdown Row Control --- */
1237 +
1238 +.bkbg-dropdown-row {
1239 + display: flex;
1240 + align-items: center;
1241 + gap: 12px;
1242 + margin-bottom: 14px;
1243 +}
1244 +
1245 +.bkbg-dropdown-label-side {
1246 + display: flex;
1247 + align-items: center;
1248 + gap: 6px;
1249 + flex: 0 0 auto;
1250 + white-space: nowrap;
1251 +}
1252 +
1253 +.bkbg-dropdown-select-side {
1254 + flex: 1;
1255 + min-width: 0;
1256 +}
1257 +
1258 +.bkbg-dropdown-select {
1259 + width: 100%;
1260 + height: 32px;
1261 + border: 1px solid #c8cdd4;
1262 + border-radius: 6px;
1263 + font-size: 13px;
1264 + padding: 0 8px;
1265 + background: #fff;
1266 + color: #4f5b66;
1267 + cursor: pointer;
1268 + box-sizing: border-box;
1269 + -webkit-appearance: none;
1270 + -moz-appearance: none;
1271 + appearance: none;
1272 + background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="10" height="6" viewBox="0 0 10 6"><path d="M0 0l5 6 5-6z" fill="%23757575"/></svg>');
1273 + background-repeat: no-repeat;
1274 + background-position: right 10px center;
1275 + background-size: 10px 6px;
1276 + padding-right: 28px;
1277 +}
1278 +
1279 +.bkbg-dropdown-select:focus {
1280 + border-color: var(--wp-admin-theme-color, #007cba);
1281 + box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #007cba);
1282 + outline: none;
1283 +}
1284 +
1285 +/* --- Custom Position / Size Inputs --- */
1286 +
1287 +.bkbg-custom-pos-row {
1288 + display: flex;
1289 + gap: 8px;
1290 + margin-bottom: 14px;
1291 + padding-left: 0;
1292 + max-width: 100%;
1293 + box-sizing: border-box;
1294 +}
1295 +
1296 +.bkbg-custom-pos-field {
1297 + flex: 1;
1298 + display: flex;
1299 + align-items: center;
1300 + gap: 4px;
1301 + min-width: 0;
1302 + overflow: hidden;
1303 +}
1304 +
1305 +.bkbg-custom-pos-lbl {
1306 + font-size: 12px;
1307 + font-weight: 500;
1308 + color: #949494;
1309 + flex-shrink: 0;
1310 +}
1311 +
1312 +.bkbg-custom-pos-input {
1313 + flex: 1;
1314 + min-width: 0;
1315 + width: 50px;
1316 + max-width: 100%;
1317 + height: 32px;
1318 + border: 1px solid #c8cdd4;
1319 + border-radius: 6px;
1320 + text-align: center;
1321 + font-size: 13px;
1322 + padding: 0 4px;
1323 + background: #fff;
1324 + color: #4f5b66;
1325 + box-sizing: border-box;
1326 + -moz-appearance: textfield;
1327 + appearance: textfield;
1328 +}
1329 +
1330 +.bkbg-custom-pos-input::-webkit-inner-spin-button,
1331 +.bkbg-custom-pos-input::-webkit-outer-spin-button {
1332 + -webkit-appearance: none;
1333 + appearance: none;
1334 + margin: 0;
1335 +}
1336 +
1337 +.bkbg-custom-pos-input:focus {
1338 + border-color: var(--wp-admin-theme-color, #007cba);
1339 + box-shadow: 0 0 0 1px var(--wp-admin-theme-color, #007cba);
1340 + outline: none;
1341 +}
1342 +
1343 +.bkbg-custom-pos-unit {
1344 + font-size: 12px;
1345 + color: #949494;
1346 + flex-shrink: 0;
1347 +}
1348 +
1349 +/* --- Box Shadow Control --- */
1350 +
1351 +.bkbg-shadow-control {
1352 + margin-bottom: 0;
1353 +}
1354 +
1355 +.bkbg-shadow-header {
1356 + display: flex;
1357 + align-items: center;
1358 + gap: 8px;
1359 + margin-bottom: 0;
1360 +}
1361 +
1362 +.bkbg-shadow-actions {
1363 + display: flex;
1364 + align-items: center;
1365 + gap: 2px;
1366 + margin-left: auto;
1367 +}
1368 +
1369 +.bkbg-shadow-reset-btn.components-button,
1370 +.bkbg-shadow-toggle-btn.components-button {
1371 + width: 28px;
1372 + height: 28px;
1373 + min-width: 28px;
1374 + padding: 0;
1375 + display: flex;
1376 + align-items: center;
1377 + justify-content: center;
1378 + border: none;
1379 + background: transparent;
1380 + color: #757575;
1381 + border-radius: 4px;
1382 + transition: all 0.15s;
1383 +}
1384 +
1385 +.bkbg-shadow-reset-btn.components-button:hover,
1386 +.bkbg-shadow-toggle-btn.components-button:hover {
1387 + color: #e50087;
1388 + background: rgba(229, 0, 135, 0.06);
1389 +}
1390 +
1391 +.bkbg-shadow-toggle-btn.is-active.components-button {
1392 + background: #1e1e1e;
1393 + color: #fff;
1394 +}
1395 +
1396 +.bkbg-shadow-toggle-btn.is-active.components-button:hover {
1397 + background: #333;
1398 + color: #fff;
1399 +}
1400 +
1401 +.bkbg-shadow-body {
1402 + margin-top: 12px;
1403 + padding: 14px;
1404 + background: #fafafa;
1405 + border: 1px solid #e8eaed;
1406 + border-radius: 8px;
1407 +}
1408 +
1409 +.bkbg-shadow-body .bkbg-color-row {
1410 + margin-bottom: 12px;
1411 +}
1412 +
1413 +.bkbg-shadow-body .bkbg-range-control {
1414 + margin-bottom: 10px;
1415 +}
1416 +
1417 +.bkbg-shadow-body .bkbg-dropdown-row {
1418 + margin-bottom: 0;
1419 +}
1420 +
1421 +/* ========================================
1422 + Responsive Panel
1423 + ======================================== */
1424 +
1425 +.bkbg-responsive-row {
1426 + display: flex;
1427 + align-items: center;
1428 + justify-content: space-between;
1429 + padding: 12px 0;
1430 + border-bottom: 1px solid #eee;
1431 +}
1432 +
1433 +.bkbg-responsive-row:last-child {
1434 + border-bottom: none;
1435 +}
1436 +
1437 +.bkbg-responsive-label {
1438 + font-size: 13px;
1439 + color: #1e1e1e;
1440 + font-weight: 400;
1441 +}
1442 +
1443 +.bkbg-responsive-toggle {
1444 + display: flex;
1445 + align-items: center;
1446 + gap: 8px;
1447 + cursor: pointer;
1448 + user-select: none;
1449 +}
1450 +
1451 +.bkbg-toggle-track {
1452 + width: 36px;
1453 + height: 20px;
1454 + background: #ccc;
1455 + border-radius: 10px;
1456 + position: relative;
1457 + transition: background 0.2s ease;
1458 +}
1459 +
1460 +.bkbg-responsive-toggle.is-active .bkbg-toggle-track {
1461 + background: var(--wp-admin-theme-color, #007cba);
1462 +}
1463 +
1464 +.bkbg-toggle-thumb {
1465 + width: 16px;
1466 + height: 16px;
1467 + background: #fff;
1468 + border-radius: 50%;
1469 + position: absolute;
1470 + top: 2px;
1471 + left: 2px;
1472 + transition: transform 0.2s ease;
1473 + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
1474 +}
1475 +
1476 +.bkbg-responsive-toggle.is-active .bkbg-toggle-thumb {
1477 + transform: translateX(16px);
1478 +}
1479 +
1480 +.bkbg-toggle-label {
1481 + font-size: 12px;
1482 + color: #757575;
1483 + min-width: 30px;
1484 +}
1485 +
1486 +/* ========================================
1487 + Typography Control (Elementor-style)
1488 + ======================================== */
1489 +
1490 +/* Label row: "Title [✏]" */
1491 +.bkbg-typo-control {
1492 + margin-bottom: 4px;
1493 +}
1494 +
1495 +.bkbg-typo-label-row {
1496 + display: flex;
1497 + align-items: center;
1498 + justify-content: space-between;
1499 + padding: 6px 0;
1500 + border-bottom: 1px solid #f0f0f0;
1501 + min-height: 36px;
1502 +}
1503 +
1504 +.bkbg-typo-label {
1505 + font-size: 13px;
1506 + font-weight: 500;
1507 + color: #4f5b66;
1508 + flex: 1;
1509 +}
1510 +
1511 +.bkbg-typo-label.has-value {
1512 + color: #1e1e1e;
1513 +}
1514 +
1515 +.bkbg-typo-edit-btn {
1516 + display: flex !important;
1517 + align-items: center !important;
1518 + justify-content: center !important;
1519 + width: 30px !important;
1520 + height: 30px !important;
1521 + min-width: 30px !important;
1522 + padding: 0 !important;
1523 + border: 1px solid #e0e0e0 !important;
1524 + border-radius: 4px !important;
1525 + background: #f8f9fa !important;
1526 + color: #757575 !important;
1527 + transition: all 0.15s ease !important;
1528 + flex-shrink: 0;
1529 +}
1530 +
1531 +.bkbg-typo-edit-btn:hover,
1532 +.bkbg-typo-edit-btn.has-value {
1533 + border-color: #8668ff !important;
1534 + color: #8668ff !important;
1535 + background: #f4f0ff !important;
1536 +}
1537 +
1538 +/* Typography popover panel */
1539 +.bkbg-typo-popover .components-popover__content {
1540 + padding: 0 !important;
1541 + min-width: 280px !important;
1542 + max-width: 310px !important;
1543 + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.18) !important;
1544 + border-radius: 8px !important;
1545 + overflow-x: hidden !important;
1546 + overflow-y: scroll !important;
1547 + border: 1px solid #e0e0e0 !important;
1548 +}
1549 +
1550 +/* macOS-style scrollbar — always visible, light grey */
1551 +.bkbg-typo-popover .components-popover__content::-webkit-scrollbar {
1552 + width: 6px;
1553 +}
1554 +.bkbg-typo-popover .components-popover__content::-webkit-scrollbar-track {
1555 + background: transparent;
1556 + border-radius: 0 8px 8px 0;
1557 +}
1558 +.bkbg-typo-popover .components-popover__content::-webkit-scrollbar-thumb {
1559 + background: #d0d0d0;
1560 + border-radius: 3px;
1561 + transition: background 0.2s;
1562 +}
1563 +.bkbg-typo-popover .components-popover__content::-webkit-scrollbar-thumb:hover {
1564 + background: #b8b8b8;
1565 +}
1566 +.bkbg-typo-popover .components-popover__content::-webkit-scrollbar-button {
1567 + display: none;
1568 +}
1569 +
1570 +.bkbg-typo-panel {
1571 + background: #fff;
1572 + border-radius: 8px;
1573 + overflow: hidden;
1574 +}
1575 +
1576 +/* Panel header */
1577 +.bkbg-typo-panel-header {
1578 + display: flex;
1579 + align-items: center;
1580 + justify-content: space-between;
1581 + padding: 12px 14px 10px;
1582 + background: #fafafa;
1583 + border-bottom: 1px solid #ebebeb;
1584 +}
1585 +
1586 +.bkbg-typo-panel-title {
1587 + font-size: 12px;
1588 + font-weight: 700;
1589 + text-transform: uppercase;
1590 + letter-spacing: 0.6px;
1591 + color: #4f5b66;
1592 +}
1593 +
1594 +.bkbg-typo-panel-actions {
1595 + display: flex;
1596 + align-items: center;
1597 + gap: 4px;
1598 +}
1599 +
1600 +.bkbg-typo-header-btn {
1601 + display: flex !important;
1602 + align-items: center !important;
1603 + justify-content: center !important;
1604 + width: 24px !important;
1605 + height: 24px !important;
1606 + min-width: 24px !important;
1607 + padding: 0 !important;
1608 + border-radius: 4px !important;
1609 + color: #757575 !important;
1610 + background: transparent !important;
1611 + border: none !important;
1612 +}
1613 +
1614 +.bkbg-typo-header-btn:hover {
1615 + background: #f0f0f0 !important;
1616 + color: #1e1e1e !important;
1617 +}
1618 +
1619 +/* Individual field row */
1620 +.bkbg-typo-field {
1621 + padding: 8px 14px;
1622 + border-bottom: 1px solid #f5f5f5;
1623 +}
1624 +
1625 +.bkbg-typo-field:last-child {
1626 + border-bottom: none;
1627 +}
1628 +
1629 +.bkbg-typo-field-label {
1630 + display: block;
1631 + font-size: 11px;
1632 + font-weight: 600;
1633 + text-transform: uppercase;
1634 + letter-spacing: 0.4px;
1635 + color: #888;
1636 + margin-bottom: 6px;
1637 +}
1638 +
1639 +.bkbg-typo-field .components-select-control__input,
1640 +.bkbg-typo-field .components-base-control,
1641 +.bkbg-typo-field .components-input-control {
1642 + margin-bottom: 0 !important;
1643 +}
1644 +
1645 +/* Responsive field (has device + unit selectors) */
1646 +.bkbg-typo-responsive-field {
1647 + padding-bottom: 12px;
1648 +}
1649 +
1650 +.bkbg-typo-field-header {
1651 + display: flex;
1652 + align-items: center;
1653 + justify-content: space-between;
1654 + margin-bottom: 8px;
1655 +}
1656 +
1657 +.bkbg-typo-field-header-right {
1658 + display: flex;
1659 + align-items: center;
1660 + gap: 4px;
1661 +}
1662 +
1663 +/* Slider + number input row */
1664 +.bkbg-typo-slider-row {
1665 + display: flex;
1666 + align-items: center;
1667 + gap: 8px;
1668 +}
1669 +
1670 +.bkbg-typo-range {
1671 + flex: 1;
1672 + -webkit-appearance: none;
1673 + appearance: none;
1674 + height: 4px;
1675 + background: #e0e0e0;
1676 + border-radius: 2px;
1677 + outline: none;
1678 + cursor: pointer;
1679 +}
1680 +
1681 +.bkbg-typo-range::-webkit-slider-thumb {
1682 + -webkit-appearance: none;
1683 + appearance: none;
1684 + width: 14px;
1685 + height: 14px;
1686 + border-radius: 50%;
1687 + background: #8668ff;
1688 + cursor: pointer;
1689 + box-shadow: 0 1px 4px rgba(134, 104, 255, 0.4);
1690 +}
1691 +
1692 +.bkbg-typo-range::-moz-range-thumb {
1693 + width: 14px;
1694 + height: 14px;
1695 + border-radius: 50%;
1696 + background: #8668ff;
1697 + cursor: pointer;
1698 + border: none;
1699 +}
1700 +
1701 +.bkbg-typo-number {
1702 + width: 52px !important;
1703 + min-width: 52px !important;
1704 + padding: 4px 6px !important;
1705 + border: 1px solid #e0e0e0 !important;
1706 + border-radius: 4px !important;
1707 + font-size: 12px !important;
1708 + text-align: center !important;
1709 + color: #1e1e1e !important;
1710 + background: #fff !important;
1711 + transition: border-color 0.15s ease !important;
1712 +}
1713 +
1714 +.bkbg-typo-number:focus {
1715 + border-color: #8668ff !important;
1716 + outline: none !important;
1717 + box-shadow: 0 0 0 1px rgba(134, 104, 255, 0.25) !important;
1718 +}
1719 +
1720 +/* Scope unit/device popovers inside typo popover */
1721 +.bkbg-typo-popover .bkbg-unit-btn {
1722 + font-size: 11px !important;
1723 +}
1724 +
1725 +/* Custom HTML is used as full-width page sections. Theme content-size otherwise boxes and centers it.
1726 + Do not use 100vw here: it includes the scrollbar and padding, so sections overflow the canvas. */
1727 +.editor-styles-wrapper .block-editor-block-list__block[data-type="core/html"] {
1728 + max-width: none !important;
1729 + width: 100%;
1730 + box-sizing: border-box;
1731 + overflow-x: clip;
1732 +}
1733 +
1734 +.editor-styles-wrapper .block-editor-block-list__layout.is-root-container > .block-editor-block-list__block[data-type="core/html"] {
1735 + margin-left: calc(-1 * var(--wp--style--root--padding-left, 0px)) !important;
1736 + margin-right: calc(-1 * var(--wp--style--root--padding-right, 0px)) !important;
1737 + width: auto !important;
1738 + max-width: none !important;
1739 +}
1740 +
1741 +.editor-styles-wrapper .block-editor-block-list__block[data-type="core/html"] > :where(section, div, header, footer, article, main, aside),
1742 +.editor-styles-wrapper .block-editor-block-list__block[data-type="core/html"] .block-editor-inner-content > :where(section, div, header, footer, article, main, aside) {
1743 + box-sizing: border-box !important;
1744 + width: 100% !important;
1745 + max-width: 100% !important;
1746 + margin-left: 0 !important;
1747 + margin-right: 0 !important;
1748 + left: auto !important;
1749 + transform: none !important;
1750 +}
1751 +
1752 +.editor-styles-wrapper.bkbg-ai-html-picking [data-type="core/html"] {
1753 + cursor: crosshair;
1754 +}
1755 +
1756 +.editor-styles-wrapper [data-bkbg-html-target] {
1757 + outline: 2px solid #8668ff;
1758 + outline-offset: 3px;
1759 + position: relative;
1760 +}
1761 +
1762 +.editor-styles-wrapper .block-editor-block-list__block[data-type="core/html"] img,
1763 +.editor-styles-wrapper .block-editor-block-list__block[data-type="core/html"] video,
1764 +.editor-styles-wrapper .block-editor-block-list__block[data-type="core/html"] iframe {
1765 + max-width: 100%;
1766 + height: auto;
1767 +}
1768 +