-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add gutter, margin, and padding controls to the columns block #24874
Comments
One of the key considerations here is what happens to existing instances of the block upon update. To avoid disruption on the frontend, wherever folks are currently using the background color option with the static auto-padding applied, that auto-padding value should probably be migrated to the new dedicated padding control. |
I've found margin to be very tricky to implement in blocks. Padding is great, but margin is difficult because it interacts with the space outside of the block, whereas padding is inside. When interacting outside, it becomes tricky to emulate one-to-one with the front-end, and creates confusion on how to manipulate that spacing (as not every block has margin controls - rightfully so). I lean towards using Spacer blocks for "margin" control. Gutter is tricky for mobile implementation, but it's not impossible. We (CoBlocks) figured out some creative solutions for gutters in a few blocks; including using custom gutter spacing values (with inline CSS vars). |
Would converting blocks to css-grid with a flex fallback for old browsers be out of the question? |
Add gutter, margin, and padding controls to the any block |
I believe this one is now resolved, as of the following PRs:
Themes can opt in to the above controls by setting the following spacing settings in
I'll close this issue out now. |
@andrewserong so far as I can tell it's:
Right? |
@ethanclevenger91 yes, up until yesterday (and in the v1 of |
Is there a way to enable gap support via functions.php? I don't use theme.json In my functions file, I have enabled custom spacing, but all the new spacing options are not showing, so I don't know if it was meant to be in 5.9 or not. Thank you |
@Nic787 I don't believe so. The new spacing controls are designed to work with the It should be possible to add a minimal |
@andrewserong I did create a short theme.json file.
However, it doesn't work and it also remove all the default style of Gutenberg block editor. Also, how can I bring back default Wordpress style in the editor? |
@Nic787 Version 2 does not use "customPadding": true, "customMargin": true, so this creates an error in theme.json. Please use this reference: |
Limitations with the columns block:
As it stands, a user is somewhat limited in what they can achieve with the columns block. This is problematic, as it's fundamental building block for constructing a page's layout. Let's look at an example: the screen shot below is a design I made in Figma. It's a single row with a light yellow background, on top of which sits a simple three column layout. The two outer columns have images, and there's some text and a button in the middle column.
The row (parent container) should be the full width of the site. It should have no margin or padding. There are no gutters between the columns. The content in the columns should be aligned to the middle the of row vertically. The columns which contain the images should have no margin or padding. However, the column in the middle should have a healthy amount of padding on the left and right sides to keep the headline more condensed and in the center of the column.
This is the best I could do using the the blocks in core:
Solutions:
One small detail to keep in mind: at the moment, when a background color is added to many types of blocks (paragraph, headline, column etc) padding is automatically added as well. This behavior should either be eliminated, or the auto padding value should appear in the new padding control component, there by allowing the user to refine it further, or remove it.
Controls for the "columns block" (parent) and "column block" (child) would look something like this:
both of these are using the new box control component, which was recently included on the cover block.
Bigger picture, and out of scope for this particular issue:
Essentially every block should have these margin and padding controls by default.
Describe alternatives you've considered:
Using Elementor with no prior experience, I was able to re-create this layout in about 10 minutes. Screen shot below:
Elementor uses the same principle which I've described in the solutions above. There's no margin or padding applied to the parent container by default. The parent container has controls for the gutters. Each of the elements (Parent block, and child column blocks) have their own margin and padding controls.
cc @jameskoster
The text was updated successfully, but these errors were encountered: