PluginProbe
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor / 2.0.8
Blockenberg — 600+ Advanced Gutenberg Blocks & AI Agent for WordPress Block Editor v2.0.8
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.8, at blocks/column/style.css

520 lines 17.4 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 /* Column Vertical Alignment */
41 .bkbg-column--valign-top .bkbg-column__inner {
42 justify-content: flex-start;
43 }
44
45 .bkbg-column--valign-middle .bkbg-column__inner {
46 justify-content: center;
47 }
48
49 .bkbg-column--valign-bottom .bkbg-column__inner {
50 justify-content: flex-end;
51 }
52
53 /* Inner Padding Variants */
54 .bkbg-column--padding-none .bkbg-column__inner {
55 padding: var(--bkbg-col-padding-none);
56 }
57
58 .bkbg-column--padding-xs .bkbg-column__inner {
59 padding: var(--bkbg-col-padding-xs);
60 }
61
62 .bkbg-column--padding-s .bkbg-column__inner {
63 padding: var(--bkbg-col-padding-s);
64 }
65
66 .bkbg-column--padding-m .bkbg-column__inner {
67 padding: var(--bkbg-col-padding-m);
68 }
69
70 .bkbg-column--padding-l .bkbg-column__inner {
71 padding: var(--bkbg-col-padding-l);
72 }
73
74 .bkbg-column--padding-xl .bkbg-column__inner {
75 padding: var(--bkbg-col-padding-xl);
76 }
77
78 /* Typography */
79 .bkbg-column { font-size: var(--bkbg-col-cn-font-size-d, 16px); font-weight: var(--bkbg-col-cn-font-weight, 400); line-height: var(--bkbg-col-cn-line-height-d, 1.6); font-family: var(--bkbg-col-cn-font-family, inherit); font-style: var(--bkbg-col-cn-font-style, normal); text-transform: var(--bkbg-col-cn-text-transform, none); text-decoration: var(--bkbg-col-cn-text-decoration, none); letter-spacing: var(--bkbg-col-cn-letter-spacing-d, normal); word-spacing: var(--bkbg-col-cn-word-spacing-d, normal); }
80
81 /* ========================================
82 Responsive Breakpoints
83 ======================================== */
84
85 /* Tablet: 768px - 1024px */
86 @media (min-width: 768px) and (max-width: 1024px) {
87 .bkbg-column {
88 flex-basis: var(--bkbg-col-tablet, var(--bkbg-col-desktop));
89 max-width: var(--bkbg-col-tablet, var(--bkbg-col-desktop));
90 width: var(--bkbg-col-tablet, var(--bkbg-col-desktop));
91 }
92 .bkbg-column { font-size: var(--bkbg-col-cn-font-size-t, var(--bkbg-col-cn-font-size-d, 16px)); line-height: var(--bkbg-col-cn-line-height-t, var(--bkbg-col-cn-line-height-d, 1.6)); letter-spacing: var(--bkbg-col-cn-letter-spacing-t, var(--bkbg-col-cn-letter-spacing-d, normal)); word-spacing: var(--bkbg-col-cn-word-spacing-t, var(--bkbg-col-cn-word-spacing-d, normal)); }
93 }
94
95 /* Mobile: < 768px */
96 @media (max-width: 767px) {
97 .bkbg-column {
98 flex-basis: var(--bkbg-col-mobile, 100%);
99 max-width: var(--bkbg-col-mobile, 100%);
100 width: var(--bkbg-col-mobile, 100%);
101 }
102
103 /* Stack on mobile override */
104 .bkbg-row--stack-mobile .bkbg-column {
105 flex-basis: 100% !important;
106 max-width: 100% !important;
107 width: 100% !important;
108 }
109 .bkbg-column { font-size: var(--bkbg-col-cn-font-size-m, var(--bkbg-col-cn-font-size-t, var(--bkbg-col-cn-font-size-d, 16px))); line-height: var(--bkbg-col-cn-line-height-m, var(--bkbg-col-cn-line-height-t, var(--bkbg-col-cn-line-height-d, 1.6))); letter-spacing: var(--bkbg-col-cn-letter-spacing-m, var(--bkbg-col-cn-letter-spacing-t, var(--bkbg-col-cn-letter-spacing-d, normal))); word-spacing: var(--bkbg-col-cn-word-spacing-m, var(--bkbg-col-cn-word-spacing-t, var(--bkbg-col-cn-word-spacing-d, normal))); }
110 }
111
112 /* ========================================
113 Editor-specific Styles
114 ======================================== */
115
116 /* Column in editor */
117 .editor-styles-wrapper .bkbg-column {
118 min-height: 40px;
119 border: 1px dashed transparent;
120 border-radius: 3px;
121 transition: border-color 0.15s ease, background-color 0.15s ease;
122 }
123
124 .editor-styles-wrapper .bkbg-column:hover {
125 border-color: rgba(59, 130, 246, 0.25);
126 background-color: rgba(59, 130, 246, 0.02);
127 }
128
129 .editor-styles-wrapper .bkbg-column.is-selected,
130 .editor-styles-wrapper .bkbg-column:focus-within {
131 border-color: rgba(59, 130, 246, 0.4);
132 background-color: rgba(59, 130, 246, 0.03);
133 }
134
135 /* ========================================
136 Column Hover Move Controls (Editor)
137 ======================================== */
138
139 .bkbg-column__move-actions {
140 position: absolute;
141 top: 0;
142 left: 50%;
143 transform: translate(-50%, -100%);
144 display: flex;
145 gap: 2px;
146 padding: 2px 3px;
147 background: rgba(59, 130, 246, 0.04);
148 border: 1px dashed rgba(59, 130, 246, 0.35);
149 border-radius: 999px;
150 opacity: 0;
151 visibility: hidden;
152 pointer-events: none;
153 transition: opacity 0.15s ease, visibility 0.15s ease;
154 z-index: 5;
155 }
156
157 .editor-styles-wrapper .bkbg-column:hover .bkbg-column__move-actions,
158 .editor-styles-wrapper .bkbg-column.is-selected .bkbg-column__move-actions,
159 .editor-styles-wrapper .bkbg-column:focus-within .bkbg-column__move-actions {
160 opacity: 1;
161 visibility: visible;
162 pointer-events: auto;
163 }
164
165 .bkbg-column__move-btn {
166 display: flex !important;
167 align-items: center !important;
168 justify-content: center !important;
169 width: 22px !important;
170 height: 22px !important;
171 min-width: 22px !important;
172 padding: 0 !important;
173 background: transparent !important;
174 border: none !important;
175 border-radius: 6px !important;
176 color: rgba(59, 130, 246, 0.85) !important;
177 opacity: 0.85;
178 }
179
180 .bkbg-column__move-btn:hover:not(:disabled) {
181 background: rgba(59, 130, 246, 0.10) !important;
182 color: #2563eb !important;
183 opacity: 1;
184 }
185
186 .bkbg-column__move-btn:disabled {
187 opacity: 0.25 !important;
188 cursor: not-allowed !important;
189 }
190
191 .bkbg-column__move-btn svg {
192 width: 16px !important;
193 height: 16px !important;
194 fill: currentColor !important;
195 }
196
197 /* Don't show move controls while resizing the row */
198 .bkbg-row--is-resizing .bkbg-column__move-actions {
199 display: none !important;
200 }
201
202 /* Width label in editor */
203 .bkbg-column__width-label {
204 position: absolute;
205 bottom: -16px;
206 left: 50%;
207 transform: translateX(-50%);
208 font-size: 9px;
209 font-weight: 600;
210 color: #64748b;
211 background: #f1f5f9;
212 padding: 1px 5px;
213 border-radius: 2px;
214 opacity: 0;
215 transition: opacity 0.15s ease;
216 pointer-events: none;
217 z-index: 1;
218 white-space: nowrap;
219 }
220
221 .editor-styles-wrapper .bkbg-column:hover .bkbg-column__width-label,
222 .editor-styles-wrapper .bkbg-column.is-selected .bkbg-column__width-label {
223 opacity: 1;
224 }
225
226 /* Ensure inner blocks fill column */
227 .editor-styles-wrapper .bkbg-column .bkbg-column__inner {
228 min-height: 40px;
229 display: flex;
230 flex-direction: column;
231 flex: 1;
232 }
233
234 .editor-styles-wrapper .bkbg-column .block-editor-inner-blocks {
235 width: 100%;
236 display: flex;
237 flex-direction: column;
238 flex: 1;
239 min-height: 100%;
240 }
241
242 .editor-styles-wrapper .bkbg-column .block-editor-block-list__layout {
243 width: 100%;
244 display: flex;
245 flex-direction: column;
246 flex: 1;
247 min-height: 100%;
248 }
249
250 /* Editor preview: vertical alignment must target block list layout wrappers */
251 .editor-styles-wrapper .bkbg-column.bkbg-column--valign-top > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout {
252 justify-content: flex-start !important;
253 }
254
255 .editor-styles-wrapper .bkbg-column.bkbg-column--valign-middle > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout {
256 justify-content: center !important;
257 }
258
259 .editor-styles-wrapper .bkbg-column.bkbg-column--valign-bottom > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout {
260 justify-content: flex-end !important;
261 }
262
263 /* Column width controls in inspector */
264 .bkbg-column-widths-controls {
265 margin-top: 8px;
266 }
267
268 .bkbg-column-widths-controls .components-range-control {
269 margin-bottom: 16px;
270 }
271
272 /* Column info in inspector */
273 .bkbg-column-info {
274 font-size: 12px;
275 color: #64748b;
276 }
277
278 .bkbg-column-info p {
279 margin: 4px 0;
280 }
281
282 .bkbg-column-info strong {
283 color: #1e293b;
284 }
285
286 /* ========================================
287 Block Appender Styling - Context aware
288 ======================================== */
289
290 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks .block-editor-inserter {
291 width: 100%;
292 display: flex;
293 justify-content: center;
294 }
295
296 /* Make sure the layout can contain positioned appender */
297 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout {
298 position: relative;
299 min-height: 40px;
300 }
301
302 /* ----------------------------------------
303 EMPTY COLUMN: Full drop zone with outline icon
304 ---------------------------------------- */
305
306 /* When appender is the only child = empty column */
307 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child {
308 position: relative !important;
309 width: 100% !important;
310 margin: 0 !important;
311 opacity: 0;
312 pointer-events: none;
313 transition: opacity 0.15s ease;
314 }
315
316 /* Show empty column drop zone only when parent SECTION is hovered/selected */
317 .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,
318 .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,
319 .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 {
320 opacity: 1;
321 pointer-events: auto;
322 }
323
324 /* Empty column drop zone style */
325 .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 {
326 background: transparent !important;
327 border: 2px dashed rgba(59, 130, 246, 0.3) !important;
328 border-radius: 6px !important;
329 width: 100% !important;
330 height: auto !important;
331 min-height: 60px !important;
332 min-width: 100% !important;
333 padding: 16px !important;
334 display: flex !important;
335 align-items: center !important;
336 justify-content: center !important;
337 box-shadow: none !important;
338 transition: border-color 0.15s ease, background-color 0.15s ease;
339 }
340
341 .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 {
342 background: rgba(59, 130, 246, 0.05) !important;
343 border-color: rgba(59, 130, 246, 0.5) !important;
344 transform: none;
345 }
346
347 /* Outline plus icon for empty column */
348 .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 {
349 fill: none !important;
350 stroke: rgba(59, 130, 246, 0.5) !important;
351 stroke-width: 2px !important;
352 width: 24px !important;
353 height: 24px !important;
354 }
355
356 .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 {
357 stroke: rgba(59, 130, 246, 0.8) !important;
358 }
359
360 /* ----------------------------------------
361 COLUMN WITH CONTENT: Hide appender completely
362 ---------------------------------------- */
363
364 /* When appender is NOT the only child = has content - hide it */
365 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:not(:only-child) {
366 display: none !important;
367 }
368
369 /* Ensure inner blocks layout is flex column - direct children only */
370 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks {
371 display: flex;
372 flex-direction: column;
373 flex: 1;
374 }
375
376 .editor-styles-wrapper .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout {
377 display: flex;
378 flex-direction: column;
379 flex: 1;
380 }
381
382 /* ========================================
383 Prevent column shrink/grow issues
384 ======================================== */
385
386 .bkbg-column {
387 flex-shrink: 0 !important;
388 flex-grow: 0 !important;
389 }
390
391 /* Editor: Ensure column wrapper respects width */
392 .editor-styles-wrapper [data-type="blockenberg/column"] {
393 flex: 0 0 auto !important;
394 min-width: 0 !important;
395 }
396
397 /* Allow flex grow only when explicitly needed */
398 .bkbg-row--flex-grow .bkbg-column {
399 flex-grow: 1;
400 }
401
402 /* ========================================
403 Drag and Drop States
404 ======================================== */
405
406 /* Show drop zones when dragging blocks globally */
407 body.bkbg-is-dragging .bkbg-column > .bkbg-column__inner > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-list-appender:only-child {
408 opacity: 1 !important;
409 pointer-events: auto !important;
410 }
411
412 /* Show all borders during drag - like hover state */
413 body.bkbg-is-dragging .bkbg-section {
414 border-color: rgba(59, 130, 246, 0.3) !important;
415 }
416
417 body.bkbg-is-dragging .bkbg-row {
418 border-color: rgba(59, 130, 246, 0.3) !important;
419 }
420
421 body.bkbg-is-dragging .bkbg-column {
422 border-color: rgba(59, 130, 246, 0.25) !important;
423 }
424
425 /* Highlight when dragging over - stronger highlight */
426 body.bkbg-is-dragging .bkbg-section.bkbg-drop-target {
427 border-color: rgba(59, 130, 246, 0.6) !important;
428 background-color: rgba(59, 130, 246, 0.03) !important;
429 }
430
431 body.bkbg-is-dragging .bkbg-row.bkbg-drop-target {
432 border-color: rgba(59, 130, 246, 0.6) !important;
433 background-color: rgba(59, 130, 246, 0.03) !important;
434 }
435
436 body.bkbg-is-dragging .bkbg-column.bkbg-drop-target {
437 border-color: rgba(59, 130, 246, 0.6) !important;
438 background-color: rgba(59, 130, 246, 0.05) !important;
439 }
440
441 /* Highlight drop zone (appender button) when dragging over */
442 .block-editor-button-block-appender.bkbg-drop-target,
443 .bkbg-column .block-editor-button-block-appender.bkbg-drop-target,
444 .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 {
445 background: rgba(59, 130, 246, 0.15) !important;
446 border-color: rgba(59, 130, 246, 0.8) !important;
447 border-style: solid !important;
448 }
449
450 .block-editor-button-block-appender.bkbg-drop-target svg,
451 .bkbg-column .block-editor-button-block-appender.bkbg-drop-target svg,
452 .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 {
453 stroke: rgba(59, 130, 246, 1) !important;
454 fill: rgba(59, 130, 246, 0.3) !important;
455 }
456
457 /* Also highlight when parent block-list-appender has bkbg-drop-target */
458 .block-list-appender.bkbg-drop-target .block-editor-button-block-appender,
459 .editor-styles-wrapper .bkbg-column .block-list-appender.bkbg-drop-target .block-editor-button-block-appender {
460 background: rgba(59, 130, 246, 0.15) !important;
461 border-color: rgba(59, 130, 246, 0.8) !important;
462 border-style: solid !important;
463 }
464
465 .block-list-appender.bkbg-drop-target .block-editor-button-block-appender svg,
466 .editor-styles-wrapper .bkbg-column .block-list-appender.bkbg-drop-target .block-editor-button-block-appender svg {
467 stroke: rgba(59, 130, 246, 1) !important;
468 fill: rgba(59, 130, 246, 0.3) !important;
469 }
470
471 /* Inspector: spacing controls */
472 .block-editor-page .bkbg-spacing-control,
473 .interface-interface-skeleton__editor .bkbg-spacing-control {
474 margin-top: 12px;
475 padding-top: 10px;
476 border-top: 1px solid #e2e8f0;
477 }
478
479 .block-editor-page .bkbg-spacing-control__title,
480 .interface-interface-skeleton__editor .bkbg-spacing-control__title {
481 font-size: 13px;
482 font-weight: 600;
483 color: #1f2937;
484 margin-bottom: 10px;
485 }
486
487 .block-editor-page .bkbg-spacing-control__grid,
488 .interface-interface-skeleton__editor .bkbg-spacing-control__grid {
489 display: grid;
490 grid-template-columns: repeat(2, minmax(0, 1fr));
491 gap: 10px 12px;
492 }
493
494 .block-editor-page .bkbg-spacing-control__item,
495 .interface-interface-skeleton__editor .bkbg-spacing-control__item {
496 min-width: 0;
497 }
498
499 .block-editor-page .bkbg-spacing-control__label,
500 .interface-interface-skeleton__editor .bkbg-spacing-control__label {
501 display: block;
502 font-size: 12px;
503 font-weight: 500;
504 color: #374151;
505 margin-bottom: 4px;
506 }
507
508 .block-editor-page .bkbg-spacing-control__row,
509 .interface-interface-skeleton__editor .bkbg-spacing-control__row {
510 display: grid;
511 grid-template-columns: minmax(0, 1fr) 78px;
512 gap: 6px;
513 align-items: center;
514 }
515
516 .block-editor-page .bkbg-spacing-control__custom-unit,
517 .interface-interface-skeleton__editor .bkbg-spacing-control__custom-unit {
518 margin-top: 6px;
519 }
520