Feature · Gutenberg · Blockenberg

Layout system: shared spacing and background CSS for every block

The layout system is the CSS engine behind the Advanced tab. It is not a “Layout block” you insert. Section, row, and column additionally depend on bkbg-layout-system stylesheet.

Get Blockenberg

Blockenberg is a Gutenberg block library. These features are plugin-wide editor tools, not Elementor extensions.

Get Blockenberg

What it actually does

Attribute prefixes include bkbgMargin*, bkbgPadding*, bkbgZIndex*, bkbgBg* (color, image, gradient, hover), bkbgBorder*, bkbgShadow*, bkbgHideDesktop|Tablet|Mobile, bkbgCssId, bkbgCssClasses.

Desktop rules are inlined on the wrapper. Tablet and mobile rules are extra <style> blocks with media queries. Hover background/border/shadow get separate CSS.

Section, row, and column style handles list bkbg-layout-system as a dependency so structural blocks get the shared layout CSS on the front end.

Where it lives in WordPress

Same Advanced tab as Inspector Tabs. Front-end CSS is generated in the render_block filter in blockenberg.php. Shared variables live in assets/css/layout.css (registered as bkbg-layout-system).

How to use it

  1. Select a Blockenberg block. Open Advanced.
  2. Set desktop spacing first. Then switch the device UI in the control and set Tablet/Mobile.
  3. Add background or border only if needed. Hover styles are separate attributes.
  4. Optional CSS ID. For theme CSS or jump links — injected during render.
  5. View the page at tablet width. Inline desktop CSS will not show tablet overrides in a desktop-only glance.

Controls and behavior

PieceWhat the plugin does
register_block_type_argsMerges layout attributes onto every blockenberg/* type.
render_blockTurns attributes into CSS + ID/classes.
layout.cssShared layout variables; required by section/row/column.
Hide on deviceCSS hide flags per breakpoint.

When this is the right tool

Notes from the code

The main plugin file raises memory_limit because each block gets hundreds of extra attributes. Disable unused blocks in Block Manager if editors feel heavy. blockenberg.com.

FAQ

Why is layout.css not on every block?

It is a dependency for section, row, and column. Other blocks still get inline CSS from render_block.

Can I use this on core Paragraph?

No. The filter only runs when blockName starts with blockenberg/.

Other plugin features

Get Blockenberg

Install the plugin from WordPress.org, then use this feature in the native block editor.

Get Blockenberg