/** * Blockenberg Editor Styles * Common styles for all blocks in editor */ /* ======================================== Block Inserter: BKB Badge on Icons ======================================== */ /* Target Blockenberg blocks in block inserter */ .block-editor-block-types-list__item[class*="blockenberg-"] .block-editor-block-types-list__item-icon, .block-editor-inserter__panel-content [class*="blockenberg-"] .block-editor-block-types-list__item-icon { position: relative; } .block-editor-block-types-list__item[class*="blockenberg-"] .block-editor-block-types-list__item-icon::after, .block-editor-inserter__panel-content [class*="blockenberg-"] .block-editor-block-types-list__item-icon::after { content: 'BKB'; position: absolute; bottom: -2px; right: -2px; background: var(--wp-admin-theme-color, #007cba); color: #fff; font-size: 7px; font-weight: 700; padding: 1px 3px; border-radius: 3px; line-height: 1; letter-spacing: 0.3px; } /* ======================================== Editor: Block Wrapper & Hover States ======================================== */ .editor-styles-wrapper .bkbg-editor-wrap, .block-editor-block-list__block.bkbg-editor-wrap { position: relative; border: 1px dashed transparent !important; border-radius: 4px; transition: border-color 0.15s ease; } .editor-styles-wrapper .bkbg-editor-wrap:hover, .block-editor-block-list__block.bkbg-editor-wrap:hover { border-color: rgba(0, 124, 186, 0.5) !important; } .editor-styles-wrapper .bkbg-editor-wrap.is-selected, .editor-styles-wrapper .bkbg-editor-wrap.bkbg-block-selected, .block-editor-block-list__block.bkbg-editor-wrap.is-selected { border-color: #007cba !important; border-style: solid !important; } /* Block label in editor */ .bkbg-editor-wrap::before { content: attr(data-block-label); position: absolute; top: -10px; left: 10px; background: #007cba; color: #fff; font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 3px; opacity: 0; transition: opacity 0.15s ease; pointer-events: none; z-index: 10; text-transform: uppercase; letter-spacing: 0.5px; } .bkbg-editor-wrap:hover::before, .bkbg-editor-wrap.is-selected::before { opacity: 1; } /* ======================================== Layout Blocks: Section / Row / Column ======================================== */ /* Layout block hierarchy visualization */ .editor-styles-wrapper [data-type="blockenberg/section"], .editor-styles-wrapper [data-type="blockenberg/row"], .editor-styles-wrapper [data-type="blockenberg/column"] { position: relative; } /* Section block editor styles */ .editor-styles-wrapper [data-type="blockenberg/section"] { margin-top: 24px; margin-bottom: 24px; } .editor-styles-wrapper [data-type="blockenberg/section"]:first-child { margin-top: 0; } /* Row block editor styles */ .editor-styles-wrapper [data-type="blockenberg/row"] { margin-top: 16px; margin-bottom: 16px; } .editor-styles-wrapper [data-type="blockenberg/row"]:first-child { margin-top: 0; } /* Ensure row inner blocks display as flex - direct children only */ .editor-styles-wrapper [data-type="blockenberg/row"] > .bkbg-row > .bkbg-row__inner > .block-editor-inner-blocks > .block-editor-block-list__layout { display: flex !important; flex-wrap: nowrap !important; align-items: stretch !important; width: 100% !important; overflow: hidden !important; } /* Column blocks in editor - force width constraints */ .editor-styles-wrapper [data-type="blockenberg/row"] > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="blockenberg/column"] { flex-shrink: 0 !important; flex-grow: 0 !important; min-width: 0 !important; max-width: none; } /* Remove default Gutenberg margins on columns */ .editor-styles-wrapper [data-type="blockenberg/column"] { margin-left: 0 !important; margin-right: 0 !important; } /* ======================================== Layout Block: Visual Hierarchy Indicators ======================================== */ /* Section outline */ .editor-styles-wrapper [data-type="blockenberg/section"] > .bkbg-section { position: relative; } .editor-styles-wrapper [data-type="blockenberg/section"] > .bkbg-section::after { content: ''; position: absolute; top: -2px; left: -2px; right: -2px; bottom: -2px; border: 2px dashed transparent; border-radius: 6px; pointer-events: none; transition: border-color 0.15s ease; } .editor-styles-wrapper [data-type="blockenberg/section"].is-selected > .bkbg-section::after, .editor-styles-wrapper [data-type="blockenberg/section"]:focus-within > .bkbg-section::after { border-color: rgba(59, 130, 246, 0.3); } /* Row outline */ .editor-styles-wrapper [data-type="blockenberg/row"] > .bkbg-row::after { content: ''; position: absolute; top: -1px; left: -1px; right: -1px; bottom: -1px; border: 1px dashed transparent; border-radius: 4px; pointer-events: none; transition: border-color 0.15s ease; } .editor-styles-wrapper [data-type="blockenberg/row"].is-selected > .bkbg-row::after, .editor-styles-wrapper [data-type="blockenberg/row"]:focus-within > .bkbg-row::after { border-color: rgba(59, 130, 246, 0.4); } /* ======================================== Layout Block: Drag Resize Handles ======================================== */ /* Ensure handles overlay is above content */ .editor-styles-wrapper .bkbg-row__handles-overlay { z-index: 100; } /* Handle hover effect enhancement */ .editor-styles-wrapper .bkbg-row__resize-handle:hover .bkbg-row__resize-handle-line { box-shadow: 0 0 0 4px rgba(59, 130, 246, 0.15); } /* Handle active/dragging state */ .editor-styles-wrapper .bkbg-row__resize-handle.is-resizing .bkbg-row__resize-handle-line { box-shadow: 0 0 0 6px rgba(59, 130, 246, 0.2); } /* Cursor override during resize */ .editor-styles-wrapper .bkbg-row--is-resizing, .editor-styles-wrapper .bkbg-row--is-resizing * { cursor: col-resize !important; } /* ======================================== Layout Block: Responsive Mode Preview ======================================== */ /* Tablet mode preview styling */ .editor-styles-wrapper .bkbg-row--mode-tablet { background-image: repeating-linear-gradient( 90deg, transparent, transparent 10px, rgba(59, 130, 246, 0.02) 10px, rgba(59, 130, 246, 0.02) 20px ); } /* Mobile mode preview styling */ .editor-styles-wrapper .bkbg-row--mode-mobile { background-image: repeating-linear-gradient( 90deg, transparent, transparent 8px, rgba(234, 88, 12, 0.02) 8px, rgba(234, 88, 12, 0.02) 16px ); } /* Mode badge color variants */ .editor-styles-wrapper .bkbg-row--mode-tablet .bkbg-row__mode-badge { background: #8b5cf6; } .editor-styles-wrapper .bkbg-row--mode-mobile .bkbg-row__mode-badge { background: #ea580c; } /* ======================================== Layout Block: Empty State ======================================== */ /* Empty column placeholder */ .editor-styles-wrapper .bkbg-column:empty::before, .editor-styles-wrapper .bkbg-column .bkbg-column__inner:empty::before { content: 'Add content'; display: flex; align-items: center; justify-content: center; min-height: 60px; color: #94a3b8; font-size: 12px; font-style: italic; } /* Empty row placeholder */ .editor-styles-wrapper .bkbg-row .bkbg-row__inner:empty::before { content: 'Add columns'; display: flex; align-items: center; justify-content: center; min-height: 50px; color: #94a3b8; font-size: 12px; font-style: italic; } /* ======================================== Layout Block: Toolbar & Controls ======================================== */ /* Preset buttons in inspector */ .bkbg-row-presets { display: flex; flex-direction: column; gap: 6px; } .bkbg-row-presets .components-button { justify-content: flex-start; width: 100%; padding: 8px 12px; } .bkbg-row-presets .components-button:hover { background: #f1f5f9; } /* Column width controls */ .bkbg-column-widths-controls .components-range-control__wrapper { margin-bottom: 12px; } /* ======================================== Layout Block: Selection States ======================================== */ /* When section is selected */ .editor-styles-wrapper [data-type="blockenberg/section"].is-selected { z-index: 1; } /* When row is selected inside section */ .editor-styles-wrapper [data-type="blockenberg/section"] [data-type="blockenberg/row"].is-selected { z-index: 2; } /* When column is selected inside row */ .editor-styles-wrapper [data-type="blockenberg/row"] [data-type="blockenberg/column"].is-selected { z-index: 3; } /* ======================================== Layout Block: Appender Buttons ======================================== */ /* Row appender */ .editor-styles-wrapper .bkbg-row .block-list-appender { display: flex; align-items: center; justify-content: center; min-width: 48px; margin: 0 8px; } /* Column appender */ .editor-styles-wrapper .bkbg-column .block-list-appender { min-height: 48px; display: flex; align-items: center; justify-content: center; } /* Section appender */ .editor-styles-wrapper .bkbg-section .block-list-appender { margin-top: 16px; }