-
markogp
Hi,
I purchased GP One yesterday and I’m currently testing GeneratePress / GenerateBlocks Pro to see if it could become part of my WordPress toolkit for client website projects.
A bit of background: I have been using Kadence quite a lot. I’m also comfortable with PHP, CSS and HTML, so I’m not afraid of custom code when needed. However, at this stage I’m mainly trying to understand the recommended best practices in the GeneratePress / GenerateBlocks ecosystem, so I don’t start building layouts in a wrong or unnecessarily complicated way.
In Kadence, many basic layout things came quite ready out of the box, for example:
– full width page layout
– centered content container
– default content width
– basic paddings and margins
– responsive spacing defaultsI tested a similar structure with GeneratePress and GenerateBlocks:
– full width page layout
– background sections that span the full browser width
– centered inner content area, for example max-width 1200px
– Container > Grid structure
– two-column hero section with text on the left and an image on the right
– the goal being that backgrounds can go edge to edge, while the actual content stays in a controlled content widthI managed to get some of this working, but I noticed that the Container and Grid blocks have a huge amount of possible settings.
So I would like to ask what the recommended best practice is for building these kinds of page layouts with GeneratePress / GenerateBlocks.
My questions:
1. What is your recommended base structure for full width pages?
For example:
Outer Container > Inner Container > Grid?
Or is there a better preferred method?2. Is it recommended to set the page Content Container to Full Width with a GeneratePress Layout Element, and then control all actual content widths with GenerateBlocks Containers?
3. Do you have a good tutorial or best practice guide for building modern page sections where:
– background colors or background images span the full width
– content is centered, for example at 1200px
– paddings and responsive spacing are controlled properly
– the same sections can later be reused as custom patterns?4. Is there a recommended way in GenerateBlocks to define default spacing, container widths and responsive base values?
5. What would be the recommended workflow going forward?
Should I create one good base layout structure and then duplicate the same block structure again and again? Or is there a better way to create a reusable basic layout system for full width sections, centered content, default spacing, responsive padding, etc.?I’m not necessarily looking for help with one specific layout issue. I would mainly like to understand the correct GeneratePress / GenerateBlocks way of thinking, so I can build clean, maintainable client sites from the beginning.
Thank you!
-
George
Hi,
Welcome to the GP/GB ecosystem — and great questions. Getting the mental model right from the start makes everything much easier.
1. Recommended base structure for full-width page sections
The standard pattern is a full-width outer Container for the background, with a centered inner Container that constrains the content width. So for a typical section it’s:
Container (outer — full width, holds background color/image) └── Container (inner — max-width centered, holds actual content) └── Grid (if you need columns) ├── Container (column 1) └── Container (column 2)https://learn.generatepress.com/blocks/styles/sizing/
When you add the inner Container via the toolbar button, it automatically sets Sizing > Max Width to
var(--gb-container-width)and Spacing > Margin Left & Right toautoto center it. That CSS variable is your site-wide content width, so you only define it once.https://learn.generatepress.com/blocks/toolbar-buttons/add-inner-container/
2. Full-width page layout via GP Layout Element — yes, this is the recommended approach
Yes — set the page content area to full width using a GP Layout Element (or the GP metabox on the page), then take over all width control with GB Containers. The recommended method is to use a full-width page and build each section with Container blocks. Trying to mix GP’s contained content area with GB full-width blocks gets messy quickly.
3. Tutorials and guidance
The official docs cover the core pattern well:
- Add Inner Container — the foundational full-width section technique
- Pro Pattern Global Style reference — worth reading even if you build your own patterns, as it shows how the built-in patterns handle section spacing and inner widths
For reusable sections, WordPress block patterns are the way to go — build a section you’re happy with, save it as a synced or unsynced pattern, and reuse it across the site.
4. Defining default spacing and container widths
There are two layers here:
--gb-container-width— set once in GenerateBlocks > Settings (or it auto-syncs from the GP Customizer container width if you’re using GP). This is what the inner Container’s “Global Max Width” toggle references. The Global Max Width toggle in the Sizing panel insertsvar(--gb-container-width)as the block’s max-width.
https://learn.generatepress.com/blocks/block-guide/getting-started-generateblocks/the-blocks-styles/- Global Styles (GB Pro) — this is where you define reusable CSS classes for things like section padding, heading spacing, button styles, etc. Global Styles in GB Pro are CSS classes loaded globally across the site — you create a class, add styles to it, and apply it wherever needed, which reduces redundant CSS. For example, you’d create a
section-paddingGlobal Style with responsive padding values, then apply it to every outer Container rather than setting padding per-block.
https://generatepress.com/global-styles-for-fast-wordpress-sites/
5. Recommended workflow
Build one solid section structure — outer Container + inner Container + Grid if needed — style it with Global Styles for the repeating properties (padding, max-width), and save it as a block pattern. Duplicate the pattern for each new section and adjust only what differs (background color, content, column layout).
The key mindset shift from Kadence: GP/GB doesn’t bake spacing and sizing defaults into the block itself the way some builders do. Instead, you set global theme styles (typography, colors, layout) in the Customizer, and use GB Global Styles for block-level reusable classes. Once that foundation is in place, individual blocks stay lean.
https://generatepress.com/global-styles-for-fast-wordpress-sites/In short: full-width Layout Element → outer Container (background) → inner Container (max-width, auto margins) → Grid where needed → Global Styles for repeating spacing → block patterns for reuse. That’s the clean way to build in this ecosystem.
-
daveporter
Sorry to jump in, but just wanted to say:
This is why I browse these support forums regularly 🙂
Thanks GeorgeDave
-
George
-
markogp
Hi George,
Thank you so much for the quick reply!
This was a really thorough and helpful answer, and there is clearly a lot here for me to study and think through properly.
I really appreciate it. It’s great to get this kind of guidance now, so I can start using GeneratePress and GenerateBlocks in a smarter and more sustainable way from the beginning.
Thanks again!
-
George
Ok, glad to know, you are welcome!
- You must be logged in to reply to this topic.