<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Elegant Themes Blog</title>
	<atom:link href="https://www.elegantthemes.com/blog/feed" rel="self" type="application/rss+xml" />
	<link>https://www.elegantthemes.com/blog</link>
	<description>Best WordPress &#38; Divi Resources</description>
	<lastBuildDate>Mon, 13 Jul 2026 17:33:06 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Part 7 Of Mastering Flexbox: Building Flexible Button, Menu, And Link Rows</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/part-7-of-mastering-flexbox-building-flexible-button-menu-and-link-rows</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/part-7-of-mastering-flexbox-building-flexible-button-menu-and-link-rows#respond</comments>
		
		<dc:creator><![CDATA[Deanna McLean]]></dc:creator>
		<pubDate>Mon, 20 Jul 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[Divi 5 Flexbox]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=316945</guid>

					<description><![CDATA[<p>In Part 6 of our Mastering Flexbox course, we shared key tips for building responsive layouts in Divi 5 with cleaner structure, smarter breakpoint decisions, and real-content testing. Now, in Part 7, we&#8217;ll focus on smaller layout patterns that appear on almost every website: button groups, navigation menus, breadcrumbs, footer links, and tag rows. These [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/part-7-of-mastering-flexbox-building-flexible-button-menu-and-link-rows">Part 7 Of Mastering Flexbox: Building Flexible Button, Menu, And Link Rows</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In <a href="https://www.elegantthemes.com/blog/divi-resources/part-6-of-mastering-flexbox-key-tips-for-building-responsive-layouts">Part 6</a> of our Mastering <a href="https://www.elegantthemes.com/blog/theme-releases/flexbox">Flexbox</a> course, we shared key tips for building responsive layouts in <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> with cleaner structure, smarter breakpoint decisions, and real-content testing.</p>
<p>Now, in Part 7, we&#8217;ll focus on smaller layout patterns that appear on almost every website: button groups, navigation menus, breadcrumbs, footer links, and tag rows. These elements look simple, but they can be tricky to make responsive because they often need to stay horizontal on Desktop, wrap cleanly on Tablet, and stack or expand on Phone without feeling cramped.</p>
<p>With Divi 5&#8217;s Flexbox Layout System, you can build flexible button groups, menu rows, and link sections directly in the Visual Builder. By combining <em>Layout Direction</em>, <em>Gap</em>, <em>Layout Wrapping</em>, <em>Column Class</em>, <em>Module Groups</em>, and responsive sizing, you can create interaction-heavy rows that adapt across screen sizes without duplicating structures or writing custom CSS for common layout patterns.</p>
<p>Let&#8217;s dive in.</p>
<h2>Why Button, Menu, And Link Rows Need Special Attention</h2>
<p>Buttons, menus, and link rows are some of the most important interactive elements on a website. They guide users to key pages, actions, categories, and conversion points, so they need to remain clear and easy to use across screen sizes.</p>
<p>The challenge is that these rows often have competing layout needs. On Desktop, they usually look best as compact horizontal groups. On Tablet, they may need to wrap into multiple lines. On Phone, they may need to stack vertically, become full width, or move into a separate mobile menu.</p>
<p>Common problems include cramped spacing, misaligned icons and labels, buttons that are too small to tap comfortably, menu rows that break awkwardly on Tablet, and link groups that lose their structure when they wrap.</p>
<p>Divi 5&#8217;s Flexbox tools help solve these issues at the container level. Instead of adding manual margins to every item or duplicating separate mobile versions, you can use parent-level controls like <em>Horizontal Gap</em>, <em>Vertical Gap</em>, <em>Layout Direction</em>, and <em>Layout Wrapping</em> to manage how the group behaves.</p>
<h2>Core Flexbox Techniques For These Elements</h2>
<p>Creating flexible button, menu, and link rows in Divi 5 becomes easier once you understand which Flexbox controls do the heavy lifting.</p>
<p><em>Layout Direction</em> controls the main flow of the container. Use <em>Row</em> when items should sit side-by-side and <em>Column</em> when they should stack vertically. You can change this per breakpoint, which is useful for button groups that stay horizontal on Desktop but stack on Phone.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Layout-Direction-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p><em>Justify Content</em> and <em>Align Items</em> control distribution and alignment. Justify Content works along the main axis, while Align Items works along the cross axis. Together, they help you center icon-and-text pairs, distribute navigation groups, and keep buttons aligned inside their parent container.</p>
<p><img fetchpriority="high" decoding="async" class="with-border alignnone wp-image-317176 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/justify-content-and-align-items.jpeg" alt="justify content and align items" width="1800" height="866" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/justify-content-and-align-items.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/justify-content-and-align-items-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/justify-content-and-align-items-768x369.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/justify-content-and-align-items-1536x739.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/justify-content-and-align-items-610x293.jpeg 610w" sizes="(max-width: 1800px) 100vw, 1800px" /></p>
<p><em>Horizontal Gap</em> and <em>Vertical Gap</em> provide consistent spacing between direct child items without adding margins to every button, link, or module. This is especially useful when a row wraps because the spacing between items and lines stays centralized in one place.</p>
<p><img decoding="async" class="with-border alignnone wp-image-317177 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/horizontal-and-vertical-gap.jpeg" alt="horizontal and vertical gap" width="1800" height="865" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/horizontal-and-vertical-gap.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/horizontal-and-vertical-gap-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/horizontal-and-vertical-gap-768x369.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/horizontal-and-vertical-gap-1536x738.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/horizontal-and-vertical-gap-610x293.jpeg 610w" sizes="(max-width: 1800px) 100vw, 1800px" /></p>
<p><em>Layout Wrapping</em> lets items move onto additional lines when they no longer fit in one row. Combine it with <em>Column Class</em> or <em>Structure Templates</em> when you want more control over how many items appear per line at each breakpoint.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/layout-wrapping-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p>Finally, <a href="https://www.elegantthemes.com/blog/theme-releases/module-groups"><em>Module Groups</em></a> let you create smaller layout contexts inside a larger row or column. Wrap related buttons, links, icons, or menu items in a Module Group so you can apply independent Flexbox settings without affecting the rest of the layout.</p>
<p><img decoding="async" class="with-border alignnone wp-image-317179 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-module-groups-in-Divi-5.jpg" alt="using module groups in Divi 5" width="1800" height="883" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-module-groups-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-module-groups-in-Divi-5-300x147.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-module-groups-in-Divi-5-768x377.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-module-groups-in-Divi-5-1536x753.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-module-groups-in-Divi-5-610x299.jpg 610w" sizes="(max-width: 1800px) 100vw, 1800px" /></p>
<p>Together, these controls help you build reusable, responsive interaction rows with less manual spacing and fewer breakpoint-specific fixes.</p>
<h2>Real-World Examples</h2>
<p>Let&#8217;s look at five examples that show how to create flexible button, menu, and link rows using Divi 5&#8217;s Flexbox features. Each one includes the Desktop layout, the responsive challenge, and the settings used.</p>
<h3>Example 1: Flexible Button Group</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316964 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-1.jpeg" alt="Flexbox example 1" width="1800" height="1080" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-1.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-1-300x180.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-1-768x461.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-1-1536x922.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-1-610x366.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a row of buttons that stays neatly spaced on Desktop, then stacks and expands on Phone for easier tapping.</p>
<p><strong>The Challenge:</strong> Buttons can become cramped when screen width is limited, especially when labels are longer or multiple CTAs sit side-by-side.</p>
<p><strong>The Solution:</strong> Place the buttons inside a <em>Module Group</em>. Use <em>Layout Direction &gt; Row</em> on Desktop and Tablet, then switch the Group to <em>Layout Direction &gt; Column</em> on Phone. Use <em>Horizontal Gap</em> and <em>Vertical Gap</em> for spacing, then adjust the button sizing on Phone when you want the buttons to span most of the viewport.</p>
<p><strong>Settings Used:</strong> Place a <em>Module Group</em> with three <em>Button</em> modules inside a single-column row. At the <em>Desktop</em> and <em>Tablet</em> breakpoints, set the Group&#8217;s <em>Layout Direction</em> to <em>Row</em> and apply a <em>10px Horizontal Gap</em> and <em>10px Vertical Gap</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316965 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-desktop-settings.jpeg" alt="button group desktop settings" width="1800" height="865" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-desktop-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-desktop-settings-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-desktop-settings-768x369.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-desktop-settings-1536x738.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-desktop-settings-610x293.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>On the <em>Phone</em> breakpoint, switch the Group&#8217;s <em>Layout Direction</em> to <em>Column</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316966 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-phone-settings.jpeg" alt="button group phone settings" width="1800" height="865" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-phone-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-phone-settings-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-phone-settings-768x369.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-phone-settings-1536x738.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/button-group-phone-settings-610x293.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Then, widen each button on Phone using the <em>Sizing</em> options in the Button module&#8217;s <em>Design</em> tab. Set the <em>Button Width</em> and <em>Button Max Width</em> to a value such as <em>90vw</em>, then set the Button module alignment to <em>Center</em>.</p>
<h3>Example 2: Breadcrumb Link Row</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316970 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-2.jpeg" alt="Flexbox example 2" width="1800" height="1080" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-2.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-2-300x180.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-2-768x461.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-2-1536x922.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-2-610x366.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a horizontal breadcrumb row that remains readable on Desktop while stacking neatly on Phone.</p>
<p><strong>The Challenge On Mobile:</strong> Breadcrumb links can become cramped or wrap awkwardly, making the row harder to scan and tap on smaller screens.</p>
<p><strong>The Solution:</strong> Place the breadcrumb links inside a <em>Module Group</em>. Use <em>Layout Direction &gt; Row</em> on Desktop and Tablet for a horizontal flow, then switch to <em>Layout Direction &gt; Column</em> on Phone. Adjust the vertical spacing so the breadcrumb remains compact but readable.</p>
<p><strong>Settings Used:</strong> Set the Module Group&#8217;s <em>Layout Direction</em> to <em>Row</em> on the <em>Desktop</em> and <em>Tablet</em> breakpoints. Add a <em>10px Horizontal Gap</em> and <em>10px Vertical Gap</em>, then set <em>Justify Content</em> and <em>Align Items</em> to <em>Center</em>.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-316971" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrub-desktop-settings.jpg" alt="breadcrumb desktop settings" width="1800" height="865" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrub-desktop-settings.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrub-desktop-settings-300x144.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrub-desktop-settings-768x369.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrub-desktop-settings-1536x738.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrub-desktop-settings-610x293.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>On the <em>Phone</em> breakpoint, set the Module Group&#8217;s <em>Layout Direction</em> to <em>Column</em>, adjust the <em>Vertical Gap</em> to <em>5px</em>, and keep the remaining alignment settings unchanged.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316972 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrumb-mobile-settings.jpeg" alt="breadcrumb mobile settings" width="1800" height="866" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrumb-mobile-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrumb-mobile-settings-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrumb-mobile-settings-768x369.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrumb-mobile-settings-1536x739.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breadcrumb-mobile-settings-610x293.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Example 3: Footer With Link Groups</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316977" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-3.jpeg" alt="Flexbox example 3" width="1800" height="833" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-3.jpeg 1799w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-3-300x139.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-3-768x356.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-3-1536x711.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-3-610x282.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a multi-column footer with link groups, such as Product, Company, Resources, and Legal, that stays organized on Desktop and stacks cleanly on Phone.</p>
<p><strong>The Challenge On Mobile:</strong> Footer links can become cramped, uneven, or hard to scan when the layout narrows.</p>
<p><strong>The Solution:</strong> Use a row with <em>Layout Wrapping</em> enabled and adjust gaps at both the row and Module Group levels. At the row level, gaps control spacing between the link columns. At the Module Group level, gaps control spacing between the individual links inside each group.</p>
<p><strong>Settings Used:</strong> At the Row level, set the <em>Horizontal Gap</em> to <em>25%</em>, the <em>Vertical Gap</em> to <em>30px</em>, and enable <em>Layout Wrapping</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316978 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings.jpg" alt="footer row settings on desktop" width="1800" height="912" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings-300x152.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings-768x389.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings-1536x778.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings-610x309.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>At the Row&#8217;s <em>Phone</em> breakpoint, set the <em>Vertical Gap</em> to <em>20px</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316979 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings-mobile.jpg" alt="footer row settings mobile" width="1800" height="914" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings-mobile.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings-mobile-300x152.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings-mobile-768x390.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings-mobile-1536x780.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-row-settings-mobile-610x310.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>On the <em>Desktop</em> breakpoint, set each <em>Module Group&#8217;s Vertical Gap</em> to <em>10px</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316981 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-desktop.jpg" alt="footer group settings desktop" width="1800" height="907" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-desktop.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-desktop-300x151.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-desktop-768x387.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-desktop-1536x774.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-desktop-610x307.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For each <em>Module Group</em> at the <em>Phone</em> breakpoint, keep the spacing settings unchanged and set <em>Align Items</em> to <em>Center</em> so the link groups align neatly in the stacked layout.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316980 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-mobile.jpg" alt="footer group settings mobile" width="1800" height="914" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-mobile.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-mobile-300x152.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-mobile-768x390.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-mobile-1536x780.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/footer-group-settings-mobile-610x310.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Example 4: Header Navigation With A Nested Button Group</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316983 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-4.jpeg" alt="Flexbox example 4" width="1800" height="833" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-4.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-4-300x139.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-4-768x355.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-4-1536x711.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-4-610x282.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Build a header with a logo, navigation links, and a button group that stays horizontal on Desktop but adapts cleanly on Tablet and Phone.</p>
<p><strong>The Challenge On Mobile:</strong> Navigation links and buttons can become cramped or misaligned, and the button group may need different sizing behavior than the main menu.</p>
<p><strong>The Solution:</strong> Use a parent Column for the full header row and Module Groups for related items. The logo and menu can sit in one group, while the CTA buttons can sit in another. This gives each part of the header its own Flexbox settings and responsive sizing.</p>
<p><strong>Settings Used:</strong> At the <em>Column</em> level, set the <em>Layout Direction</em> to <em>Row</em>, set the <em>Horizontal Gap</em> and <em>Vertical Gap</em> to <em>10px</em>, set <em>Justify Content</em> to <em>Space Between</em>, and set <em>Align Items</em> to <em>Center</em>.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-317008" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings.jpg" alt="header column level settings" width="1800" height="913" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings-300x152.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings-768x390.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings-1536x779.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings-610x309.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For the <em>Module Group</em>, set <em>Justify Content</em> to <em>Space Between</em> and <em>Align Items</em> to <em>Center</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317009 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-module-group-settings-desktop.jpg" alt="header module group settings desktop" width="1800" height="864" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-module-group-settings-desktop.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-module-group-settings-desktop-300x144.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-module-group-settings-desktop-768x369.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-module-group-settings-desktop-1536x737.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-module-group-settings-desktop-610x293.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>On the <em>Phone</em> breakpoint, set the <em>Column Vertical Gap</em> to <em>15px</em> and leave the remaining settings unchanged unless your design needs a different mobile structure.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317010 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings-mobile.jpg" alt="header column level settings mobile" width="1800" height="913" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings-mobile.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings-mobile-300x152.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings-mobile-768x390.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings-mobile-1536x779.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-column-level-settings-mobile-610x309.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In addition to the Flexbox settings, adjust the <em>Sizing</em> for the <em>Module Group</em> across breakpoints. Set the Group width to <em>75%</em> on <em>Desktop</em>, <em>65%</em> on <em>Tablet</em>, and <em>100%</em> on <em>Phone</em>. This helps the logo and menu group use the available width more effectively on smaller screens.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-317012" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-phone-sizing.jpg" alt="group phone sizing" width="1800" height="789" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-phone-sizing.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-phone-sizing-300x132.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-phone-sizing-768x337.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-phone-sizing-1536x673.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-phone-sizing-610x267.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Finally, set each <em>Button</em>&#8216;s width to <em>80vw</em> on the <em>Phone</em> breakpoint so the buttons can span most of the viewport.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317013 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-button-sizing-phone.jpeg" alt="header button sizing phone" width="1800" height="943" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-button-sizing-phone.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-button-sizing-phone-300x157.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-button-sizing-phone-768x402.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-button-sizing-phone-1536x805.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/header-button-sizing-phone-610x320.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Example 5: Tag Cloud</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317015" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-5.jpeg" alt="Flexbox example 5" width="1800" height="833" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-5.jpeg 1799w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-5-300x139.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-5-768x356.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-5-1536x711.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-example-5-610x282.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a flexible tag cloud or category row that flows horizontally on larger screens and wraps naturally on smaller screens.</p>
<p><strong>The Challenge On Mobile:</strong> Tag clouds can become cramped, uneven, or hard to tap when tag lengths vary.</p>
<p><strong>The Solution:</strong> Use a single Column or Module Group with <em>Layout Direction &gt; Row</em> and <em>Layout Wrapping &gt; Wrap</em>. Apply <em>Horizontal Gap</em> and <em>Vertical Gap</em> at the parent level so tags have consistent spacing as they wrap. Because the layout is designed to wrap naturally, it can often use the same Flexbox settings across breakpoints.</p>
<p><strong>Settings Used:</strong> The Column uses <em>Layout Direction &gt; Row</em>, a <em>10px Horizontal Gap</em>, and a <em>10px Vertical Gap</em>. <em>Justify Content</em> and <em>Align Items</em> are both set to <em>Center</em>, and <em>Layout Wrapping</em> is enabled. These settings remain consistent across breakpoints.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317092 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/tag-cloud-flex-settings.jpg" alt="tag cloud flex settings" width="1800" height="862" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/tag-cloud-flex-settings.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/tag-cloud-flex-settings-300x144.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/tag-cloud-flex-settings-768x368.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/tag-cloud-flex-settings-1536x736.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/tag-cloud-flex-settings-610x292.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Step-By-Step Build</h2>
<p>Let&#8217;s walk through building a custom menu that includes a logo, navigation links, a CTA, and a mobile menu. By the end, you&#8217;ll understand how to combine Flexbox, Module Groups, Link loops, Canvases, and Interactions for a responsive navigation workflow.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317102 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/flexbox-example-6.jpeg" alt="flexbox example 6" width="1799" height="833" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/flexbox-example-6.jpeg 1799w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/flexbox-example-6-300x139.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/flexbox-example-6-768x356.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/flexbox-example-6-1536x711.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/flexbox-example-6-610x282.jpeg 610w" sizes="auto, (max-width: 1799px) 100vw, 1799px" /></p>
<h3>Set Up The Main Row Structure</h3>
<p>Start by adding a <em>single-column row</em> to a new page in the Visual Builder. If needed, select <em>Flex</em> as the Layout Style. In the Row&#8217;s <em>Design</em> tab, expand the <em>Layout</em> option group. Set the <em>Horizontal Gap</em> to <em>0px</em>, set the <em>Vertical Gap</em> to <em>5px</em>, and enable <em>Layout Wrapping &gt; Wrap</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317138 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-flex-settings.jpeg" alt="row flex settings" width="1800" height="862" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-flex-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-flex-settings-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-flex-settings-768x368.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-flex-settings-1536x736.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-flex-settings-610x292.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Open the <em>Column</em> settings and go to the <em>Design</em> tab. In the <em>Layout</em> option group, set the <em>Layout Direction</em> to <em>Row</em> so items flow from left to right. Set <em>Justify Content</em> to <em>Space Between</em>, set <em>Align Items</em> to <em>Center</em>, and enable <em>Layout Wrapping &gt; Wrap</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317140 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/first-column-settings.jpg" alt="first column flex settings" width="1800" height="863" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/first-column-settings.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/first-column-settings-300x144.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/first-column-settings-768x368.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/first-column-settings-1536x736.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/first-column-settings-610x292.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Now add another Column to the Row. In the Row&#8217;s <em>Content</em> tab, expand the <em>Elements</em> option group and click the <em>+ Add Element</em> button to add the Column.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/adding-new-columns-to-a-row-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p>Switch to the <em>Design</em> tab for the new Column. Set <em>Layout Direction</em> to <em>Row</em>, <em>Justify Content</em> to <em>Space Between</em>, <em>Align Items</em> to <em>Center</em>, and <em>Layout Wrapping</em> to <em>Wrap</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317142 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-settings.jpeg" alt="second column settings" width="1800" height="866" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-settings-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-settings-768x369.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-settings-1536x739.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-settings-610x293.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Before moving on, open the first Column and assign a <em>Background Color</em>, <em>15px Border Radius</em>, and <em>10px Padding</em> on all four sides.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-styling.mp4" type="video/mp4" /></video></p>
<h3>Add Modules To The Row</h3>
<p>In the first Column, add a <em>Module Group</em> to hold an <em>Icon</em> module and a <em>Text</em> module. Style the modules as needed. Then, in the Group&#8217;s <em>Layout</em> settings, set the <em>Horizontal Gap</em> to <em>10px</em>, set <em>Layout Direction</em> to <em>Row</em>, and set <em>Align Items</em> to <em>Center</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317145 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-group-flex-setttings.jpeg" alt="icon group flex settings" width="1800" height="864" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-group-flex-setttings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-group-flex-setttings-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-group-flex-setttings-768x369.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-group-flex-setttings-1536x737.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-group-flex-setttings-610x293.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Add a <em>Social Media Follow</em> module outside of the Group and style it as needed.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-317146" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/social-media-follow-module.jpeg" alt="social media follow module" width="1800" height="693" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/social-media-follow-module.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/social-media-follow-module-300x116.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/social-media-follow-module-768x296.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/social-media-follow-module-1536x591.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/social-media-follow-module-610x235.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the second Column, add an <em>Image</em> module and two <em>Module Groups</em>. The Image module will serve as the logo. The Module Groups will hold the navigation links, hidden hamburger icon, and CTA.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317147 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-modules.jpeg" alt="second column modules" width="1800" height="938" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-modules.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-modules-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-modules-768x400.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-modules-1536x800.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-modules-610x318.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the first Group&#8217;s <em>Layout</em> settings, set <em>Horizontal Gap</em> to <em>15px</em>, <em>Layout Direction</em> to <em>Row</em>, <em>Justify Content</em> to <em>End</em>, and <em>Align Items</em> to <em>Center</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317149 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-module-group-settings.jpeg" alt="second column module group settings" width="1800" height="863" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-module-group-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-module-group-settings-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-module-group-settings-768x368.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-module-group-settings-1536x736.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/second-column-module-group-settings-610x292.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Add a <em>Link</em> module to the Group and style the link as needed, including hover and active states.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/style-hover-and-active-states.mp4" type="video/mp4" /></video></p>
<p>In the <em>Link</em> module&#8217;s <em>Content</em> tab, expand the <em>Loop</em> option group and enable <em>Loop Element</em>. Select <em>Menu</em> as the <em>Query Type</em> and choose your main menu.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317150 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/create-a-link-loop.jpeg" alt="create a link loop" width="1800" height="877" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/create-a-link-loop.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/create-a-link-loop-300x146.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/create-a-link-loop-768x374.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/create-a-link-loop-1536x748.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/create-a-link-loop-610x297.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>To assign the menu item names, expand the <em>Text</em> option group, click the <em>Insert Dynamic Content</em> icon, and choose <em>Loop Menu Text</em>.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/loop-menu-text.mp4" type="video/mp4" /></video></p>
<p>In the second Module Group, add an <em>Icon</em> module and a <em>Button</em> module, then style them as needed. In the Group&#8217;s <em>Design</em> tab, set the <em>Layout Direction</em> to <em>Row</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317152 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-layout-direction.jpeg" alt="group layout direction" width="1800" height="864" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-layout-direction.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-layout-direction-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-layout-direction-768x369.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-layout-direction-1536x737.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/group-layout-direction-610x293.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Hide the hamburger <em>Icon</em> module on <em>Desktop</em> so it only appears at the <em>Tablet</em> and <em>Phone</em> breakpoints.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317154 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-visibility-settings.jpeg" alt="icon visibility settings" width="1800" height="791" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-visibility-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-visibility-settings-300x132.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-visibility-settings-768x337.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-visibility-settings-1536x675.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-visibility-settings-610x268.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Then hide the <em>Module Group</em> with the desktop navigation links on the <em>Tablet</em> and <em>Phone</em> breakpoints.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317168 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/hide-desktop-menu-on-mobile-devices.jpeg" alt="hide desktop menu on mobile devices" width="1800" height="789" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/hide-desktop-menu-on-mobile-devices.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/hide-desktop-menu-on-mobile-devices-300x132.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/hide-desktop-menu-on-mobile-devices-768x337.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/hide-desktop-menu-on-mobile-devices-1536x673.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/hide-desktop-menu-on-mobile-devices-610x267.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Create The Mobile Menu</h3>
<p>In this step, we&#8217;ll create a separate <a href="https://www.elegantthemes.com/blog/theme-releases/divi-canvases">Canvas</a> to hold the mobile menu. Click the Canvas dropdown menu, select <em>Add Canvas</em>, give it a name such as <em>Mobile Menu</em>, set a <em>Z-Index</em> of <em>99999</em>, and click <em>Add Canvas</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317156 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-a-new-canvas.jpeg" alt="add a new canvas in Divi 5" width="1800" height="795" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-a-new-canvas.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-a-new-canvas-300x133.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-a-new-canvas-768x339.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-a-new-canvas-1536x678.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-a-new-canvas-610x269.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>When the Canvas loads, add a <em>single-column row</em> with an <em>Icon</em> module and a <em>Module Group</em>. Open the Section settings and go to the <em>Design</em> tab. Expand the <em>Sizing</em> option group and set the <em>Width</em> and <em>Max Width</em> to <em>80%</em>. Choose <em>Center</em> for the <em>Section Alignment</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317158 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-alignment.jpeg" alt="section alignment" width="1800" height="910" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-alignment.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-alignment-300x152.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-alignment-768x388.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-alignment-1536x777.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-alignment-610x308.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Then open the <em>Column</em> settings and set the <em>Vertical Gap</em> to <em>10px</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317159 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-vertical-gap.jpeg" alt="set mobile menu vertical gap" width="1800" height="861" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-vertical-gap.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-vertical-gap-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-vertical-gap-768x367.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-vertical-gap-1536x735.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-vertical-gap-610x292.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, open the <em>Module Group</em> settings and set the <em>Horizontal Gap</em> and <em>Vertical Gap</em> to <em>15px</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317160 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-menu-module-group-settings.jpeg" alt="mobile menu module group settings" width="1800" height="866" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-menu-module-group-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-menu-module-group-settings-300x144.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-menu-module-group-settings-768x369.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-menu-module-group-settings-1536x739.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-menu-module-group-settings-610x293.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Assign a <em>Close</em> icon to the <em>Icon</em> module, set an <em>Icon Size</em>, and expand the <em>Sizing</em> option group to set the <em>Alignment</em> to <em>End</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317161 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-alignment.jpeg" alt="icon alignment" width="1800" height="855" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-alignment.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-alignment-300x143.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-alignment-768x365.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-alignment-1536x730.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/icon-alignment-610x290.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Add a <em>Link</em> module, style it, and enable looping for your WordPress menu.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/creating-a-menu-loop.mp4" type="video/mp4" /></video></p>
<h3>Create The Interactions</h3>
<p>Before closing the Canvas, create an <a href="https://www.elegantthemes.com/blog/theme-releases/interactions">Interaction</a> that closes the mobile menu on click. Select the <em>Icon</em> module and go to the <em>Advanced</em> tab. Expand the <em>Interactions</em> option group and click <em>+ Add Interaction</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317163 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-Divi-5-interaction.jpeg" alt="add Divi 5 interaction" width="1800" height="706" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-Divi-5-interaction.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-Divi-5-interaction-300x118.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-Divi-5-interaction-768x301.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-Divi-5-interaction-1536x602.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-Divi-5-interaction-610x239.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Choose <em>Click</em> as the <em>Trigger Event</em>, give the Interaction a name, choose <em>Hide Element</em> as the <em>Effect Action</em>, and choose <em>Section (Mobile Menu)</em> as the <em>Target Module</em>.</p>
<p><strong>Tip:</strong> To make Interactions easier to manage, label your sections clearly so they are easy to identify in the <em>Layers Panel</em>.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-317164" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-interaction.jpeg" alt="set mobile menu interaction" width="1800" height="928" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-interaction.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-interaction-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-interaction-768x396.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-interaction-1536x792.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-mobile-menu-interaction-610x314.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Before heading back to the Main Canvas, expand the <em>Visibility</em> option group and disable the mobile menu section on all breakpoints. Save the Canvas.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317165 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/disable-mobile-menu-section.jpeg" alt="disable mobile menu section" width="1800" height="793" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/disable-mobile-menu-section.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/disable-mobile-menu-section-300x132.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/disable-mobile-menu-section-768x338.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/disable-mobile-menu-section-1536x677.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/disable-mobile-menu-section-610x269.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Finally, open the <em>Position</em> option group, set <em>Position</em> to <em>Absolute</em>, set <em>Offset Origin</em> to <em>Top Center</em>, and apply a <em>-50px Vertical Offset</em> so the mobile menu appears near the main menu when opened. You may need to adjust this value depending on your header height and spacing.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317171 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-a-vertical-offset.jpeg" alt="set a vertical offset" width="1800" height="892" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-a-vertical-offset.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-a-vertical-offset-300x149.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-a-vertical-offset-768x381.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-a-vertical-offset-1536x761.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/set-a-vertical-offset-610x302.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Switch back to the <em>Main Canvas</em>, select the hamburger <em>Icon</em> module, go to the <em>Advanced</em> tab, expand the <em>Interactions</em> option group, and create a new Interaction that opens the mobile menu on click.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317167 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/open-mobile-menu-interaction.jpeg" alt="open mobile menu interaction" width="1800" height="937" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/open-mobile-menu-interaction.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/open-mobile-menu-interaction-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/open-mobile-menu-interaction-768x400.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/open-mobile-menu-interaction-1536x800.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/open-mobile-menu-interaction-610x318.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Save the Main Canvas, open the page in a new tab, and test the functionality.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/testing-the-menu-functionality.mp4" type="video/mp4" /></video></p>
<h2>Best Practices And Tips</h2>
<p>Here are a few practical tips to help you build better button, menu, and link rows with Divi 5.</p>
<h3>1. Choose Wrap Vs. Column Direction Wisely</h3>
<p>Use <em>Layout Wrapping</em> when you want items to flow naturally onto new lines as space becomes limited. This works well for tag clouds, link rows, and button groups that benefit from automatic wrapping.</p>
<p>Switch to <em>Column</em> direction when you need a strict vertical stack, such as a mobile menu or full-width CTA group. Avoid forcing Column direction too early, especially on Tablet, because it can make layouts longer than necessary.</p>
<h3>2. Prioritize Important CTAs With Display Order</h3>
<p>On mobile, you can use <em>Display Order</em> to move a primary button, key link, or important menu item earlier in the visual flow. A negative value, such as <em>-1</em>, can pull an item ahead of other elements at a specific breakpoint.</p>
<p>Use this selectively. A clean source order should still do most of the work, with Display Order used only when the mobile hierarchy needs a targeted adjustment.</p>
<h3>3. Use The Loop Builder For Menu Links</h3>
<p>When building custom menus with the Link module, you do not need to manually create a separate Link module for every page on your site. Add a single Link module, open its settings, go to the <em>Loop</em> option group, and toggle <em>Loop Element</em> on. Set the <em>Query Type</em> to <em>Menu</em> and choose your WordPress menu.</p>
<p>Using the <a href="https://www.elegantthemes.com/blog/theme-releases/loop-builder">Loop Builder</a> gives you more control over link styling and helps your menu reflect updates when the connected WordPress menu changes.</p>
<h3>4. Use Flexbox Controls For Quick Alignment</h3>
<p>For a typical logo, menu, and button layout, set the parent container to <em>Layout Direction &gt; Row</em>, set <em>Align Items</em> to <em>Center</em>, and use <em>Justify Content &gt; Space Between</em>. This can position the logo, navigation, and CTA in a balanced horizontal row without relying on manual margins.</p>
<p>Then use Module Groups when part of the header needs its own alignment behavior, such as a menu group, social icon group, or CTA button group.</p>
<h3>5. Build More Advanced Menus With Interactions And Canvases</h3>
<p>You can use Divi 5&#8217;s <a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-divi-5-interactions">Interactions</a> and newer <a href="https://www.elegantthemes.com/blog/theme-releases/new-menu-modules-menu-looping-and-interactions">menu features</a> to create more advanced setups, such as mobile overlays, dropdown-style menus, or <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-build-mega-menus-with-divi-5s-dropdown-module">mega menus</a>. While Link modules work well for simple navigation rows, the newer Link and Dropdown modules, <a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-canvases-in-divi-5">Canvases</a>, Loop Builder, and Interactions make it possible to build more custom navigation patterns inside the Visual Builder.</p>
<h2>Download The Layouts</h2>
<p>To help you follow along, we&#8217;ve created a zip file containing the examples from this post. You&#8217;ll find an <em>ALL</em> file containing all sections, a folder with <em>individual sections</em>, and a folder containing the full <em>step-by-step example</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317188 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/downloadable-jsons.jpg" alt="downloadable JSON files" width="1800" height="314" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/downloadable-jsons.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/downloadable-jsons-300x52.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/downloadable-jsons-768x134.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/downloadable-jsons-1536x268.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/downloadable-jsons-610x106.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>To use the ALL file or individual sections, import them into the Divi Library. Go to <em>Divi &gt; Divi Library</em> and click the <em>Import &amp; Export</em> button.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316145 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import.jpg" alt="Divi Library import" width="1800" height="873" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import-300x146.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import-768x372.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import-1536x745.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import-610x296.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Switch to the <em>Import</em> tab, choose an <em>individual JSON</em> file or the <em>ALL</em> file from your computer, and select <em>Import Divi Builder Layouts</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317189 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts-1.jpeg" alt="import divi layouts" width="1800" height="910" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts-1.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts-1-300x152.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts-1-768x388.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts-1-1536x777.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts-1-610x308.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>To use an imported section, open a page in the Visual Builder. Click the <em>blue + icon</em> to add a section to the page.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316451 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi-.jpg" alt="add new section to Divi" width="1800" height="727" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi-.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--300x121.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--768x310.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--1536x620.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--610x246.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Switch to <em>Add From Library</em> and choose the section you want to add to the page.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317190 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-section-to-a-Divi-page.jpeg" alt="add section to a Divi page" width="1800" height="940" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-section-to-a-Divi-page.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-section-to-a-Divi-page-300x157.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-section-to-a-Divi-page-768x401.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-section-to-a-Divi-page-1536x802.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-section-to-a-Divi-page-610x319.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For the step-by-step example, enable the Export &amp; Import Page Bar Icon. Click the <em>Workspace</em> icon in the Builder Bar, locate <em>Export &amp; Import</em> under <em>Page Bar Icons</em>, and click the <em>Export &amp; Import</em> icon in the top bar of the Visual Builder.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317191 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/enable-export-and-import.jpeg" alt="enable export and import" width="1800" height="943" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/enable-export-and-import.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/enable-export-and-import-300x157.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/enable-export-and-import-768x402.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/enable-export-and-import-1536x805.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/enable-export-and-import-610x320.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Switch to the <em>Import</em> tab, locate the folder containing the <em>Menu &#8211; Step By Step.json</em> file, and select <em>Import Layout</em>. This JSON file <em>must</em> be uploaded this way to import the Mobile Menu Canvas associated with it.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317192 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-page-layout.jpeg" alt="import page layout into Divi 5" width="1800" height="738" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-page-layout.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-page-layout-300x123.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-page-layout-768x315.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-page-layout-1536x630.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-page-layout-610x250.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>If you plan to use the example as your site&#8217;s navigation, you can add it as a <em>Global Header</em> in the <em>Theme Builder</em> after importing the layout.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317193 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-new-global-header.jpeg" alt="add new global header" width="1800" height="911" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-new-global-header.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-new-global-header-300x152.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-new-global-header-768x389.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-new-global-header-1536x777.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-new-global-header-610x309.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<div class="et_bloom_locked_container et_bloom_optin_1" data-page_id="316945" data-optin_id="optin_1" data-list_id="mailchimp_c886a2fc0a" data-current_optin_id="optin_1">
					<div class="et_bloom_locked_content" style="display: none;">
						<a href="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Button-Menu-And-Link-Rows.zip" class="button inline-button primary-button" rel=" ">Download the Files</a>
					</div>
					<div class="et_bloom_locked_form">
						<div class="et_bloom_inline_form et_bloom_optin et_bloom_make_form_visible et_bloom_optin_1" style="display: none;">
				<style type="text/css">.et_bloom .et_bloom_optin_1 .et_bloom_form_content { background-color: #4843d2 !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container .et_bloom_form_header { background-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge .et_bloom_form_content:before { border-top-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before, .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:before { border-top-color: transparent !important; border-left-color: #ffffff !important; }
						@media only screen and ( max-width: 767px ) {.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before { border-top-color: #ffffff !important; border-left-color: transparent !important; }.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:after { border-bottom-color: #ffffff !important; border-left-color: transparent !important; }
						}.et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_fields i { color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_custom_field_radio i:before { background: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_border_solid { border-color: #f7f9fb !important } .et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 strong { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; }.et_bloom .et_bloom_optin_1 .et_bloom_form_container p, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p strong, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form input, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form button span { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; } p.et_bloom_popup_input { padding-bottom: 0 !important;}</style>
				<div class="et_bloom_form_container  with_edge carrot_edge et_bloom_border_solid et_bloom_rounded et_bloom_form_text_light et_bloom_form_bottom et_bloom_inline_1_field">
					
			<div class="et_bloom_form_container_wrapper clearfix">
				<div class="et_bloom_header_outer">
					<div class="et_bloom_form_header split et_bloom_header_text_dark">
						<img decoding="async" src="https://www.elegantthemes.com/blog/wp-content/plugins/bloom/images/premade-image-06.png" alt="Download For Free" class=" et_bloom_image_slideup et_bloom_image">
						<div class="et_bloom_form_text">
						<h2>Download For Free</h2><p>Join the Divi Newsletter and we will email you a copy of the ultimate Divi Landing Page Layout Pack, plus tons of other amazing and free Divi resources, tips and tricks. Follow along and you will be a Divi master in no time. <em>If you are already subscribed simply type in your email address below and click download to access the layout pack.</em></p>
					</div>
						
					</div>
				</div>
				<div class="et_bloom_form_content et_bloom_1_field et_bloom_bottom_inline">
					
					
					<form method="post" class="clearfix">
						<div class="et_bloom_fields">
							
							<p class="et_bloom_popup_input et_bloom_subscribe_email">
								<input placeholder="Enter your email address">
							</p>
							
							<button data-optin_id="optin_1" data-service="mailchimp" data-list_id="c886a2fc0a" data-page_id="316945" data-account="Divi Daily" data-ip_address="true" class="et_bloom_submit_subscription et_bloom_submit_subscription_locked">
								<span class="et_bloom_subscribe_loader"></span>
								<span class="et_bloom_button_text et_bloom_button_text_color_light">DOWNLOAD</span>
							</button>
						</div>
					</form>
					<div class="et_bloom_success_container">
						<span class="et_bloom_success_checkmark"></span>
					</div>
					<h2 class="et_bloom_success_message">You have successfully subscribed. Please check your email address to confirm your subscription and get access to free weekly Divi layout packs!</h2>
					
				</div>
			</div>
			<span class="et_bloom_close_button"></span>
				</div>
			</div>
					</div>
				</div>
<h2>Master Flexible Button, Menu, And Link Rows With Flexbox</h2>
<p>With <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> and its <a href="https://www.elegantthemes.com/blog/theme-releases/flexbox">Flexbox Layout System</a>, you can build button groups, link rows, custom menus, and tag clouds that adapt across screen sizes while staying easier to maintain.</p>
<p>The key is choosing the right structure for each pattern. Use <em>Row</em> direction for horizontal layouts, <em>Column</em> direction for strict vertical stacks, <em>Gap</em> for centralized spacing, <em>Layout Wrapping</em> for natural line breaks, and <em>Module Groups</em> when a set of elements needs its own layout behavior.</p>
<p>In Part 8, we&#8217;ll dive deeper into one of the biggest workflow shifts in Divi 5: using Gaps instead of manual margin for cleaner spacing systems.</p>
<p><a href="https://www.elegantthemes.com/members-area/divi-5/">Download Divi 5</a>, import the example layouts included with this post, and start experimenting with flexible button, menu, and link rows. Drop a comment below and let us know which example you found most useful, or what navigation challenge you&#8217;re still working through.</p>
<div class="inline-elements small-gutters two-column centered"><a href="https://www.elegantthemes.com/members-area/divi-5/" class="button primary-button">Download Divi 5</a><a href="https://www.elegantthemes.com/divi-5/" class="button primary-button accent-purple" style="margin-bottom: 16px;">Learn More About Divi 5</a></div>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/part-7-of-mastering-flexbox-building-flexible-button-menu-and-link-rows">Part 7 Of Mastering Flexbox: Building Flexible Button, Menu, And Link Rows</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.elegantthemes.com/blog/divi-resources/part-7-of-mastering-flexbox-building-flexible-button-menu-and-link-rows/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/divi-5-flexbox-ft-img-3.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>How To Create Reusable Border And Shadow Presets In Divi 5</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/how-to-create-reusable-border-and-shadow-presets-in-divi-5</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/how-to-create-reusable-border-and-shadow-presets-in-divi-5#respond</comments>
		
		<dc:creator><![CDATA[Aayush]]></dc:creator>
		<pubDate>Sun, 19 Jul 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[divi 5 presets]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=313745</guid>

					<description><![CDATA[<p>Styling one border or shadow is quick. Keeping that same border or shadow consistent across an entire site is harder. A card gets one border. A column gets a slightly different one. A button shadow is copied from another page. Then the design direction changes, and you have to track down the same small style [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-create-reusable-border-and-shadow-presets-in-divi-5">How To Create Reusable Border And Shadow Presets In Divi 5</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Styling one border or shadow is quick. Keeping that same border or shadow consistent across an entire site is harder.</p>
<p>A card gets one border. A column gets a slightly different one. A button shadow is copied from another page. Then the design direction changes, and you have to track down the same small style decision across multiple modules.</p>
<p><a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> gives you a better workflow with <a href="https://www.elegantthemes.com/blog/theme-releases/preset-based-design">Option Group Presets</a>. Instead of saving an entire module design, you can save one reusable group of settings, such as Border or Box Shadow, and apply it wherever that option group is available.</p>
<p>In this post, we’ll show you how to create reusable border and shadow presets, organize them into a practical preset library, use Design Variables inside them, and update those styles globally from one place.</p>
<h2>Why Create A Border And Shadow Preset Library?</h2>
<p>Borders and shadows often look like minor styling details, but they shape how polished a site feels. If cards, images, sections, forms, and callouts all use slightly different radius values, border colors, or shadow strengths, the design starts to feel inconsistent.</p>
<p>A preset library gives those repeated decisions a clear structure.</p>
<ul>
<li><strong>Clear names make presets easier to reuse:</strong> Labels such as <strong>Border: Card</strong>, <strong>Border: Divider</strong>, <strong>Shadow: Subtle</strong>, and <strong>Shadow: Floating</strong> tell you what each preset is for.</li>
<li><strong>Shared presets reduce guesswork:</strong> Instead of rebuilding the same border or shadow by hand, you apply the saved preset.</li>
<li><strong>Global edits save time:</strong> Update the preset once, and every element using that preset can follow the change.</li>
<li><strong>Defaults speed up new builds:</strong> When a preset is set as the default for an option group, new elements can start with the right styling already applied.</li>
<li><strong>Reusable libraries support design systems:</strong> Borders and shadows become part of a consistent visual language instead of one-off styling choices.</li>
</ul>
<p>The goal is not to create dozens of presets for every possible situation. The goal is to create a small, clear library you can maintain.</p>
<h2>What Are Option Group Presets In Divi 5?</h2>
<p>Before Option Group Presets, reusable styling in Divi usually meant saving an Element Preset. Element Presets are still useful, but they save the styling for an entire element or module type.</p>
<p>That works when you want a complete Button preset, Blurb preset, or Call To Action preset. It is less useful when you only want to reuse one part of the design.</p>
<p>Option Group Presets solve that. They save a specific option group, such as:</p>
<ul>
<li><strong>Border</strong></li>
<li><strong>Box Shadow</strong></li>
<li><strong>Spacing</strong></li>
<li><strong>Background</strong></li>
<li><strong>Sizing</strong></li>
<li><strong>Text</strong></li>
<li><strong>Button</strong></li>
</ul>
<p>A Border preset created on a Column can also be applied to a Section, Row, Image module, Group module, or any other element that supports the Border option group. A Box Shadow preset works the same way across elements that expose Box Shadow controls.</p>
<p>That smaller scope is what makes Option Group Presets powerful. You can reuse one styling decision without bringing along every other setting from the original module.</p>
<h3>Where Design Variables Fit In</h3>
<p><a href="https://www.elegantthemes.com/blog/theme-releases/design-variables">Design Variables</a> store reusable values, such as colors, numbers, fonts, images, and links.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/04/openvariables-small.mp4" /></video></p>
<p>When you use variables inside a preset, the preset becomes easier to maintain.</p>
<p>For example, a border preset might use:</p>
<ul>
<li>A Color Variable for the border color</li>
<li>A Number Variable for the border width</li>
<li>A Number Variable for the border radius</li>
</ul>
<p>A shadow preset might use:</p>
<ul>
<li>A Color Variable for the shadow color</li>
<li>Number Variables for blur, spread, or vertical position</li>
</ul>
<p>The variable holds the raw value. The preset applies that value to a styling pattern. If the variable changes later, every preset and element referencing it can stay aligned with the updated design system.</p>
<h2>How To Create Reusable Border Presets</h2>
<p>There are two practical ways to create a Border Option Group Preset in Divi 5.</p>
<p>You can create one directly from an element you are already styling, or you can create one from the Preset Manager before applying it to a real element.</p>
<h3>Path 1: Create A Border Preset From An Element</h3>
<p>This path works well when you are already designing in context. You style an element, confirm that it looks right in the layout, then save that Border group as a reusable preset.</p>
<h4>Open An Element And Go To The Design Tab</h4>
<p>Click an element in your layout. A Column is a good example because borders are often used on cards and containers, but the same workflow works for Sections, Rows, Groups, Images, Blurbs, and other elements that include Border settings.</p>
<p>Open the element settings, then click the <strong>Design</strong> tab.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-313963" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-design-tab-in-Divi-5s-module-settings-panel.jpg" alt="Design tab in a Divi 5 element settings panel" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-design-tab-in-Divi-5s-module-settings-panel.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-design-tab-in-Divi-5s-module-settings-panel-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-design-tab-in-Divi-5s-module-settings-panel-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-design-tab-in-Divi-5s-module-settings-panel-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-design-tab-in-Divi-5s-module-settings-panel-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Scroll to the <strong>Border</strong> option group.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-313964" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-border-option-group-in-Divi-5s-module-design-tab.jpg" alt="Border option group in the Divi 5 Design tab" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-border-option-group-in-Divi-5s-module-design-tab.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-border-option-group-in-Divi-5s-module-design-tab-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-border-option-group-in-Divi-5s-module-design-tab-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-border-option-group-in-Divi-5s-module-design-tab-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-finding-the-border-option-group-in-Divi-5s-module-design-tab-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Open the group to access border radius, width, color, and style controls.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-313969" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-the-border-settings-in-Divi-5s-design-tab.jpg" alt="Border settings in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-the-border-settings-in-Divi-5s-design-tab.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-the-border-settings-in-Divi-5s-design-tab-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-the-border-settings-in-Divi-5s-design-tab-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-the-border-settings-in-Divi-5s-design-tab-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-the-border-settings-in-Divi-5s-design-tab-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Set The Border Style</h4>
<p>Start with <strong>Border Radius</strong>. The four corner fields are linked by default, so one value applies to all corners. You can unlink them if the design needs different values for each corner.</p>
<p>Use a Number Variable if your site already has a radius scale.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-313971" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-design-variables-being-used-for-border-radius-in-Divi-5.jpg" alt="Using a Design Variable for border radius in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-design-variables-being-used-for-border-radius-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-design-variables-being-used-for-border-radius-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-design-variables-being-used-for-border-radius-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-design-variables-being-used-for-border-radius-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-design-variables-being-used-for-border-radius-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, set the border width and color. A Color Variable works well for border color because it keeps the preset connected to your site’s broader color system.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-313973" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-design-variables-to-style-the-borders.jpg" alt="Using Design Variables for border settings in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-design-variables-to-style-the-borders.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-design-variables-to-style-the-borders-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-design-variables-to-style-the-borders-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-design-variables-to-style-the-borders-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-design-variables-to-style-the-borders-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>By default, width and color apply to all four sides. You can unlink the sides when you need a bottom border, left accent border, top-and-bottom divider, or another directional treatment.</p>
<p>Finally, choose a border style. Solid borders work well for card outlines, image frames, and form fields. Dashed or dotted borders can work for secondary containers, placeholder areas, or decorative separators.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-313974" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-available-border-styles-in-Divi-5.jpg" alt="Border style controls in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-available-border-styles-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-available-border-styles-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-available-border-styles-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-available-border-styles-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-available-border-styles-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Save The Border Group As A Preset</h4>
<p>Once the border looks right, hover over the <strong>Border</strong> group header. Click the preset icon that appears.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-313984" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-assign-presets-option-in-Divi-5.jpg" alt="Assign presets icon on the Border option group in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-assign-presets-option-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-assign-presets-option-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-assign-presets-option-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-assign-presets-option-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-assign-presets-option-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Choose <strong>New Preset From Current Styles</strong> to save the border settings you just created.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-313987" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-two-options-presented-on-clicking-on-the-option-group-presets-icon-1.jpg" alt="New preset options for a Divi 5 option group" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-two-options-presented-on-clicking-on-the-option-group-presets-icon-1.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-two-options-presented-on-clicking-on-the-option-group-presets-icon-1-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-two-options-presented-on-clicking-on-the-option-group-presets-icon-1-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-two-options-presented-on-clicking-on-the-option-group-presets-icon-1-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/A-screenshot-of-the-two-options-presented-on-clicking-on-the-option-group-presets-icon-1-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Give the preset a clear name and save it.</p>
<p>Good preset names describe the style, not only the element where it was created. For example:</p>
<ul>
<li><strong>Border: Card</strong></li>
<li><strong>Border: Subtle</strong></li>
<li><strong>Border: Divider</strong></li>
<li><strong>Border: Accent Left</strong></li>
<li><strong>Border: Image Frame</strong></li>
</ul>
<p>That naming approach matters because the same preset can be used across different element types.</p>
<h3>Path 2: Create A Border Preset In The Preset Manager</h3>
<p>The second path starts in the <a href="https://www.elegantthemes.com/blog/theme-releases/preset-manager">Preset Manager</a>. This is useful when you want to define your preset library before styling individual elements.</p>
<p>It is also helpful on collaborative builds. Instead of each person creating borders their own way, the team can pull from the same preset library from the start.</p>
<h4>Open The Preset Manager And Switch To Group Presets</h4>
<p>Click the <strong>Preset Manager</strong> icon in the left sidebar of the Visual Builder.</p>
<p>The Preset Manager gives you a central view of your preset library. Element presets and group presets are managed separately.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/manager-small.mp4" /></video></p>
<p>Go to the <strong>Group</strong> tab. This is where Option Group Presets live, including Border, Box Shadow, Spacing, Background, and other option group presets.</p>
<p>Select <strong>Border</strong> to view or create Border presets.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-314047" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-option-group-in-the-group-tab-of-the-preset-manager.jpg" alt="Border option group presets in the Divi 5 Preset Manager" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-option-group-in-the-group-tab-of-the-preset-manager.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-option-group-in-the-group-tab-of-the-preset-manager-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-option-group-in-the-group-tab-of-the-preset-manager-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-option-group-in-the-group-tab-of-the-preset-manager-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-option-group-in-the-group-tab-of-the-preset-manager-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Add A New Border Preset</h4>
<p>Click <strong>Add New Preset</strong>.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-314048" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-add-new-preset-button-to-add-a-border-option-group-preset.jpg" alt="Add a new Border option group preset in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-add-new-preset-button-to-add-a-border-option-group-preset.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-add-new-preset-button-to-add-a-border-option-group-preset-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-add-new-preset-button-to-add-a-border-option-group-preset-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-add-new-preset-button-to-add-a-border-option-group-preset-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-add-new-preset-button-to-add-a-border-option-group-preset-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The Preset Preview panel opens. This lets you edit the preset itself without changing an element on the page.</p>
<p>Set the border radius, width, color, sides, and style. The preview updates as you work, so you can test the preset before applying it to a real element.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-314049" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-styling-being-done-using-the-preset-manager.jpg" alt="Editing a Border preset in the Divi 5 Preset Manager" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-styling-being-done-using-the-preset-manager.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-styling-being-done-using-the-preset-manager-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-styling-being-done-using-the-preset-manager-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-styling-being-done-using-the-preset-manager-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-the-border-styling-being-done-using-the-preset-manager-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>When the preset is ready, name it and save it. It will appear in the Border preset library and can be applied across the site.</p>
<h2>How To Create Reusable Shadow Presets</h2>
<p>Box Shadow presets work the same way as Border presets. You can create them from an element’s settings or from the Preset Manager.</p>
<p>Open an element, go to the <strong>Design</strong> tab, expand <strong>Box Shadow</strong>, set the style, and save the group as an Option Group Preset. Or open the Preset Manager, go to the <strong>Group</strong> tab, choose <strong>Box Shadow</strong>, and create the preset there.</p>
<h3>Start With The Box Shadow Controls</h3>
<p>The Box Shadow group includes built-in shadow options that can be used as starting points.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-314062" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-presets-provided-by-Divi-5.jpg" alt="Built-in Box Shadow options in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-presets-provided-by-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-presets-provided-by-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-presets-provided-by-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-presets-provided-by-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-presets-provided-by-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>After choosing a starting point, adjust the shadow settings.</p>
<p>The main controls include:</p>
<ul>
<li><strong>Horizontal Position:</strong> Moves the shadow left or right.</li>
<li><strong>Vertical Position:</strong> Moves the shadow up or down.</li>
<li><strong>Blur Strength:</strong> Controls how soft or sharp the shadow appears.</li>
<li><strong>Spread Strength:</strong> Expands or contracts the shadow.</li>
<li><strong>Shadow Color:</strong> Sets the color and opacity of the shadow.</li>
<li><strong>Box Shadow Position:</strong> Switches between outer and inner shadow behavior.</li>
</ul>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-314063" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-settings-provided-by-Divi-5.jpg" alt="Box Shadow settings in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-settings-provided-by-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-settings-provided-by-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-settings-provided-by-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-settings-provided-by-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-shadow-settings-provided-by-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Vertical Position and Blur Strength usually do the most visual work. Smaller values feel tighter and more grounded. Larger values make an element feel more lifted.</p>
<p>Spread Strength can help contain the shadow. A negative spread can pull the shadow back so it does not spill too far past the element.</p>
<h3>Use Variables For Shadow Values</h3>
<p>For a maintainable shadow system, connect shadow values to Design Variables where it makes sense.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-314064" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-design-variables-being-used-as-shadow-settings-values-by-Divi-5.jpg" alt="Using Design Variables inside Box Shadow settings in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-design-variables-being-used-as-shadow-settings-values-by-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-design-variables-being-used-as-shadow-settings-values-by-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-design-variables-being-used-as-shadow-settings-values-by-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-design-variables-being-used-as-shadow-settings-values-by-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-design-variables-being-used-as-shadow-settings-values-by-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>A shadow color variable keeps shadow tone consistent across the site. Opacity matters as much as color here. Most interface shadows work best when they stay subtle.</p>
<p>You can also use Number Variables for values such as blur, spread, or vertical position. This is useful if you want a small shadow scale, such as:</p>
<ul>
<li><strong>Shadow: Subtle</strong></li>
<li><strong>Shadow: Medium</strong></li>
<li><strong>Shadow: Floating</strong></li>
</ul>
<p>Inner shadows should be used more selectively. They can work well for inset form fields, pressed states, toggles, and panels that need a recessed effect.</p>
<h3>Name Shadow Presets By Weight And Context</h3>
<p>Shadow presets are easiest to manage when the name tells you how strong the shadow is.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-314066" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-shadow-preset-name-in-Divi-5.jpg" alt="Naming a Box Shadow preset in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-shadow-preset-name-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-shadow-preset-name-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-shadow-preset-name-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-shadow-preset-name-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-shadow-preset-name-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Good examples include:</p>
<ul>
<li><strong>Shadow: Subtle</strong></li>
<li><strong>Shadow: Medium</strong></li>
<li><strong>Shadow: Floating</strong></li>
<li><strong>Shadow: Inset</strong></li>
<li><strong>Shadow: Dark Section</strong></li>
</ul>
<p>If your site has both light and dark sections, consider separate shadow presets for each context. A shadow that looks soft on a light background may disappear on a dark one, or feel too heavy when the background changes.</p>
<h2>Apply Border And Shadow Presets Across Your Site</h2>
<p>After your presets are saved, applying them is quick.</p>
<p>Open any element that supports the option group, go to the <strong>Design</strong> tab, hover over the <strong>Border</strong> or <strong>Box Shadow</strong> group header, click the preset icon, and choose the preset from the list.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-314068" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-option-group-presets-being-used-on-the-website-Divi-5.jpg" alt="Applying Option Group Presets in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-option-group-presets-being-used-on-the-website-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-option-group-presets-being-used-on-the-website-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-option-group-presets-being-used-on-the-website-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-option-group-presets-being-used-on-the-website-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/A-screenshot-of-the-option-group-presets-being-used-on-the-website-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>This can work across different element types because the preset belongs to the option group, not the module. The same Border preset can style a Column, Section, Image, Group, or Blurb when the Border option group is available.</p>
<h3>Use Local Overrides When Needed</h3>
<p>Presets do not prevent one-off adjustments. If a preset sets a 4px border but one element needs 3px, you can override that specific value on the element.</p>
<p>The rest of the preset can stay connected. For example, the color, radius, and border style can remain controlled by the preset while the one element uses its own width value.</p>
<p>Use overrides intentionally. If the same override starts appearing in multiple places, save it as a new preset instead of repeating it by hand.</p>
<h3>Set Defaults For Faster Builds</h3>
<p>If a border or shadow style should be the default for new elements, set it as the default preset.</p>
<p>Defaults are useful for repeated patterns such as:</p>
<ul>
<li>Standard card borders</li>
<li>Default image frames</li>
<li>Form field borders</li>
<li>Subtle section shadows</li>
<li>Default container radius</li>
</ul>
<p>This reduces the number of manual styling decisions you need to make while building new sections.</p>
<h2>Use Border And Shadow Presets Together</h2>
<p>Border and shadow presets work especially well together because they control separate parts of a visual style.</p>
<p>For example:</p>
<ul>
<li><strong>Border: Card</strong> controls the outline and radius.</li>
<li><strong>Shadow: Subtle</strong> controls depth.</li>
<li><strong>Background: Surface</strong> controls the card background.</li>
<li><strong>Spacing: Card Padding</strong> controls internal spacing.</li>
</ul>
<p>Keeping those decisions separate gives you flexibility. You can use the same border with different shadows, or the same shadow with different border treatments.</p>
<h3>Use Nested Presets For Larger Patterns</h3>
<p><a href="https://www.elegantthemes.com/blog/theme-releases/nested-option-presets">Nested Presets</a> let smaller Option Group Presets sit inside larger presets or Element Presets.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/04/options1-small.mp4" /></video></p>
<p>For example, you might create:</p>
<ul>
<li><strong>Border: Radius Standard</strong></li>
<li><strong>Border: Card Outline</strong></li>
<li><strong>Shadow: Subtle</strong></li>
<li><strong>Element Preset: Card</strong></li>
</ul>
<p>The Element Preset can include the smaller Option Group Presets. When you apply the Card Element Preset, the border and shadow decisions come with it while still staying editable from their own preset sources.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/04/options2-small.mp4" /></video></p>
<p>This gives you a layered system:</p>
<ul>
<li>Variables hold reusable values.</li>
<li>Option Group Presets apply those values to one group of settings.</li>
<li>Nested Presets combine smaller preset decisions.</li>
<li>Element Presets apply full design patterns to modules.</li>
</ul>
<p>Each layer stays easier to update because it has a clear job.</p>
<h2>Clean Up Existing Border And Shadow Styles</h2>
<p>If a page was built before your preset library existed, it may still contain static values: one-off border colors, inconsistent radius values, or shadow settings that do not match your system.</p>
<p>Divi 5 gives you several tools to clean that up.</p>
<h3>Use Inspector To Audit Existing Styles</h3>
<p>Use the <a href="https://www.elegantthemes.com/blog/theme-releases/inspector">Inspector</a> when you need to understand what is already on the page.</p>
<p>Right-click a section and choose <strong>Inspect</strong>. You can review applied styles in one place instead of opening every module individually.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/10/intro-small.mp4" /></video></p>
<p>This is useful when a row of cards looks slightly inconsistent but you do not yet know which border, radius, or shadow values are different.</p>
<h3>Use Find And Replace For Known Values</h3>
<p>Use <a href="https://www.elegantthemes.com/blog/theme-releases/find-and-replace-for-divi-5">Find And Replace</a> when you already know the exact value you want to replace.</p>
<p>For example, you can replace a static border color with a Color Variable, change a repeated 1px border width to 2px, or update a shadow color that no longer matches your system.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/06/intro-small-1.mp4" /></video></p>
<p>Use <strong>Only Replace Identical Fields</strong> carefully. It can help prevent a number intended for border radius from being replaced in unrelated fields that happen to use the same value.</p>
<h3>Use Extend Attributes To Copy A Correct Style</h3>
<p>Use <a href="https://www.elegantthemes.com/blog/theme-releases/extend-attributes">Extend Attributes</a> when one element already looks right and you want matching elements to use the same styling.</p>
<p>Right-click the styled element, choose <strong>Extend Attributes</strong>, then extend the Border option group, Box Shadow option group, or both. Choose the scope and target element types, then apply the change.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/06/intro-small.mp4" /></video></p>
<p>This is less about finding a value and more about saying: make the rest match this element.</p>
<h2>Update Presets Globally In The Preset Manager</h2>
<p>When you need to change a preset, you do not need to find an element using it first.</p>
<p>Open the <strong>Preset Manager</strong>, go to the <strong>Group</strong> tab, find the Border or Box Shadow preset, and edit it. The Preset Preview system lets you adjust the preset in a safe preview area before saving.</p>
<p>After you save, the change applies to elements using that preset.</p>
<p>The Preset Manager is also useful for organizing your library. You can duplicate a preset to create a variation, set a preset as the default, remove presets that no longer fit, and move your most-used presets where they are easier to find.</p>
<h2>Best Practices For Border And Shadow Presets</h2>
<p>A preset library works best when it stays small, named clearly, and connected to reusable values.</p>
<ul>
<li><strong>Name by role:</strong> Use names such as <strong>Border: Card</strong> or <strong>Shadow: Subtle</strong> instead of names tied to one module.</li>
<li><strong>Use variables where possible:</strong> Connect colors, radius, width, and shadow values to Design Variables when those values should stay global.</li>
<li><strong>Separate border and shadow decisions:</strong> Keep Border and Box Shadow presets independent unless you intentionally combine them through nesting or an Element Preset.</li>
<li><strong>Create variations intentionally:</strong> A small library of Subtle, Medium, and Strong is easier to manage than ten nearly identical shadows.</li>
<li><strong>Use defaults for repeated patterns:</strong> Set default presets for common card, image, or field treatments.</li>
<li><strong>Audit older pages:</strong> Use Inspector, Find And Replace, and Extend Attributes to bring older static values into your preset system.</li>
<li><strong>Review on light and dark backgrounds:</strong> Borders and shadows can feel very different depending on the section background.</li>
</ul>
<h2>Build A Reusable Border And Shadow System In Divi 5</h2>
<p>Borders and shadows are small details, but they appear everywhere. When they are managed module by module, they become hard to maintain. When they are saved as Option Group Presets in <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>, they become part of your design system.</p>
<p>Create a focused preset library, connect repeated values to Design Variables, combine presets when needed, and update them from the Preset Manager when the design changes.</p>
<p>That way, your cards, images, sections, forms, and callouts stay consistent without restyling the same settings again and again.</p>
<div class="inline-elements small-gutters two-column centered"><a href="https://www.elegantthemes.com/members-area/divi-5/" class="button primary-button">Download Divi 5</a><a href="https://www.elegantthemes.com/divi-5/" class="button primary-button accent-purple" style="margin-bottom: 16px;">Learn More About Divi 5</a></div>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-create-reusable-border-and-shadow-presets-in-divi-5">How To Create Reusable Border And Shadow Presets In Divi 5</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.elegantthemes.com/blog/divi-resources/how-to-create-reusable-border-and-shadow-presets-in-divi-5/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/How-To-Create-Reusable-Border-And-Shadow-Presets-In-Divi-5-featured-image.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>Part 6 Of Mastering Flexbox: Key Tips For Building Responsive Layouts</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/part-6-of-mastering-flexbox-key-tips-for-building-responsive-layouts</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/part-6-of-mastering-flexbox-key-tips-for-building-responsive-layouts#respond</comments>
		
		<dc:creator><![CDATA[Deanna McLean]]></dc:creator>
		<pubDate>Sat, 18 Jul 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[Divi 5 Flexbox]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=316623</guid>

					<description><![CDATA[<p>In Part 5 of our Mastering Flexbox series, we showed you how to use Display Order and Wrap Reverse in Divi 5 to create more intentional mobile stacking flows without duplicating sections or writing custom CSS for common reordering patterns. Now, in Part 6, we&#8217;re bringing the workflow together. You&#8217;ve already learned the individual Flexbox [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/part-6-of-mastering-flexbox-key-tips-for-building-responsive-layouts">Part 6 Of Mastering Flexbox: Key Tips For Building Responsive Layouts</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In <a href="https://www.elegantthemes.com/blog/divi-resources/part-5-of-mastering-flexbox-reordering-content-for-better-mobile-layouts">Part 5</a> of our Mastering <a href="https://www.elegantthemes.com/blog/theme-releases/flexbox">Flexbox</a> series, we showed you how to use <em>Display Order</em> and <em>Wrap Reverse</em> in <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> to create more intentional mobile stacking flows without duplicating sections or writing custom CSS for common reordering patterns.</p>
<p>Now, in Part 6, we&#8217;re bringing the workflow together. You&#8217;ve already learned the individual Flexbox controls and layout patterns that make Divi 5 more flexible across breakpoints. In this post, we&#8217;ll cover key tips for combining those tools into cleaner, more maintainable responsive layouts that adapt well across screen sizes.</p>
<p>Let&#8217;s dive in.</p>
<h2>Why Responsive Design Feels Different In Divi 5</h2>
<p>Divi 5&#8217;s Flexbox Layout System changes how you can approach responsive design. Instead of relying on duplicate rows, hidden spacers, or custom CSS for every breakpoint issue, you can start with a clean desktop structure and apply targeted adjustments where the layout actually needs to change.</p>
<p>That means fewer duplicate sections, more predictable responsive behavior, and less maintenance over time. <a href="https://www.elegantthemes.com/blog/theme-releases/customizable-responsive-breakpoints">Customizable Responsive Breakpoints</a> and the <a href="https://www.elegantthemes.com/blog/theme-releases/responsive-editor">Responsive Editor</a> also make it easier to preview and adjust layouts across different screen sizes, so you can make decisions based on the actual layout instead of guessing.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-responsive-tools.mp4" type="video/mp4" /></video></p>
<p>The result is a workflow that feels more intentional: build the cleanest structure first, then use Flexbox and responsive controls to refine how it behaves on Tablet, Phone, and any custom breakpoints your project uses.</p>
<h2>Key Tips For Building Responsive Layouts</h2>
<p>Here are eight practical tips to help you combine everything covered so far in the series. Each tip builds on earlier Flexbox controls and focuses on responsive decisions you can apply in real Divi 5 projects.</p>
<h3>1. Start With Clear Content Hierarchy</h3>
<p>One of the most important shifts when building responsive layouts in Divi 5 is planning your content hierarchy before you start styling.</p>
<p>On Desktop, your layout might follow a logical left-to-right flow. On Phone, that same order may not be the best reading experience. Before you build, decide what should appear first on smaller screens: the heading, CTA, image, featured card, form, sidebar content, or something else.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316726 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-1.jpg" alt="Divi 5 Flexbox tip 1" width="1800" height="699" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-1.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-1-300x117.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-1-768x298.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-1-1536x596.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-1-610x237.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Start with a clean desktop source order, then use <em>Display Order</em> at the Tablet or Phone breakpoint only when the mobile flow needs to change. This helps you keep one layout structure instead of duplicating sections for mobile.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316731 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/setting-display-order-in-Divi-5.jpeg" alt="setting display order in Divi 5" width="1800" height="847" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/setting-display-order-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/setting-display-order-in-Divi-5-300x141.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/setting-display-order-in-Divi-5-768x361.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/setting-display-order-in-Divi-5-1536x723.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/setting-display-order-in-Divi-5-610x287.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>This planning step prevents many mobile stacking issues before they happen and makes the rest of your responsive decisions easier.</p>
<h3>2. Use Per-Breakpoint Controls Wisely</h3>
<p>Divi 5 gives you responsive control across breakpoints, but that doesn&#8217;t mean every setting needs an override. The best approach is to change settings at Tablet or Phone only when the layout needs different behavior.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316733 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-2.jpg" alt="Divi 5 Flexbox tip 2" width="1800" height="1240" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-2.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-2-300x207.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-2-768x529.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-2-1536x1058.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-2-610x420.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For example, fluid values like <em>clamp()</em> and reusable values from Divi&#8217;s <a href="https://www.elegantthemes.com/blog/theme-releases/variable-generator">Variable Generator</a> can often reduce the need for breakpoint-specific spacing or typography overrides.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316735 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-clamp-for-spacing.jpeg" alt="using clamp for spacing" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-clamp-for-spacing.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-clamp-for-spacing-300x153.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-clamp-for-spacing-768x393.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-clamp-for-spacing-1536x785.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/using-clamp-for-spacing-610x312.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Save breakpoint overrides for structural changes, such as <em>Layout Direction</em>, <em>Layout Wrapping</em>, <em>Column Class</em>, <em>Display Order</em>, <em>Align Items</em>, or gap values when the layout becomes cramped. This keeps your desktop layout cleaner and makes future edits easier to track.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316736 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-flexbox-settings.jpeg" alt="mobile flexbox settings" width="1800" height="902" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-flexbox-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-flexbox-settings-300x150.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-flexbox-settings-768x385.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-flexbox-settings-1536x770.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-flexbox-settings-610x306.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>3. Build Efficient Structures With Wrap + Column Class</h3>
<p>With Flexbox, you often don&#8217;t need multiple separate rows just to create a multi-line layout. When using <em>Flex</em> as the Layout Style, a single row with <em>Layout Wrapping &gt; Wrap</em> and intentional <em>Column Class</em> settings can handle many responsive card grids, feature sections, and content blocks.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316738 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-3.jpg" alt="Divi 5 Flexbox tip 3" width="1800" height="722" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-3.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-3-300x120.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-3-768x308.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-3-1536x616.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-3-610x245.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>With Wrap enabled, one row can contain six cards and allow them to move onto additional lines. For example, you might use <em>Column Class &gt; 1/3</em> on Desktop, <em>Column Class &gt; 1/2</em> on Tablet, and a Fullwidth structure on Phone when each card needs its own line.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/breakpoint-changes-using-column-class.mp4" type="video/mp4" /></video></p>
<p>This technique, covered in <a href="https://www.elegantthemes.com/blog/divi-resources/part-3-of-mastering-flexbox-wrap-vs-no-wrap-structure-templates">Part 3</a> of our Mastering Flexbox course, reduces the number of rows you need to manage and makes future layout edits easier.</p>
<h3>4. Combine Alignment, Gap, And Grow To Fill For Consistent Spacing</h3>
<p>Flexbox becomes most useful when you combine settings instead of relying on a single control. For card layouts, <em>Justify Content &gt; Space Between</em>, <em>Gap</em>, and <em>Grow To Fill</em> can work together to keep content areas balanced when text lengths vary.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316741 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-4.jpg" alt="Divi 5 Flexbox tip 4" width="1800" height="709" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-4.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-4-300x118.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-4-768x303.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-4-1536x605.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-tip-4-610x240.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>This pattern, detailed in <a href="https://www.elegantthemes.com/blog/divi-resources/part-2-of-mastering-flexbox-creating-equal-height-cards-with-aligned-buttons">Part 2</a>, is especially useful for feature cards, testimonials, pricing tables, team member cards, and other multi-column sections where content length varies but alignment still needs to feel consistent.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/grow-to-fill-in-Divi-5.mp4" type="video/mp4" /></video></p>
<h3>5. Use Module Groups And Nested Modules For Better Control</h3>
<p>One of Divi 5&#8217;s biggest layout advantages is the ability to create smaller Flex containers inside larger layouts using <a href="https://www.elegantthemes.com/blog/theme-releases/module-groups">Module Groups</a> and <a href="https://www.elegantthemes.com/blog/theme-releases/nested-modules">Nested Modules</a>.</p>
<p>Instead of trying to control every element from the parent column, wrap related elements, such as a heading and body text or a set of buttons, in their own Module Group. That group becomes its own layout context with independent controls for <em>Layout Direction</em>, <em>Justify Content</em>, <em>Align Items</em>, and <em>Gap</em>.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-316744" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-tip-5.jpg" alt="Flexbox tip 5" width="1800" height="737" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-tip-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-tip-5-300x123.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-tip-5-768x314.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-tip-5-1536x629.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Flexbox-tip-5-610x250.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The button group in the example below can have its own <em>Display Order</em> and breakpoint overrides without affecting the outer column. You can also change spacing, alignment, or Layout Direction inside the group at specific breakpoints while keeping the parent structure intact.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/module-groups-in-Divi-5.mp4" type="video/mp4" /></video></p>
<h3>6. Make Mobile Reordering Part Of Your Workflow</h3>
<p>Treat mobile reordering as a standard review step, not an afterthought. Depending on your layout, you may need to adjust <em>Display Order</em>, <em>Layout Direction</em>, or <em>Layout Wrapping</em> at the Tablet or Phone breakpoint.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316759 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-6.jpg" alt="Divi 5 Flexbox tip 6" width="1800" height="530" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-6.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-6-300x88.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-6-768x226.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-6-1536x452.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-6-610x180.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>By default, content follows the layout&#8217;s source order. In many cases, that works well. In others, a CTA, featured card, image, sidebar, or form needs to appear earlier on smaller screens. Handling these changes with breakpoint-specific controls helps you keep a clean desktop structure while improving mobile flow.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/mobile-reordering-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p>Once this becomes part of your regular process, mobile stacking issues are easier to catch before a page goes live.</p>
<h3>7. Optimize For Performance, Accessibility, And Maintainability</h3>
<p>Great Flexbox layouts are not only visually clean. They should also be easy to maintain, efficient, and logical for visitors using keyboards or assistive technology.</p>
<p>Start with a source order that makes sense as a reading order. Use <em>Display Order</em> sparingly for visual reordering, and always test the result. Remember that visual order and source order can differ, so keyboard focus and screen reader flow should still feel logical.</p>
<p>It is also good practice to avoid unnecessary nesting. Module Groups and Nested Modules are useful, but every extra container adds complexity. Use as many nested containers as the design needs, but avoid adding groups just to compensate for unclear structure.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-316762" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-7.jpg" alt="Divi 5 flexbox tip 7" width="1800" height="619" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-7.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-7-300x103.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-7-768x264.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-7-1536x528.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-7-610x210.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Finally, save tested Flexbox structures to the Divi Library when you know you&#8217;ll reuse them. For consistent spacing, sizing, and styling across a site, combine those reusable structures with <a href="https://www.elegantthemes.com/blog/theme-releases/design-variables">Design Variables</a> and <a href="https://www.elegantthemes.com/blog/theme-releases/preset-based-design">Presets</a>.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/create-presets-for-reusability.mp4" type="video/mp4" /></video></p>
<p>After saving or publishing, use the <em>Tab</em> key on the live page to check focus order through buttons, links, forms, and other interactive elements. If focus jumps in a confusing way, review the source order, Display Order values, and mobile structure.</p>
<h3>8. Test With Real Content</h3>
<p>Placeholder text and perfectly cropped images can hide responsive issues, so test with realistic content early.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-316767" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-8-1.jpg" alt="Divi 5 flexbox tip 8" width="1800" height="438" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-8-1.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-8-1-300x73.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-8-1-768x187.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-8-1-1536x374.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-flexbox-tip-8-1-610x148.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For effective testing, use long headlines, real supporting copy, realistic button labels, real image dimensions, and the longest practical titles you expect to publish. On Tablet, watch for awkward wrapping and cramped gaps. On Phone, check stacking order, tap targets, text overflow, and whether key actions appear early enough.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Test-with-real-content.mp4" type="video/mp4" /></video></p>
<p>These habits help you catch responsive issues while the layout is still easy to adjust.</p>
<h2>Troubleshooting Tips For Responsive Flexbox</h2>
<p>Even with a solid understanding of Flexbox, a few issues can come up when building responsive layouts in Divi 5. Knowing what to check first can save time.</p>
<h3>Don&#8217;t Overdo It With Display Order</h3>
<p>One common mistake is relying on <em>Display Order</em> to fix every layout issue instead of improving the underlying structure. Display Order is powerful, but using it on too many elements can make future edits harder to understand.</p>
<p>Start with a clean source order, then use Display Order only for items that truly need to move at a specific breakpoint.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/use-display-order-effectively.mp4" type="video/mp4" /></video></p>
<h3>Know The Difference Between Gap And Spacing</h3>
<p>Many layout issues come from using margin or padding to create space between every individual item. In many Flexbox layouts, <em>Horizontal Gap</em> and <em>Vertical Gap</em> are better for spacing between direct child items inside the same parent container. They keep spacing centralized and easier to adjust across breakpoints.</p>
<p>At the <em>Section</em> level, Horizontal Gap may have no visible effect when the section uses a vertical/Column layout direction. <em>Vertical Gap</em> is useful for controlling spacing between multiple rows inside that section.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316788 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-gap.jpeg" alt="applying Vertical Gap to sections in Divi 5" width="1800" height="913" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-gap.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-gap-300x152.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-gap-768x390.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-gap-1536x779.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/section-gap-610x309.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Apply gaps at the <em>Row</em> level when you want consistent spacing between <em>Columns</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316789 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-gap.jpeg" alt="applying Vertical and Horizontal Gap at the row level in Divi 5" width="1800" height="903" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-gap.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-gap-300x151.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-gap-768x385.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-gap-1536x771.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/row-gap-610x306.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Apply gaps at the <em>Column</em>, <em>Module Group</em>, or <em>Nested Module</em> level when you want spacing between modules or nested items inside that container.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316790 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-gap.jpeg" alt="applying Horizontal and Vertical Gap at the column level in Divi 5" width="1800" height="904" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-gap.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-gap-300x151.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-gap-768x386.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-gap-1536x771.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-gap-610x306.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>That said, <em>Padding</em> is still useful inside <em>Rows</em>, <em>Columns</em>, and <em>Module Groups</em> when you want breathing room around the content itself.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316791 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-padding.jpeg" alt="using padding in Divi 5" width="1800" height="911" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-padding.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-padding-300x152.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-padding-768x389.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-padding-1536x777.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/column-padding-610x309.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Use Structure Templates For Quick Responsive Column Changes</h3>
<p>Manually adjusting <em>Column Class</em> on each column works well, but Structure Templates can speed up bigger responsive changes. In the <em>Content</em> tab of a row, use the <em>Apply Structure Template</em> button in the <em>Elements</em> option group.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316814 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/apply-structure-template.jpeg" alt="apply structure templates in Divi 5" width="1800" height="898" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/apply-structure-template.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/apply-structure-template-300x150.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/apply-structure-template-768x383.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/apply-structure-template-1536x766.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/apply-structure-template-610x304.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>This lets you change a row&#8217;s column structure at a specific breakpoint without manually editing every column one by one.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/applying-structure-templates-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p>Structure Templates are especially useful in rows with many columns or layouts that need a very different Tablet or Phone structure.</p>
<h3>Avoid Forcing Single-Column Layouts Too Aggressively</h3>
<p>It can be tempting to make every mobile layout a single vertical stack. That can work, but it can also create unnecessarily long pages, especially on Tablet.</p>
<p>In many cases, <em>Layout Wrapping</em> combined with smart <em>Column Class</em> settings lets Flexbox create a more balanced responsive layout. For example, a four-card row may work better as two columns on Tablet and one column on Phone, instead of becoming one long stack too early.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/effective-use-of-column-class.mp4" type="video/mp4" /></video></p>
<p>Reserve forced single-column structures for layouts where the content truly benefits from a strict vertical reading order.</p>
<h3>Know Where Responsive Settings Live</h3>
<p>One common source of confusion in Divi 5 is that responsive controls can appear in multiple places. You&#8217;ll find the <em>Breakpoint Switcher</em> at the top of the builder, responsive controls inside the settings panel, and responsive value icons next to individual fields.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/responsive-tools-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p>To reduce guesswork, use the <a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-divi-5s-responsive-editor">Responsive Editor</a>. Click the responsive icon next to a setting to view and manage values across breakpoints in one place. This makes it easier to see what is active on Desktop, Tablet, and Phone.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316830 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-responsive-values-icon.jpg" alt="edit responsive values icon" width="1800" height="908" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-responsive-values-icon.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-responsive-values-icon-300x151.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-responsive-values-icon-768x387.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-responsive-values-icon-1536x775.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-responsive-values-icon-610x308.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Download The Layouts</h2>
<p>To help you practice everything covered in this post, we&#8217;ve prepared a zipped file with example layouts. These include the tip examples, plus a full workflow layout that shows how the techniques work together.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316841 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files.jpg" alt="all JSON files" width="1800" height="445" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files-300x74.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files-768x190.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files-1536x380.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files-610x151.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Go to your WordPress dashboard and navigate to <em>Divi &gt; Divi Library</em>. Then click the <em>Import &amp; Export</em> button at the top.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316145 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import.jpg" alt="Divi Library import" width="1800" height="873" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import-300x146.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import-768x372.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import-1536x745.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Divi-Library-import-610x296.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Switch to the <em>Import</em> tab, select a JSON file from your computer, and click <em>Import Divi Builder Layouts</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316844 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts.jpeg" alt="import divi layouts" width="1800" height="880" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts-300x147.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts-768x375.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts-1536x751.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-divi-layouts-610x298.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Once the files are imported, open a page in the Visual Builder or create a new one. To import a single section, click the <em>blue + icon</em> on the Canvas.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316451 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi-.jpg" alt="add new section to Divi" width="1800" height="727" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi-.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--300x121.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--768x310.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--1536x620.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--610x246.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Select the <em>Add From Library</em> tab, choose the layout you want to use, and click <em>Use This Section</em> to load it onto the page.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/add-a-section-to-Divi-5.mp4" type="video/mp4" /></video></p>
<p>For the full page layout, select the <em>Workspace</em> icon in the Builder Bar, enable <em>Export &amp; Import</em> under <em>Page Bar Icons</em>, and click the <em>Export &amp; Import</em> icon in the top bar.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/enable-export-import.mp4" type="video/mp4" /></video></p>
<p>Switch to the <em>Import</em> tab, choose the <em>Key Tips For Building Responsive Layouts &#8211; Full Page.json</em> file from your computer, make sure <em>Replace Existing Content</em> is checked, and click <em>Import Layout</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316850 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-full-page-layout.jpeg" alt="import full page layout" width="1800" height="727" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-full-page-layout.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-full-page-layout-300x121.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-full-page-layout-768x310.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-full-page-layout-1536x620.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/import-full-page-layout-610x246.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<div class="et_bloom_locked_container et_bloom_optin_1" data-page_id="316623" data-optin_id="optin_1" data-list_id="mailchimp_c886a2fc0a" data-current_optin_id="optin_1">
					<div class="et_bloom_locked_content" style="display: none;">
						<a href="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-5-Flexbox-Tips.zip" class="button inline-button primary-button" rel=" ">Download the Files</a>
					</div>
					<div class="et_bloom_locked_form">
						<div class="et_bloom_inline_form et_bloom_optin et_bloom_make_form_visible et_bloom_optin_1" style="display: none;">
				<style type="text/css">.et_bloom .et_bloom_optin_1 .et_bloom_form_content { background-color: #4843d2 !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container .et_bloom_form_header { background-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge .et_bloom_form_content:before { border-top-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before, .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:before { border-top-color: transparent !important; border-left-color: #ffffff !important; }
						@media only screen and ( max-width: 767px ) {.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before { border-top-color: #ffffff !important; border-left-color: transparent !important; }.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:after { border-bottom-color: #ffffff !important; border-left-color: transparent !important; }
						}.et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_fields i { color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_custom_field_radio i:before { background: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_border_solid { border-color: #f7f9fb !important } .et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 strong { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; }.et_bloom .et_bloom_optin_1 .et_bloom_form_container p, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p strong, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form input, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form button span { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; } p.et_bloom_popup_input { padding-bottom: 0 !important;}</style>
				<div class="et_bloom_form_container  with_edge carrot_edge et_bloom_border_solid et_bloom_rounded et_bloom_form_text_light et_bloom_form_bottom et_bloom_inline_1_field">
					
			<div class="et_bloom_form_container_wrapper clearfix">
				<div class="et_bloom_header_outer">
					<div class="et_bloom_form_header split et_bloom_header_text_dark">
						<img decoding="async" src="https://www.elegantthemes.com/blog/wp-content/plugins/bloom/images/premade-image-06.png" alt="Download For Free" class=" et_bloom_image_slideup et_bloom_image">
						<div class="et_bloom_form_text">
						<h2>Download For Free</h2><p>Join the Divi Newsletter and we will email you a copy of the ultimate Divi Landing Page Layout Pack, plus tons of other amazing and free Divi resources, tips and tricks. Follow along and you will be a Divi master in no time. <em>If you are already subscribed simply type in your email address below and click download to access the layout pack.</em></p>
					</div>
						
					</div>
				</div>
				<div class="et_bloom_form_content et_bloom_1_field et_bloom_bottom_inline">
					
					
					<form method="post" class="clearfix">
						<div class="et_bloom_fields">
							
							<p class="et_bloom_popup_input et_bloom_subscribe_email">
								<input placeholder="Enter your email address">
							</p>
							
							<button data-optin_id="optin_1" data-service="mailchimp" data-list_id="c886a2fc0a" data-page_id="316623" data-account="Divi Daily" data-ip_address="true" class="et_bloom_submit_subscription et_bloom_submit_subscription_locked">
								<span class="et_bloom_subscribe_loader"></span>
								<span class="et_bloom_button_text et_bloom_button_text_color_light">DOWNLOAD</span>
							</button>
						</div>
					</form>
					<div class="et_bloom_success_container">
						<span class="et_bloom_success_checkmark"></span>
					</div>
					<h2 class="et_bloom_success_message">You have successfully subscribed. Please check your email address to confirm your subscription and get access to free weekly Divi layout packs!</h2>
					
				</div>
			</div>
			<span class="et_bloom_close_button"></span>
				</div>
			</div>
					</div>
				</div>
<h2>Master Responsive Layouts With Divi 5</h2>
<p>You no longer need extra rows, hidden spacers, or custom CSS for many common responsive layout patterns. With <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>&#8216;s Flexbox tools and the tips in this post, you can build layouts that adapt across breakpoints while staying easier to maintain.</p>
<p>In Part 7 Of Mastering Flexbox: Building Flexible Button, Menu, And Link Rows, we&#8217;ll focus on compact, responsive navigation elements, button groups, tag clouds, and link rows that work across different screen sizes.</p>
<p>Download Divi 5, import the example layouts, and start applying these responsive techniques. Drop a comment below and let us know which tip was most helpful, or what responsive challenge you&#8217;re still working through.</p>
<div class="inline-elements small-gutters two-column centered"><a href="https://www.elegantthemes.com/members-area/divi-5/" class="button primary-button">Download Divi 5</a><a href="https://www.elegantthemes.com/divi-5/" class="button primary-button accent-purple" style="margin-bottom: 16px;">Learn More About Divi 5</a></div>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/part-6-of-mastering-flexbox-key-tips-for-building-responsive-layouts">Part 6 Of Mastering Flexbox: Key Tips For Building Responsive Layouts</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.elegantthemes.com/blog/divi-resources/part-6-of-mastering-flexbox-key-tips-for-building-responsive-layouts/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/divi-5-flexbox-part-6-ft-img-3.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>Part 5 Of Mastering Flexbox: Reordering Content For Better Mobile Layouts</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/part-5-of-mastering-flexbox-reordering-content-for-better-mobile-layouts</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/part-5-of-mastering-flexbox-reordering-content-for-better-mobile-layouts#respond</comments>
		
		<dc:creator><![CDATA[Deanna McLean]]></dc:creator>
		<pubDate>Fri, 17 Jul 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[Divi 5 Flexbox]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=316480</guid>

					<description><![CDATA[<p>In Part 4 of our Mastering Flexbox series, we showed you how to align content without hidden spacers or custom CSS by using Justify Content, Align Items, Grow To Fill, Module Groups, and Nested Modules. Now it&#8217;s time to solve another common responsive layout challenge: mobile stacking order. On desktop, a complex layout can look [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/part-5-of-mastering-flexbox-reordering-content-for-better-mobile-layouts">Part 5 Of Mastering Flexbox: Reordering Content For Better Mobile Layouts</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In <a href="https://www.elegantthemes.com/blog/divi-resources/part-4-of-mastering-flexbox-aligning-content-without-spacers-or-custom-css">Part 4</a> of our Mastering <a href="https://www.elegantthemes.com/blog/theme-releases/flexbox">Flexbox</a> series, we showed you how to align content without hidden spacers or custom CSS by using <em>Justify Content</em>, <em>Align Items</em>, <em>Grow To Fill</em>, <a href="https://www.elegantthemes.com/blog/theme-releases/module-groups">Module Groups</a>, and <a href="https://www.elegantthemes.com/blog/theme-releases/nested-modules">Nested Modules</a>.</p>
<p>Now it&#8217;s time to solve another common responsive layout challenge: mobile stacking order. On desktop, a complex layout can look polished and intentional. But when that same layout stacks on mobile, the default order may not create the best reading flow. Images can stack above the wrong text, key CTAs can appear too low, featured cards can lose priority, and the overall rhythm can feel off.</p>
<p>Divi 5&#8217;s Flexbox Layout System gives you visual controls for reordering content across breakpoints. With <em>Display Order</em>, and in some cases <em>Wrap Reverse</em>, you can improve the mobile experience inside the Visual Builder without duplicating sections or writing custom CSS for common reordering patterns.</p>
<p>In this part, you&#8217;ll learn how to fix common mobile stacking problems, create more intentional mobile-first flows, and maintain stronger visual hierarchy across breakpoints.</p>
<p>Let&#8217;s dive in.</p>
<h2>Why Mobile Reordering Matters</h2>
<p>On desktop, carefully designed layouts often rely on side-by-side relationships. Images and text alternate, supporting content sits beside key messages, and featured elements are positioned for visual balance.</p>
<p>On mobile, those same elements usually stack vertically. Divi follows the source order of the layout, so the element that appears first in the structure usually appears first on smaller screens. That can create issues such as:</p>
<ul>
<li>Images stacking above other images instead of pairing with their related text.</li>
<li>Important CTAs appearing below long sections of supporting content.</li>
<li>Featured cards appearing after less important cards.</li>
<li>Mobile layouts that feel visually disconnected from the desktop design.</li>
</ul>
<p>These issues affect more than aesthetics. Poor mobile ordering can make a page harder to scan, slow down decision-making, and push important actions farther down the screen. Visitors on phones need a logical flow that presents the most relevant information at the right moment.</p>
<p>Divi 5 lets you correct these issues without creating duplicate sections for mobile. With Flexbox ordering controls, you can adjust the mobile experience while keeping one cleaner layout structure.</p>
<h2>Core Reordering Features In Divi 5</h2>
<p>Divi 5 gives you a few important tools for controlling content order across breakpoints. The main one is <em>Display Order</em>. <em>Wrap Reverse</em> can also help in specific wrapped layouts, especially when you want to change how wrapped lines stack.</p>
<h3>Display Order</h3>
<p>The primary tool for reordering content is <em>Display Order</em>, located in the <em>Content</em> tab under the <em>Order</em> option group. You can use it on flex items such as columns, modules, rows, and <a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-divi-5-module-groups">Module Groups</a>, depending on the parent layout context.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316606 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/using-display-order-in-Divi-5.jpeg" alt="using display order in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/using-display-order-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/using-display-order-in-Divi-5-300x153.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/using-display-order-in-Divi-5-768x393.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/using-display-order-in-Divi-5-1536x785.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/using-display-order-in-Divi-5-610x312.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Lower numbers appear earlier in the visual order, while higher numbers appear later. The default value is <em>0</em>. You can use negative numbers, such as <em>-1</em>, to pull an element earlier, or positive numbers to move an element later in the visual order.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/positive-and-negative-display-order-values.mp4" type="video/mp4" /></video></p>
<p>In most cases, adjust <em>Display Order</em> at the Tablet and Phone breakpoints while leaving Desktop at its default source order. This keeps your desktop structure easier to maintain while giving you targeted control on smaller screens.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316609 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/table-and-mobile-breakpoints.jpeg" alt="tablet and mobile breakpoints" width="1800" height="909" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/table-and-mobile-breakpoints.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/table-and-mobile-breakpoints-300x152.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/table-and-mobile-breakpoints-768x388.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/table-and-mobile-breakpoints-1536x776.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/table-and-mobile-breakpoints-610x308.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Wrap Reverse</h3>
<p><em>Wrap Reverse</em> is useful when working with wrapped content. Instead of new flex lines stacking in the normal cross-axis direction, Wrap Reverse places wrapped lines in the opposite direction. This does not replace Display Order for precise item-by-item reordering, but it can help with certain responsive patterns where an entire wrapped line should move visually.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/using-wrap-reverse.mp4" type="video/mp4" /></video></p>
<h2>Mobile Reordering Examples</h2>
<p>Below are six examples that show how to solve common mobile stacking problems using Divi 5&#8217;s Flexbox reordering controls. Each example explains the desktop goal, the mobile issue, and the targeted adjustment that improves the mobile flow.</p>
<h3>1. Hero Section</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316541 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-1-Hero.jpg" alt="Flexbox mobile reordering example 1" width="1800" height="1080" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-1-Hero.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-1-Hero-300x180.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-1-Hero-768x461.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-1-Hero-1536x922.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-1-Hero-610x366.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a classic two-column hero layout with an image on the left and the headline, description, and CTAs on the right on desktop, while making sure the main message appears first on mobile.</p>
<p><strong>The Problem On Mobile:</strong> By default, Divi stacks columns according to their source order. If the image column comes first, mobile visitors may see a large image before they see the headline, supporting text, or CTA buttons. This delays the page&#8217;s main message.</p>
<p><strong>The Solution:</strong> Use <em>Display Order</em> to set the content column to <em>-1</em> at the <em>Phone</em> breakpoint. This pulls the content column above the image on mobile while leaving the desktop layout unchanged.</p>
<h4>Why Put Content Above The Image On Mobile?</h4>
<p>On phones, space is limited and users scan quickly. Showing the heading and value proposition first helps visitors understand the page before they commit to scrolling. Placing CTA buttons higher can also make the next action easier to find.</p>
<h3>2. Footer</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316575 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Wrap-Reverse-example-footer.jpeg" alt="Wrap Reverse example footer" width="1800" height="1080" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Wrap-Reverse-example-footer.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Wrap-Reverse-example-footer-300x180.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Wrap-Reverse-example-footer-768x461.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Wrap-Reverse-example-footer-1536x922.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Wrap-Reverse-example-footer-610x366.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a four-column footer on desktop, such as Company, Products, Resources, and Contact &amp; Support, while making sure the Contact column appears higher on mobile.</p>
<p><strong>The Problem On Mobile:</strong> When footer columns stack on smaller screens, the Contact &amp; Support column may end up last. This can force mobile users to scroll through less urgent link groups before reaching phone numbers, email links, or support options.</p>
<p><strong>The Solution:</strong> Enable <em>Layout Wrapping &gt; Wrap</em> on Tablet. Then, on the Phone breakpoint, switch to <em>Wrap Reverse</em>. This changes how the wrapped columns stack, allowing the last column to move higher in the mobile flow without manually assigning Display Order values to every column.</p>
<h4>Why Use Wrap Reverse Here?</h4>
<p>Wrap Reverse is useful when the main issue is line-level stacking rather than precise individual ordering. For footers, it can be a low-maintenance way to bring later columns, such as contact details, higher on smaller screens while keeping the desktop footer structure intact.</p>
<h3>3. Alternating Image-Text Rows</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316543 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-2-Alternating-Image–Text-Rows.jpg" alt="Alternating Image-Text Rows" width="1800" height="1080" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-2-Alternating-Image–Text-Rows.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-2-Alternating-Image–Text-Rows-300x180.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-2-Alternating-Image–Text-Rows-768x461.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-2-Alternating-Image–Text-Rows-1536x922.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-2-Alternating-Image–Text-Rows-610x366.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Maintain an alternating layout on desktop, such as image left/text right followed by text left/image right, while creating a consistent mobile flow.</p>
<p><strong>The Problem On Mobile:</strong> With alternating rows, the default stacking behavior can create inconsistent mobile sequences. The first row may stack image first, while the second row stacks text first because its desktop source order is reversed. This can make the mobile layout feel uneven.</p>
<p><strong>The Solution:</strong> On the second row, set the image column&#8217;s <em>Display Order</em> to <em>-1</em> at the <em>Phone</em> breakpoint. This pulls the image above the text on mobile while keeping the desktop alternating layout unchanged.</p>
<h4>Why Put The Image Above Text On Mobile?</h4>
<p>For supporting content sections, images can act as visual anchors that introduce each topic. A consistent image-first pattern can make repeated sections easier to scan. This is different from a hero section, where the headline and CTA usually deserve priority.</p>
<h3>4. Featured Card Grid</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316545 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-3-Card-Grid.jpg" alt="example 3 - priority reordering in a card grid" width="1800" height="1080" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-3-Card-Grid.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-3-Card-Grid-300x180.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-3-Card-Grid-768x461.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-3-Card-Grid-1536x922.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-3-Card-Grid-610x366.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a balanced three-column card grid on desktop with a featured card in the middle, while making sure the featured card appears first on mobile.</p>
<p><strong>The Problem On Mobile:</strong> On desktop, the featured card may sit in the center for visual balance. When the columns stack on mobile, the first card in the source order appears first, pushing the featured card into the second position.</p>
<p><strong>The Solution:</strong> Set the middle column, which contains the featured card, to <em>Display Order &gt; -1</em> at the Tablet and Phone breakpoints. This moves the featured card to the top of the mobile stack while keeping the desktop grid unchanged.</p>
<h4>Why Put The Featured Card First On Mobile?</h4>
<p>On mobile, users see one card at a time. If one card highlights a key offer, main benefit, or most important option, placing it first gives it immediate visibility and supports a clearer hierarchy.</p>
<h3>5. Sidebar Layout</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316546 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-4-Sidebar-Layout.jpg" alt="Example 4 - Sidebar Layout" width="1800" height="1080" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-4-Sidebar-Layout.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-4-Sidebar-Layout-300x180.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-4-Sidebar-Layout-768x461.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-4-Sidebar-Layout-1536x922.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-4-Sidebar-Layout-610x366.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a two-column layout with main content on the left and a sidebar on the right on desktop, while making sure high-value sidebar content appears earlier on mobile.</p>
<p><strong>The Problem On Mobile:</strong> By default, Divi stacks columns in source order. If the main content column appears first, the sidebar may be pushed far down the mobile page, even if it contains important CTAs, forms, or opt-ins.</p>
<p><strong>The Solution:</strong> Set the <em>sidebar column&#8217;s Display Order</em> to <em>-1</em> at the Tablet and Phone breakpoints. This moves the sidebar above the main content on smaller screens. Inside the sidebar, set the <em>email opt-in Module Group</em> to <em>Display Order &gt; -1</em> so it appears at the top of the sidebar content.</p>
<h4>Why Put The Sidebar First On Mobile?</h4>
<p>Sidebars often contain high-value actions, such as newsletter signups, contact forms, or promotional CTAs. Moving the sidebar higher can make those actions more visible before users scroll through a long article or page.</p>
<h4>Why Move The Email Opt-In To The Top Of The Sidebar?</h4>
<p>The email opt-in is often one of the most important actions in a sidebar. Moving it to the top creates an earlier opportunity for engagement while preserving the desktop layout.</p>
<h3>6. Call To Action + Blurbs</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316548 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-5-CTA.jpeg" alt="Example 5 - CTA" width="1800" height="1080" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-5-CTA.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-5-CTA-300x180.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-5-CTA-768x461.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-5-CTA-1536x922.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Example-5-CTA-610x366.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a section with a headline row, three feature blurbs, and a prominent button group on desktop, while bringing the CTA buttons higher on mobile.</p>
<p><strong>The Problem On Mobile:</strong> If Divi stacks rows in source order, users see the headline, then the blurbs, and only then reach the CTA buttons. On mobile, this can place the primary action too far down the page.</p>
<p><strong>The Solution:</strong> Use <em>Display Order</em> at the row level instead of only at the column level. For mobile, reorder the three rows like this:</p>
<ul>
<li><strong>Row 1, Headline + copy:</strong> Display Order &gt; 0</li>
<li><strong>Row 3, Buttons:</strong> Display Order &gt; 0</li>
<li><strong>Row 2, Blurbs:</strong> Display Order &gt; 1</li>
</ul>
<p>This moves the button row directly after the headline on mobile without changing the desktop layout.</p>
<h4>Why This Works</h4>
<p>For conversion-focused sections, users should see the primary action early. Moving the buttons directly after the headline gives mobile visitors a clearer path to action, while the blurbs still provide supporting information afterward.</p>
<h2>Step-By-Step Build Walkthrough</h2>
<p>Now that you&#8217;ve seen how Display Order and Wrap Reverse can improve mobile layouts, let&#8217;s build a simple three-column section. On Desktop, the columns sit side by side. On Tablet, the CTA moves higher. On Phone, you can choose the order that best supports the content hierarchy.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316612 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/step-by-step-tutorial.jpeg" alt="display order step by step tutorial" width="1800" height="1080" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/step-by-step-tutorial.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/step-by-step-tutorial-300x180.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/step-by-step-tutorial-768x461.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/step-by-step-tutorial-1536x922.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/step-by-step-tutorial-610x366.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Step 1: Create The Desktop Layout</h3>
<p>Add a three-column row to a page in the Visual Builder. Set the <em>Vertical Gap</em> and <em>Horizontal Gap</em> to <em>25px</em>, then leave the remaining layout settings at their defaults unless your design needs additional adjustments.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316578 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/new-three-column-row-with-gaps.jpg" alt="adding a three column row to Divi 5" width="1800" height="899" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/new-three-column-row-with-gaps.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/new-three-column-row-with-gaps-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/new-three-column-row-with-gaps-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/new-three-column-row-with-gaps-1536x767.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/new-three-column-row-with-gaps-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Add an image to the left column, supporting text to the middle column, and a CTA to the third column.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316584 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/styled-three-column-row.jpg" alt="styled three column row" width="1800" height="916" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/styled-three-column-row.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/styled-three-column-row-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/styled-three-column-row-768x391.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/styled-three-column-row-1536x782.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/styled-three-column-row-610x310.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Step 2: Adjust Column Classes On Tablet</h3>
<p>At the top of the builder, click the Tablet icon in the Responsive Breakpoint switcher. Any settings you change from this point forward apply to the Tablet breakpoint, while the Desktop layout remains unchanged.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316585 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/tablet-breakpoint.jpeg" alt="tablet breakpoint in Divi 5" width="1800" height="883" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/tablet-breakpoint.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/tablet-breakpoint-300x147.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/tablet-breakpoint-768x377.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/tablet-breakpoint-1536x753.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/tablet-breakpoint-610x299.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, adjust the number of columns shown at the Tablet breakpoint. Open each column and assign a <em>Column Class</em>, such as <em>1/2</em> for the first two columns and <em>Fullwidth</em> for the third column.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/setting-a-column-class.mp4" type="video/mp4" /></video></p>
<h3>Step 3: Enable Layout Wrapping</h3>
<p>Next, enable <em>Layout Wrapping</em> at the Tablet breakpoint. Without wrapping, the Column Class settings may not break into multiple lines as expected when the available width changes.</p>
<p>In the row&#8217;s <em>Design</em> tab, open the <em>Layout</em> option group and set <em>Layout Wrapping</em> to <em>Wrap</em>. This allows the columns to move onto additional lines.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316587 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/layout-wrapping.jpg" alt="layout wrapping in Divi 5" width="1800" height="903" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/layout-wrapping.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/layout-wrapping-300x151.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/layout-wrapping-768x385.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/layout-wrapping-1536x771.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/layout-wrapping-610x306.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Step 4: Set The Display Order</h3>
<p>While still on the <em>Tablet</em> breakpoint, select column 3, which contains the CTA. In the column&#8217;s <em>Content</em> tab, go to <em>Order &gt; Display Order</em> and enter <em>-1</em>.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/change-display-order.mp4" type="video/mp4" /></video></p>
<p>Setting Display Order to <em>-1</em> pulls the CTA column earlier in the visual order at the Tablet breakpoint. This gives the call to action higher visibility without changing the desktop source order.</p>
<h3>Step 5: Switch To The Phone Breakpoint</h3>
<p>After making changes at the Tablet breakpoint, switch to the Phone breakpoint.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316592 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-in-Divi-5.jpeg" alt="phone breakpoint in Divi 5" width="1800" height="904" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-in-Divi-5-300x151.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-in-Divi-5-768x386.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-in-Divi-5-1536x771.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-in-Divi-5-610x306.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Review how the section stacks on Phone. Divi 5&#8217;s responsive controls let you make additional Phone-specific adjustments when the ideal mobile order differs from Tablet.</p>
<p>If you want the image to appear first on Phone while keeping the CTA higher on Tablet, adjust the <em>third column</em>, the CTA column, to <em>Display Order &gt; 2</em> at the Phone breakpoint.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316600 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-display-order.jpeg" alt="phone breakpoint display order" width="1800" height="911" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-display-order.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-display-order-300x152.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-display-order-768x389.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-display-order-1536x777.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/phone-breakpoint-display-order-610x309.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>When you cycle through all breakpoints, each breakpoint displays the CTA in the order you specified.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/reordering-on-multiple-breakpoints.mp4" type="video/mp4" /></video></p>
<h2>Responsive Best Practices And Tips</h2>
<p>Now that you know how to reorder content with Flexbox in Divi 5, here are practical tips to help you use these tools effectively while keeping layouts clean and easier to maintain.</p>
<h3>Set Display Order Values At The Breakpoint Level</h3>
<p>Avoid changing the order on Desktop unless the desktop design specifically requires it. Make most reordering adjustments at the Tablet or Phone breakpoint using Divi&#8217;s <a href="https://www.elegantthemes.com/blog/theme-releases/customizable-responsive-breakpoints">Customizable Responsive Breakpoints</a> and/or the <a href="https://www.elegantthemes.com/blog/theme-releases/responsive-editor">Responsive Editor</a>. This keeps your desktop layout governed by clean source order while allowing targeted mobile changes.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/customizable-responsive-breakpoints-1.mp4" type="video/mp4" /></video></p>
<h3>Use Negative Values When Appropriate</h3>
<p>When an important element, such as a featured card or primary CTA, needs to appear earlier on mobile, set its <em>Display Order</em> to <em>-1</em>. This is usually cleaner than assigning large positive numbers to every other item. Negative values clearly mark the item that should move earlier.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316594 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/negative-display-order-values.jpeg" alt="negative display order values" width="1800" height="903" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/negative-display-order-values.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/negative-display-order-values-300x151.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/negative-display-order-values-768x385.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/negative-display-order-values-1536x771.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/negative-display-order-values-610x306.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Only Reorder Elements That Need It</h3>
<p>Every flex item starts with the same default order value. You usually only need to adjust the items you want to move. Reordering every column creates unnecessary maintenance work and makes future troubleshooting harder.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/only-reorder-elements-that-need-it.mp4" type="video/mp4" /></video></p>
<h3>Reorder Based On Content Hierarchy, Not Just Appearance</h3>
<p>The strongest reason to change order on mobile is to improve the visitor&#8217;s flow through the page. Prioritize key messages, calls to action, featured cards, opt-ins, or visual anchors based on what the user needs to see first. Every reordering decision should support the mobile content hierarchy, not just mirror a desktop design pattern.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/reorder-based-on-hierarchy.mp4" type="video/mp4" /></video></p>
<h2>Download The Layouts</h2>
<p>To make the workflow easier to explore, we&#8217;ve created a zipped folder containing the section layouts used in this post. These are the finished, reordered versions, so you can inspect how <em>Display Order</em>, <em>Layout Wrapping</em>, and <em>Wrap Reverse</em> work together across breakpoints.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316617 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/reordering-JSON-files.jpg" alt="JSON files" width="1800" height="426" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/reordering-JSON-files.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/reordering-JSON-files-300x71.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/reordering-JSON-files-768x182.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/reordering-JSON-files-1536x364.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/reordering-JSON-files-610x144.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>To use them, fill out the form below to access the files. Then go to <em>Divi &gt; Divi Library</em> and click the <em>Import &amp; Export</em> button.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316279 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-export-Divi-library-layouts.jpg" alt="import &amp; export Divi library layouts" width="1800" height="874" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-export-Divi-library-layouts.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-export-Divi-library-layouts-300x146.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-export-Divi-library-layouts-768x373.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-export-Divi-library-layouts-1536x746.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-export-Divi-library-layouts-610x296.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Switch to the <em>Import</em> tab, choose a JSON file to upload, and click <em>Import Divi Builder Layouts</em>.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-316618" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-builder-layouts-1.jpeg" alt="import divi builder layouts" width="1800" height="853" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-builder-layouts-1.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-builder-layouts-1-300x142.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-builder-layouts-1-768x364.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-builder-layouts-1-1536x728.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-builder-layouts-1-610x289.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, create a new page or open an existing one in the Visual Builder. Click the <em>blue + icon</em> to add a new section to the page.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316451 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi-.jpg" alt="add new section to Divi" width="1800" height="727" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi-.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--300x121.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--768x310.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--1536x620.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--610x246.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Choose <em>Add From Library</em>, select a layout, and click <em>Use This Section</em>.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-a-divi-library-layout.mp4" type="video/mp4" /></video></p>
<div class="et_bloom_locked_container et_bloom_optin_1" data-page_id="316480" data-optin_id="optin_1" data-list_id="mailchimp_c886a2fc0a" data-current_optin_id="optin_1">
					<div class="et_bloom_locked_content" style="display: none;">
						<a href="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Reordering-Content-For-Better-Mobile-Layouts.zip" class="button inline-button primary-button" rel=" ">Download the Files</a>
					</div>
					<div class="et_bloom_locked_form">
						<div class="et_bloom_inline_form et_bloom_optin et_bloom_make_form_visible et_bloom_optin_1" style="display: none;">
				<style type="text/css">.et_bloom .et_bloom_optin_1 .et_bloom_form_content { background-color: #4843d2 !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container .et_bloom_form_header { background-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge .et_bloom_form_content:before { border-top-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before, .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:before { border-top-color: transparent !important; border-left-color: #ffffff !important; }
						@media only screen and ( max-width: 767px ) {.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before { border-top-color: #ffffff !important; border-left-color: transparent !important; }.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:after { border-bottom-color: #ffffff !important; border-left-color: transparent !important; }
						}.et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_fields i { color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_custom_field_radio i:before { background: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_border_solid { border-color: #f7f9fb !important } .et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 strong { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; }.et_bloom .et_bloom_optin_1 .et_bloom_form_container p, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p strong, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form input, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form button span { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; } p.et_bloom_popup_input { padding-bottom: 0 !important;}</style>
				<div class="et_bloom_form_container  with_edge carrot_edge et_bloom_border_solid et_bloom_rounded et_bloom_form_text_light et_bloom_form_bottom et_bloom_inline_1_field">
					
			<div class="et_bloom_form_container_wrapper clearfix">
				<div class="et_bloom_header_outer">
					<div class="et_bloom_form_header split et_bloom_header_text_dark">
						<img decoding="async" src="https://www.elegantthemes.com/blog/wp-content/plugins/bloom/images/premade-image-06.png" alt="Download For Free" class=" et_bloom_image_slideup et_bloom_image">
						<div class="et_bloom_form_text">
						<h2>Download For Free</h2><p>Join the Divi Newsletter and we will email you a copy of the ultimate Divi Landing Page Layout Pack, plus tons of other amazing and free Divi resources, tips and tricks. Follow along and you will be a Divi master in no time. <em>If you are already subscribed simply type in your email address below and click download to access the layout pack.</em></p>
					</div>
						
					</div>
				</div>
				<div class="et_bloom_form_content et_bloom_1_field et_bloom_bottom_inline">
					
					
					<form method="post" class="clearfix">
						<div class="et_bloom_fields">
							
							<p class="et_bloom_popup_input et_bloom_subscribe_email">
								<input placeholder="Enter your email address">
							</p>
							
							<button data-optin_id="optin_1" data-service="mailchimp" data-list_id="c886a2fc0a" data-page_id="316480" data-account="Divi Daily" data-ip_address="true" class="et_bloom_submit_subscription et_bloom_submit_subscription_locked">
								<span class="et_bloom_subscribe_loader"></span>
								<span class="et_bloom_button_text et_bloom_button_text_color_light">DOWNLOAD</span>
							</button>
						</div>
					</form>
					<div class="et_bloom_success_container">
						<span class="et_bloom_success_checkmark"></span>
					</div>
					<h2 class="et_bloom_success_message">You have successfully subscribed. Please check your email address to confirm your subscription and get access to free weekly Divi layout packs!</h2>
					
				</div>
			</div>
			<span class="et_bloom_close_button"></span>
				</div>
			</div>
					</div>
				</div>
<h2>Unlock Mobile Reordering In Divi 5</h2>
<p>You no longer need to duplicate sections or write custom CSS for common mobile reordering patterns. With <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>&#8216;s Flexbox ordering controls, you can create more intentional mobile layouts while keeping the desktop structure intact.</p>
<p>In Part 6 Of Mastering Flexbox: Key Tips For Building Responsive Layouts, we&#8217;ll bring everything together with responsive layout strategies, breakpoint-level adjustments, and real-world workflow tips for building cleaner Divi 5 layouts.</p>
<p><a href="https://www.elegantthemes.com/members-area/divi-5/">Download Divi 5</a>, import the example layouts, and start experimenting with mobile reordering. Drop a comment below and let us know which reordering technique you found most useful.</p>
<div class="inline-elements small-gutters two-column centered"><a href="https://www.elegantthemes.com/members-area/divi-5/" class="button primary-button">Download Divi 5</a><a href="https://www.elegantthemes.com/divi-5/" class="button primary-button accent-purple" style="margin-bottom: 16px;">Learn More About Divi 5</a></div>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/part-5-of-mastering-flexbox-reordering-content-for-better-mobile-layouts">Part 5 Of Mastering Flexbox: Reordering Content For Better Mobile Layouts</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.elegantthemes.com/blog/divi-resources/part-5-of-mastering-flexbox-reordering-content-for-better-mobile-layouts/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/divi-5-flexbox-course-part-5-ft-img-3.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>Part 4 Of Mastering Flexbox: Aligning Content Without Spacers Or Custom CSS</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/part-4-of-mastering-flexbox-aligning-content-without-spacers-or-custom-css</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/part-4-of-mastering-flexbox-aligning-content-without-spacers-or-custom-css#respond</comments>
		
		<dc:creator><![CDATA[Deanna McLean]]></dc:creator>
		<pubDate>Thu, 16 Jul 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[Divi 5 Flexbox]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=316157</guid>

					<description><![CDATA[<p>In Part 3 of our Mastering Flexbox series, we explored Layout Wrapping, the differences between Wrap and No Wrap, how Align Content affects wrapped multi-line layouts, and how Wrap Reverse and Display Order can improve responsive flow. In this fourth installment, we&#8217;ll focus on one of the most common layout challenges in web design: aligning [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/part-4-of-mastering-flexbox-aligning-content-without-spacers-or-custom-css">Part 4 Of Mastering Flexbox: Aligning Content Without Spacers Or Custom CSS</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In <a href="https://www.elegantthemes.com/blog/divi-resources/part-3-of-mastering-flexbox-wrap-vs-no-wrap-structure-templates">Part 3</a> of our Mastering <a href="https://www.elegantthemes.com/blog/theme-releases/flexbox">Flexbox</a> series, we explored Layout Wrapping, the differences between Wrap and No Wrap, how Align Content affects wrapped multi-line layouts, and how Wrap Reverse and Display Order can improve responsive flow.</p>
<p>In this fourth installment, we&#8217;ll focus on one of the most common layout challenges in web design: aligning content without relying on hidden spacers, manual spacing hacks, or custom CSS.</p>
<p>Before Divi 5, designers often used empty Divider modules, manual padding, margins, or custom CSS to push content into place, create visual balance, or force elements to align inside equal-height containers. Those methods worked, but they added extra structure, required more breakpoint-specific cleanup, and made layouts harder to maintain.</p>
<p>Divi 5 gives you a cleaner visual workflow. With Flexbox controls such as <em>Justify Content</em>, <em>Align Items</em>, <em>Align Content</em>, and <em>Gap</em>, plus supporting tools like <em>Grow To Fill</em>, <a href="https://www.elegantthemes.com/blog/theme-releases/module-groups">Module Groups</a>, and <a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-nested-modules-in-divi-5">Nested Modules</a>, you can align content directly in the Visual Builder with far less custom code.</p>
<p>Let&#8217;s dive in.</p>
<h2>Why Traditional Alignment Methods Fall Short</h2>
<p>Before Divi 5, precise vertical or horizontal alignment often required workarounds. Some of the most common techniques included:</p>
<ul>
<li>Using hidden Divider modules to push content down or create artificial space.</li>
<li>Adding custom CSS to vertically center or bottom-align content inside equal-height columns.</li>
<li>Relying on manual padding and margin values that needed constant adjustment across breakpoints.</li>
</ul>
<p>Those approaches could solve the immediate visual problem, but they also made layouts more fragile. If a headline changed, a button label wrapped, or a section switched to a smaller breakpoint, the layout often needed another round of spacing adjustments.</p>
<p>With Divi 5&#8217;s native <a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-divi-5s-flexbox-layout-system">Flexbox Layout System</a>, alignment can be handled at the container level. Tools like <em>Justify Content</em>, <em>Align Items</em>, <em>Gap</em>, and <em>Grow To Fill</em> help you create balanced layouts that respond more naturally to real content.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316439 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-layout-system.jpeg" alt="Divi 5 Flexbox Layout System" width="1800" height="896" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-layout-system.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-layout-system-300x149.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-layout-system-768x382.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-layout-system-1536x765.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-layout-system-610x304.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Core Alignment Tools You&#8217;ll Use Most</h2>
<p>Most Flexbox alignment controls live in the <em>Layout</em> option group. The most important ones to understand are <em>Justify Content</em>, <em>Align Items</em>, <em>Align Content</em>, and <em>Gap</em>.</p>
<p><em>Justify Content</em> distributes child elements along the main axis. In a <em>Row</em> direction, that usually means horizontal distribution. In a <em>Column</em> direction, that usually means vertical distribution. Its options, including Start, Center, End, Space Between, Space Around, and Space Evenly, help you control how content is positioned inside its parent container.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316440 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Justify-Content-in-Divi-5.jpg" alt="Justify Content in Divi 5" width="1800" height="731" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Justify-Content-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Justify-Content-in-Divi-5-300x122.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Justify-Content-in-Divi-5-768x312.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Justify-Content-in-Divi-5-1536x624.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Justify-Content-in-Divi-5-610x248.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><em>Align Items</em> controls alignment along the cross axis. In a Row layout, this usually affects vertical alignment. In a Column layout, it usually affects horizontal alignment. The available options, Start, Center, End, and Stretch, are useful for centering items, aligning edges, or stretching items when their sizing allows it.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316441 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Items-in-Divi-5.jpg" alt="Align Items in Divi 5" width="1800" height="612" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Items-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Items-in-Divi-5-300x102.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Items-in-Divi-5-768x261.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Items-in-Divi-5-1536x522.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Items-in-Divi-5-610x207.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>When <em>Layout Wrapping</em> is enabled and content flows onto multiple lines, <em>Align Content</em> controls how those wrapped lines are distributed along the cross axis. This setting only has a visible effect when there are multiple flex lines and the parent container has extra space to distribute, such as a defined or minimum height.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316442 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Content-in-Divi-5.jpeg" alt="Align Content in Divi 5" width="1800" height="1400" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Content-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Content-in-Divi-5-300x233.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Content-in-Divi-5-768x597.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Content-in-Divi-5-1536x1195.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Align-Content-in-Divi-5-610x474.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>These alignment tools become even more powerful when combined with <em>Horizontal Gap</em> and <em>Vertical Gap</em> for consistent spacing, <em>Grow To Fill</em> in the <em>Sizing</em> option group for flexible item growth, <a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-divi-5-module-groups"><em>Module Groups</em></a> for grouping related modules, and <a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-nested-modules-in-divi-5"><em>Nested Modules</em></a> for creating independent alignment contexts inside modules.</p>
<h2>Alignment Examples Built With Divi 5</h2>
<p>To show how these tools work together, let&#8217;s walk through a few practical alignment examples and the settings used in each one.</p>
<h3>1. Navigation Menu</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316381 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-navigation.jpg" alt="Flexbox alignment - navigation" width="1800" height="414" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-navigation.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-navigation-300x69.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-navigation-768x177.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-navigation-1536x353.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-navigation-610x140.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Build a header navigation where the logo and menu links sit on the left, the CTA buttons sit on the right, and everything stays vertically centered.</p>
<p><strong>Settings Used:</strong> The layout uses a single-column row. At the column level, <em>Justify Content</em> is set to <em>Space Between</em>, <em>Align Items</em> is set to <em>Center</em>, and the <em>Horizontal Gap</em> is set to <em>20px</em>. The first <em>Module Group</em>, containing the logo and navigation links, uses <em>Justify Content &gt; Space Between</em> and <em>Align Items &gt; Center</em>. The second <em>Module Group</em>, containing the two buttons, uses <em>Justify Content &gt; End</em>, <em>Align Items &gt; Center</em>, and a <em>10px Horizontal Gap</em> so the buttons sit neatly side-by-side.</p>
<p>This combination creates a balanced navigation header without hidden spacing modules or manual margin adjustments between every element.</p>
<h3>2. Hero Section</h3>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-316379" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-hero.jpg" alt="Flexbox alignment - Hero section" width="1800" height="897" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-hero.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-hero-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-hero-768x383.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-hero-1536x765.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-hero-610x304.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a clean hero section where the content stacks vertically, spacing stays consistent, and the two CTA buttons sit side-by-side.</p>
<p><strong>Settings Used:</strong> The parent row uses <em>Align Items &gt; Stretch</em>. At the column level, <em>Align Items</em> and <em>Justify Content</em> are both set to <em>Start</em>, with a <em>20px Vertical Gap</em> applied between child elements. A <em>Module Group</em> wraps the two buttons using <em>Layout Direction &gt; Row</em> and a <em>15px Horizontal Gap</em>, keeping them aligned horizontally with consistent space between them.</p>
<p>This approach gives you predictable spacing from the parent container instead of relying on extra Divider modules or one-off padding values.</p>
<h3>3. Statistics Grid</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316383 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-statistics.jpg" alt="Flexbox alignment - statistics" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-statistics.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-statistics-300x156.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-statistics-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-statistics-1536x796.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-statistics-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Display four key metrics in a responsive grid where each stat card feels centered, balanced, and easy to scan.</p>
<p><strong>Settings Used:</strong> This section uses a four-column row with <em>Layout Wrapping &gt; Wrap</em> and <em>Column Class &gt; 1/2</em> on each column, creating a two-by-two grid. The row uses <em>20px Horizontal Gap</em> and <em>20px Vertical Gap</em> to control spacing between the cards. At the column level, <em>Justify Content</em> and <em>Align Items</em> are both set to <em>Center</em>. Each column also uses <em>20px Padding</em> on all four sides in the <em>Spacing</em> option group to create breathing room inside each card.</p>
<p>Gap handles spacing between cards, while padding handles spacing inside each card. Keeping those two roles separate makes the layout easier to adjust across breakpoints.</p>
<h3>4. Service Cards</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316385 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-service-cards.jpg" alt="Flexbox alignment - service cards" width="1800" height="2237" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-service-cards.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-service-cards-241x300.jpg 241w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-service-cards-768x954.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-service-cards-1236x1536.jpg 1236w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-service-cards-1648x2048.jpg 1648w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-service-cards-610x758.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Create a service section where the headline row aligns cleanly and each service card keeps its button positioned consistently, even when text lengths vary.</p>
<p><strong>Settings Used:</strong> The top row uses two columns with <em>Column Class &gt; 1/2</em> and <em>Align Items &gt; End</em> at the row level to align the content toward the bottom edge. Each column also uses <em>Align Items &gt; Stretch</em> so its internal elements can fill the available width.</p>
<p>The second row contains six columns with <em>Layout Wrapping &gt; Wrap</em> and <em>Column Class &gt; 1/2</em>. The row uses <em>Align Items &gt; Start</em>. Inside each service card, the Heading module uses a Nested Module for the supporting text, paired with a <em>10px Horizontal Gap</em> for spacing. <em>Grow To Fill</em> is enabled where the content area needs to absorb extra space, helping the button stay aligned near the bottom of each card.</p>
<p>This technique is useful for card layouts where text lengths vary but the CTA position needs to remain consistent.</p>
<h3>5. Mixed-Width Highlight Section</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316391 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-Mixed-Width.jpg" alt="Flexbox alignment - Mixed Width" width="1800" height="1169" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-Mixed-Width.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-Mixed-Width-300x195.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-Mixed-Width-768x499.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-Mixed-Width-1536x998.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-Mixed-Width-610x396.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Build a highlight area that combines a large featured content block, a statistic card, and smaller supporting boxes while keeping the layout visually balanced.</p>
<p><strong>Settings Used:</strong> This section uses a row with mixed column spans and <em>Layout Wrapping</em>. The row has both <em>Horizontal Gap</em> and <em>Vertical Gap</em> set to <em>30px</em>. At the parent level, <em>Align Items &gt; Stretch</em> helps columns share a consistent row height when their sizing allows it. One column uses <em>Justify Content &gt; Space Between</em> to distribute its internal content from top to bottom, while the other columns use <em>Start</em>. A <em>15px Vertical Gap</em> on each column controls spacing between modules, and each column also applies <em>20px Padding</em> on all four sides for internal breathing room.</p>
<p>This combination creates a more dynamic layout while keeping spacing, alignment, and internal structure easier to manage.</p>
<h3>6. Process Steps</h3>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316392 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-process-steps.jpeg" alt="Flexbox alignment - process steps" width="1800" height="1469" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-process-steps.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-process-steps-300x245.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-process-steps-768x627.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-process-steps-1536x1254.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-alignment-process-steps-610x498.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>Goal:</strong> Build a four-step <em>How It Works</em> process layout where icons, step numbers, headings, and supporting text stay structured and aligned across columns.</p>
<p><strong>Settings Used:</strong> This section uses a two-column row with <em>Column Class &gt; 1/2</em> and <em>Layout Wrapping &gt; Wrap</em> enabled. Each column has <em>10px Padding</em> on all four sides for internal spacing. At the column level, <em>Align Items &gt; Stretch</em> and <em>Justify Content &gt; Start</em> are applied.</p>
<p>Inside each column, a <em>Module Group</em> wraps the icon and step number. This group uses <em>Layout Direction &gt; Row</em>, <em>Justify Content &gt; Space Between</em>, and <em>Align Items &gt; Center</em>, keeping the icon and large number aligned on the same horizontal line.</p>
<p>This setup creates a structured process section without extra spacer modules.</p>
<h2>Step-By-Step Build Walkthrough</h2>
<p>Let&#8217;s walk through how to build a three-column team member card section using native Flexbox alignment tools, with Spacing used only where it supports internal padding or visual breathing room.</p>
<h3>Step 1: Create The Parent Row</h3>
<p>Add a new three-column row. Select <em>Flex</em> as the Layout Style if it isn&#8217;t already selected. Set the row to <em>Layout Wrapping &gt; Wrap</em> if you plan to add more than three team members later. This allows additional columns to move onto new flex lines instead of requiring extra rows.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/enable-layout-wrapping.mp4" type="video/mp4" /></video></p>
<p>Next, set the <em>Horizontal Gap</em> and <em>Vertical Gap</em> to <em>20px</em> for consistent spacing between columns.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316400 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/set-horizontal-and-vertical-gaps.jpg" alt="set horizontal and vertical gaps" width="1800" height="856" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/set-horizontal-and-vertical-gaps.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/set-horizontal-and-vertical-gaps-300x143.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/set-horizontal-and-vertical-gaps-768x365.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/set-horizontal-and-vertical-gaps-1536x730.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/set-horizontal-and-vertical-gaps-610x290.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Open the first column&#8217;s settings. In the <em>Content</em> tab, assign a <em>Background Color</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316401 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/assign-a-background-color.jpeg" alt="assign a background color in Divi 5" width="1800" height="836" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/assign-a-background-color.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/assign-a-background-color-300x139.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/assign-a-background-color-768x357.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/assign-a-background-color-1536x713.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/assign-a-background-color-610x283.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the <em>Layout</em> option group, set the <em>Vertical Gap</em> to <em>0px</em>. This removes automatic spacing between the column&#8217;s direct child elements so the card structure can be controlled more intentionally with internal Module Groups.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316410 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-vertical-gap.jpeg" alt="column vertical gap" width="1800" height="856" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-vertical-gap.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-vertical-gap-300x143.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-vertical-gap-768x365.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-vertical-gap-1536x730.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-vertical-gap-610x290.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Use the <em>Border</em> option group to add a <em>Border Radius</em>, <em>Border Style</em>, <em>Border Width</em>, and <em>Border Color</em> to the column.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316402 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-border-styles.jpeg" alt="column border styles" width="1800" height="901" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-border-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-border-styles-300x150.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-border-styles-768x384.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-border-styles-1536x769.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-border-styles-610x305.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Return to the row and select the <em>Content</em> tab. In the <em>Elements</em> option group, right-click the first column, copy its item styles, and paste those styles onto the remaining columns.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/copy-and-paste-column-styles.mp4" type="video/mp4" /></video></p>
<h3>Step 2: Add The Content</h3>
<p>Add an Image module to the first column. In the <em>Design</em> tab, expand the <em>Sizing</em> option group and set the <a href="https://www.elegantthemes.com/blog/theme-releases/aspect-ration-image-framing-image-presets-for-divi-5"><em>Aspect Ratio</em></a> to <em>1:1</em>. This frames the image as a square.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316405 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/image-aspect-ratio.jpeg" alt="using Aspect Ratio in Divi 5" width="1800" height="998" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/image-aspect-ratio.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/image-aspect-ratio-300x166.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/image-aspect-ratio-768x426.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/image-aspect-ratio-1536x852.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/image-aspect-ratio-610x338.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, expand the <em>Framing</em> option group. Change <em>Object Fit</em> from the default Fit option to <em>Cover</em>. Use the <em>Object Position</em> picker to choose which part of the image should remain visible inside the square frame.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/adjust-image-framing-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p>Next, add a <em>Module Group</em> and a <em>Heading</em> module to the first column.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/adding-modules-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p>In the Group&#8217;s <em>Design</em> tab, open the <em>Layout</em> option group and set a <em>15px Vertical Gap</em>. Then open the <em>Spacing</em> option group and add <em>20px Padding</em> to all four sides.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/module-group-flex-settings.mp4" type="video/mp4" /></video></p>
<p>Add a <em>Text</em> module as a nested element inside the main <em>Heading</em> module.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316412 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-nested-elements-in-Divi-5.jpeg" alt="add nested elements in Divi 5" width="1800" height="878" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-nested-elements-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-nested-elements-in-Divi-5-300x146.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-nested-elements-in-Divi-5-768x375.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-nested-elements-in-Divi-5-1536x749.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-nested-elements-in-Divi-5-610x298.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Nested Modules let you place modules inside other modules, turning the parent module into a layout container. This gives you another level of control over alignment, spacing, and internal structure.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/nested-module-flex-settings.mp4" type="video/mp4" /></video></p>
<p>Next, add a new <em>Module Group</em> with three <em>Text</em> modules below the other modules in the column. Style them as needed, then adjust the Group&#8217;s Flexbox settings. In the <em>Layout</em> option group, set the <em>Horizontal Gap</em> and <em>Vertical Gap</em> to <em>8px</em>. Use <em>Row</em> for the <em>Layout Direction</em> and enable <em>Layout Wrapping</em> so the tags can flow onto additional lines when needed.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316414 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-flex-settings.jpeg" alt="adjust flexbox settings on Module Groups in Divi 5" width="1800" height="904" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-flex-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-flex-settings-300x151.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-flex-settings-768x386.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-flex-settings-1536x771.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-flex-settings-610x306.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>To finish the column, add another <em>Module Group</em>. Use the <em>Layers</em> panel to make sure it is nested within the <em>Main Group</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316416 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/nested-module-groups-1.jpeg" alt="nested module groups" width="1800" height="926" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/nested-module-groups-1.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/nested-module-groups-1-300x154.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/nested-module-groups-1-768x395.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/nested-module-groups-1-1536x790.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/nested-module-groups-1-610x314.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Inside the last Group, add a <em>Social Media Follow</em> module and a <em>Text</em> module, then style them. Set the Group&#8217;s <em>Layout Direction</em> to <em>Row</em> and <em>Justify Content</em> to <em>Space Between</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316417 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-module-flexbox-settings-1.jpeg" alt="group module flexbox settings" width="1800" height="904" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-module-flexbox-settings-1.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-module-flexbox-settings-1-300x151.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-module-flexbox-settings-1-768x386.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-module-flexbox-settings-1-1536x771.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/group-module-flexbox-settings-1-610x306.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Alignment can be controlled at the module level, too. In the <em>Text</em> module&#8217;s <em>Layout</em> option group, set both <em>Justify Content</em> and <em>Align Items</em> to <em>Center</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316419 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-module-flexbox-settings.jpeg" alt="text module flexbox settings" width="1800" height="904" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-module-flexbox-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-module-flexbox-settings-300x151.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-module-flexbox-settings-768x386.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-module-flexbox-settings-1536x771.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-module-flexbox-settings-610x306.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Fill the remaining two columns with content to finish the initial design.</p>
<h3>Step 3: Make Alignment Adjustments</h3>
<p>Depending on the length of your content, such as the bio text or the number of skill tags, you may notice small alignment shifts.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316421 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/alignment-shifts.jpg" alt="alignment shifts in Flexbox" width="1800" height="903" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/alignment-shifts.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/alignment-shifts-300x151.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/alignment-shifts-768x385.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/alignment-shifts-1536x771.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/alignment-shifts-610x306.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>To keep the layout balanced as content changes, make a few targeted Flexbox and Sizing adjustments with <em>Justify Content</em> and <em>Grow To Fill</em>.</p>
<p>Although it might be tempting to set <em>Justify Content &gt; Space Between</em> only at the column level, that does not solve every internal alignment issue. It separates the first and last direct child elements, but middle content such as bios and tags may still shift depending on its length.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/justify-content-space-between-1.mp4" type="video/mp4" /></video></p>
<p>A more reliable approach is to set each <em>Column</em> and main <em>Module Group</em> to <em>Justify Content &gt; Space Between</em>, then use <em>Grow To Fill</em> on the content area that should absorb the remaining space.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-and-module-group-settings.mp4" type="video/mp4" /></video></p>
<p>Next, select the <em>main Module Group</em>. Open the <em>Sizing</em> option group and enable <em>Grow To Fill</em>.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/enable-grow-to-fill-1.mp4" type="video/mp4" /></video></p>
<p>This allows the main content group to expand inside the card, helping the bottom Social Icons group stay aligned near the end of the card across different content lengths.</p>
<p>To keep the <em>Tag Group</em> aligned above the <em>Social Group</em>, enable <em>Grow To Fill</em> on the <em>Heading</em> module as well.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/perfect-alignment-with-grow-to-fill.mp4" type="video/mp4" /></video></p>
<p>This lets the heading and bio area absorb extra space, keeping the tag group and social row in a more consistent position as content changes.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316426 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Screenshot-2026-06-24-at-4.59.21-PM.png" alt="three column layout with Flex settings and Grow To Fill" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Screenshot-2026-06-24-at-4.59.21-PM.png 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Screenshot-2026-06-24-at-4.59.21-PM-300x153.png 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Screenshot-2026-06-24-at-4.59.21-PM-768x393.png 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Screenshot-2026-06-24-at-4.59.21-PM-1536x785.png 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Screenshot-2026-06-24-at-4.59.21-PM-610x312.png 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Step 4: Use Divi 5&#8217;s Responsive Tools</h3>
<p>Flexbox helps layouts adapt across breakpoints, but you should still review tablet and phone views. Use Divi&#8217;s <a href="https://www.elegantthemes.com/blog/theme-releases/customizable-responsive-breakpoints">Customizable Responsive Breakpoints</a> to preview the layout on smaller screens. Switch between breakpoints to spot alignment or spacing issues, then apply targeted adjustments with per-breakpoint Flexbox settings, Column Class values, or Structure Templates when needed.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/apply-structure-templates.mp4" type="video/mp4" /></video></p>
<h3>Step 5: Edit, Duplicate, Or Delete Columns</h3>
<p>Once your team member card works across breakpoints, adding more team members is simple. Open the row settings, then go to the <em>Elements</em> option group. From here, you can edit, duplicate, or delete any column.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-316444" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/modify-columns-in-Divi-5.jpeg" alt="modify columns in Divi 5" width="1800" height="922" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/modify-columns-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/modify-columns-in-Divi-5-300x154.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/modify-columns-in-Divi-5-768x393.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/modify-columns-in-Divi-5-1536x787.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/modify-columns-in-Divi-5-610x312.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Duplicating a column copies the column styling, Flexbox settings, padding, borders, and nested modules. Update the content in the new column, then review the layout at each breakpoint. Because <em>Layout Wrapping</em> is enabled on the row, additional cards can flow onto new lines instead of requiring new rows.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/duplicating-columns-in-Divi-5.mp4" type="video/mp4" /></video></p>
<h2>Best Practices And Pro Tips</h2>
<p>Now that you&#8217;ve seen Flexbox alignment in action, here are a few practical tips to help you build cleaner, more maintainable layouts.</p>
<h3>Adjust Alignment Per Breakpoint</h3>
<p>You don&#8217;t have to use the same alignment settings across every device. For example, you might use <em>Center</em> alignment on mobile for better visual balance while keeping <em>Start</em> alignment on desktop. Divi 5&#8217;s <a href="https://www.elegantthemes.com/blog/theme-releases/responsive-editor">Responsive Editor</a> and <a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-divi-5s-customizable-breakpoints">Customizable Responsive Breakpoints</a> make these changes easier to manage.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/adjust-alignment-per-breakpoint-1.mp4" type="video/mp4" /></video></p>
<h3>Combine Alignment With Layout Direction</h3>
<p>Switching between <em>Row</em> and <em>Column</em> direction at different breakpoints changes how <em>Justify Content</em> and <em>Align Items</em> behave. Use this intentionally when a horizontal desktop layout needs to become a stacked or centered mobile layout.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/adjust-alignment-per-breakpoint.mp4" type="video/mp4" /></video></p>
<h3>Use Height When Working With Align Content</h3>
<p><em>Align Content</em> only has a visible effect when wrapping creates multiple flex lines and the parent container has extra cross-axis space. Adding a height or minimum height, such as <em>600px</em>, gives Align Content room to distribute those wrapped lines.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/using-align-content.mp4" type="video/mp4" /></video></p>
<h3>Always Test With Real Content</h3>
<p>Placeholder content can hide alignment issues. Test with short, medium, and long copy, different button labels, varying tag counts, and real images early in the process so you can catch layout issues before publishing.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/test-with-real-content.mp4" type="video/mp4" /></video></p>
<h2>Download The Layouts</h2>
<p>To help you practice everything covered in this post, we&#8217;ve prepared a zipped file called <em>Flexbox Alignment</em>. It includes the example layouts shown above, built with Flexbox alignment patterns you can inspect and reuse. You can import any layout individually or upload the <em>Flexbox Alignment &#8211; ALL.json</em> file to import them all at once.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316454 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-alignment.jpg" alt="flexbox alignment layout examples" width="1800" height="606" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-alignment.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-alignment-300x101.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-alignment-768x259.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-alignment-1536x517.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flexbox-alignment-610x205.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>To import them, go to your WordPress dashboard and navigate to <em>Divi &gt; Divi Library</em>. Click the <em>Import &amp; Export</em> button at the top.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316449 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-and-export-divi-layouts.jpeg" alt="import and export divi layouts" width="1800" height="896" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-and-export-divi-layouts.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-and-export-divi-layouts-300x149.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-and-export-divi-layouts-768x382.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-and-export-divi-layouts-1536x765.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-and-export-divi-layouts-610x304.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Switch to the <em>Import</em> tab, select a JSON file, and click <em>Import Divi Builder Layouts</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316450 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-layouts.jpeg" alt="import divi layouts" width="1800" height="897" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-layouts.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-layouts-300x150.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-layouts-768x383.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-layouts-1536x765.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/import-divi-layouts-610x304.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Once imported, open a page in the Visual Builder or create a new one. When the Builder loads, click to add a <em>new section</em> to the page.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-316451 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi-.jpg" alt="add new section to Divi" width="1800" height="727" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi-.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--300x121.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--768x310.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--1536x620.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-new-section-to-Divi--610x246.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Select the <em>Add From Library</em> tab, choose a layout, and click <em>Use This Section</em> to load it onto the page.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/add-a-layout-from-the-Divi-Library.mp4" type="video/mp4" /></video></p>
<div class="et_bloom_locked_container et_bloom_optin_1" data-page_id="316157" data-optin_id="optin_1" data-list_id="mailchimp_c886a2fc0a" data-current_optin_id="optin_1">
					<div class="et_bloom_locked_content" style="display: none;">
						<a href="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/Flexbox-Alignment.zip" class="button inline-button primary-button" rel=" ">Download the Files</a>
					</div>
					<div class="et_bloom_locked_form">
						<div class="et_bloom_inline_form et_bloom_optin et_bloom_make_form_visible et_bloom_optin_1" style="display: none;">
				<style type="text/css">.et_bloom .et_bloom_optin_1 .et_bloom_form_content { background-color: #4843d2 !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container .et_bloom_form_header { background-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge .et_bloom_form_content:before { border-top-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before, .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:before { border-top-color: transparent !important; border-left-color: #ffffff !important; }
						@media only screen and ( max-width: 767px ) {.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before { border-top-color: #ffffff !important; border-left-color: transparent !important; }.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:after { border-bottom-color: #ffffff !important; border-left-color: transparent !important; }
						}.et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_fields i { color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_custom_field_radio i:before { background: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_border_solid { border-color: #f7f9fb !important } .et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 strong { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; }.et_bloom .et_bloom_optin_1 .et_bloom_form_container p, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p strong, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form input, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form button span { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; } p.et_bloom_popup_input { padding-bottom: 0 !important;}</style>
				<div class="et_bloom_form_container  with_edge carrot_edge et_bloom_border_solid et_bloom_rounded et_bloom_form_text_light et_bloom_form_bottom et_bloom_inline_1_field">
					
			<div class="et_bloom_form_container_wrapper clearfix">
				<div class="et_bloom_header_outer">
					<div class="et_bloom_form_header split et_bloom_header_text_dark">
						<img decoding="async" src="https://www.elegantthemes.com/blog/wp-content/plugins/bloom/images/premade-image-06.png" alt="Download For Free" class=" et_bloom_image_slideup et_bloom_image">
						<div class="et_bloom_form_text">
						<h2>Download For Free</h2><p>Join the Divi Newsletter and we will email you a copy of the ultimate Divi Landing Page Layout Pack, plus tons of other amazing and free Divi resources, tips and tricks. Follow along and you will be a Divi master in no time. <em>If you are already subscribed simply type in your email address below and click download to access the layout pack.</em></p>
					</div>
						
					</div>
				</div>
				<div class="et_bloom_form_content et_bloom_1_field et_bloom_bottom_inline">
					
					
					<form method="post" class="clearfix">
						<div class="et_bloom_fields">
							
							<p class="et_bloom_popup_input et_bloom_subscribe_email">
								<input placeholder="Enter your email address">
							</p>
							
							<button data-optin_id="optin_1" data-service="mailchimp" data-list_id="c886a2fc0a" data-page_id="316157" data-account="Divi Daily" data-ip_address="true" class="et_bloom_submit_subscription et_bloom_submit_subscription_locked">
								<span class="et_bloom_subscribe_loader"></span>
								<span class="et_bloom_button_text et_bloom_button_text_color_light">DOWNLOAD</span>
							</button>
						</div>
					</form>
					<div class="et_bloom_success_container">
						<span class="et_bloom_success_checkmark"></span>
					</div>
					<h2 class="et_bloom_success_message">You have successfully subscribed. Please check your email address to confirm your subscription and get access to free weekly Divi layout packs!</h2>
					
				</div>
			</div>
			<span class="et_bloom_close_button"></span>
				</div>
			</div>
					</div>
				</div>
<h2>Master Alignment With Flexbox In Divi 5</h2>
<p>For many common alignment patterns, you no longer need hidden Divider modules, spacing hacks, or custom CSS. <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>&#8216;s Flexbox tools give you visual, content-aware controls for positioning, spacing, and aligning elements across responsive layouts.</p>
<p>In Part 5 Of Mastering Flexbox: Reordering Content For Better Mobile Layouts, we&#8217;ll show how to combine Display Order, Flexbox direction changes, and Wrap Reverse to create better mobile flows without duplicating content.</p>
<p>Download the example layouts, experiment in the Visual Builder, and start building cleaner, more maintainable pages. Drop a comment below and let us know which alignment technique you&#8217;re most excited to try.</p>
<div class="inline-elements small-gutters two-column centered"><a href="https://www.elegantthemes.com/members-area/divi-5/" class="button primary-button">Download Divi 5</a><a href="https://www.elegantthemes.com/divi-5/" class="button primary-button accent-purple" style="margin-bottom: 16px;">Learn More About Divi 5</a></div>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/part-4-of-mastering-flexbox-aligning-content-without-spacers-or-custom-css">Part 4 Of Mastering Flexbox: Aligning Content Without Spacers Or Custom CSS</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.elegantthemes.com/blog/divi-resources/part-4-of-mastering-flexbox-aligning-content-without-spacers-or-custom-css/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/divi-5-flexbox-part-4-ft-img-4.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>5 Tetris Designs For Divi 5 (Free Download!)</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/tetris-designs-for-divi-5</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/tetris-designs-for-divi-5#respond</comments>
		
		<dc:creator><![CDATA[Donjete Vuniqi]]></dc:creator>
		<pubDate>Wed, 15 Jul 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[Divi 5 Freebie]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=316991</guid>

					<description><![CDATA[<p>Divi 5 makes it easy to create structured layouts with strong visual rhythm. In this free pack, you’ll get 5 Tetris Designs that are perfect for landing pages, service sections, feature highlights, portfolio sections, product pages, agency websites, content blocks, call-to-action areas, and more. Each design uses modular blocks, offset cards, bold spacing, layered content [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/tetris-designs-for-divi-5">5 Tetris Designs For Divi 5 (Free Download!)</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> makes it easy to create structured layouts with strong visual rhythm. In this free pack, you’ll get 5 Tetris Designs that are perfect for landing pages, service sections, feature highlights, portfolio sections, product pages, agency websites, content blocks, call-to-action areas, and more.</p>
<p>Each design uses modular blocks, offset cards, bold spacing, layered content areas, typography, imagery, buttons, and clean grid relationships to create polished sections with a dynamic, puzzle-like layout style. Import a section, replace the content, update the visuals, and you’re ready to go.</p>
<h2>Preview</h2>
<p>Here’s a quick look at the 5 Tetris Designs included in the pack. The download is further down the post.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-317027" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Tetris-Designs-For-Divi-5.jpeg" alt="Tetris Designs For Divi 5" width="1800" height="1663" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Tetris-Designs-For-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Tetris-Designs-For-Divi-5-300x277.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Tetris-Designs-For-Divi-5-768x710.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Tetris-Designs-For-Divi-5-1536x1419.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Tetris-Designs-For-Divi-5-610x564.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Download 5 Tetris Designs For Divi 5</h2>
<p>Get all 5 designs for free. Import them into your Divi Library and add them to any page in the Visual Builder.</p>
<div class="et_bloom_locked_container et_bloom_optin_1" data-page_id="316991" data-optin_id="optin_1" data-list_id="mailchimp_c886a2fc0a" data-current_optin_id="optin_1">
					<div class="et_bloom_locked_content" style="display: none;">
						<a href="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/divi-5-tetris-designs.zip" class="button inline-button primary-button" rel=" ">Download the Files</a>
					</div>
					<div class="et_bloom_locked_form">
						<div class="et_bloom_inline_form et_bloom_optin et_bloom_make_form_visible et_bloom_optin_1" style="display: none;">
				<style type="text/css">.et_bloom .et_bloom_optin_1 .et_bloom_form_content { background-color: #4843d2 !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container .et_bloom_form_header { background-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge .et_bloom_form_content:before { border-top-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before, .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:before { border-top-color: transparent !important; border-left-color: #ffffff !important; }
						@media only screen and ( max-width: 767px ) {.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before { border-top-color: #ffffff !important; border-left-color: transparent !important; }.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:after { border-bottom-color: #ffffff !important; border-left-color: transparent !important; }
						}.et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_fields i { color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_custom_field_radio i:before { background: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_border_solid { border-color: #f7f9fb !important } .et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 strong { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; }.et_bloom .et_bloom_optin_1 .et_bloom_form_container p, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p strong, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form input, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form button span { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; } p.et_bloom_popup_input { padding-bottom: 0 !important;}</style>
				<div class="et_bloom_form_container  with_edge carrot_edge et_bloom_border_solid et_bloom_rounded et_bloom_form_text_light et_bloom_form_bottom et_bloom_inline_1_field">
					
			<div class="et_bloom_form_container_wrapper clearfix">
				<div class="et_bloom_header_outer">
					<div class="et_bloom_form_header split et_bloom_header_text_dark">
						<img decoding="async" src="https://www.elegantthemes.com/blog/wp-content/plugins/bloom/images/premade-image-06.png" alt="Download For Free" class=" et_bloom_image_slideup et_bloom_image">
						<div class="et_bloom_form_text">
						<h2>Download For Free</h2><p>Join the Divi Newsletter and we will email you a copy of the ultimate Divi Landing Page Layout Pack, plus tons of other amazing and free Divi resources, tips and tricks. Follow along and you will be a Divi master in no time. <em>If you are already subscribed simply type in your email address below and click download to access the layout pack.</em></p>
					</div>
						
					</div>
				</div>
				<div class="et_bloom_form_content et_bloom_1_field et_bloom_bottom_inline">
					
					
					<form method="post" class="clearfix">
						<div class="et_bloom_fields">
							
							<p class="et_bloom_popup_input et_bloom_subscribe_email">
								<input placeholder="Enter your email address">
							</p>
							
							<button data-optin_id="optin_1" data-service="mailchimp" data-list_id="c886a2fc0a" data-page_id="316991" data-account="Divi Daily" data-ip_address="true" class="et_bloom_submit_subscription et_bloom_submit_subscription_locked">
								<span class="et_bloom_subscribe_loader"></span>
								<span class="et_bloom_button_text et_bloom_button_text_color_light">DOWNLOAD</span>
							</button>
						</div>
					</form>
					<div class="et_bloom_success_container">
						<span class="et_bloom_success_checkmark"></span>
					</div>
					<h2 class="et_bloom_success_message">You have successfully subscribed. Please check your email address to confirm your subscription and get access to free weekly Divi layout packs!</h2>
					
				</div>
			</div>
			<span class="et_bloom_close_button"></span>
				</div>
			</div>
					</div>
				</div>
<h2>What’s Included (6 Exports)</h2>
<p>After you download and unzip the file, you’ll find 5 styled Tetris Layout Section exports, plus 1 file containing all layouts.</p>
<p><em>Styled &#8211; Tetris Layout Section 1 to 5 (5) → Five fully styled modular section layouts with offset content blocks, layered cards, bold visual structure, refined typography, buttons, images, and clean spacing that you can use as-is or customize.</em></p>
<p><em>Styled &#8211; Tetris Layout Sections (All) → Imports all 5 designs into your Divi Library at once.</em></p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317025 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files-1.jpg" alt="Tetris JSON files" width="1800" height="290" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files-1.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files-1-300x48.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files-1-768x124.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files-1-1536x247.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/all-JSON-files-1-610x98.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>How To Use The Tetris Designs</h2>
<p>Keep your download folder handy. We’ll import the files, add a section to a page, and then replace the content.</p>
<h3>1. Import Sections Into The Divi Library</h3>
<p>Go to <em>Divi → Divi Library</em>. Click <em>Import &amp; Export</em> at the top of the screen.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/03/Divi-Library-1-e1773416431452.jpeg" alt="Divi Library import screen" width="1800" height="873" /></p>
<p>In the <em>Import &amp; Export Layouts</em> modal, switch to the <em>Import</em> tab, then click <em>Choose File</em> and select your JSON file. Choose any Tetris Layout Section JSON you’d like to use, then click <em>Import Divi Builder Layouts</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317035 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/upload-json-files.jpeg" alt="upload json files" width="1800" height="895" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/upload-json-files.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/upload-json-files-300x149.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/upload-json-files-768x382.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/upload-json-files-1536x764.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/upload-json-files-610x303.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>2. Add A Tetris Section To Any Page</h3>
<p>Open a page in the <em>Visual Builder</em> and add a new <em>Section</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-309698" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/03/add-new-section-to-Divi.jpeg" alt="add new section to Divi" width="1800" height="777" /></p>
<p>Click <em>Add From Library</em> and select one of your Tetris Layout sections.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317036 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/choose-a-divi-library-item.jpeg" alt="choose a divi library item" width="1800" height="939" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/choose-a-divi-library-item.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/choose-a-divi-library-item-300x157.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/choose-a-divi-library-item-768x401.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/choose-a-divi-library-item-1536x801.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/choose-a-divi-library-item-610x318.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>3. Swap The Content</h3>
<p>Once the section is on the page, replacing the placeholder content only takes a few clicks. Start by updating the heading, body copy, buttons, labels, stats, feature text, service details, captions, links, and calls to action so the section matches your brand and message. Then swap in your own images, icons, screenshots, product visuals, or supporting content as needed.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317038 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-section-content.jpeg" alt="update section content" width="1800" height="733" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-section-content.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-section-content-300x122.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-section-content-768x313.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-section-content-1536x625.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-section-content-610x248.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Because Tetris-style layouts rely on modular blocks, offset positioning, and strong spacing relationships, it’s best to replace content one block at a time. This helps preserve the balance between text, imagery, cards, buttons, and negative space as you customize the design.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-one-section-at-a-time.mp4" /></video></p>
<p>If you want to expand or simplify a section, duplicate or remove existing rows, columns, groups, cards, content blocks, or modules rather than rebuilding the design from scratch. That’s the easiest way to preserve the original structure, spacing, alignment, and visual rhythm of the layout.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317042 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-duplicate-or-delete-content.jpeg" alt="edit duplicate or delete content" width="1800" height="646" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-duplicate-or-delete-content.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-duplicate-or-delete-content-300x108.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-duplicate-or-delete-content-768x276.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-duplicate-or-delete-content-1536x551.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/edit-duplicate-or-delete-content-610x219.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>4. Adjust Styles (Optional)</h3>
<p>These Tetris Designs are already styled, so you can use them right away or refine them to better match your site. Update typography, colors, backgrounds, borders, shadows, spacing, images, buttons, card treatments, and layout sizing as needed using the settings in the Design tab.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-styles-in-DIvi-5.mp4" /></video></p>
<p>To change typography, open any Text or Heading module and go to the <em>Design</em> tab. Expand the relevant text settings to adjust <em>Font</em>, <em>Font Weight</em>, <em>Text Alignment</em>, <em>Text Color</em>, <em>Text Size</em>, <em>Letter Spacing</em>, <em>Line Height</em>, and more.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317044 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-heading-styles.jpeg" alt="update heading styles in Divi 5" width="1800" height="941" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-heading-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-heading-styles-300x157.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-heading-styles-768x401.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-heading-styles-1536x803.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/update-heading-styles-610x319.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>To refine the modular styling, open the row, column, group, card, or module you want to adjust and use the<em> Content</em> and <em>Design</em> tabs to tweak <em>Background</em>, <em>Border Width</em>, <em>Border Color</em>, <em>Border Radius</em>, <em>Box Shadow</em>, <em>Sizing</em>, and <em>Spacing</em>.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/tweak-background-and-border-styles.mp4" /></video></p>
<p>If your section uses offset cards, stacked blocks, overlapping content, image tiles, stat boxes, button groups, or asymmetric spacing, keep those relationships in mind as you edit so the layout remains intentional and balanced.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317048 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/keep-relationships-in-mind.jpeg" alt="keep relationships in mind" width="1800" height="777" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/keep-relationships-in-mind.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/keep-relationships-in-mind-300x130.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/keep-relationships-in-mind-768x332.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/keep-relationships-in-mind-1536x663.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/keep-relationships-in-mind-610x263.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Use Divi’s responsive editing tools to fine-tune spacing, stacking, block order, image size, card width, text alignment, and button placement on smaller screens so the layout stays polished across devices.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="900" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/responsive-tools-in-Divi-5-1.mp4" /></video></p>
<h2>Tips For Effective Tetris Layouts</h2>
<p>Tetris-style layouts work best when every block feels intentionally placed. Use these quick tips to keep your sections dynamic, organized, and easy to customize.</p>
<h3>Give Each Block A Clear Purpose</h3>
<p>Every card, image, stat, button, and text area should support the section’s main message. Avoid filling the layout with too many competing elements, and let each block do one clear job.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317051 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Give-Each-Block-A-Clear-Purpose.jpg" alt="Give Each Block A Clear Purpose" width="1800" height="1064" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Give-Each-Block-A-Clear-Purpose.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Give-Each-Block-A-Clear-Purpose-300x177.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Give-Each-Block-A-Clear-Purpose-768x454.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Give-Each-Block-A-Clear-Purpose-1536x908.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Give-Each-Block-A-Clear-Purpose-610x361.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Use Contrast To Guide The Eye</h3>
<p>Tetris layouts often include several content blocks in one section. Use contrast, color, scale, and spacing to guide visitors through the layout and highlight the most important content first.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317052 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/use-contrast-to-guide-the-eye.jpeg" alt="use contrast to guide the eye" width="1800" height="1238" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/use-contrast-to-guide-the-eye.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/use-contrast-to-guide-the-eye-300x206.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/use-contrast-to-guide-the-eye-768x528.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/use-contrast-to-guide-the-eye-1536x1056.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/use-contrast-to-guide-the-eye-610x420.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Keep Spacing Consistent</h3>
<p>Even when the layout feels playful or offset, spacing should still feel intentional. Keep the gaps between blocks, cards, images, buttons, and text areas consistent so the design feels polished instead of random.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317053 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Keep-Spacing-Consistent.jpg" alt="Keep Spacing Consistent" width="1800" height="734" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Keep-Spacing-Consistent.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Keep-Spacing-Consistent-300x122.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Keep-Spacing-Consistent-768x313.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Keep-Spacing-Consistent-1536x626.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Keep-Spacing-Consistent-610x249.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Balance Asymmetry With Structure</h3>
<p>The appeal of a Tetris layout comes from its modular, asymmetric feel. Balance that movement with clean alignment, repeated shapes, consistent spacing, and clear visual hierarchy.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317054 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Balance-Asymmetry-With-Structure.jpg" alt="Balance Asymmetry With Structure" width="1800" height="982" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Balance-Asymmetry-With-Structure.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Balance-Asymmetry-With-Structure-300x164.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Balance-Asymmetry-With-Structure-768x419.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Balance-Asymmetry-With-Structure-1536x838.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Balance-Asymmetry-With-Structure-610x333.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Check The Layout On Mobile</h3>
<p>Tetris layouts can change noticeably on tablet and phone screens as blocks stack. Review your layout on smaller devices to make sure content order still makes sense, images crop well, spacing feels balanced, and calls to action remain easy to tap.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-317055 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Check-The-Layout-On-Mobile.jpeg" alt="Check The Layout On Mobile" width="1800" height="942" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Check-The-Layout-On-Mobile.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Check-The-Layout-On-Mobile-300x157.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Check-The-Layout-On-Mobile-768x402.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Check-The-Layout-On-Mobile-1536x804.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Check-The-Layout-On-Mobile-610x319.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Start Building In Divi 5 Today!</h2>
<p>These 5 Tetris Designs for <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> give you a fast way to build dynamic, modular sections for landing pages, service sections, feature highlights, product pages, portfolio layouts, agency websites, call-to-action areas, and more. Swap in your content, customize the styling if needed, and you’ll have a polished section ready in minutes with <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>’s Visual Builder.</p>
<div class="inline-elements small-gutters two-column centered"><a href="https://www.elegantthemes.com/members-area/divi-5/" class="button primary-button">Download Divi 5</a><a href="https://www.elegantthemes.com/divi-5/" class="button primary-button accent-purple" style="margin-bottom: 16px;">Learn More About Divi 5</a></div>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/tetris-designs-for-divi-5">5 Tetris Designs For Divi 5 (Free Download!)</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.elegantthemes.com/blog/divi-resources/tetris-designs-for-divi-5/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/5-Tetris-Designs-For-Divi-5.jpeg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>5 Best WordPress Page Builders in 2026 (Expert Picks)</title>
		<link>https://www.elegantthemes.com/blog/wordpress/best-wordpress-page-builders</link>
					<comments>https://www.elegantthemes.com/blog/wordpress/best-wordpress-page-builders#comments</comments>
		
		<dc:creator><![CDATA[Christopher Morris]]></dc:creator>
		<pubDate>Mon, 13 Jul 2026 16:30:00 +0000</pubDate>
				<category><![CDATA[Best WordPress Plugins]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Best Plugins]]></category>
		<category><![CDATA[page builders]]></category>
		<category><![CDATA[Plugin Roundups]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=215472</guid>

					<description><![CDATA[<p>Page builders changed what&#8217;s possible for non-developers in WordPress. Before they existed, customizing page layouts meant editing PHP templates and writing pages of CSS. Now, drag-and-drop interfaces let anyone build professional pages without touching code. I have used page builders across dozens of client projects over the years. The difference between a good page builder [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/wordpress/best-wordpress-page-builders">5 Best WordPress Page Builders in 2026 (Expert Picks)</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Page builders changed what&#8217;s possible for non-developers in WordPress. Before they existed, customizing page layouts meant editing PHP templates and writing pages of CSS. Now, drag-and-drop interfaces let anyone build professional pages without touching code.</p>
<p>I have used page builders across dozens of client projects over the years. The difference between a good page builder and a mediocre one shows up in build speed, long-term maintainability, and how often you hit walls that require workarounds. The wrong choice means fighting your tools instead of building.</p>
<p>The builders below represent the best options based on my experience. Each serves a distinct workflow, and I have noted where each excels so you can match your needs to the right tool.</p>
<h2>Best WordPress Page Builders</h2>
<p>There are certainly many options out there for you to consider. Here, I offer a few opinions, along with videos and images for each page builder, to help you decide.</p>
<h3>1. Divi 5</h3>
<p><a href="https://www.elegantthemes.com/divi-5/"><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-305176 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Divi-5-Example-Page-Editing-Experience-Modernized-and-Blazing-Fast.jpg" alt="Divi 5 Example Page Editing Experience Modernized and Blazing Fast" width="1920" height="910" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Divi-5-Example-Page-Editing-Experience-Modernized-and-Blazing-Fast.jpg 1920w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Divi-5-Example-Page-Editing-Experience-Modernized-and-Blazing-Fast-300x142.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Divi-5-Example-Page-Editing-Experience-Modernized-and-Blazing-Fast-768x364.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Divi-5-Example-Page-Editing-Experience-Modernized-and-Blazing-Fast-1536x728.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Divi-5-Example-Page-Editing-Experience-Modernized-and-Blazing-Fast-610x289.jpg 610w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></a><br />
<a href="https://www.elegantthemes.com/divi-5/">Divi</a> is a complete website building system for WordPress and is one of the best page building experiences. Newly improved, <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> is a ground-up rebuild of the entire theme and visual builder. It is one of the most modern editing environments you could hope to have in a WordPress page builder.</p>
<p>Divi includes dozens of modules to build any page, including forms, carousels, Instagram galleries, pricing tables, SVGs, countdown timers, and more. Each module comes with a full arsenal of styling options for typography, spacing, borders, backgrounds, filters, and animations. These styling options are built directly into the builder and do not require custom CSS (though it supports using it if you like).</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/09/modules-small.mp4" /></video></p>
<p>Divi&#8217;s Preset system is what pulls it ahead of other builders. Instead of managing scattered global styles or writing CSS class styles in separate style sheets (or purchasing an expensive CSS framework), you build reusable style configurations right inside the visual editor. Presets are the visual designer&#8217;s version of a class-based design system, and they&#8217;re easy to set up and apply across your on-page elements. Presets can target entire modules or specific option groups (such as typography or spacing), and they can be stacked or nested to create a flexible design system.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Building-a-Button-Preset-in-Divi-in-a-few-seconds-to-be-applied-anywhere-easily.mp4" /></video></p>
<p>Design Variables complement Presets by storing reusable values for colors, fonts, numbers (including clamp, min/max, and calc functions), URLs, and images. Change a color variable once, and every element using it updates instantly. Again, this is an in-editor way to create design tokens/variables that circumvent the need to create a CSS stylesheet.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Using-Design-Varaibles-for-Consistent-Design-and-Bulk-Style-Changes.mp4" /></video></p>
<p>The layout system handles Flex and Grid with prebuilt structures you can apply in two clicks. You can change a container&#8217;s structure easily, and at different break points assign different rules for it to behave by.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Prebuilt-Flex-and-Grid-Structures-to-Apply-or-use-Divis-Layout-settings-to-set-specific-CSS-values.mp4" /></video></p>
<p>Divi&#8217;s theme builder uses a template system where each template contains header, footer, and body areas (called the Theme Builder). Conditions control which pages, posts, categories, or custom post types each template applies to. You can see all templates and their assignments in one view, making site architecture easy to manage.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Looking-through-Theme-Builder-templates-from-import.mp4" /></video></p>
<p>The Loop Builder handles custom post queries with filtering by post type, category, tag, author, date range, and custom fields. You design loop items directly on the page rather than in a separate template library. Imagine building a staff directory in 15 minutes—all dynamic content fields would pull in post titles, featured images, excerpts, custom fields, and taxonomy terms directly into your design in the page builder.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/09/loop-product-details.mp4" /></video></p>
<h4>Key Features</h4>
<ul>
<li>70+ native modules covering forms, sliders, galleries, pricing tables, and more</li>
<li>Preset-first design system for consistent, reusable styling without CSS</li>
<li>Design Variables for global colors, fonts, spacing, and calculated values</li>
<li>Integrated theme builder for headers, footers, and archive templates</li>
<li>Loop builder for custom post queries with conditional visibility</li>
<li>Native Flex and Grid layouts with prebuilt structures</li>
<li>Off-canvas builder for slide-out menus and popups</li>
<li>25+ WooCommerce modules for product pages, carts, and checkouts</li>
<li>Dozens of starter sites and 2,000+ premade layouts</li>
</ul>
<p><strong>Best For:</strong> Agencies and freelancers who build multiple client sites. The lifetime license with unlimited site usage means your per-project cost approaches zero over time. Business owners who want to manage their own updates will appreciate that pages and templates use the same interface. The Preset system particularly suits designers who want Figma-like workflow efficiency.</p>
<p><strong>Pricing:</strong> <strong>$89/year</strong> or <strong>$249 lifetime</strong> for unlimited sites. Compare that to Elementor&#8217;s $399/year for unlimited sites with no lifetime option, or Bricks&#8217; $599 lifetime.</p>
<p><a href="https://www.elegantthemes.com/divi-5/" class="button primary-button inline-button">Get Divi 5</a></p>
<h3>2. Elementor</h3>
<p><a href="https://www.elegantthemes.com/blog/refer/elementor" rel="noopener nofollow" target="_blank"><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-305240 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-UI-Builder-with-Theme.jpg" alt="Elementor UI Builder with Theme" width="1947" height="819" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-UI-Builder-with-Theme.jpg 1947w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-UI-Builder-with-Theme-300x126.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-UI-Builder-with-Theme-768x323.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-UI-Builder-with-Theme-1536x646.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-UI-Builder-with-Theme-610x257.jpg 610w" sizes="auto, (max-width: 1947px) 100vw, 1947px" /></a><br />
<a href="https://www.elegantthemes.com/blog/refer/elementor" rel="noopener nofollow" target="_blank">Elementor</a> is a plugin-based page builder that requires a separate theme (most users pair it with Hello Elementor, their minimal starter theme, or a premium theme). It has the largest market share among WordPress page builders, which means abundant tutorials, third-party add-ons, and community support. The visual builder, like most page builders, updates in real time so you can see what you are building. The widget library includes 100+ elements covering text, images, buttons, forms, sliders, and interactive components.</p>
<p>Global styles in Elementor handle colors and typography through a site settings panel. You define color palettes and font families, then apply them across widgets. The system works, but feels dated compared to Divi&#8217;s Presets. Changes require navigating to site settings rather than editing in context, and the options lack the granularity of a true design system.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-306500 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Global-Typography-Site-Settings.jpg" alt="Elementor Global Typography Site Settings" width="2248" height="1215" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Global-Typography-Site-Settings.jpg 2248w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Global-Typography-Site-Settings-300x162.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Global-Typography-Site-Settings-1946x1052.jpg 1946w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Global-Typography-Site-Settings-768x415.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Global-Typography-Site-Settings-1536x830.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Global-Typography-Site-Settings-2048x1107.jpg 2048w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Global-Typography-Site-Settings-610x330.jpg 610w" sizes="auto, (max-width: 2248px) 100vw, 2248px" /><br />
Theme building in Elementor Pro uses display conditions to target post types, taxonomies, specific posts, archives, and WooCommerce pages. Conditions support AND/OR logic with include/exclude rules. However, there is no unified view of all template assignments. You have to check each template individually, which becomes cumbersome on complex sites.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Theme-Builder-Template-Assignment-via-Conditions-many-clicks.mp4" /></video></p>
<p>The Loop Builder creates custom post displays with filtering by post type, taxonomy, date, author, and custom fields. However, you design loop items as separate templates in the template library, then insert them into pages via a Loop Grid widget. This means extra page loads and context switching compared to builders that let you design loops directly on the page.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-306499 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Loop-Grid-Query-Panel.jpg" alt="Elementor Loop Grid Query Panel" width="1600" height="805" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Loop-Grid-Query-Panel.jpg 1600w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Loop-Grid-Query-Panel-300x151.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Loop-Grid-Query-Panel-768x386.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Loop-Grid-Query-Panel-1536x773.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Loop-Grid-Query-Panel-610x307.jpg 610w" sizes="auto, (max-width: 1600px) 100vw, 1600px" /><br />
Dynamic tags insert post data, site information, ACF fields, and WooCommerce product data into widget settings. The implementation supports before/after text and fallback values. WooCommerce support includes dedicated product widgets and template types for shop, product, cart, checkout, and account pages.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Elementor-Dynamic-Data-Insertion-Multiple-Nested-Clicks.mp4" /></video></p>
<p>One consideration: Elementor v4 is on the horizon, introducing a completely different class-based styling mechanism. This will require relearning parts of the builder, even if you are proficient with the current version. The new approach resembles Divi 5&#8217;s Preset system, which suggests the industry is moving in that direction.</p>
<div id="attachment_305230" style="width: 1426px" class="wp-caption alignnone"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-305230" class="with-border wp-image-305230 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-V3-vs-V4-vs-Divi-5-UI.jpg" alt="Elementor V3 vs V4 vs Divi 5 UI" width="1416" height="882" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-V3-vs-V4-vs-Divi-5-UI.jpg 1416w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-V3-vs-V4-vs-Divi-5-UI-300x187.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-V3-vs-V4-vs-Divi-5-UI-768x478.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Elementor-V3-vs-V4-vs-Divi-5-UI-610x380.jpg 610w" sizes="auto, (max-width: 1416px) 100vw, 1416px" /><p id="caption-attachment-305230" class="wp-caption-text">Elementor&#8217;s coming V4 update (center) introduces class-based styling similar to Divi 5 (right), compared to Elementor now (left)</p></div>
<h4>Key Features</h4>
<ul>
<li>100+ widgets with deep styling controls</li>
<li>Theme builder for headers, footers, and archives (Pro only)</li>
<li>300+ premade templates and starter sites</li>
<li>Loop builder for custom queries (requires separate template creation)</li>
<li>WooCommerce integration with dedicated product widgets</li>
<li>Dynamic tags for ACF, Pods, Toolset, and native fields</li>
<li>Largest third-party add-on ecosystem in WordPress</li>
</ul>
<p><strong>Best For:</strong> Users who want maximum third-party integration options and access to the largest community of tutorials and resources. Elementor makes sense if you need a specific add-on that only works with its ecosystem, or if your team is already trained on it.</p>
<p><strong>Pricing:</strong> Free version available, but limited. Pro starts at <strong>$59/year</strong> for one site, but the full theme builder requires the <strong>$99/year</strong> plan (3 sites). Agency plan runs <strong>$399/year</strong> for 1,000 sites. No lifetime option available.</p>
<p><a href="https://www.elegantthemes.com/blog/refer/elementor" class="button primary-button inline-button" rel="noopener nofollow" target="_blank">Get Elementor</a></p>
<h3>3. Beaver Builder</h3>
<p><a href="https://www.elegantthemes.com/blog/refer/beaverbuilder" rel="noopener nofollow" target="_blank"><img loading="lazy" decoding="async" class="with-border aligncenter" src="https://www.elegantthemes.com/blog/wp-content/uploads/2023/02/BeaverBuilder.jpg" alt="Beaver Builder" width="1800" height="900" /></a><br />
<a href="https://www.elegantthemes.com/blog/refer/beaverbuilder" rel="noopener nofollow" target="_blank">Beaver Builder</a> has built a reputation for stability and reliability over professional features. It is primary a page builder plugin, but also has a separate Theme that you can use with it.</p>
<div id="attachment_306806" style="width: 2258px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" aria-describedby="caption-attachment-306806" class="with-border wp-image-306806 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Page-Builder-Editor-Example.jpg" alt="Beaver Builder Page Builder Editor Example" width="2248" height="953" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Page-Builder-Editor-Example.jpg 2248w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Page-Builder-Editor-Example-300x127.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Page-Builder-Editor-Example-1946x825.jpg 1946w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Page-Builder-Editor-Example-768x326.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Page-Builder-Editor-Example-1536x651.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Page-Builder-Editor-Example-2048x868.jpg 2048w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Page-Builder-Editor-Example-610x259.jpg 610w" sizes="auto, (max-width: 2248px) 100vw, 2248px" /><p id="caption-attachment-306806" class="wp-caption-text">Beaver Builder feels more like Divi 4 and WP Bakery vs. Divi 5 or Bricks</p></div>
<p>The drag-and-drop interface is clean and intuitive. You add modules from a panel, drag them onto the canvas, and configure settings in a pop-up modal. The approach is straightforward without the complexity that can overwhelm new users. What you see is what you get, and the learning curve is gentle. Beaver Builder feels like a better WP Bakery, but also not the best that is on offer today.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Modules-for-Page-Builder.mp4" /></video></p>
<p>The module library covers essentials: text, images, buttons, galleries, sliders, forms, pricing tables, and more. The styling options are less comprehensive than Divi or Elementor, focusing on practical controls rather than exhaustive customization. This constraint keeps the interface fast and prevents option paralysis, though power users may feel limited.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Page-Editing-Visual-Builder-Slow.mp4" /></video></p>
<p>Theme building requires Beaver Themer, a separate add-on included only in the Pro and Agency tiers. With Themer, you can create custom headers, footers, archive templates, and singular templates with conditional logic. The implementation uses an older setup that isn&#8217;t as intuitive and modern as other Theme Builders.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-306809 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Theme-Layouts-Very-Weak-Compared-to-Modern-Tempalte-and-Theme-Builders.jpg" alt="Theme Layouts Very Weak Compared to Modern Template and Theme Builders" width="2230" height="1219" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Theme-Layouts-Very-Weak-Compared-to-Modern-Tempalte-and-Theme-Builders.jpg 2230w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Theme-Layouts-Very-Weak-Compared-to-Modern-Tempalte-and-Theme-Builders-300x164.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Theme-Layouts-Very-Weak-Compared-to-Modern-Tempalte-and-Theme-Builders-1946x1064.jpg 1946w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Theme-Layouts-Very-Weak-Compared-to-Modern-Tempalte-and-Theme-Builders-768x420.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Theme-Layouts-Very-Weak-Compared-to-Modern-Tempalte-and-Theme-Builders-1536x840.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Theme-Layouts-Very-Weak-Compared-to-Modern-Tempalte-and-Theme-Builders-2048x1120.jpg 2048w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Theme-Layouts-Very-Weak-Compared-to-Modern-Tempalte-and-Theme-Builders-610x333.jpg 610w" sizes="auto, (max-width: 2230px) 100vw, 2230px" /></p>
<p>The Theme also relies heavily on the old Theme Customizer experience, which was dated even 3 years ago. In it, typography, headers, footers, and other styles can be set.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-306810 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Theme-uses-Old-Customizer-Instead-of-Modern-Interface.jpg" alt="Beaver Builder Theme uses Old Customizer Instead of Modern Interface" width="2241" height="1074" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Theme-uses-Old-Customizer-Instead-of-Modern-Interface.jpg 2241w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Theme-uses-Old-Customizer-Instead-of-Modern-Interface-300x144.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Theme-uses-Old-Customizer-Instead-of-Modern-Interface-1946x933.jpg 1946w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Theme-uses-Old-Customizer-Instead-of-Modern-Interface-768x368.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Theme-uses-Old-Customizer-Instead-of-Modern-Interface-1536x736.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Theme-uses-Old-Customizer-Instead-of-Modern-Interface-2048x982.jpg 2048w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Beaver-Builder-Theme-uses-Old-Customizer-Instead-of-Modern-Interface-610x292.jpg 610w" sizes="auto, (max-width: 2241px) 100vw, 2241px" /></p>
<h4>Key Features</h4>
<ul>
<li>Stable, reliable codebase with minimal update issues</li>
<li>Clean drag-and-drop interface with straightforward controls</li>
<li>Works with any WordPress theme</li>
<li>Beaver Themer add-on for headers, footers, and archive templates</li>
<li>White labeling for client projects (Agency plan)</li>
<li>Assistant Pro cloud storage for reusable layouts</li>
<li>Clean code output with readable markup</li>
</ul>
<p><strong>Best For:</strong> Agencies that like a simpler builder that is still stable and has plenty of integrations. It&#8217;s not the best on this list, but it is better than average.</p>
<p><strong>Pricing:</strong> Free lite version available. Standard plan (1 site) at <strong>$89/year</strong>. Higher tiers include more website usage, cloud storage, white-labeling, and multisite support for agency plans.</p>
<p><a href="https://www.elegantthemes.com/blog/refer/beaverbuilder" class="button primary-button inline-button" rel="noopener nofollow" target="_blank">Get Beaver Builder</a></p>
<h3>4. Bricks</h3>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-304928 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Builder-in-the-building-environment.jpg" alt="Bricks Builder in the building environment" width="1920" height="864" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Builder-in-the-building-environment.jpg 1920w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Builder-in-the-building-environment-300x135.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Builder-in-the-building-environment-768x346.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Builder-in-the-building-environment-1536x691.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Builder-in-the-building-environment-610x275.jpg 610w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p>
<p><a href="https://bricksbuilder.io/" rel="noopener" target="_blank">Bricks</a> targets developers and power users who want control over HTML output and prefer working close to CSS. The builder functions as a theme (like Divi), so you install it and get full-page building and theme-building capabilities without needing a separate theme. If you think in classes and CSS variables, Bricks gives you that access.</p>
<p>The global classes and variables system lets you define reusable styles that apply across elements. You create a class, configure its styles, and apply it to any element. Variables store colors, fonts, and spacing values for consistent use. This approach mirrors how developers work with CSS, making Bricks feel familiar to those with coding backgrounds.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-304927 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Class-and-Variable-Manager.jpg" alt="Bricks Class and Variable Manager ideal for CSS developers" width="1920" height="911" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Class-and-Variable-Manager.jpg 1920w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Class-and-Variable-Manager-300x142.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Class-and-Variable-Manager-768x364.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Class-and-Variable-Manager-1536x729.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Class-and-Variable-Manager-610x289.jpg 610w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></p>
<p>Theme Styles provide another layer of global control, letting you set default styles for headings, body text, buttons, and form elements. You can apply conditions to target specific pages or post types. However, the nested menu structure requires multiple clicks to find specific settings, which feels less intuitive than Divi&#8217;s in-context Preset editing.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Theme-Styles-for-Colors-Typography-and-Sizes-Nested-Multiple-Menus-down.mp4" /></video></p>
<p>Template assignment uses conditions that rival Divi&#8217;s flexibility. You can target post types, taxonomies, specific posts, archives, author pages, search results, and WooCommerce templates. Conditions support AND/OR logic with includes and excludes, giving you precise control over where templates apply.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-306522 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Set-Template-Assignmnet-with-Conditions-in-the-Visual-Builder.jpg" alt="Bricks Set Template Assignments with Conditions in the Visual Builder" width="2560" height="898" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Set-Template-Assignmnet-with-Conditions-in-the-Visual-Builder.jpg 2560w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Set-Template-Assignmnet-with-Conditions-in-the-Visual-Builder-300x105.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Set-Template-Assignmnet-with-Conditions-in-the-Visual-Builder-1946x683.jpg 1946w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Set-Template-Assignmnet-with-Conditions-in-the-Visual-Builder-768x269.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Set-Template-Assignmnet-with-Conditions-in-the-Visual-Builder-1536x539.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Set-Template-Assignmnet-with-Conditions-in-the-Visual-Builder-2048x718.jpg 2048w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Set-Template-Assignmnet-with-Conditions-in-the-Visual-Builder-610x214.jpg 610w" sizes="auto, (max-width: 2560px) 100vw, 2560px" /></p>
<p>The query loop builder is among the most powerful available. You can filter by post type, taxonomy, meta fields with comparison operators, date ranges, author, and relationship fields from ACF or JetEngine. For complex CPT archives, filtered directories, or data-driven sites, Bricks handles queries that other builders cannot match.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1800" height="150" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/12/Bricks-Query-Loop-Settings.mp4" /></video></p>
<p>Dynamic data integration natively supports ACF, Meta Box, Pods, Toolset, and JetEngine. Dynamic tags are available across most settings, with options for before/after text, fallbacks, and formatting. If you build sites that pull content from custom post types and complex field relationships, Bricks handles it as well as any builder on this list.</p>
<p>The builder generates cleaner markup than most visual builders, resulting in faster page loads and easier custom CSS. However, many Bricks users supplement it with frameworks like ACSS or Core Framework, which suggests gaps in the native design system tooling compared to Divi&#8217;s Presets.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-306521 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Builder-Dynamic-Data-ACF-Gallery-Example.jpg" alt="Bricks Builder Dynamic Data ACF Gallery Example" width="1536" height="848" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Builder-Dynamic-Data-ACF-Gallery-Example.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Builder-Dynamic-Data-ACF-Gallery-Example-300x166.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Builder-Dynamic-Data-ACF-Gallery-Example-768x424.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Bricks-Builder-Dynamic-Data-ACF-Gallery-Example-610x337.jpg 610w" sizes="auto, (max-width: 1536px) 100vw, 1536px" /></p>
<h4>Key Features</h4>
<ul>
<li>Clean HTML output with semantic markup</li>
<li>Global classes and variables for CSS-like workflow</li>
<li>Advanced query loop builder with meta field filtering</li>
<li>Native support for ACF, Meta Box, Pods, Toolset, and JetEngine</li>
<li>Full theme building included (headers, footers, archives)</li>
<li>WooCommerce templates with dedicated elements</li>
<li>Wireframe templates for rapid structure building</li>
</ul>
<p><strong>Best For:</strong> Developers and technical freelancers who prioritize code quality and need advanced dynamic data features (though there are better solutions that get you closer to your code, if that is where you place value). Bricks suits those who have adopted a CSS framework and work primarily through class-based styling. The learning curve is steeper, but the control is nearly unmatched.</p>
<p><strong>Pricing:</strong> <strong>$79/year</strong> for one site, <strong>$249/year</strong> for unlimited sites, or <strong>$599 lifetime</strong> for unlimited sites. Divi&#8217;s lifetime at $249 is less than half the cost of comparable unlimited-usage plans.</p>
<p><a href="https://bricksbuilder.io/" class="button primary-button inline-button" rel="noopener" target="_blank">Get Bricks</a></p>
<h3>5. Spectra</h3>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-306873 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-One-FSE-Theme-Tempaltes.jpg" alt="Spectra One FSE Theme Templates" width="1342" height="636" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-One-FSE-Theme-Tempaltes.jpg 1342w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-One-FSE-Theme-Tempaltes-300x142.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-One-FSE-Theme-Tempaltes-768x364.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-One-FSE-Theme-Tempaltes-610x289.jpg 610w" sizes="auto, (max-width: 1342px) 100vw, 1342px" /></p>
<p><a href="https://wpspectra.com/" rel="noopener" target="_blank">Spectra</a> (formerly Ultimate Addons for Gutenberg) extends the native WordPress Block Editor with additional blocks and design options. If you prefer to stay within WordPress core rather than adopt a third-party builder, Spectra fills the gaps that make the Block Editor frustrating for serious page-building. Spectra is a page builder plugin, and when purchased at the Essential Toolkit tier, it comes with the Astra theme (lower tiers require a different theme).</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-306874" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Flexbox-Container-Options.jpg" alt="Spectra Flexbox Container Options" width="928" height="640" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Flexbox-Container-Options.jpg 928w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Flexbox-Container-Options-300x207.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Flexbox-Container-Options-768x530.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Flexbox-Container-Options-610x421.jpg 610w" sizes="auto, (max-width: 928px) 100vw, 928px" /></p>
<p>The plugin adds 30+ blocks for layouts, forms, pricing tables, testimonials, countdowns, and interactive elements that the native editor lacks. Container blocks support Flexbox and Grid layouts, giving you structural control that core WordPress does not provide. You can build complex page layouts without needing a full page builder.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-306875 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Some-Avaialable-Sepctra-Blocks-to-Build-With.jpg" alt="Some Available Spectra Blocks to Build With" width="910" height="720" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Some-Avaialable-Sepctra-Blocks-to-Build-With.jpg 910w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Some-Avaialable-Sepctra-Blocks-to-Build-With-300x237.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Some-Avaialable-Sepctra-Blocks-to-Build-With-768x608.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Some-Avaialable-Sepctra-Blocks-to-Build-With-610x483.jpg 610w" sizes="auto, (max-width: 910px) 100vw, 910px" /></p>
<p>Design controls include granular spacing, typography settings, and responsive adjustments that give you finer control than core blocks. You can copy and paste styles between blocks, which speeds up repetitive styling tasks. The interface stays within the familiar Block Editor, so there is no separate builder to learn.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-306876 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme.jpg" alt="Spectra Typography Styles Using Astra One FSE Theme" width="1800" height="1015" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme-300x169.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme-768x433.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme-1536x866.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme-610x344.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Spectra integrates with the Full Site Editor for template building. You can create custom headers, footers, and archive templates using Spectra blocks alongside core blocks. This keeps you within WordPress&#8217; native tooling while significantly extending its capabilities. It also includes various prebuilt templates for you to get a quick start from.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-306877 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme-1.jpg" alt="Spectra Typography Styles Using Astra One FSE Theme" width="1800" height="1015" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme-1.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme-1-300x169.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme-1-768x433.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme-1-1536x866.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/01/Spectra-Typography-Styles-Using-Astra-One-FSE-Theme-1-610x344.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The plugin works well alongside the Astra theme or Spectra ONE (both from Brainstorm Force), though it also works with any block theme. Spectra ONE is a Full-Site Editing theme, available free of charge. Astra is a classic theme that approaches theme building differently. Any of the Full SIte Editing features shown above (FSE styles, templates) are using Spectra and Spectra Pro. But it works with most any theme of your choice.</p>
<h4>Key Features</h4>
<ul>
<li>30+ additional blocks for the native Block Editor</li>
<li>Container blocks with Flexbox and Grid support</li>
<li>Enhanced design controls for spacing, typography, and responsiveness</li>
<li>Copy/paste styles between blocks</li>
<li>Works within WordPress core (no separate builder interface)</li>
<li>Full Site Editor integration for template building (os a classic theme like Astra)</li>
<li>Lightweight with minimal performance impact</li>
</ul>
<p><strong>Best For:</strong> Users committed to the WordPress Block Editor who want enhanced capabilities without adopting a full page builder. Spectra suits those who believe in the Gutenberg direction and want to stay within that ecosystem while gaining the design control that core WordPress lacks.</p>
<p><strong>Pricing:</strong> Free version available with essential blocks. Pro starts at <strong>$49/year</strong> for one site, up to <strong>$189/year</strong> for unlimited sites.</p>
<p><a href="https://wpspectra.com/" class="button primary-button inline-button" rel="noopener" target="_blank">Get Spectra</a></p>
<h2>Page Builder Pricing Comparison</h2>
<p>Understanding the total cost of ownership matters when choosing a page builder. Annual pricing can get hefty, especially if you are paying for a theme + a page builder.</p>

<table id="tablepress-1452" class="tablepress tablepress-id-1452 listicle-plugins">
<thead>
<tr class="row-1">
	<th class="column-1">Page Builder</th><th class="column-2">Starting Price</th><th class="column-3">Upper Tier</th><th class="column-4">Lifetime Option</th><th class="column-5">Theme Builder Included</th><td class="column-6"></td>
</tr>
</thead>
<tbody class="row-striping">
<tr class="row-2">
	<td class="column-1">Divi</td><td class="column-2">$89/year</td><td class="column-3">$89/year (unlimited)</td><td class="column-4">$249 (unlimited)</td><td class="column-5">✅ Yes</td><td class="column-6"><a href="https://www.elegantthemes.com/divi-5/" class="button">Visit</a></td>
</tr>
<tr class="row-3">
	<td class="column-1">Elementor Pro</td><td class="column-2">$59/year (1 site)</td><td class="column-3">$399/year (1,000 sites)</td><td class="column-4">❌ No</td><td class="column-5">Pro tiers only</td><td class="column-6"><a href="https://www.elegantthemes.com/blog/refer/elementor" class="button" rel="noopener nofollow" target="_blank">Visit</a></td>
</tr>
<tr class="row-4">
	<td class="column-1">Beaver Builder</td><td class="column-2">$89/year (1 site)</td><td class="column-3">$546/year (unlimited)</td><td class="column-4">❌ No</td><td class="column-5">Add-on ($149+)</td><td class="column-6"><a href="https://www.elegantthemes.com/blog/refer/beaverbuilder" class="button" rel="noopener nofollow" target="_blank">Visit</a></td>
</tr>
<tr class="row-5">
	<td class="column-1">Bricks</td><td class="column-2">$79/year (1 site)</td><td class="column-3">$249/year (unlimited)</td><td class="column-4">$599 (unlimited)</td><td class="column-5">✅ Yes</td><td class="column-6"><a href="https://bricksbuilder.io/" class="button" rel="noopener" target="_blank">Visit</a></td>
</tr>
<tr class="row-6">
	<td class="column-1">Spectra</td><td class="column-2">$49/year (1 site)</td><td class="column-3">$189/year (unlimited)</td><td class="column-4">❌ No</td><td class="column-5">Spectra One theme only</td><td class="column-6"><a href="https://wpspectra.com/" class="button" rel="noopener" target="_blank">Visit</a></td>
</tr>
</tbody>
</table>
<!-- #tablepress-1452 from cache -->
<p>For agencies building multiple sites annually, Divi&#8217;s lifetime unlimited license at $249 offers the best economics. For users committed to the Block Editor, Spectra is a good bet, but you still have to choose your theme with it. Elementor&#8217;s large ecosystem comes at the cost of annual fees, with no unlimited-site option.</p>
<h2>Making Your Page Builder Decision</h2>
<p>Every page builder on this list can produce professional WordPress sites. The differences come down to how you prefer to work, what you&#8217;re willing to spend, and how much control you need.</p>
<p>Three questions should guide your decision:</p>
<p><strong>First: How many sites will you build?</strong> If the answer is more than two or three, lifetime licensing makes economic sense. Divi&#8217;s $249 lifetime for unlimited sites pays for itself quickly compared to annual subscriptions.</p>
<p><strong>Second: What is your technical comfort level?</strong> Developers who write CSS daily will appreciate Bricks&#8217; control. Designers who think visually will prefer Divi&#8217;s Preset system. Those committed to WordPress-native tooling should consider Spectra.</p>
<p><strong>Third: Do you need theme building?</strong> If you want to design headers, footers, and archive templates visually, ensure your choice includes this. Divi and Bricks include it. Elementor and Beaver Builder require Pro tiers or add-ons.</p>
<p>The builder I keep returning to is Divi. The lifetime license eliminates recurring costs, the visual builder is genuinely enjoyable to use, and the Preset system speeds up builds once you understand it. For most users, it represents the best combination of capability, workflow efficiency, and long-term value.</p>
<h2>Frequently Asked Questions About Page Builders</h2>
<style>
		#faqsu-faq-list {
			background: #F0F4F8;
			border-radius: 5px;
			padding: 15px;
		}
		#faqsu-faq-list .faqsu-faq-single {
			background: #fff;
			padding: 15px 15px 20px;
			box-shadow: 0px 0px 10px #d1d8dd, 0px 0px 40px #ffffff;
			border-radius: 5px;
			margin-bottom: 1rem;
		}
		#faqsu-faq-list .faqsu-faq-single:last-child {
			margin-bottom: 0;
		}
		#faqsu-faq-list .faqsu-faq-question {
			border-bottom: 1px solid #F0F4F8;
			padding-bottom: 0.825rem;
			margin-bottom: 0.825rem;
			position: relative;
			padding-right: 40px;
		}
		#faqsu-faq-list .faqsu-faq-question:after {
			content: "?";
			position: absolute;
			right: 0;
			top: 0;
			width: 30px;
			line-height: 30px;
			text-align: center;
			color: #c6d0db;
			background: #F0F4F8;
			border-radius: 40px;
			font-size: 20px;
		}
		</style>
		
		<section id="faqsu-faq-list" itemscope itemtype="http://schema.org/FAQPage"><div class="faqsu-faq-single" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
					<h3 class="faqsu-faq-question" itemprop="name">What is the difference between a page builder and a theme builder?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">These days, not much. A page builder focuses on individual page and post layouts. A theme builder extends that control to sitewide elements like headers, footers, and archive templates. Many modern tools (Divi, Elementor Pro, Bricks) include both, so you only learn one interface.</div>
					</div>
				</div><div class="faqsu-faq-single" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
					<h3 class="faqsu-faq-question" itemprop="name">Do page builders slow down WordPress?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">Page builders are not inherently slow. Some are built on older technology, and any builder can be used poorly to create performance issues. Quality builders like Divi 5 prioritize clean code and efficient resource loading. Following best practices (optimized images, quality hosting, caching) matters more than which builder you choose.</div>
					</div>
				</div><div class="faqsu-faq-single" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
					<h3 class="faqsu-faq-question" itemprop="name">Can I switch from one page builder to another?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">Yes, but switching requires reworking your pages since different builders use unique storage structures. This is why choosing the right builder upfront matters. It is possible to complete a redesign using the same page builder, as page builders are designed to be flexible.</div>
					</div>
				</div><div class="faqsu-faq-single" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
					<h3 class="faqsu-faq-question" itemprop="name">Do I need a page builder if I use the Block Editor?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">Not necessarily. The Block Editor handles basic layouts, and plugins like Spectra extend its capabilities. However, page builders offer more advanced design options, better responsive controls, and faster workflows for complex sites. If you use the Block Editor for post content, you can still use a page builder like Divi for designing your templates and pages. This is a common use case.</div>
					</div>
				</div><div class="faqsu-faq-single" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
					<h3 class="faqsu-faq-question" itemprop="name">Which page builder is best for WooCommerce?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">Divi includes 25+ native WooCommerce modules for building product pages, carts, and checkouts visually. Elementor Pro and Bricks also offer strong WooCommerce support. For stores where design is crucial, Divi offers the most comprehensive toolset without requiring additional plugins.</div>
					</div>
				</div><div class="faqsu-faq-single" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
					<h3 class="faqsu-faq-question" itemprop="name">Is Elementor a better page builder than Divi?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">We would say that Elementor is not better than Divi. Given Divi's rapid development, it is a far superior page builder. However, Elementor has a larger third-party ecosystem and market share. Divi offers better pricing (lifetime option), a more advanced design system (Presets), and is a theme + page builder, whereas Elementor is a page builder that requires a theme.

For most users, Divi provides better long-term value.</div>
					</div>
				</div></section>
<p>The post <a href="https://www.elegantthemes.com/blog/wordpress/best-wordpress-page-builders">5 Best WordPress Page Builders in 2026 (Expert Picks)</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.elegantthemes.com/blog/wordpress/best-wordpress-page-builders/feed</wfw:commentRss>
			<slash:comments>19</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2023/03/best-wordpress-page-builders-2026-ft-img-3.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>Divi 5.9 Release Notes</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/divi-5-9</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/divi-5-9#comments</comments>
		
		<dc:creator><![CDATA[Nick Roach]]></dc:creator>
		<pubDate>Mon, 13 Jul 2026 12:00:32 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=317290</guid>

					<description><![CDATA[<p>It&#8217;s official; the beta phases have ended, and Divi 5 has arrived! This isn&#8217;t the end; it&#8217;s a new beginning for Divi, and we are moving forward faster than ever with weekly updates. If you use Divi 5, you&#8217;ll see a version 5.9 update notification today. The majority of our team is focused on bug fixing [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/divi-5-9">Divi 5.9 Release Notes</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>It&#8217;s official; the beta phases have ended, and <a href="https://www.elegantthemes.com/blog/theme-releases/divi-5-official">Divi 5 has arrived</a>!</p>
<p>This isn&#8217;t the end; it&#8217;s a new beginning for Divi, and we are moving forward faster than ever with weekly updates. If you use <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>, you&#8217;ll <span style="box-sizing: border-box; margin: 0px; padding: 0px;">see a version <strong>5.9</strong> update notification </span>today.</p>
<p>The majority of our team is focused on bug fixing and overall stability. However, after months of doing nothing but fixing bugs, we are slowly transitioning back to feature development.</p>
<p>That means the rate of innovation will accelerate significantly over the next few months.</p>
<p>If you want to get an early inside scoop, I often post progress reports in the <a href="https://www.facebook.com/groups/DiviThemeUsers" rel="noopener" target="_blank">Divi Theme Users Facebook</a> group. <em><strong>Join us!</strong></em></p>
<h2>What&#8217;s New In Divi 5.9?</h2>
<p>We<span style="box-sizing: border-box; margin: 0px; padding: 0px;"> implemented <a href="#changelog">65 bug fixes and improvements</a>, along with two brand new features: <a href="https://www.elegantthemes.com/blog/theme-releases/variable-fonts">Variable Fonts</a> and the <a href="https://www.elegantthemes.com/blog/theme-releases/css-grid-editor">CSS Grid Editor</a>.</span></p>
<h3>Variable Fonts And New Text Styling Options</h3>
<p>We released <a href="https://www.elegantthemes.com/blog/theme-releases/variable-fonts">Variable Fonts</a> in Divi 5.8.1!</p>
<p>Divi 5 now supports the latest Google Fonts collection, including variable fonts and the dozens of new controls they provide. If you aren&#8217;t familiar with variable fonts, keep reading because they are amazing.</p>
<p>We also added many new text styling options that allow you to create magazine-style text layouts, style dropcaps, and give you more control over text stroke, spacing, and more. When it comes to typography, Divi 5 now has it all.</p>
<p><strong>Take the full tour.</strong> 👇</p>
<p><iframe loading="lazy" class="youtube-player" type="text/html"  title="New Features. 👀 Variable Fonts &amp; Text Styling Options!" width="719" height="404" src="https://www.youtube.com/embed/ls5DnwjXtNc?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<h3>CSS Grid Editor</h3>
<p>We released the <a href="https://www.elegantthemes.com/blog/theme-releases/css-grid-editor">CSS Grid Editor</a> in Divi 5.9!</p>
<p>Divi 5 embraces <a href="https://www.elegantthemes.com/blog/theme-releases/css-grid">CSS Grid</a>. It comes with tons of flexible grid templates and all the options you could ever need to build every grid layout imaginable.</p>
<p>Today, we are taking things a step further by introducing an interface for visualizing, editing, and building advanced CSS grid layouts. It&#8217;s <em><strong>awesome!</strong></em></p>
<p>Whether you&#8217;re new to CSS Grid or an experienced developer, you can use the new interface to build stunning layouts without getting lost in a maze of settings.</p>
<p>Furthermore, thanks to Divi 5&#8217;s unique <a href="https://www.elegantthemes.com/blog/divi-resources/mastering-divi-5s-grid-offset-editor">grid offset editor</a>, layouts built with the grid editor are housed entirely within the container, which means you don&#8217;t have to worry about editing child elements, and every CSS Grid layout built with Divi 5 <a href="https://www.elegantthemes.com/blog/theme-releases/loop-builder">works with loops</a>.</p>
<p><strong>Take the full tour.</strong> 👇</p>
<p><iframe loading="lazy" class="youtube-player" type="text/html"  title="Divi 5 Just Mastered the Grid (Must-See New Feature 👀)" width="719" height="404" src="https://www.youtube.com/embed/8Qr7eZX15b0?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<h2>What&#8217;s Coming Next?</h2>
<p>We have many new modules in the works, <a href="https://www.youtube.com/watch?v=d52-B9OxsPA" rel="noopener" target="_blank">some of which I previewed recently</a>. I am most excited for our first round of loop filter modules, which will make Divi 5&#8217;s versatile <a href="https://www.elegantthemes.com/blog/theme-releases/loop-builder">loop builder</a> even more useful.</p>
<p>Additionally, we are working on the <a href="https://www.youtube.com/watch?v=vZx_oHXkQGA" rel="noopener" target="_blank">Divi AI Agent</a>, and it&#8217;s coming along very nicely.</p>
<p>Since my last sneak peek, we added new tools, different chat modes, attachments, and more. Divi AI&#8217;s original features were nice, but the new agent is something else entirely. It was built to work like a human and to augment your workflows inside the builder. It&#8217;s going to change everything.</p>
<p>We plan to release a beta version in the next couple of weeks to gather feedback, during which time we will give all Divi AI users free tokens to experiment with.</p>
<h2 id="changelog">Changelog</h2>
<p>Here is a list of all fixes and improvements included in this update.</p>
<ul>
<li>Added new Grid Editor, enabling the visual creation of advanced grid layouts.</li>
<li>Added support for number variables in the grid offset editor.</li>
<li>Individual grid offset editor rules now support the full range of start, end, and span settings in a single rule.</li>
<li>Fixed columns getting consolidated when switching the layout style from flex to grid when editing a row preset.</li>
<li>Fixed grid offset rules not being copied to presets when creating new presets from current styles.</li>
<li>Fixed minimum column width CSS not printing when set at the module level, when &#8220;equal minimum width columns&#8221; was set at the preset level.</li>
<li>Fixed sections remaining hidden when section animation was enabled, but duration and delay were stored as empty values.</li>
<li>Fixed Theme Builder loops using the “current page” query on 404 pages, incorrectly showing recent blog posts instead of the no-results state.</li>
<li>Fixed Button Line Color and Button Line Style being unavailable when editing hover or sticky states after enabling underline on the normal state.</li>
<li>Improved frontend font-family sanitization and archived global variable CSS output reliability.</li>
<li>WooCommerce checkout pages built with Divi checkout modules now render a single, consistent checkout form instead of multiple competing forms.</li>
<li>Woo Product Gallery now exposes Design -&gt; Image -&gt; Sizing -&gt; Column Class and keeps wrapped flex gallery item sizing aligned between the frontend and Visual Builder.</li>
<li>Fixed an issue where nested Blurb modules could display the wrong icon in Visual Builder preview due to parent icon style leakage.</li>
<li>Fixed ACF Color Picker dynamic content not displaying the correct text and decoration colors in the Visual Builder, so on-canvas styles now match the resolved colors shown on the live site.</li>
<li>Internal test coverage only; no customer-facing changelog.</li>
<li>Added Theme Builder Playwright smoke tests to the Builder 5 CI pipeline.</li>
<li>Added a Playwright smoke test to verify that the Theme Builder admin screen loads.</li>
<li>Fixed the Layer view drop zone indicator and drag handle label being invisible in dark mode when dragging regular modules.</li>
<li>Fixed an issue where module settings reset/default values could show module preset styles instead of the applied option group preset styles.</li>
<li>Fixed an issue where custom button icons did not appear on the Contact Form 7 Styler module submit button in the Visual Builder and on the front end.</li>
<li>Fixed the Dropdown mega-menu positioning and sizing so floating menus can reliably align to the parent row or viewport width across columns.</li>
<li>Fixed frontend module order classes not starting at zero after layout migration.</li>
<li>Imported legacy Text modules now preserve the expected Open Sans body weight during import, so frontend rendering matches freshly created Text modules.</li>
<li>Fixed an issue where Code Module curly-quote HTML entities rendered correctly in Visual Builder but not on the frontend.</li>
<li>Fixed an issue where CTA modules with AnalyticsWP tracking enabled could enter backward compatibility mode after the Divi 4 to Divi 5 migration.</li>
<li>Fixed Visual Builder REST responses exposing Instagram tokens and accepting invalid Post Navigation post contexts.</li>
<li>Improved performance of variable font weight inheritance.</li>
<li>Fixed an issue where Video modules could fail to render YouTube videos when a video is added via Insert from URL in the media modal.</li>
<li>Added more Google fonts to the default list of web fonts.</li>
<li>Added support for flexible fonts, including variable font weight and many additional font settings.</li>
<li>Added a drop cap tab to all body text option groups, allowing drop caps to be added and styled along with paragraph, anchor text, block quote, and lists.</li>
<li>Add new text styling options to all body font elements, including text direction, columns, stroke position, capitalization, hyphenation, and wrapping.</li>
<li>The long font select menu is now lazy-loaded, improving performance when selecting fonts.</li>
<li>Fixed Comment Module comment boxes duplicating in the Visual Builder when changing Comment Count or Form Title heading levels.</li>
<li>Fixed a fatal error when using Event Tickets Move Attendees and other admin iframe flows that pass a null hook suffix to admin_enqueue_scripts.</li>
<li>Fixed Divi 4 to Divi 5 migration for mixed Gutenberg and Divi Layout content by improving layout block detection and preserving non-layout Gutenberg blocks with native serialization.</li>
<li>Fixed accordion modules showing backward compatibility mode after D5 migration when Rank Math FAQ Schema Markup was enabled in Divi 4.</li>
<li>Fixed Group Carousel in the Visual Builder not navigating to a newly added carousel slide, which prevented adding content to the new slide without manually switching slides.</li>
<li>Fixed an issue where Brevo/Sendinblue custom fields were not always visible in the Email Optin module Visual Builder.</li>
<li>Fixed an issue where the field dropdown always showed &#8220;Choose a field&#8230;&#8221; after selection.</li>
<li>Fixed an issue where custom fields remained visible on the canvas after disabling the &#8220;Use Custom Fields&#8221; toggle.</li>
<li>Fixed global font variables not rendering in the Visual Builder when applied to module font settings.</li>
<li>Fixed Query Monitor reporting missing dependencies for wp-block-library on Theme Builder pages with header or footer overrides when Defer Block CSS is enabled.</li>
<li>Fixed gap-0 global variables not appearing in Dynamic Content pickers for dimensional number fields such as Horizontal Gap.</li>
<li>Fixed Preview Mode showing disabled modules at 50% opacity when the &#8220;Show Disabled Modules At 50% Opacity&#8221; builder setting was enabled.</li>
<li>Fixed Google+ icon appearing in the Person module on imported layouts when no Google+ setting is available.</li>
<li>Fixed nested module entrance animations not playing inside the Dropdown module when editing in the Visual Builder, so animated content inside an open dropdown now matches the behavior on the live page.</li>
<li>Improved Divi 5 AI Agent planner prompt clarity and consistency in orchestration for multi-agent request execution.</li>
<li>Fixed the default Layout option group preset Vertical Gap not applying to columns on the frontend when the preset was not explicitly assigned.</li>
<li>Fixed an issue where the default image border could not be removed from Woo Related Products using the builder&#8217;s Image border settings.</li>
<li>Fixed a Blog migration issue where the D4 &#8220;Show Content&#8221; option could revert to excerpt behavior after conversion to Divi 5.</li>
<li>Fixed Visual Builder crash when loop subTypes were stored as an object instead of an array, which caused nested modules such as Group Carousel and Icon List to show &#8220;Oops, an error has occurred&#8221;.</li>
<li>Added public upload attachment metadata support for third-party developers, including attachmentMetadata on upload field change events and a getAttachmentMetadata() helper in @divi/field-library.</li>
<li>Fixed CSS numeric and similar module settings fields losing their values when edited in the main settings modal by correctly handling field onChange callbacks that pass a plain value rather than an event-shaped object.</li>
<li>Adds Layer 1 preset unit tests for Divi 5: a shared cross-cutting fixture library, then PHP and TypeScript coverage for stack normalization, preset merge and selection, option-group discovery and attribute path mapping, attribute fetch and merge primitives, full merge orchestration (including two small production fixes), preset class names and store selectors, edit-mode field resolution, and edit-container plus settings-panel orchestrator merge paths (with a behavior-neutral settings merge extract for unit testability).</li>
<li>Fixed Blurb image alignment not applying when the image width is used as a percentage unit with top image placement.</li>
<li>Fixed Group Carousel automatic rotation not working in the Visual Builder, while it worked correctly on the frontend.</li>
<li>Fixed the modifier indicator dot appearing on border option groups when explicit border values matched defaults.</li>
<li>Fixed Block Row layouts breaking on the frontend after updating Divi when Website Gutter Width was customized.</li>
<li>Fixed a migration regression where column widths could become larger after an update due to the gutter class and dynamic asset desynchronization.</li>
<li>Fixed an issue where Countdown Timer, Email Optin, and Login could lose frontend padding because et_pb_no_bg was incorrectly added when non-color backgrounds were active.</li>
<li>Fixed an issue where migrated modules could receive unintended center auto margins when module alignment was set to center without custom width constraints.</li>
<li>Fixed an issue where the CSS Variable option was incorrectly shown in the color type picker for Background Pattern Color and Background Mask Color fields, causing those fields to render as black when a CSS variable was selected.</li>
<li>Fixed the Contact Form Module failing to submit or show a success message when All-In-One SEO was active.</li>
<li>Fixed an issue where clicking &#8220;Remove Variable&#8221; on a global color in a background gradient stop would leave the stop&#8217;s color empty, causing the gradient to break and the background to appear white after saving and refreshing the page.</li>
</ul>
<h2>Jump Into Divi 5 Today</h2>
<p>It&#8217;s official. <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> is ready for production. Give it a try, and let us know what you think!</p>
<p>If you are brand new to Divi 5, we suggest familiarizing yourself with its many new features; there&#8217;s much to explore.</p>
<ul>
<li>The <a href="https://www.elegantthemes.com/divi-5/">Divi 5 page</a> provides a good overview of some of its most exciting changes.</li>
<li>Our help center has <a href="https://help.elegantthemes.com/en/collections/10650977-divi-5">nearly 200 articles focused on Divi 5.</a></li>
<li>On the blog, the <a href="https://www.elegantthemes.com/blog/category/divi-resources">Divi Resources</a> category features hundreds of long-form tutorials that explore every aspect in depth.</li>
<li>On <a href="https://www.youtube.com/c/elegantthemes" rel="noopener" target="_blank">YouTube</a>, we have many videos that walk you through each new update.</li>
<li>Plus, our Fin chatbot is trained on everything and can answer questions instantly! Behind the chatbot is our support team, <a href="https://www.elegantthemes.com/members-area/help/">ready to chat with you</a> and help you through the transition.</li>
</ul>
<p><iframe loading="lazy" class="youtube-player" type="text/html"  title="Divi 5 Official! 🎉 (Beta Ends Today)" width="719" height="404" src="https://www.youtube.com/embed/BXSpybFcf_I?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe></p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/divi-5-9">Divi 5.9 Release Notes</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.elegantthemes.com/blog/divi-resources/divi-5-9/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Thumbnail.png" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>How To Build A Flexbox Footer In Divi 5</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-flexbox-footer-in-divi-5</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-flexbox-footer-in-divi-5#respond</comments>
		
		<dc:creator><![CDATA[Ekta Swarnkar]]></dc:creator>
		<pubDate>Sun, 12 Jul 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[Divi 5 Flexbox]]></category>
		<category><![CDATA[divi 5 flexbox feature]]></category>
		<category><![CDATA[divi 5 flexbox system]]></category>
		<category><![CDATA[flexbox footer]]></category>
		<category><![CDATA[flexbox in divi 5]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=315850</guid>

					<description><![CDATA[<p>Footers often get built after the rest of the page is done, and that usually shows. Columns stop lining up, spacing feels inconsistent, and the layout starts to fall apart as soon as you check it on smaller screens. Divi 5 gives you a better way to build footer layouts with its Flexbox controls. Instead [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-flexbox-footer-in-divi-5">How To Build A Flexbox Footer In Divi 5</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Footers often get built after the rest of the page is done, and that usually shows. Columns stop lining up, spacing feels inconsistent, and the layout starts to fall apart as soon as you check it on smaller screens.</p>
<p><a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> gives you a better way to build footer layouts with its <a href="https://www.elegantthemes.com/blog/theme-releases/flexbox">Flexbox</a> controls. Instead of fixing alignment with one-off margins and padding, you can decide how footer sections stretch, stack, align, and reflow directly inside the builder.</p>
<p>In this tutorial, we’ll build a responsive footer with a CTA block, newsletter signup, navigation links, social links, and a copyright bar. We’ll use Design Variables for reusable styling and Flexbox for the structure, so the footer stays easier to adjust across desktop, tablet, and mobile.</p>
<h2>Why Build A Flexbox Footer In Divi 5?</h2>
<p>A footer might look simple, but it usually contains several different content types: calls to action, menus, signup forms, social icons, legal text, and sometimes contact details.</p>
<p>That mix can get messy fast. One column has more content than another. A form needs more space than the link list beside it. Social icons need to sit close together, but the whole group still needs to align with the rest of the footer. In older workflows, the fix often involved stacking manual margin and padding values until the footer looked right in one viewport. Then you checked tablet or mobile, and the layout needed another round of adjustments.</p>
<p><a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-divi-5s-flexbox-layout-system">Divi 5’s Flexbox layout system</a> handles those relationships at the container level. Instead of treating every module as an isolated object, you control how items behave inside Sections, Rows, Columns, and Module Groups. Three Flexbox controls do most of the work in this footer:</p>
<ul>
<li><strong>Align Items:</strong> Controls how flex items align across the cross axis. In this build, <strong>Stretch</strong> helps columns fill the available height so the two sides of the footer stay visually balanced.</li>
<li><strong>Gap:</strong> Controls the spacing between flex items without relying on separate margin values on each module.</li>
<li><strong>Layout Direction:</strong> Controls whether items flow horizontally in a row or vertically in a column.</li>
</ul>
<p>This footer also follows the same system-first approach we use across Divi 5 builds. Design Variables define repeated values, such as colors, spacing, and fluid font sizes. Flexbox controls the layout relationships between those styled elements.</p>
<p>That combination gives you a footer that is easier to maintain. If the accent color changes, update the variable. If the spacing needs more breathing room, adjust the shared spacing value. If the layout needs to stack differently on smaller screens, update the Flexbox settings instead of rebuilding the whole section.</p>
<p><a href="https://www.elegantthemes.com/blog/divi-resources/everything-you-need-to-know-about-divi-5s-flexbox-layout-system" class="button primary-button inline-button" rel=" ">Learn Everything About Divi 5’s Flexbox</a></p>
<h2>What We’re Building</h2>
<p>Before we start building, here’s a look at the finished footer.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315925 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-footer.jpg" alt="Finished Flexbox footer layout in Divi 5" width="1800" height="789" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-footer.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-footer-300x132.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-footer-768x337.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-footer-1536x673.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-footer-610x267.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The footer has one main two-column layout. The left side contains two stacked blocks:</p>
<ul>
<li>A yellow CTA block with a heading, supporting text, and button</li>
<li>A dark newsletter block with an Email Optin module</li>
</ul>
<p>The right side contains two matching white blocks:</p>
<ul>
<li>A navigation link group</li>
<li>A Follow Us group with social icons</li>
</ul>
<p>Below the main row, a separate full-width copyright row closes out the footer. This structure gives us a good reason to use Flexbox. The left and right sides contain different kinds of content, but they still need to align cleanly as one footer system.</p>
<h2>Step 1: Open The Global Footer In Theme Builder</h2>
<p>Go to <strong>Divi</strong> &gt; <strong>Theme Builder</strong>. In the Global Template, click the pencil icon next to the <strong>Global Footer</strong> area to edit it.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315933 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/global-footer-template.jpg" alt="Global Footer template in the Divi Theme Builder" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/global-footer-template.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/global-footer-template-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/global-footer-template-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/global-footer-template-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/global-footer-template-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The footer opens in the Visual Builder, where you can build the layout using Divi 5’s row, column, module, and Flexbox controls.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315934 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-builder.jpg" alt="Blank Global Footer layout in the Divi Visual Builder" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-builder.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-builder-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-builder-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-builder-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-builder-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>If your site already has a footer, you can adapt the same process to the existing structure. If you are starting fresh, begin with a blank footer canvas.</p>
<h2>Step 2: Create The Design Variables</h2>
<p>If your site already uses Design Variables, you can reuse your existing color, font, and spacing system. If you are building this footer as a standalone exercise, create a few variables first.</p>
<p>Open the Design Variables panel and start with colors. Create or update variables for:</p>
<ul>
<li><strong>Footer Accent:</strong> The yellow accent color used in the CTA block</li>
<li><strong>Footer Dark:</strong> The black or dark background used in the newsletter block</li>
<li><strong>Footer Light:</strong> The white background used in the right-side blocks</li>
<li><strong>Footer Muted Text:</strong> A softer text color for secondary footer text</li>
</ul>
<p>Name variables by role instead of by value. <strong>Footer Accent</strong> is easier to maintain than a name based on the current hex code, because the role can stay the same even if the color changes later.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315927 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/save-color-variables.jpg" alt="Saving footer color variables in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/save-color-variables.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/save-color-variables-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/save-color-variables-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/save-color-variables-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/save-color-variables-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, set up a font variable if the footer uses a typeface different from your site’s default body font.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315928 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/font-variables.jpg" alt="Creating font variables for the footer in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/font-variables.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/font-variables-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/font-variables-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/font-variables-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/font-variables-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Create a Number Variable for repeated spacing. Name it <strong>Footer Spacing</strong> and set it to <strong>5%</strong>. We’ll use this for padding inside the footer blocks so the spacing stays consistent.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/spacing-variable.mp4" type="video/mp4" /></video></p>
<p>Finally, create a Number Variable for fluid footer text. Save it as <strong>Footer Font – Fluid</strong> and set it to:</p>
<p><code>clamp(16px, 1rem + 0.4vw, 21px)</code></p>
<p>This lets footer text scale more smoothly between smaller and larger screens without setting separate font sizes for every breakpoint.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/font-size.mp4" type="video/mp4" /></video></p>
<p>The goal is not to create variables for every possible value. The goal is to create variables for values you expect to reuse.</p>
<h2>Step 3: Build The Main Footer Structure</h2>
<p>Inside the footer section, insert a <strong>Flex Offset 2-column row</strong>. This will be the main row that holds the left stack and the right stack.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315936 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-offset-column-row.jpg" alt="Adding a Flex Offset 2-column row in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-offset-column-row.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-offset-column-row-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-offset-column-row-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-offset-column-row-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-offset-column-row-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Open the Row settings and go to <strong>Design</strong> &gt; <strong>Sizing</strong>. Set:</p>
<ul>
<li><strong>Width:</strong> 90%</li>
<li><strong>Max Width:</strong> 1280px</li>
<li><strong>Alignment:</strong> Center</li>
</ul>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315937 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/row-width.jpg" alt="Setting footer row width and max width in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/row-width.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/row-width-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/row-width-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/row-width-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/row-width-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>This keeps the footer content centered and prevents it from stretching too wide on large screens. Inside the left column, add a nested one-column Row. This row will hold the CTA content. Add these modules inside it:</p>
<ul>
<li><strong>Heading module:</strong> CTA headline</li>
<li><strong>Text module:</strong> Supporting copy</li>
<li><strong>Button module:</strong> CTA button</li>
</ul>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/heading-text-button.mp4" type="video/mp4" /></video></p>
<p>Below that CTA row, add another one-column Row for the newsletter signup. Place an <strong>Email Optin</strong> module inside it.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/email-optin-row.mp4" type="video/mp4" /></video></p>
<p>In the right column, add a <strong>Group</strong> module for the navigation links. Place a single <strong>Heading</strong> module inside it. We’ll use Loop Builder later so this one module can repeat for each page in the query.</p>
<p>Below that, add another <strong>Group</strong> module for the social section. Inside it, add:</p>
<ul>
<li>A <strong>Heading</strong> module with the text <strong>Follow Us</strong></li>
<li>A <strong>Social Media Follow</strong> module with your chosen platforms</li>
</ul>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/right-column.mp4" type="video/mp4" /></video></p>
<p>Finally, add one more row below the main two-column row. Use a single-column row and add a <strong>Text</strong> module for the copyright line.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315941 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/another-row.jpg" alt="Adding the copyright row below the footer layout" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/another-row.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/another-row-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/another-row-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/another-row-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/another-row-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Here is the footer structure in Wireframe view.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315947 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/real-wireframe-view.jpg" alt="Wireframe view of the Divi 5 footer structure" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/real-wireframe-view.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/real-wireframe-view-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/real-wireframe-view-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/real-wireframe-view-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/real-wireframe-view-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Step 4: Apply Flexbox To The Main Row</h2>
<p>Now that the structure is in place, use Flexbox to control how the two sides align. Open the main two-column row settings and go to <strong>Design</strong> &gt; <strong>Layout</strong>. Confirm <strong>Layout Style</strong> is set to <strong>Flex</strong>. Then set:</p>
<ul>
<li><strong>Layout Direction:</strong> Row</li>
<li><strong>Horizontal Gap:</strong> 0</li>
<li><strong>Vertical Gap:</strong> 0</li>
<li><strong>Align Items:</strong> Stretch</li>
<li><strong>Layout Wrapping:</strong> No Wrap</li>
</ul>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315944 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-settings.jpg" alt="Flexbox settings for the main footer row in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-settings.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-settings-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-settings-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-settings-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-settings-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The row direction keeps the two main columns side by side. The zero gaps keep the blocks flush against each other. <strong>Align Items: Stretch</strong> helps the columns fill the available height, which keeps both sides visually aligned.</p>
<p>Keep <strong>Justify Content</strong> and <strong>Align Content</strong> at their defaults for this layout. Align Content only becomes relevant when wrapping creates multiple lines of flex items, and this row is set to No Wrap. Next, open each of the two child columns. In both columns, go to <strong>Design</strong> &gt; <strong>Layout</strong> and set <strong>Vertical Gap</strong> to <strong>0</strong>.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-gap.mp4" type="video/mp4" /></video></p>
<p>This keeps the CTA and newsletter blocks touching in the left column, and the navigation and social blocks touching in the right column.</p>
<h2>Step 5: Apply Flexbox To The CTA Block</h2>
<p>Open the nested CTA row, the one containing the Heading, Text, and Button modules. Go to <strong>Design</strong> &gt; <strong>Layout</strong> and confirm <strong>Layout Style</strong> is set to <strong>Flex</strong>. Set <strong>Horizontal Gap</strong> to <strong>0</strong>.</p>
<p>Then go to <strong>Design</strong> &gt; <strong>Sizing</strong> and enable <strong>Stretch to Fill</strong>. This helps the CTA row fill the available height inside the left column instead of leaving awkward empty space below the button.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/flex-enable-row.mp4" type="video/mp4" /></video></p>
<p>Now open the column inside this CTA row. Go to <strong>Design</strong> &gt; <strong>Layout</strong>, confirm <strong>Flex</strong> is enabled, and set <strong>Vertical Gap</strong> to <strong>10px</strong>.</p>
<p>Then go to <strong>Design</strong> &gt; <strong>Spacing</strong> and set the column padding to the <strong>Footer Spacing</strong> variable.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-flex.mp4" type="video/mp4" /></video></p>
<p>The gap controls spacing between the modules. The padding controls the space inside the CTA block. Keeping those jobs separate makes the layout easier to adjust later.</p>
<h2>Step 6: Style The CTA Block</h2>
<p>Stay inside the CTA column and go to <strong>Design</strong> &gt; <strong>Background</strong>. Set the background color to your <strong>Footer Accent</strong> variable.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315989 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-bg.jpg" alt="Applying the footer accent background to the CTA column" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-bg.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-bg-300x156.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-bg-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-bg-1536x796.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-bg-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, go to <strong>Design</strong> &gt; <strong>Box Shadow</strong>. Select <strong>Preset 4</strong>. Leave every value at <strong>0</strong> except <strong>Spread</strong>, which should be set to <strong>1</strong>. Set the shadow color to <strong>#000000</strong> at <strong>100%</strong> strength.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/box-shadow.mp4" type="video/mp4" /></video></p>
<p>This creates a thin, flat edge that reads more like a border than a traditional drop shadow. Open the <strong>Heading</strong> module and add the text: &#8220;<strong>Ready to Get Started?&#8221;. </strong>Then, apply the following settings:</p>
<ul>
<li><strong>Tag:</strong> H2</li>
<li><strong>Font Size:</strong> 50px</li>
<li><strong>Line Height:</strong> 1.3em</li>
<li><strong>Layout Style:</strong> Block</li>
</ul>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/heading-module.mp4" type="video/mp4" /></video></p>
<p>Setting the Heading module to Block keeps it behaving like a normal block element inside the flex column.</p>
<p>Move to the <strong>Text</strong> module. Set the text color to black or your dark footer text variable, set <strong>Font Size</strong> to <strong>16px</strong>, and set <strong>Layout Style</strong> to <strong>Block</strong>.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315992 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-style.jpg" alt="Styling the CTA text module in Divi 5" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-style.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-style-300x156.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-style-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-style-1536x796.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/text-style-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Finish with the <strong>Button</strong> module. Set the background color to black and the text color to white. Then go to <strong>Design</strong> &gt; <strong>Spacing</strong> and set the top and bottom padding to <strong>16px</strong>.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/button-style.mp4" type="video/mp4" /></video></p>
<h2>Step 7: Apply Flexbox To The Newsletter Block</h2>
<p>Now repeat the layout setup for the newsletter row.</p>
<p>Open the nested row that contains the Email Optin module. Go to <strong>Design</strong> &gt; <strong>Layout</strong> and confirm <strong>Layout Style</strong> is set to <strong>Flex</strong>. Set <strong>Horizontal Gap</strong> to <strong>0</strong>.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-315995 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/newsletter-row-v-g.jpg" alt="Newsletter row Flexbox layout settings in Divi 5" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/newsletter-row-v-g.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/newsletter-row-v-g-300x156.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/newsletter-row-v-g-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/newsletter-row-v-g-1536x796.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/newsletter-row-v-g-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Open the column inside that row. Confirm <strong>Flex</strong> is enabled under <strong>Design</strong> &gt; <strong>Layout</strong>, then set <strong>Vertical Gap</strong> to <strong>10px</strong>.</p>
<p>Go to <strong>Design</strong> &gt; <strong>Spacing</strong> and set the column padding to the same <strong>Footer Spacing</strong> variable.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-flex-settings.mp4" type="video/mp4" /></video></p>
<p>This keeps the newsletter block aligned with the CTA block above it and uses the same spacing system.</p>
<h2>Step 8: Style The Newsletter Block</h2>
<p>Open the newsletter column settings and go to <strong>Design</strong> &gt; <strong>Box Shadow</strong>. Match the CTA column:</p>
<ul>
<li><strong>Preset:</strong> Preset 4</li>
<li><strong>Spread:</strong> 1</li>
<li><strong>Other values:</strong> 0</li>
<li><strong>Shadow Color:</strong> #000000 at 100%</li>
</ul>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/column-style.mp4" type="video/mp4" /></video></p>
<p>Inside the <strong>Email Optin</strong> module, type <strong>Newsletter</strong> as the title. Turn off any fields you do not need, then connect your email provider and email list.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/email-form.mp4" type="video/mp4" /></video></p>
<p>Go to <strong>Design</strong> &gt; <strong>Background</strong> and set the module background to your <strong>Footer Dark</strong> variable.</p>
<p>Under <strong>Design</strong> &gt; <strong>Layout</strong>, set <strong>Layout Direction</strong> to <strong>Row</strong> and <strong>Vertical Gap</strong> to <strong>0</strong>. This keeps the form elements tighter inside the dark block.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/email-optin-style.mp4" type="video/mp4" /></video></p>
<p>Style the title next. Set the title text color to white and the <strong>Font Size</strong> to <strong>34px</strong>. Then customize the input fields:</p>
<ul>
<li><strong>Input Background:</strong> Black or Footer Dark</li>
<li><strong>Placeholder Text:</strong> White</li>
<li><strong>Input Text:</strong> White</li>
<li><strong>Border Width:</strong> 1px</li>
<li><strong>Border Color:</strong> Transparent or subtle light value</li>
</ul>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/title-input-fields.mp4" type="video/mp4" /></video></p>
<p>Customize the label text as well, using white or your light footer text variable. If your optin form uses checkbox or radio fields, review those styles too so they match the dark layout.</p>
<p>For the Email Optin button, set the background to white and the text color to black. Then go to <strong>Design</strong> &gt; <strong>Spacing</strong> and set:</p>
<ul>
<li><strong>Top Padding:</strong> 16px</li>
<li><strong>Bottom Padding:</strong> 16px</li>
<li><strong>Left Padding:</strong> 32px</li>
<li><strong>Right Padding:</strong> 32px</li>
</ul>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/email-button.mp4" /></video></p>
<p>Finally, open the Email Optin module’s spacing settings and set its padding to <strong>0</strong> on all sides. The outer column already handles the spacing, so the module itself does not need extra internal padding.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-316003 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/email-optin-spacing.jpg" alt="Setting the Email Optin module padding to zero in Divi 5" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/email-optin-spacing.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/email-optin-spacing-300x156.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/email-optin-spacing-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/email-optin-spacing-1536x796.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/email-optin-spacing-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Step 9: Create The Footer Navigation With Loop Builder</h2>
<p>Now turn the Heading module inside the navigation Group into a repeating element. Open the <strong>Heading</strong> module and go to <strong>Content</strong> &gt; <strong>Loop</strong>. Toggle <strong>Loop Element</strong> on.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/loop-on.mp4" type="video/mp4" /></video></p>
<p>Set <strong>Query Type</strong> to <strong>Post Type</strong>, then set <strong>Post Type</strong> to <strong>Pages</strong>.</p>
<p>This pulls page content into the loop. For a production footer, review the query settings carefully so the loop only includes the pages you want in the footer. This is not the same thing as automatically outputting your WordPress navigation menu; it is a looped page list that you can style and control inside the builder.</p>
<p>Next, go to <strong>Content</strong> &gt; <strong>Text</strong> &gt; <strong>Heading</strong>. Click the dynamic content icon and select <strong>Loop Title</strong>. The Heading module now displays the title for each page returned by the loop query.</p>
<p>Then go to <strong>Content</strong> &gt; <strong>Link</strong>. Click the dynamic content icon on the URL field and select <strong>Loop Link</strong>. Each looped heading now links to its corresponding page.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-316007 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/loop-link.jpg" alt="Using Loop Link for footer navigation items in Divi 5" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/loop-link.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/loop-link-300x156.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/loop-link-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/loop-link-1536x796.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/loop-link-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Step 10: Apply Flexbox And Style The Navigation Group</h2>
<p>Open the <strong>Group</strong> module that contains the looped Heading. Go to <strong>Design</strong> &gt; <strong>Layout</strong> and set:</p>
<ul>
<li><strong>Layout Direction:</strong> Column</li>
<li><strong>Vertical Gap:</strong> 0</li>
</ul>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-316008 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/v-gap-0.jpg" alt="Setting the navigation Group vertical gap to zero" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/v-gap-0.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/v-gap-0-300x156.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/v-gap-0-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/v-gap-0-1536x796.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/v-gap-0-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Then go to <strong>Design</strong> &gt; <strong>Sizing</strong> and enable <strong>Grow to Fill</strong>. This lets the navigation group take up the available height in the right column.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-316009 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/grow-to-fill-1.jpg" alt="Enabling Grow to Fill on the navigation Group" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/grow-to-fill-1.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/grow-to-fill-1-300x156.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/grow-to-fill-1-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/grow-to-fill-1-1536x796.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/grow-to-fill-1-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Now style the looped <strong>Heading</strong> module inside it.</p>
<p>Go to <strong>Design</strong> &gt; <strong>Background</strong> and set the background to white. Set <strong>Layout Style</strong> to <strong>Block</strong> and the heading tag to <strong>H4</strong>.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/style-nav-links.mp4" type="video/mp4" /></video></p>
<p>For <strong>Font Size</strong>, use the <strong>Footer Font – Fluid</strong> variable. Set <strong>Line Height</strong> to <strong>1.3em</strong>.</p>
<p>Go to <strong>Design</strong> &gt; <strong>Sizing</strong> and enable <strong>Grow to Fill</strong> here as well, so each looped heading can stretch evenly inside the group.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/heading-customize.mp4" type="video/mp4" /></video></p>
<p>Go to <strong>Design</strong> &gt; <strong>Spacing</strong> and set the module padding to the <strong>Footer Spacing</strong> variable.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-316012 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-spacing.jpg" alt="Applying Footer Spacing to the looped heading module" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-spacing.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-spacing-300x156.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-spacing-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-spacing-1536x796.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/footer-spacing-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Under <strong>Design</strong> &gt; <strong>Box Shadow</strong>, use the same flat edge treatment:</p>
<ul>
<li><strong>Preset:</strong> Preset 4</li>
<li><strong>Spread:</strong> 1</li>
<li><strong>Other values:</strong> 0</li>
<li><strong>Shadow Color:</strong> #000000 at 100%</li>
</ul>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-316013 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/box-shadow.jpg" alt="Applying a flat box shadow edge to footer nav links" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/box-shadow.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/box-shadow-300x156.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/box-shadow-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/box-shadow-1536x796.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/box-shadow-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Repeat the same visual treatment for the <strong>Follow Us</strong> group so the right column feels consistent.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/follow-us-group.mp4" type="video/mp4" /></video></p>
<h2>Step 11: Add The Copyright Text</h2>
<p>Open the Text module in the copyright row. Click the dynamic content icon and select <strong>Current Date</strong>. Set <strong>Date Format</strong> to <strong>Custom</strong> and enter:</p>
<p><code>Y</code></p>
<p>This outputs the current year only, so the footer does not need a manual year update each January. In the <strong>Before</strong> field, type:</p>
<p><strong>Copyright © Divi </strong></p>
<p>In the <strong>After</strong> field, type:</p>
<p><strong>. All Rights Reserved</strong></p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/copyright-text.mp4" type="video/mp4" /></video></p>
<p>Then go to <strong>Design</strong> &gt; <strong>Text</strong> and set <strong>Text Alignment</strong> to <strong>Center</strong>.</p>
<h2>Step 12: Optimize The Footer For Responsive Screens</h2>
<p>Switch to tablet and mobile view using the responsive toolbar.</p>
<p>Much of the layout should already behave well because the structure is based on Flexbox relationships instead of fixed manual spacing.</p>
<p>The main settings to review are:</p>
<ul>
<li><strong>Column stacking:</strong> Confirm the left and right footer stacks appear in the right order.</li>
<li><strong>Layout Direction:</strong> Adjust direction on specific rows or groups if content needs to stack differently on smaller screens.</li>
<li><strong>Gap:</strong> Check whether the spacing between stacked items still feels intentional.</li>
<li><strong>Grow to Fill and Stretch to Fill:</strong> Make sure these settings help the layout instead of forcing awkward heights on smaller screens.</li>
<li><strong>Email Optin layout:</strong> Confirm the input field and button have enough room once the layout narrows.</li>
<li><strong>Navigation loop:</strong> Make sure the looped links do not feel too cramped on mobile.</li>
<li><strong>Social icons:</strong> Review icon size and spacing.</li>
<li><strong>Copyright text:</strong> Make sure the final line stays readable.</li>
</ul>
<p>The fluid text variable helps here because the footer text scales between its minimum and maximum values. You still need to review responsive views, but you should need fewer manual breakpoint fixes.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/06/responsive-editing.mp4" type="video/mp4" /></video></p>
<p>Save the footer and preview it across desktop, tablet, and mobile.</p>
<h2>Download 20 Flexbox Footers For Divi 5</h2>
<p>Get all 20 Flexbox footers for free, including both Default and Prestyled versions. Each footer is ready to import into your Divi Library and use in the Theme Builder. Just download and start building.</p>
<p><img decoding="async" class="alignnone wp-image-297428" src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/09/Divi-5-footers.jpg" alt="Flexbox Footers For Divi 5" /></p>
<div class="et_bloom_locked_container et_bloom_optin_1" data-page_id="315850" data-optin_id="optin_1" data-list_id="mailchimp_c886a2fc0a" data-current_optin_id="optin_1">
					<div class="et_bloom_locked_content" style="display: none;">
						<a href="https://www.elegantthemes.com/blog/wp-content/uploads/2025/08/divi5-flexbox-footers.zip" class="button inline-button primary-button" rel=" ">Download the Files</a>
					</div>
					<div class="et_bloom_locked_form">
						<div class="et_bloom_inline_form et_bloom_optin et_bloom_make_form_visible et_bloom_optin_1" style="display: none;">
				<style type="text/css">.et_bloom .et_bloom_optin_1 .et_bloom_form_content { background-color: #4843d2 !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container .et_bloom_form_header { background-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge .et_bloom_form_content:before { border-top-color: #ffffff !important; } .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before, .et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:before { border-top-color: transparent !important; border-left-color: #ffffff !important; }
						@media only screen and ( max-width: 767px ) {.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_right .et_bloom_form_content:before { border-top-color: #ffffff !important; border-left-color: transparent !important; }.et_bloom .et_bloom_optin_1 .carrot_edge.et_bloom_form_left .et_bloom_form_content:after { border-bottom-color: #ffffff !important; border-left-color: transparent !important; }
						}.et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_fields i { color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_content .et_bloom_custom_field_radio i:before { background: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_border_solid { border-color: #f7f9fb !important } .et_bloom .et_bloom_optin_1 .et_bloom_form_content button { background-color: #f92c8b !important; } .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container h2 strong { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; }.et_bloom .et_bloom_optin_1 .et_bloom_form_container p, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p span, .et_bloom .et_bloom_optin_1 .et_bloom_form_container p strong, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form input, .et_bloom .et_bloom_optin_1 .et_bloom_form_container form button span { font-family: "Open Sans", Helvetica, Arial, Lucida, sans-serif; } p.et_bloom_popup_input { padding-bottom: 0 !important;}</style>
				<div class="et_bloom_form_container  with_edge carrot_edge et_bloom_border_solid et_bloom_rounded et_bloom_form_text_light et_bloom_form_bottom et_bloom_inline_1_field">
					
			<div class="et_bloom_form_container_wrapper clearfix">
				<div class="et_bloom_header_outer">
					<div class="et_bloom_form_header split et_bloom_header_text_dark">
						<img decoding="async" src="https://www.elegantthemes.com/blog/wp-content/plugins/bloom/images/premade-image-06.png" alt="Download For Free" class=" et_bloom_image_slideup et_bloom_image">
						<div class="et_bloom_form_text">
						<h2>Download For Free</h2><p>Join the Divi Newsletter and we will email you a copy of the ultimate Divi Landing Page Layout Pack, plus tons of other amazing and free Divi resources, tips and tricks. Follow along and you will be a Divi master in no time. <em>If you are already subscribed simply type in your email address below and click download to access the layout pack.</em></p>
					</div>
						
					</div>
				</div>
				<div class="et_bloom_form_content et_bloom_1_field et_bloom_bottom_inline">
					
					
					<form method="post" class="clearfix">
						<div class="et_bloom_fields">
							
							<p class="et_bloom_popup_input et_bloom_subscribe_email">
								<input placeholder="Enter your email address">
							</p>
							
							<button data-optin_id="optin_1" data-service="mailchimp" data-list_id="c886a2fc0a" data-page_id="315850" data-account="Divi Daily" data-ip_address="true" class="et_bloom_submit_subscription et_bloom_submit_subscription_locked">
								<span class="et_bloom_subscribe_loader"></span>
								<span class="et_bloom_button_text et_bloom_button_text_color_light">DOWNLOAD</span>
							</button>
						</div>
					</form>
					<div class="et_bloom_success_container">
						<span class="et_bloom_success_checkmark"></span>
					</div>
					<h2 class="et_bloom_success_message">You have successfully subscribed. Please check your email address to confirm your subscription and get access to free weekly Divi layout packs!</h2>
					
				</div>
			</div>
			<span class="et_bloom_close_button"></span>
				</div>
			</div>
					</div>
				</div>
<h2>Build Better Footer Layouts With Flexbox In Divi 5</h2>
<p>You just built a responsive footer in <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> without writing custom CSS.</p>
<p>Design Variables handled repeated colors, spacing, and fluid text sizing. Flexbox handled the structure: stretching columns, controlling gaps, stacking content, and keeping related elements aligned.</p>
<p>The larger takeaway is that this workflow is not limited to footers. The same Flexbox controls can help with headers, pricing tables, card layouts, feature rows, optin sections, and any layout where multiple pieces need to stay aligned as the screen changes.</p>
<p>Once you understand how <strong>Align Items</strong>, <strong>Gap</strong>, and <strong>Layout Direction</strong> work together, you can build layouts that need fewer one-off fixes and hold up better across screen sizes.</p>
<div class="inline-elements small-gutters two-column centered"><a href="https://www.elegantthemes.com/members-area/divi-5/" class="button primary-button">Download Divi 5</a><a href="https://www.elegantthemes.com/divi-5/" class="button primary-button accent-purple" style="margin-bottom: 16px;">Learn More About Divi 5</a></div>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-flexbox-footer-in-divi-5">How To Build A Flexbox Footer In Divi 5</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-flexbox-footer-in-divi-5/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/divi-5-how-to-build-a-flexbox-footer.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>How To Build A Multi-Level Preset System In Divi 5</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-multi-level-preset-system-in-divi-5</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-multi-level-preset-system-in-divi-5#comments</comments>
		
		<dc:creator><![CDATA[Ekta Swarnkar]]></dc:creator>
		<pubDate>Sat, 11 Jul 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5 preset system]]></category>
		<category><![CDATA[How To Build A Multi-Level Preset System In Divi 5]]></category>
		<category><![CDATA[multi level preset system in divi 5]]></category>
		<category><![CDATA[nested option group presets]]></category>
		<category><![CDATA[option group presets in divi 5]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=313727</guid>

					<description><![CDATA[<p>Presets are useful on their own. You save a style, apply it to an element, and avoid rebuilding the same design by hand. But once a site grows, isolated presets are not enough. A button preset, a border preset, a spacing preset, and a color value may all be related, but if they are not [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-multi-level-preset-system-in-divi-5">How To Build A Multi-Level Preset System In Divi 5</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Presets are useful on their own. You save a style, apply it to an element, and avoid rebuilding the same design by hand. But once a site grows, isolated presets are not enough. A button preset, a border preset, a spacing preset, and a color value may all be related, but if they are not connected, every design change still creates extra work.</p>
<p>That is where <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>’s multi-level preset system becomes important. <a href="https://www.elegantthemes.com/blog/theme-releases/design-variables">Design Variables</a>, <a href="https://www.elegantthemes.com/blog/theme-releases/preset-based-design">Option Group Presets</a>, <a href="https://www.elegantthemes.com/blog/divi-resources/the-difference-between-element-presets-option-group-presets">Element Presets</a>, <a href="https://www.elegantthemes.com/blog/theme-releases/composable-settings">Composable Settings</a>, and <a href="https://www.elegantthemes.com/blog/theme-releases/nested-option-presets">Nested Option Presets</a> can work together as connected layers.</p>
<p>Instead of saving disconnected styles, you can build a system where variables feed presets, smaller presets sit inside larger presets, and Element Presets bring those decisions together into reusable components. Stacking then lets you layer contextual variations without creating a separate preset for every possible use case.</p>
<p>In this guide, we’ll walk through how the system works, where Nested Option Presets fit, why Composable Settings matters, and how to build a preset structure that becomes easier to maintain as your site grows.</p>
<h2>How Divi 5’s Multi-Level Preset System Works</h2>
<p>Divi 5 presets started as a way to save and reuse styles. Now they can work more like a connected design system. The idea is simple: each layer should reference the layer below it.</p>
<p>A color, font, spacing value, or radius starts as a <strong>Design Variable</strong>. That variable gets used inside an <strong>Option Group Preset</strong>. That Option Group Preset can be used on its own, stacked with other Option Group Presets, nested inside another Option Group Preset, or included inside an <strong>Element Preset</strong>. The Element Preset then becomes a complete reusable component.</p>
<p>When the foundation changes, the connected layers can update with it.The newest piece of this system is <a href="https://www.elegantthemes.com/blog/theme-releases/nested-option-presets">Nested Option Presets</a>. The name can sound like a separate preset type, but the idea is more specific than that: a Nested Option Preset is still an Option Group Preset at its core. It becomes “nested” when it is applied to an option group inside another option group or inside a module sub-element.</p>
<p>That matters because many important design decisions live below the top-level module. A Call To Action module has a button. A Blurb has an image and title. A Contact Form has fields and a submit button. With <a href="https://www.elegantthemes.com/blog/theme-releases/composable-settings">Composable Settings</a>, those sub-elements can expose additional option groups such as Border, Background, Spacing, Sizing, Transform, or Animation. Once those nested option groups are available, they can use presets too.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/04/options1-small.mp4" type="video/mp4" /></video></p>
<p>This creates a real chain of reusable decisions. For example:</p>
<ul>
<li><strong>Design Variable:</strong> Radius Large</li>
<li><strong>Option Group Preset:</strong> Border: Pill</li>
<li><strong>Option Group Preset:</strong> Button: Primary</li>
<li><strong>Nested Option Preset:</strong> Border: Pill applied inside the Button option group</li>
<li><strong>Element Preset:</strong> CTA: Promo Card</li>
</ul>
<p>If the radius changes, you can update the variable or the Border preset once. Every connected Button preset, nested button border, and CTA preset can follow. That is the difference between saving styles and building a system.</p>
<h3>The Main Layers In A Divi 5 Preset System</h3>
<p>A strong Divi 5 preset system has three main layers. Composable Settings and Nested Option Presets extend how deeply those layers can reach.</p>
<h4>1. Design Variables</h4>
<p>Design Variables sit at the foundation. They store reusable raw values such as colors, fonts, numbers, text, links, and images. Examples include:</p>
<ul>
<li><strong>Primary Color</strong></li>
<li><strong>Heading Text Color</strong></li>
<li><strong>Body Font</strong></li>
<li><strong>Spacing Medium</strong></li>
<li><strong>Radius Large</strong></li>
<li><strong>Shadow Blur</strong></li>
</ul>
<p>Variables should describe the role of a value, not only the value itself. A variable called <strong>Primary Color</strong> still makes sense if the brand color changes later. A variable named after a hex code does not.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/02/Design-Variables.mp4" type="video/mp4" /></video></p>
<p>Variables are the least visible part of the system, but they carry the most weight. If your presets use variables instead of hardcoded values, global updates become much easier.</p>
<h4>2. Option Group Presets</h4>
<p>Option Group Presets save one group of settings, such as Border, Box Shadow, Spacing, Background, Text, Button, Sizing, or Image.</p>
<p>They are more flexible than Element Presets because they are not tied to one module type. A Border preset can be applied to any element that exposes the Border option group. A Spacing preset can be reused across Sections, Rows, Columns, Groups, and modules where that option group is available.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2025/05/option-group-presets-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p>Option Group Presets can also be stacked. That means you can apply more than one preset to the same option group when you need a base style plus a contextual variation. With Nested Option Presets, an Option Group Preset can also contain another Option Group Preset. That is what gives this layer more depth than a simple saved setting.</p>
<h4>3. Element Presets</h4>
<p>Element Presets save the full design of a specific module or element type. A Button Element Preset applies to Button modules. A Blurb Element Preset applies to Blurbs. A Contact Form Element Preset applies to Contact Forms. Each Element Preset can include multiple Option Group Presets inside it, so the full component still stays connected to smaller reusable decisions.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-312252 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/04/save-preset-default.jpg" alt="Setting a default preset in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/04/save-preset-default.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/04/save-preset-default-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/04/save-preset-default-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/04/save-preset-default-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/04/save-preset-default-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Element Presets can also be stacked. This is useful when a module needs a base component style plus one or more contextual variations.</p>
<p>Element Presets are also where defaults become useful. Every module type can have a default preset. When a default is assigned, new instances of that module start with the preset styling already applied. That means a new Button, Blurb, Form, or Group can arrive closer to your design system without manual styling every time.</p>
<h2>The Behaviors That Make Presets Multi-Level</h2>
<p>The layers matter, but the system becomes powerful because of how those layers behave together. Four behaviors do most of the work: <strong>Nesting</strong>, <strong>Stacking</strong>, <strong>Composable Settings</strong>, and <strong>Nested Option Presets</strong>.</p>
<h3>1. Nested Presets</h3>
<p>Nested Presets let one preset live inside another preset while staying connected to its original source. For example, a Button Element Preset might include:</p>
<ul>
<li><strong>Text: Button Label</strong></li>
<li><strong>Spacing: Button Padding</strong></li>
<li><strong>Border: Pill</strong></li>
<li><strong>Box Shadow: Subtle</strong></li>
</ul>
<p>Each of those smaller Option Group Presets can still be edited from its own source. If you update <strong>Border: Pill</strong>, every Button preset using that border can update with it.</p>
<h3>2. Stacked Presets</h3>
<p>Stacked Presets let you apply more than one preset to the same element or option group. This helps you avoid creating too many variations. Instead of building separate presets for every possible context, you can keep one base preset and layer focused variations on top.</p>
<p>For example, a Text module might use:</p>
<ul>
<li><strong>Text: Body Base</strong></li>
<li><strong>Text: Tag</strong></li>
<li><strong>Text: Light</strong></li>
</ul>
<p>The base preset controls the main typography. The tag preset adds the label treatment. The light preset changes the text color for a dark section. Stacking keeps your preset library smaller. You can reuse one base style and apply only the contextual difference when needed.</p>
<h3>3. Composable Settings</h3>
<p>Composable Settings lets you enable additional design option groups for module sub-elements.</p>
<p>This is important because many modules are made of smaller parts. A Blurb has an image, title, and body text. A Call To Action has a button. A Contact Form has fields. Without Composable Settings, some of those smaller parts may not expose the design controls you need.</p>
<p>With Composable Settings, you can toggle on additional option groups for those sub-elements. For example, you can enable:</p>
<ul>
<li><strong>Border</strong> for a Blurb image</li>
<li><strong>Sizing</strong> for a CTA button</li>
<li><strong>Background</strong> for body text</li>
<li><strong>Transform</strong> for an icon</li>
<li><strong>Animation</strong> for a nested image</li>
</ul>
<p>Composable Settings can also be used inside presets. If you enable specific nested option groups inside a preset, those groups can appear automatically when that preset is used. That keeps the design panel cleaner while still giving reusable access to deeper styling controls.</p>
<h3>4. Nested Option Presets</h3>
<p>Nested Option Presets are where Composable Settings and presets meet. After Composable Settings exposes a nested option group, that option group can use a preset. For example, if you enable Border controls for a CTA button sub-element, you can apply the same <strong>Border: Pill</strong> preset you use elsewhere.</p>
<p>This is the key distinction: a Nested Option Preset is not a random extra layer floating outside the system. It is an Option Group Preset being used inside a nested option group. That means the same reusable decision can reach more places.</p>
<h2>Why Preset Order Matters</h2>
<p>A multi-level preset system works best when it is built from the bottom up:</p>
<ul>
<li><strong>Step 1:</strong> Define Design Variables.</li>
<li><strong>Step 2:</strong> Create core Option Group Presets that use those variables.</li>
<li><strong>Step 3:</strong> Enable Composable Settings where sub-elements need reusable controls.</li>
<li><strong>Step 4:</strong> Apply Nested Option Presets to those nested option groups.</li>
<li><strong>Step 5:</strong> Build Element Presets that include your Option Group Presets and Nested Option Presets.</li>
<li><strong>Step 6:</strong> Use stacking for contextual variations.</li>
<li><strong>Step 7:</strong> Test the system with global changes.</li>
</ul>
<p>This order keeps the system connected. If you skip the foundation, your presets may still save time, but they will not update as cleanly later.</p>
<h2>How To Build A Multi-Level Preset System In Divi 5</h2>
<p>Now let’s walk through the process from the foundation up.</p>
<h3>Step 1: Define Your Design Variables</h3>
<p>Open the Variable Manager from the left sidebar of the Visual Builder. This is where your reusable values live. Divi supports variable types such as <strong>Colors</strong>, <strong>Fonts</strong>, <strong>Numbers</strong>, <strong>Images</strong>, <strong>Text</strong>, and <strong>Links</strong>.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-313848 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/v-manager.jpg" alt="Variable Manager in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/v-manager.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/v-manager-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/v-manager-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/v-manager-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/v-manager-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Start with role-based color variables. Divi includes default colors such as Primary, Secondary, Body, Heading, and Link. Update those values to match your brand before creating extra variables.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/add-primary-color.mp4" type="video/mp4" /></video></p>
<p>If the design needs more colors, add them with names that describe their role. Examples include:</p>
<ul>
<li><strong>Accent</strong></li>
<li><strong>Surface</strong></li>
<li><strong>Muted Text</strong></li>
<li><strong>Border Light</strong></li>
<li><strong>Success</strong></li>
<li><strong>Warning</strong></li>
</ul>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-313850 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/add-global-color.jpg" alt="Adding a global color variable in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/add-global-color.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/add-global-color-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/add-global-color-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/add-global-color-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/add-global-color-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Then define the values you know will repeat across the site. Under Fonts, set your Heading and Body fonts. Under Numbers, add spacing values, radius values, widths, and other reusable measurements. Keep this list focused. Variables are most useful when they represent values you will use repeatedly across presets.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/variable-manager.mp4" type="video/mp4" /></video></p>
<p>The goal is to create a reliable source of truth before building presets on top of it.</p>
<h3>Step 2: Create Your Core Option Group Presets</h3>
<p>After variables are in place, create the Option Group Presets you will reuse most often. These may include:</p>
<ul>
<li><strong>Text: Heading Large</strong></li>
<li><strong>Text: Body Regular</strong></li>
<li><strong>Button: Primary Filled</strong></li>
<li><strong>Button: Secondary Outline</strong></li>
<li><strong>Spacing: Section Large</strong></li>
<li><strong>Spacing: Card Padding</strong></li>
<li><strong>Border: Card</strong></li>
<li><strong>Border: Pill</strong></li>
<li><strong>Shadow: Subtle</strong></li>
<li><strong>Background: Surface</strong></li>
</ul>
<p>To create an Option Group Preset, open an element in the Visual Builder and go to the <strong>Design</strong> tab. Find the option group you want to save, hover over its label, and click the preset icon. Choose <strong>Add New Preset</strong> if you want to build it from scratch, or <strong>New Preset From Current Styles</strong> if the current element already has the style you want to save.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/creating-preset.mp4" type="video/mp4" /></video></p>
<p>The important part is how you set the values. When a field should stay global, reference a Design Variable instead of typing a static value. For example, a heading preset might use a Font Variable, a Number Variable for size, and a Color Variable for text color.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/heading-preset.mp4" type="video/mp4" /></video></p>
<p>A Button preset might use the Primary Color variable for its background.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-313855 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/bg-color.jpg" alt="Using a color variable in a Button preset in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/bg-color.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/bg-color-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/bg-color-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/bg-color-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/bg-color-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>A Border preset might use a Number Variable for radius.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-313856 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/rounder-border.jpg" alt="Using a radius variable in a Border preset in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/rounder-border.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/rounder-border-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/rounder-border-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/rounder-border-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/rounder-border-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>This is what makes the system maintainable. The Option Group Preset does not just store a value; it stores a connected decision.</p>
<h3>Step 3: Use Composable Settings For Sub-Elements</h3>
<p>Next, decide which module sub-elements need deeper styling controls.</p>
<p>For example, inside a Blurb module, you may want more control over the image, title, icon, or body text. Inside a Call To Action module, you may want to style the nested button with the same presets you use on standalone buttons. Inside a Contact Form, you may want field borders, spacing, or focus styles to follow the same system as the rest of the site.</p>
<p>Composable Settings lets you expose those additional option groups. To use it, open a module, go to the <strong>Design</strong> tab, hover over the sub-element option group, and click the Toggle Options icon. Then enable the option groups that sub-element needs. For example:</p>
<ul>
<li>Enable <strong>Border</strong> for a CTA button.</li>
<li>Enable <strong>Sizing</strong> for a Blurb image.</li>
<li>Enable <strong>Spacing</strong> for a nested title.</li>
<li>Enable <strong>Background</strong> for a form field group.</li>
<li>Enable <strong>Transform</strong> or <strong>Animation</strong> for a visual sub-element.</li>
</ul>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/composable-settings-presets.mp4" type="video/mp4" /></video></p>
<p>Only enable the option groups you actually need. The point is not to make every sub-element show every possible setting. The point is to expose the controls that should participate in your design system.</p>
<h3>Step 4: Apply Nested Option Presets</h3>
<p>Once Composable Settings exposes a nested option group, apply your existing Option Group Presets to it. For example:</p>
<ul>
<li>Apply <strong>Border: Pill</strong> to a nested CTA button.</li>
<li>Apply <strong>Border: Card</strong> to a Blurb image.</li>
<li>Apply <strong>Spacing: Compact</strong> to a sub-element container.</li>
<li>Apply <strong>Text: Heading Small</strong> to a nested title.</li>
</ul>
<p>At that point, those presets function as Nested Option Presets because they are being used inside nested option groups.</p>
<p>This keeps sub-element styling connected to the same system as the rest of your site. A border preset can control a standalone Button, a nested CTA button, and a form field border. A spacing preset can control a module wrapper and a nested sub-element. The reusable decision stays in one place.</p>
<h3>Step 5: Build Element Presets That Include Your Preset System</h3>
<p>Once the core Option Group Presets and Nested Option Presets are ready, use them inside Element Presets. Element Presets turn smaller styling decisions into complete reusable components. For example, an Email Opt-In module might use:</p>
<ul>
<li><strong>Spacing: Card Padding</strong></li>
<li><strong>Background: Surface</strong></li>
<li><strong>Text: Heading Medium</strong></li>
<li><strong>Text: Body Regular</strong></li>
<li><strong>Button: Primary Filled</strong></li>
<li><strong>Border: Card</strong></li>
<li><strong>Shadow: Subtle</strong></li>
</ul>
<p>Open the module, apply the relevant Option Group Presets across its Design tab, enable any needed Composable Settings for sub-elements, apply Nested Option Presets where needed, then save the module as an Element Preset from the preset menu in the top-right corner of the settings panel.</p>
<p>Choose <strong>New Preset From Current Styles</strong>.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/saving-element-preset.mp4" type="video/mp4" /></video></p>
<p>The Element Preset now carries those smaller preset decisions with it.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-313859 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogps-in-element-preset.jpg" alt="Option Group Presets included inside an Element Preset in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogps-in-element-preset.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogps-in-element-preset-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogps-in-element-preset-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogps-in-element-preset-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogps-in-element-preset-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>A Blurb Element Preset follows the same logic. Apply the right Title Text preset, Body Text preset, Spacing preset, Border preset, and any nested presets needed for the image or title, then save the Blurb as an Element Preset.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-313860 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/blurb-element-preset.jpg" alt="Blurb Element Preset using nested Option Group Presets in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/blurb-element-preset.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/blurb-element-preset-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/blurb-element-preset-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/blurb-element-preset-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/blurb-element-preset-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>When you edit one of the nested Option Group Presets later, every Element Preset using it can reflect that change.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/editing-preset.mp4" type="video/mp4" /></video></p>
<p>The same approach works for Contact Forms, Call To Action modules, Pricing Tables, Groups, Images, and any other module you use often.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-313862 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogp-in-element-preset.jpg" alt="Contact Form Element Preset using a Button Option Group Preset in Divi 5" width="1800" height="920" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogp-in-element-preset.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogp-in-element-preset-300x153.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogp-in-element-preset-768x393.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogp-in-element-preset-1536x785.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/ogp-in-element-preset-610x312.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>After your core Element Presets are ready, open the Preset Manager and set defaults for the module types you use most. That way, every new instance starts closer to your system.</p>
<h3>Step 6: Apply Stacked Presets For Variations</h3>
<p>Not every design variation needs its own full Element Preset. A better approach is to create a base preset, then stack smaller presets on top when the context changes.</p>
<p>For example, a Text module could start with a base text preset. Then you could stack a tag-style preset and a dark-section color preset when needed.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/stack-presets.mp4" type="video/mp4" /></video></p>
<p>Use stacking for focused variations such as:</p>
<ul>
<li><strong>Light text on dark backgrounds</strong></li>
<li><strong>Larger spacing in hero sections</strong></li>
<li><strong>Compact spacing in sidebars</strong></li>
<li><strong>Accent borders on featured cards</strong></li>
<li><strong>Alternative button sizes</strong></li>
<li><strong>Special hover treatments</strong></li>
</ul>
<p>Stacked presets help you avoid creating a bloated library of nearly identical styles. The base preset stays shared, while the variation handles only the difference.</p>
<p>Use the same logic with Option Group Presets. If a base Button preset handles the main button style, a second Button preset can layer on a size variation, a dark-section variation, or a hover treatment. If those presets overlap, the later preset controls the overlapping value.</p>
<h3>Step 7: Test The System With A Global Change</h3>
<p>After the system is built, test it. Open the Variable Manager and change a value that multiple presets reference. For example, change the Primary Color, a spacing value, or a radius value.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/test-preset-system.mp4" type="video/mp4" /></video></p>
<p>Then review your page. Elements using presets connected to that variable should update. You can also test at the preset level. Edit a core Option Group Preset, such as <strong>Border: Card</strong> or <strong>Button: Primary Filled</strong>, and check where that change appears.</p>
<p>If something does not update, that usually means one of three things:</p>
<ul>
<li>The value was hardcoded instead of connected to a variable.</li>
<li>The element is not using the expected preset.</li>
<li>A local override is taking priority over the preset value.</li>
</ul>
<p>That is not a failure. It is an audit. It shows where the system still has gaps.</p>
<h2>Managing Your System With The Preset Manager</h2>
<p>The <a href="https://www.elegantthemes.com/blog/theme-releases/preset-manager">Preset Manager</a> is the central place to manage your preset system.</p>
<p>Open it from the left sidebar of the Visual Builder. From there, you can create, edit, duplicate, reorder, delete, import, export, and assign default presets without opening each module one by one.</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="1800" height="886" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/preset-manager.mp4" type="video/mp4" /></video></p>
<p>When editing a preset used across many elements, use the Preset Preview panel. It gives you a safer place to adjust the preset before saving changes that may affect the site globally. The Preset Manager is also useful for keeping your library clean. Remove presets you no longer use, duplicate presets when you need a controlled variation, and reorder important presets so they are easier to find.</p>
<h3>Export Variables And Presets For Future Projects</h3>
<p>Once your system is complete, export it so you can reuse it on future builds. Design Variables and Presets can be exported from their respective managers. The Variable Manager exports your variables, while the Preset Manager exports your presets. Together, those files carry the reusable foundation of your design system into another Divi 5 site.</p>
<p>This is especially useful for agencies, freelancers, and teams that want every new build to start from the same design foundation, rather than rebuilding variables and presets from scratch.</p>
<h2>Best Practices For A Multi-Level Preset System</h2>
<p>A preset system should make design work easier, not harder to manage. Keep the structure clear from the beginning.</p>
<ul>
<li><strong>Name by role:</strong> Use names like <strong>Primary Color</strong>, <strong>Border: Card</strong>, and <strong>Button: Primary Filled</strong> instead of names tied to one page.</li>
<li><strong>Build from the bottom up:</strong> Start with variables, then Option Group Presets, then Element Presets, then layouts.</li>
<li><strong>Keep presets focused:</strong> One preset should have a clear job. Avoid creating several presets that only differ by one hardcoded value.</li>
<li><strong>Use stacking for context:</strong> Stack small variation presets instead of creating a new full preset for every context.</li>
<li><strong>Use nesting for structure:</strong> Let smaller Option Group Presets feed larger Option Group Presets and Element Presets.</li>
<li><strong>Use Composable Settings intentionally:</strong> Expose sub-element option groups when they need to participate in the design system.</li>
<li><strong>Treat Nested Option Presets as connected OGPs:</strong> Use them to bring the same preset decisions into nested option groups instead of styling sub-elements by hand.</li>
<li><strong>Set defaults for repeated modules:</strong> Default presets reduce manual styling when adding new modules.</li>
<li><strong>Audit local overrides:</strong> Use overrides when needed, but avoid turning them into hidden one-off design systems.</li>
<li><strong>Export your system:</strong> Save variables and presets so your design foundation can travel to future projects.</li>
</ul>
<h2>Build A Preset System That Scales With Your Site</h2>
<p>The real value of <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>’s multi-level preset system is not just speed. It is consistency.</p>
<p>Variables define the values. Option Group Presets turn those values into reusable design decisions. Nested Option Presets bring those same decisions into nested option groups. Element Presets turn connected decisions into complete components. Stacked Presets handle context without bloating the library. Composable Settings lets deeper module parts join the same workflow.</p>
<p>When those layers are connected, your site becomes easier to update because the system knows where each decision lives. That means a color change, spacing adjustment, border update, or button refresh can move through the design from one source instead of becoming a module-by-module cleanup job. Build the system once, keep it organized, and every page after that becomes easier to design, update, and maintain.</p>
<div class="inline-elements small-gutters two-column centered"><a href="https://www.elegantthemes.com/members-area/divi-5/" class="button primary-button">Download Divi 5</a><a href="https://www.elegantthemes.com/divi-5/" class="button primary-button accent-purple" style="margin-bottom: 16px;">Learn More About Divi 5</a></div>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-multi-level-preset-system-in-divi-5">How To Build A Multi-Level Preset System In Divi 5</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-multi-level-preset-system-in-divi-5/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/divi-5-multi-level-presets-ft-img-3.jpg" width="280" type="image/jpg" medium="image" />	</item>
	</channel>
</rss>
