PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.3
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.3
2.0.14 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
blockenberg / blocks / column / style.css

style.css in Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor 2.0.3, at blocks/column/style.css

428 lines 13.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /* ========================================
2 Column Block Styles
3 Prefix: bkbg-column
4 ======================================== */
5
6 /* CSS Custom Properties */
7 .bkbg-column {
8 --bkbg-col-desktop: 50%;
9 --bkbg-col-tablet: 50%;
10 --bkbg-col-mobile: 100%;
11 --bkbg-col-padding-none: 0;
12 --bkbg-col-padding-xs: 8px;
13 --bkbg-col-padding-s: 16px;
14 --bkbg-col-padding-m: 24px;
15 --bkbg-col-padding-l: 32px;
16 --bkbg-col-padding-xl: 48px;
17 position: relative;
18 box-sizing: border-box;
19 min-height: 1px;
20 min-width: 0;
21 overflow: visible;
22 }
23
24 /* Default desktop width */
25 .bkbg-column {
26 flex: 0 0 var(--bkbg-col-desktop);
27 max-width: var(--bkbg-col-desktop);
28 width: var(--bkbg-col-desktop);
29 }
30
31 /* Column inner container */
32 .bkbg-column__inner {
33 width: 100%;
34 min-height: 100%;
35 box-sizing: border-box;
36 display: flex;
37 flex-direction: column;
38 }
39
40 /* Inner Padding Variants */
41 .bkbg-column--padding-none .bkbg-column__inner {
42 padding: var(--bkbg-col-padding-none);
43 }
44
45 .bkbg-column--padding-xs .bkbg-column__inner {
46 padding: var(--bkbg-col-padding-xs);
47 }
48
49 .bkbg-column--padding-s .bkbg-column__inner {
50 padding: var(--bkbg-col-padding-s);
51 }
52
53 .bkbg-column--padding-m .bkbg-column__inner {
54 padding: var(--bkbg-col-padding-m);
55 }
56
57 .bkbg-column--padding-l .bkbg-column__inner {
58 padding: var(--bkbg-col-padding-l);
59 }
60
61 .bkbg-column--padding-xl .bkbg-column__inner {
62 padding: var(--bkbg-col-padding-xl);
63 }
64
65 /* ========================================
66 Responsive Breakpoints
67 ======================================== */
68
69 /* Tablet: 768px - 1024px */
70 @media (min-width: 768px) and (max-width: 1024px) {
71 .bkbg-column {
72 flex-basis: var(--bkbg-col-tablet, var(--bkbg-col-desktop));
73 max-width: var(--bkbg-col-tablet, var(--bkbg-col-desktop));
74 width: var(--bkbg-col-tablet, var(--bkbg-col-desktop));
75 }
76 }
77
78 /* Mobile: < 768px */
79 @media (max-width: 767px) {
80 .bkbg-column {
81 flex-basis: var(--bkbg-col-mobile, 100%);
82 max-width: var(--bkbg-col-mobile, 100%);
83 width: var(--bkbg-col-mobile, 100%);
84 }
85
86 /* Stack on mobile override */
87 .bkbg-row--stack-mobile .bkbg-column {
88 flex-basis: 100% !important;
89 max-width: 100% !important;
90 width: 100% !important;
91 }
92 }
93
94 /* ========================================
95 Editor-specific Styles
96 ======================================== */
97
98 /* Column in editor */
99 .editor-styles-wrapper .bkbg-column {
100 min-height: 40px;
101 border: 1px dashed transparent;
102 border-radius: 3px;
103 transition: border-color 0.15s ease, background-color 0.15s ease;
104 }
105
106 .editor-styles-wrapper .bkbg-column:hover {
107 border-color: rgba(59, 130, 246, 0.25);
108 background-color: rgba(59, 130, 246, 0.02);
109 }
110
111 .editor-styles-wrapper .bkbg-column.is-selected,
112 .editor-styles-wrapper .bkbg-column:focus-within {
113 border-color: rgba(59, 130, 246, 0.4);
114 background-color: rgba(59, 130, 246, 0.03);
115 }
116
117 /* ========================================
118 Column Hover Move Controls (Editor)
119 ======================================== */
120
121 .bkbg-column__move-actions {
122 position: absolute;
123 top: 0;
124 left: 50%;
125 transform: translate(-50%, -100%);
126 display: flex;
127 gap: 2px;
128 padding: 2px 3px;
129 background: rgba(59, 130, 246, 0.04);
130 border: 1px dashed rgba(59, 130, 246, 0.35);
131 border-radius: 999px;
132 opacity: 0;
133 visibility: hidden;
134 pointer-events: none;
135 transition: opacity 0.15s ease, visibility 0.15s ease;
136 z-index: 5;
137 }
138
139 .editor-styles-wrapper .bkbg-column:hover .bkbg-column__move-actions,
140 .editor-styles-wrapper .bkbg-column.is-selected .bkbg-column__move-actions,
141 .editor-styles-wrapper .bkbg-column:focus-within .bkbg-column__move-actions {
142 opacity: 1;
143 visibility: visible;
144 pointer-events: auto;
145 }
146
147 .bkbg-column__move-btn {
148 display: flex !important;
149 align-items: center !important;
150 justify-content: center !important;
151 width: 22px !important;
152 height: 22px !important;
153 min-width: 22px !important;
154 padding: 0 !important;
155 background: transparent !important;
156 border: none !important;
157 border-radius: 6px !important;
158 color: rgba(59, 130, 246, 0.85) !important;
159 opacity: 0.85;
160 }
161
162 .bkbg-column__move-btn:hover:not(:disabled) {
163 background: rgba(59, 130, 246, 0.10) !important;
164 color: #2563eb !important;
165 opacity: 1;
166 }
167
168 .bkbg-column__move-btn:disabled {
169 opacity: 0.25 !important;
170 cursor: not-allowed !important;
171 }
172
173 .bkbg-column__move-btn svg {
174 width: 16px !important;
175 height: 16px !important;
176 fill: currentColor !important;
177 }
178
179 /* Don't show move controls while resizing the row */
180 .bkbg-row--is-resizing .bkbg-column__move-actions {
181 display: none !important;
182 }
183
184 /* Width label in editor */
185 .bkbg-column__width-label {
186 position: absolute;
187 bottom: -16px;
188 left: 50%;
189 transform: translateX(-50%);
190 font-size: 9px;
191 font-weight: 600;
192 color: #64748b;
193 background: #f1f5f9;
194 padding: 1px 5px;
195 border-radius: 2px;
196 opacity: 0;
197 transition: opacity 0.15s ease;
198 pointer-events: none;
199 z-index: 1;
200 white-space: nowrap;
201 }
202
203 .editor-styles-wrapper .bkbg-column:hover .bkbg-column__width-label,
204 .editor-styles-wrapper .bkbg-column.is-selected .bkbg-column__width-label {
205 opacity: 1;
206 }
207
208 /* Ensure inner blocks fill column */
209 .editor-styles-wrapper .bkbg-column .bkbg-column__inner {
210 min-height: 40px;
211 }
212
213 .editor-styles-wrapper .bkbg-column .block-editor-inner-blocks {
214 width: 100%;
215 }
216
217 .editor-styles-wrapper .bkbg-column .block-editor-block-list__layout {
218 width: 100%;
219 }
220
221 /* Column width controls in inspector */
222 .bkbg-column-widths-controls {
223 margin-top: 8px;
224 }
225
226 .bkbg-column-widths-controls .components-range-control {
227 margin-bottom: 16px;
228 }
229
230 /* Column info in inspector */
231 .bkbg-column-info {
232 font-size: 12px;
233 color: #64748b;
234 }
235
236 .bkbg-column-info p {
237 margin: 4px 0;
238 }
239
240 .bkbg-column-info strong {
241 color: #1e293b;
242 }
243
244 /* ========================================
245 Block Appender Styling - Context aware
246 ======================================== */
247
248 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks .block-editor-inserter {
249 width: 100%;
250 display: flex;
251 justify-content: center;
252 }
253
254 /* Make sure the layout can contain positioned appender */
255 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout {
256 position: relative;
257 min-height: 40px;
258 }
259
260 /* ----------------------------------------
261 EMPTY COLUMN: Full drop zone with outline icon
262 ---------------------------------------- */
263
264 /* When appender is the only child = empty column */
265 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child {
266 position: relative !important;
267 width: 100% !important;
268 margin: 0 !important;
269 opacity: 0;
270 pointer-events: none;
271 transition: opacity 0.15s ease;
272 }
273
274 /* Show empty column drop zone only when parent SECTION is hovered/selected */
275 .editor-styles-wrapper [data-type="blockenberg/section"]:hover .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child,
276 .editor-styles-wrapper [data-type="blockenberg/section"].is-selected .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child,
277 .editor-styles-wrapper [data-type="blockenberg/section"]:focus-within .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child {
278 opacity: 1;
279 pointer-events: auto;
280 }
281
282 /* Empty column drop zone style */
283 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-button-block-appender {
284 background: transparent !important;
285 border: 2px dashed rgba(59, 130, 246, 0.3) !important;
286 border-radius: 6px !important;
287 width: 100% !important;
288 height: auto !important;
289 min-height: 60px !important;
290 min-width: 100% !important;
291 padding: 16px !important;
292 display: flex !important;
293 align-items: center !important;
294 justify-content: center !important;
295 box-shadow: none !important;
296 transition: border-color 0.15s ease, background-color 0.15s ease;
297 }
298
299 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-button-block-appender:hover {
300 background: rgba(59, 130, 246, 0.05) !important;
301 border-color: rgba(59, 130, 246, 0.5) !important;
302 transform: none;
303 }
304
305 /* Outline plus icon for empty column */
306 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-button-block-appender svg {
307 fill: none !important;
308 stroke: rgba(59, 130, 246, 0.5) !important;
309 stroke-width: 2px !important;
310 width: 24px !important;
311 height: 24px !important;
312 }
313
314 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-button-block-appender:hover svg {
315 stroke: rgba(59, 130, 246, 0.8) !important;
316 }
317
318 /* ----------------------------------------
319 COLUMN WITH CONTENT: Hide appender completely
320 ---------------------------------------- */
321
322 /* When appender is NOT the only child = has content - hide it */
323 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:not(:only-child) {
324 display: none !important;
325 }
326
327 /* Ensure inner blocks layout is flex column - direct children only */
328 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks {
329 display: flex;
330 flex-direction: column;
331 flex: 1;
332 }
333
334 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout {
335 display: flex;
336 flex-direction: column;
337 flex: 1;
338 }
339
340 /* ========================================
341 Prevent column shrink/grow issues
342 ======================================== */
343
344 .bkbg-column {
345 flex-shrink: 0 !important;
346 flex-grow: 0 !important;
347 }
348
349 /* Editor: Ensure column wrapper respects width */
350 .editor-styles-wrapper [data-type="blockenberg/column"] {
351 flex: 0 0 auto !important;
352 min-width: 0 !important;
353 }
354
355 /* Allow flex grow only when explicitly needed */
356 .bkbg-row--flex-grow .bkbg-column {
357 flex-grow: 1;
358 }
359
360 /* ========================================
361 Drag and Drop States
362 ======================================== */
363
364 /* Show drop zones when dragging blocks globally */
365 body.bkbg-is-dragging .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child {
366 opacity: 1 !important;
367 pointer-events: auto !important;
368 }
369
370 /* Show all borders during drag - like hover state */
371 body.bkbg-is-dragging .bkbg-section {
372 border-color: rgba(59, 130, 246, 0.3) !important;
373 }
374
375 body.bkbg-is-dragging .bkbg-row {
376 border-color: rgba(59, 130, 246, 0.3) !important;
377 }
378
379 body.bkbg-is-dragging .bkbg-column {
380 border-color: rgba(59, 130, 246, 0.25) !important;
381 }
382
383 /* Highlight when dragging over - stronger highlight */
384 body.bkbg-is-dragging .bkbg-section.bkbg-drop-target {
385 border-color: rgba(59, 130, 246, 0.6) !important;
386 background-color: rgba(59, 130, 246, 0.03) !important;
387 }
388
389 body.bkbg-is-dragging .bkbg-row.bkbg-drop-target {
390 border-color: rgba(59, 130, 246, 0.6) !important;
391 background-color: rgba(59, 130, 246, 0.03) !important;
392 }
393
394 body.bkbg-is-dragging .bkbg-column.bkbg-drop-target {
395 border-color: rgba(59, 130, 246, 0.6) !important;
396 background-color: rgba(59, 130, 246, 0.05) !important;
397 }
398
399 /* Highlight drop zone (appender button) when dragging over */
400 .block-editor-button-block-appender.bkbg-drop-target,
401 .bkbg-column .block-editor-button-block-appender.bkbg-drop-target,
402 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-button-block-appender.bkbg-drop-target {
403 background: rgba(59, 130, 246, 0.15) !important;
404 border-color: rgba(59, 130, 246, 0.8) !important;
405 border-style: solid !important;
406 }
407
408 .block-editor-button-block-appender.bkbg-drop-target svg,
409 .bkbg-column .block-editor-button-block-appender.bkbg-drop-target svg,
410 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child .block-editor-button-block-appender.bkbg-drop-target svg {
411 stroke: rgba(59, 130, 246, 1) !important;
412 fill: rgba(59, 130, 246, 0.3) !important;
413 }
414
415 /* Also highlight when parent block-list-appender has bkbg-drop-target */
416 .block-list-appender.bkbg-drop-target .block-editor-button-block-appender,
417 .editor-styles-wrapper .bkbg-column .block-list-appender.bkbg-drop-target .block-editor-button-block-appender {
418 background: rgba(59, 130, 246, 0.15) !important;
419 border-color: rgba(59, 130, 246, 0.8) !important;
420 border-style: solid !important;
421 }
422
423 .block-list-appender.bkbg-drop-target .block-editor-button-block-appender svg,
424 .editor-styles-wrapper .bkbg-column .block-list-appender.bkbg-drop-target .block-editor-button-block-appender svg {
425 stroke: rgba(59, 130, 246, 1) !important;
426 fill: rgba(59, 130, 246, 0.3) !important;
427 }
428