<?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>Fri, 18 Sep 2026 19:44:25 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>Divi AI Just Got Smarter (New Image, Text &#038; Code Models)</title>
		<link>https://www.elegantthemes.com/blog/theme-releases/improved-ai-models</link>
					<comments>https://www.elegantthemes.com/blog/theme-releases/improved-ai-models#respond</comments>
		
		<dc:creator><![CDATA[Nick Roach]]></dc:creator>
		<pubDate>Fri, 18 Sep 2026 19:44:25 +0000</pubDate>
				<category><![CDATA[Theme Releases]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=320885</guid>

					<description><![CDATA[<p>Divi AI just got a major intelligence upgrade. 🧠 We upgraded the underlying AI models that power Divi&#8217;s text, image, and code generation tools, greatly improving the quality of the content they produce. Generate photo-realistic images, create and edit website copy, write custom code, and more, all from the quick AI tools built directly into [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/theme-releases/improved-ai-models">Divi AI Just Got Smarter (New Image, Text &#038; Code Models)</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/ai/">Divi AI</a> just got a <a href="https://www.youtube.com/watch?v=XbNv0olbfgw" rel="noopener" target="_blank">major intelligence upgrade</a>. 🧠</p>
<p>We upgraded the underlying AI models that power Divi&#8217;s text, image, and code generation tools, greatly improving the quality of the content they produce.</p>
<p>Generate photo-realistic images, create and edit website copy, write custom code, and more, all from the quick AI tools built directly into Divi.</p>
<p>Recently, we released <a href="https://www.elegantthemes.com/ai-agent/">AI Agents for Divi 5</a>, introducing an entirely new way to build websites with AI. The agent can understand your website, interact with the builder, and perform complex tasks via a conversational interface using any model of your choosing.</p>
<p>But sometimes you don&#8217;t need an agent. Not every task requires a conversation or a multi-step workflow.</p>
<p>Sometimes you want to generate an image, rewrite a paragraph, or create a quick piece of custom CSS. That&#8217;s where Divi AI&#8217;s original quick tools shine, and now they are better than ever.</p>
<p><strong>Let me jump into Divi and show you what&#8217;s new.</strong> 👇</p>
<p><iframe class="youtube-player" type="text/html"  title="Divi AI just got way smarter. 🧠" width="719" height="404" src="https://www.youtube.com/embed/XbNv0olbfgw?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>Better AI Throughout The Divi Builder</h2>
<p>Divi AI is integrated throughout the builder, putting generative AI exactly where you need it.</p>
<p>You&#8217;ll find AI tools inside image fields, text fields, code modules, CSS fields, and other areas of the builder. Instead of leaving Divi to generate something elsewhere, copying it over, and then adjusting it to fit your design, you can create what you need in context.</p>
<p>With this update, those tools are now powered by newer and more capable AI models.</p>
<p>The workflow hasn&#8217;t changed. The tools you already know are still in the same places. They produce much better results.</p>
<h3>Generate Better Images With Divi AI</h3>
<p>Divi AI can generate images directly in the builder, and the latest model upgrade takes image quality to the next level.</p>
<p>You can describe what you want and generate beautiful imagery on the fly without interrupting your design process.</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/09/modelsblog2-small.mp4" type="video/mp4" /></video></p>
<p>Use Divi AI to:</p>
<ul>
<li>Create stunning, photo-realistic background images.</li>
<li>Turn candid or low-quality client photos into professional headshots.</li>
<li>Take an existing image, swap out the background, add elements, and make any other modifications with a simple prompt.</li>
<li>Change image dimensions and automatically fill the space.</li>
</ul>
<p>You can also use Divi AI&#8217;s image editing tools to modify existing images instead of starting from scratch.</p>
<p>Paint over specific areas you want to change. Expand images and automatically fill the negative space. Upscale and enhance low-quality images.</p>
<p>With Divi AI&#8217;s image generation and editing tools, you&#8217;ll never need to visit stock photo websites or open Photoshop again!</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/09/modelsblog1-small.mp4" type="video/mp4" /></video></p>
<h3>Write And Improve Website Copy In Seconds</h3>
<p>Divi AI&#8217;s text tools also received a significant upgrade.</p>
<p>Whenever you are editing text in Divi, AI is right there to help you generate new content or improve what you already have.</p>
<p>You can use it to:</p>
<ul>
<li>Generate headlines, paragraphs, calls to action, and other website copy.</li>
<li>Rewrite existing content to improve its clarity or tone.</li>
<li>Shorten or expand text to better fit your design.</li>
<li>Fix spelling and grammar.</li>
<li>Translate content.</li>
<li>Improve SEO.</li>
</ul>
<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/09/modelsblog3-small.mp4" type="video/mp4" /></video></p>
<p>If you have ever reached the end of a design only to realize you are still staring at placeholder text, Divi AI can fill in the blanks in seconds.</p>
<p>It&#8217;s also useful when most of the content is already there. Highlight something that isn&#8217;t quite right, tell Divi AI how you want it improved, and keep moving.</p>
<h3>Build Custom Elements And Styles With AI</h3>
<p>The upgraded code model makes Divi AI an even more useful companion when you want to push a design beyond the builder&#8217;s standard options.</p>
<p>Divi already <span style="box-sizing: border-box; margin: 0px; padding: 0px;">offers extensive visual controls, but sometimes the perfect design calls for something custom (though that&#8217;s increasingly rare in <a href="https://www.elegantthemes.com/divi-5/">Divi 5,</a> given </span>its new features).</p>
<p><video class="et-video-loop card" autoplay="autoplay" loop="loop" muted="" width="900" height="506" data-mce-fragment="1" playsinline webkit-playsinline><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start">﻿</span><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/modelsblog4-small.mp4" type="video/mp4" /><span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_end">﻿</span></video></p>
<p>Instead of writing everything yourself, you can describe what you want and let Divi AI generate the code.</p>
<p>For example, you can:</p>
<ul>
<li>Generate completely custom elements in the code module.</li>
<li>Generate custom CSS directly inside a module&#8217;s CSS fields.</li>
<li>Add special effects, animations, and styling.</li>
<li>Improve or modify the code you have already written.</li>
</ul>
<p>This opens the door to designs that break the mold without requiring you to be an expert developer.</p>
<p>If you can describe the result you want, Divi AI can help you build it.</p>
<h2>Divi AI Agent or Divi AI Quick Tools?</h2>
<p>With the recent release of the <a href="https://www.elegantthemes.com/ai-agent/">Divi AI Agent</a>, Divi now has two very different ways to work with AI.</p>
<p><iframe class="youtube-player" type="text/html"  title="This changes everything. 🤯" width="719" height="404" src="https://www.youtube.com/embed/9G0hWX-ItDw?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 Divi AI Agent is designed for broader and more complex tasks. It can understand natural language, inspect your website, interact with the builder, and perform multi-step actions. You can also choose from a huge selection of AI models depending on the task.</p>
<p>It&#8217;s incredibly powerful, but not everything needs an agent.</p>
<p>If you are building a page and need an image, a paragraph, or a piece of CSS, starting a conversation would be overkill.</p>
<p>That&#8217;s why Divi AI&#8217;s quick tools remain so useful.</p>
<p>Think of them as two complementary workflows:</p>
<ul>
<li>Use the Divi AI Agent when you want AI to understand a larger goal, make decisions, and perform actions throughout Divi.</li>
<li>Use Divi AI&#8217;s quick tools when you know exactly what you need and want to generate it immediately.</li>
</ul>
<p>Together, they give you the flexibility to use AI in whatever way makes the most sense for the task at hand.</p>
<h2>Try The Upgraded Divi AI Tools Today</h2>
<p>The upgraded text, image, and code generation tools are now available in <a href="https://www.elegantthemes.com/ai/">Divi AI</a>.</p>
<p>Jump into the builder, generate an image, rewrite some content, or see what kind of custom element you can create.</p>
<p>If you haven&#8217;t tried the new <a href="https://www.elegantthemes.com/ai-agent/">Divi AI Agent</a> yet, give that a spin too. Between the agent and Divi AI&#8217;s newly upgraded quick tools, Divi AI&#8217;s toolkit has never been more capable.</p>
<p>And we aren&#8217;t stopping here. There is plenty more coming to Divi 5, so stay tuned. 😁</p>
<p>The post <a href="https://www.elegantthemes.com/blog/theme-releases/improved-ai-models">Divi AI Just Got Smarter (New Image, Text &#038; Code Models)</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/theme-releases/improved-ai-models/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/landscape.png" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>Exploring Divi 5&#8217;s AI Agents</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/exploring-divi-5s-ai-agents</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/exploring-divi-5s-ai-agents#respond</comments>
		
		<dc:creator><![CDATA[Christopher Morris]]></dc:creator>
		<pubDate>Thu, 17 Sep 2026 16:00:15 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[Divi 5 Feature]]></category>
		<category><![CDATA[Divi AI]]></category>
		<category><![CDATA[Divi AI Agents]]></category>
		<category><![CDATA[Divi Tutorial]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=320051</guid>

					<description><![CDATA[<p>Divi AI agents let you build and edit websites through conversation. Available inside Divi 5, they work alongside your page in the Visual Builder and can make changes to the layout while you watch. Paste in a screenshot of a page you like and ask for a similar layout. The agent builds with sections, rows, [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/exploring-divi-5s-ai-agents">Exploring Divi 5&#8217;s AI Agents</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/ai-agent/">Divi AI agents</a> let you build and edit websites through conversation. Available inside <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>, they work alongside your page in the <a href="https://www.elegantthemes.com/no-code-design/">Visual Builder</a> and can make changes to the layout while you watch.</p>
<p>Paste in a screenshot of a page you like and ask for a similar layout. The agent builds with sections, rows, and modules you can open, restyle, and keep editing by hand. The <a href="https://www.elegantthemes.com/blog/theme-releases/ai-agent">new feature</a> uses Divi-specific tools to work with the builder&#8217;s structure and settings. It also supports selected WordPress tasks outside the builder, such as managing pages, posts, and menus.</p>
<p>That gives you several ways to use it: creating a first draft, updating an existing page, organizing styles, or getting help with a Divi setting. In this post, we&#8217;ll connect a site and explore these workflows, along with the controls that help you guide and review the work.</p>
<h2>Where To Find Divi AI agents</h2>
<p>Open a page in the Visual Builder and look at the left sidebar. Click the agent icon to open the chat panel beside your page. Before sending your first request, you&#8217;ll need to connect your account and have an available agent balance.</p>
<p>Access is included with <a href="https://www.elegantthemes.com/ai/">Divi AI</a> and <a href="https://www.elegantthemes.com/join/">Divi Pro</a>, so an existing Pro subscription gives you access to Divi AI agents. Agent requests use a metered balance, which we&#8217;ll look at below.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1920" height="1080" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Connect-Divi-AI-Agents-on-a-Site-to-Your-Elegant-Themes-Membership-Account.mp4" /></video></p>
<p>The first time you open the agent on a site, it asks you to sign in with your Elegant Themes membership account. This connects the site to your account so its requests can use your agent balance. Complete this connection on each site where you want to use the feature.</p>
<p>The sign-in screen displays the requesting site&#8217;s address and name, so you can check them before approving the connection. Select <strong>Keep this site connected without signing in again</strong> if you want to retain the connection for future sessions.</p>
<p><img fetchpriority="high" decoding="async" class="with-border aligncenter" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Log-in-to-Divi-AI-Agents-with-Elegant-Themes-Membership-Account.jpg" alt="Log in to Divi AI agents with Elegant Themes Membership Account" width="1800" height="1066" /></p>
<p>Before you ask it to change anything, notice the two modes. <strong>Ask</strong> mode can inspect your page, Design Variables, Presets, and Divi&#8217;s knowledge base to help you understand a setting or plan a change. Switching to <strong>Build</strong> mode allows the agent to carry out the work on your page.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1920" height="1080" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Toggle-Ask-and-Build-Mode-for-the-AI-Agent.mp4" /></video></p>
<p>In Build mode, the agent works in visible steps. As it processes the request and calls tools, you can follow the progress in the chat. The work report gives you a readable record of the actions taken, which is useful when a request involves several changes.</p>
<p>You can keep tasks in separate chat sessions. When you&#8217;re moving to a different job or want to start with fresh conversation context, click <strong>New Chat</strong>. This gives the next request its own conversation instead of continuing the previous thread.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-320115 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/New-Chat-Icon-in-Top-Right-of-Divi-AI-Agent-Panel.jpg" alt="New Chat Icon in Top Right of Divi AI agents Panel" width="2248" height="1218" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/New-Chat-Icon-in-Top-Right-of-Divi-AI-Agent-Panel.jpg 2248w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/New-Chat-Icon-in-Top-Right-of-Divi-AI-Agent-Panel-300x163.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/New-Chat-Icon-in-Top-Right-of-Divi-AI-Agent-Panel-1946x1054.jpg 1946w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/New-Chat-Icon-in-Top-Right-of-Divi-AI-Agent-Panel-768x416.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/New-Chat-Icon-in-Top-Right-of-Divi-AI-Agent-Panel-1536x832.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/New-Chat-Icon-in-Top-Right-of-Divi-AI-Agent-Panel-2048x1110.jpg 2048w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/New-Chat-Icon-in-Top-Right-of-Divi-AI-Agent-Panel-610x331.jpg 610w" sizes="auto, (max-width: 2248px) 100vw, 2248px" /></p>
<p>Use the <strong>Fund Your AI Wallet</strong> icon in the top-right corner of the agent panel to view your current balance and add funds.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-320116 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-and-Fund-Your-Wallet-Icon-in-the-Top-Right-of-AI-Agents-Panel.jpg" alt="View and Fund Your Wallet Icon in the Top Right of AI Agents Panel" width="2248" height="1223" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-and-Fund-Your-Wallet-Icon-in-the-Top-Right-of-AI-Agents-Panel.jpg 2248w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-and-Fund-Your-Wallet-Icon-in-the-Top-Right-of-AI-Agents-Panel-300x163.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-and-Fund-Your-Wallet-Icon-in-the-Top-Right-of-AI-Agents-Panel-1946x1059.jpg 1946w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-and-Fund-Your-Wallet-Icon-in-the-Top-Right-of-AI-Agents-Panel-768x418.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-and-Fund-Your-Wallet-Icon-in-the-Top-Right-of-AI-Agents-Panel-1536x836.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-and-Fund-Your-Wallet-Icon-in-the-Top-Right-of-AI-Agents-Panel-2048x1114.jpg 2048w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-and-Fund-Your-Wallet-Icon-in-the-Top-Right-of-AI-Agents-Panel-610x332.jpg 610w" sizes="auto, (max-width: 2248px) 100vw, 2248px" /></p>
<p>Here, you can see your available balance and any complimentary funds from your Divi AI or Divi Pro subscription. If you need more funds, you can purchase them further down the page. This is also where you can check what&#8217;s available before starting a larger task.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-320117 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-AI-Balance-See-Complimentary-Funds-and-Add-Money-To-Your-Balance.jpg" alt="View AI Balance See Complimentary Funds and Add Money To Your Balance" width="1800" height="1099" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-AI-Balance-See-Complimentary-Funds-and-Add-Money-To-Your-Balance.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-AI-Balance-See-Complimentary-Funds-and-Add-Money-To-Your-Balance-300x183.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-AI-Balance-See-Complimentary-Funds-and-Add-Money-To-Your-Balance-768x469.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-AI-Balance-See-Complimentary-Funds-and-Add-Money-To-Your-Balance-1536x938.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/View-AI-Balance-See-Complimentary-Funds-and-Add-Money-To-Your-Balance-610x372.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>With the site connected and a balance in place, you&#8217;re ready to give the agent its first instruction. Build mode reports its progress through the chat, including the steps it takes and the tools it calls. The example below shows a prompt, work report, added media, and task list.</p>
<div style="width: 1810px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="with-border" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/AI-Agent-Tool-Calls-Work-Progress-And-Other-Things-in-the-Chat.jpg" alt="AI Agent Tool Calls Work Progress And Other Things in the Chat" width="1800" height="1488" /><p class="wp-caption-text">1) User Prompt, 2) Agent Work Report, 3) Media Added, 4) Agent Task List, 5) Further Progress Updates</p></div>
<h2>Build A Layout From A Description, A Screenshot, Or A URL</h2>
<p>There are four main ways to start a new layout, and each produces a Divi page you can continue editing with or without the agent. Divi AI agents work with native sections, rows, modules, and design settings, so the result remains part of your normal builder workflow. You can inspect the structure and refine individual settings after the initial layout is built.</p>
<p>You can start:</p>
<ul>
<li><strong>From a description.</strong> Tell it what the page is for and what it should include. For example, request a pricing page with three tiers and a comparison table, or a services page for a landscaping company with a hero, four service cards, and a contact section. A specific brief gives the agent a clearer starting point.</li>
<li><strong>From a screenshot or mockup.</strong> Paste or attach the image to the chat and ask the agent to build from it. Explain whether you want to follow the overall layout, particular sections, or the visual style, and mention any content that should change.</li>
<li><strong>From a live URL.</strong> Point it at a webpage and explain what you want to use as a reference. The agent can inspect the page and work from its content and design.</li>
<li><strong>From reference images.</strong> Attach several images and ask for a layout that shares their style. Use them to communicate a direction for the colors, typography, imagery, or composition.</li>
</ul>
<p>You can also combine these inputs. A screenshot might provide the layout, while a written brief supplies the content and brand requirements. The model you choose needs to support the types of input you provide.</p>
<p>Here is the screenshot route in practice. In the recorded example, one large image of a page layout, running on <strong>Auto Deep Value</strong>, produced nine sections with a reported cost of about $0.10. That figure applies to this example; costs vary with the model and task.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1600" height="864" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Turning-a-Screenshot-into-a-Divi-Layout-with-the-AI-Agent.mp4" /></video></p>
<p>However you start, the canvas contains native Divi structure: sections, rows, modules, content, and styles that you can open and change in the usual settings panels. You can keep working through chat, edit the result manually, or use both approaches as you refine the page.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1600" height="864" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Building-a-Full-Page-Layout-from-a-Description-with-the-Divi-AI-Agent.mp4" /></video></p>
<h2>Edit An Existing Page</h2>
<p>You won&#8217;t always be starting from an empty canvas. You may have a site that needs a new design direction, updated content, or a few adjustments before handoff. Divi AI agents can work with that existing layout, making them useful for ongoing work on sites you manage.</p>
<p>Ask the agent to redesign a hero, rearrange the modules in a section, rewrite the copy, or fix inconsistent spacing. Describe what you want to achieve and identify the area to change. You don&#8217;t need to name every setting involved, but a clear request makes the result easier to review.</p>
<p>One example is updating a page originally built in Divi 4 after opening it in Divi 5. If you want to convert its rows from Block to Flex, the column spacing needs attention too. Spacing previously applied through margins may need to become horizontal or vertical gaps. The following request explains both changes:</p>
<blockquote><p>Convert all Rows with a Block Layout to have a Flex Layout. Know that Block Layouts apply a margin on the columns for spacing, whereas Flex Layouts need the spacing applied as a horizontal and sometimes vertical gap. Retain other visual spacing decisions, but make sure they work within the new flex layout paradigm.</p></blockquote>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1600" height="864" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Bringing-a-Divi-4-Page-Forward-to-Divi-5-Flex-Layouts-with-the-AI-Agent.mp4" /></video></p>
<p>This updates the layout structure rather than performing a complete site migration. Review the converted rows at different screen sizes to check that their alignment and spacing still work.</p>
<p><strong>Referencing an element directly is often easier than describing its position.</strong> Click it on the page and add it as context so the agent has a specific target. You can also refer to a module by its content, such as the text in a heading, to help it locate the right element.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1600" height="864" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Restyling-an-Existing-Section-with-the-AI-Agent.mp4" /></video></p>
<p>The agent can inspect the page structure, how elements are nested, and their module settings before making a change. That context helps it work with the layout already on the page.</p>
<h2>Work Within Divi&#8217;s Design System</h2>
<p><a href="https://www.elegantthemes.com/blog/theme-releases/preset-based-design">Presets</a> and <a href="https://www.elegantthemes.com/blog/theme-releases/design-variables">Design Variables</a> help keep a Divi site consistent and maintainable. Divi AI agents can work within that system, using existing Presets and variables when you ask them to. Include those requirements in your prompt so new styling follows the site&#8217;s conventions and remains editable through Divi&#8217;s settings.</p>
<p>You can also work in the other direction. Point the agent at a layout built from individual values and ask it to turn repeated values into Design Variables or repeated styling into a Preset. This can include colors, fonts, gradients, images, and sizes. Ask it to list its suggestions first so you can choose which ones to apply. The example below focuses on converting static values into global Number Variables.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1600" height="864" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Promoting-Static-Values-Into-Global-Number-Variables-with-the-AI-Agent.mp4" /></video></p>
<p>You don&#8217;t need to identify every inconsistency yourself before asking for help. Start in Ask mode with a prompt such as &#8220;What&#8217;s inconsistent on this page?&#8221; and review the suggestions. You can also give it more focused tasks:</p>
<ul>
<li>Find missing image alt text and suggest descriptions.</li>
<li>Replace inconsistent colors with appropriate global colors.</li>
<li>Standardize typography, spacing, and buttons.</li>
<li>Review how the page behaves across <a href="https://www.elegantthemes.com/blog/theme-releases/customizable-responsive-breakpoints">breakpoints</a>.</li>
<li>Correct spelling, grammar, and capitalization.</li>
<li>Review the calls to action across the page.</li>
<li>Find oversized images.</li>
<li>Review custom CSS that may no longer be needed.</li>
</ul>
<p>After reviewing the suggestions, decide which changes to apply in Build mode. For shared styles, ask the agent to use the appropriate variable or Preset so the update remains manageable across the elements that use it.</p>
<h2>How To Ask For What You Want</h2>
<p>A few habits help you give clearer instructions and make the results easier to check:</p>
<ol>
<li><strong>Be specific about the outcome.</strong> &#8220;Make this section better&#8221; leaves a lot open to interpretation. &#8220;Tighten the spacing here and make the heading the same size as the one above it&#8221; identifies both the change and its reference.</li>
<li><strong>Keep the scope manageable.</strong> A single change is easy to check. Larger requests are useful too, but include enough detail and break the work into stages when you want to review decisions along the way.</li>
<li><strong>Show it when a visual would help.</strong> Paste a screenshot or mockup when it explains the layout or style more clearly than a long description. Add a sentence about which parts of the reference matter.</li>
<li><strong>Give it constraints as well as a goal.</strong> Tell it which variables to use, which conventions to follow, and what should remain unchanged. Saved Rules can help you reuse this guidance across tasks.</li>
<li><strong>Know when to edit manually.</strong> Some adjustments are faster and cheaper to make yourself. Use the agent where it helps with the work, and use the builder controls directly when that&#8217;s the simpler option.</li>
</ol>
<h3>Review Questions And Confirmations</h3>
<p>The agent can ask for clarification when a request is missing important details. It can also pause for approval before destructive or high-impact actions.</p>
<p>When it asks a follow-up question, supply the missing information before continuing. For a larger request, you can explicitly ask it to outline a plan first. This gives you a chance to check its interpretation before it begins changing the page.</p>
<p>Read confirmation requests carefully when they involve deleting a template, trashing a page, removing a menu, or changing shared settings. If a menu location already has an assignment, check what will happen to that assignment before approving a replacement. In the screenshot below, the agent pauses for approval before saving changes to global variables.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/The-Divi-AI-Agent-asking-for-confirmation-before-a-destructive-change.jpg" alt="The Divi AI agents asking for confirmation before a destructive change" width="2248" height="1214" /></p>
<h3>If You Do Not Like The Result</h3>
<p>Previous messages provide a restore option for returning the page to an earlier checkpoint. Click the restore icon beside the relevant message, then review the <strong>Restore to This Point</strong> dialog before confirming. This lets you return to the layout state associated with that point in the conversation.</p>
<p>Restoring rewinds the page rather than selectively reversing one edit. Manual changes you made to that layout after the selected point are removed along with the agent&#8217;s subsequent changes. Check what you&#8217;ve done since that checkpoint, especially if you&#8217;ve been editing by hand alongside the agent.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter wp-image-320340 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Undo-Changes-Made-By-AI-Agent-After-This-Message-Icon.jpg" alt="Undo Changes Made By AI Agent After This Message Icon" width="2248" height="1225" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Undo-Changes-Made-By-AI-Agent-After-This-Message-Icon.jpg 2248w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Undo-Changes-Made-By-AI-Agent-After-This-Message-Icon-300x163.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Undo-Changes-Made-By-AI-Agent-After-This-Message-Icon-1946x1060.jpg 1946w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Undo-Changes-Made-By-AI-Agent-After-This-Message-Icon-768x419.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Undo-Changes-Made-By-AI-Agent-After-This-Message-Icon-1536x837.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Undo-Changes-Made-By-AI-Agent-After-This-Message-Icon-2048x1116.jpg 2048w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Undo-Changes-Made-By-AI-Agent-After-This-Message-Icon-610x332.jpg 610w" sizes="auto, (max-width: 2248px) 100vw, 2248px" /></p>
<p>Small, checkable steps make this easier to manage. If you review a single section change before moving on, you have a clearer checkpoint to return to. A restore after a larger redesign may undo considerably more work, including later adjustments you wanted to keep.</p>
<h2>Give The Agent Context, Rules, Commands, And Tools</h2>
<p>The chat panel includes more than a prompt field. Context supplies references, Rules save guidance, Commands let you repeat tasks, and Tools expose the actions the agent can use while working.</p>
<h3>Add Context From Your Page</h3>
<p>Click an element and add it to your request to show the agent exactly where to focus. You can also reference another page on your site, which is useful when you want a new section to follow a design you&#8217;ve already approved elsewhere.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1920" height="1080" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Adding-Context-Click-Any-Module-or-Add-Preset-Element-Page-and-More-Context.mp4" /></video></p>
<h3>Save Rules For Your Website</h3>
<p>Rules are saved instructions that the agent can use when relevant to a task on your site. They can describe your brand voice, layout conventions, or which variables and Presets to use with particular modules. This gives recurring requirements a place outside individual chat messages.</p>
<p>If you find yourself typing the same guidance repeatedly, consider saving it as a Rule. For example, specify the existing variables to use for headings and backgrounds. Keep Rules up to date as the site&#8217;s design system or content requirements change.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1920" height="1080" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/How-to-Create-a-Rule-with-Context-with-Divi-AI-Agents.mp4" /></video></p>
<h3>Turn Repeated Prompts Into Commands</h3>
<p>When you regularly run the same request, save it as a Command. You can then invoke it from the chat by typing <strong>/</strong> and choosing the saved Command, instead of writing out the instructions again.</p>
<p>Good candidates include the reviews you run before a page goes live: an accessibility check, a responsive layout review, a design system audit, or a final content check. Describe what to inspect and whether you want suggestions or changes. Reusing the Command helps you keep those requests consistent across pages.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1920" height="1080" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Example-Creating-a-Reusable-Command.mp4" /></video></p>
<p>Commands describe jobs you want done, while Rules guide how those jobs should be carried out. You can include the relevant Rules as context for a Command, so a repeated task follows the site&#8217;s requirements.</p>
<h3>Explore The Tools Button</h3>
<p>The <strong>Tools</strong> button opens a searchable list of actions the agent can use. Some inspect information, such as page structure, modules, or global colors. Others make changes to supported Divi settings or perform WordPress tasks outside the builder.</p>
<p>Selecting a tool lets you reference it in your prompt when you want to direct the agent toward a particular action. You can also see tool calls in the progress log as it works.</p>
<p>We&#8217;ll cover the complete list and explain each tool&#8217;s purpose in a separate post. For now, this panel gives you a useful view of the actions behind the conversation.</p>
<h2>Ask It How Divi Works</h2>
<p>The agent can consult Divi&#8217;s documentation and knowledge articles to help answer questions. With relevant page or site context, it can also help you investigate a specific issue, such as a Theme Builder template that isn&#8217;t applying, rather than only explaining the feature in general.</p>
<p>Questions to ask include:</p>
<ul>
<li>Should this section use Flexbox or <a href="https://www.elegantthemes.com/blog/theme-releases/css-grid">CSS Grid</a>?</li>
<li>Should I assign Design Variables to these settings or use a Preset for the shared styling?</li>
<li>Why isn&#8217;t my Theme Builder template applying to this page?</li>
<li>How do the aspect ratio options behave?</li>
</ul>
<p>Once you understand the suggested solution, you can ask the agent to apply it in Build mode. This keeps the explanation and the follow-up work in the same conversation.</p>
<p>Ask mode is the starting point when you want to explore settings or plan a change without editing the layout. Read the answer, ask follow-up questions, and switch to Build when you&#8217;re ready to act on it.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1920" height="1080" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Ask-Mode-for-Understanding-Web-Design-and-Divi.mp4" /></video></p>
<h2>Choose The Model For The Job</h2>
<p>Different AI models have different strengths, speeds, and costs, so Divi AI agents aren&#8217;t tied to a single model. Choose from hundreds of supported models or use an automatic selection option. This lets you adjust the model to the task instead of using the same one for every request.</p>
<p>A more capable model may suit design work and longer tasks with several dependent steps. A faster, less expensive model may be enough for straightforward proofreading. For work involving screenshots or image descriptions, choose a model that supports image input. Your choice affects usage costs, so the model selector is worth getting familiar with.</p>
<p>The agent can also create sub-agents to run independent work in parallel and assign a model to each. This allows separate parts of a larger task to use different models. It can be useful for dividing the work, though the total cost still depends on the models selected and the requests they process.</p>
<p><video class="card lazy" autoplay="autoplay" loop="loop" muted="" width="1920" height="1080" playsinline webkit-playsinline><source src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Divi-AI-Agents-Model-Picker-and-Custom-Model-Selector.mp4" /></video></p>
<h2>Divi AI agents Are Included With Divi AI</h2>
<p>Divi AI agents come with Divi AI and are also part of Divi Pro. Your subscription can be used across the sites you build, and both plans currently include $5 in complimentary agent usage each month.</p>
<p>Access and usage are separate: agent requests are metered according to the model and the amount of input and output processed. You can add funds when you need more than the included allowance. Divi AI&#8217;s unlimited generation features do not make agent usage unlimited. Check the <a href="https://www.elegantthemes.com/ai-agent/">Divi AI agents page</a> for current pricing details.</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>Start with one page. Open it in Ask mode, ask what&#8217;s inconsistent in a particular section, and review the response. Choose a change to apply in Build mode, then check the result on the canvas. That gives you a practical first task without handing over an entire redesign.</p>
<p>As you work, save useful instructions as Rules and repeated requests as Commands. You can build up a set of workflows for the tasks you do most often, from refining a page&#8217;s design to reviewing its content before publishing.</p>
<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 Divi AI Agent?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">It is an AI assistant built into the Divi 5 Visual Builder that takes instructions in plain language and carries them out on your page and site. You describe what you want, and it adds, edits, restyles, and arranges real modules on the page, the same ones you would change by hand.</div>
					</div>
				</div><div class="faqsu-faq-single" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
					<h3 class="faqsu-faq-question" itemprop="name">Does the Divi AI Agent only build new pages, or can it edit existing ones?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">Both. It builds a layout from a description, a screenshot, or a reference URL and edits existing pages. Editing existing pages is also possible, and probably where people will get the best return on investment. It will help you make your designs more consistent by making strategic edits and making and using Design Variables and Presets.</div>
					</div>
				</div><div class="faqsu-faq-single" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
					<h3 class="faqsu-faq-question" itemprop="name">Does the Divi AI Agent work in Divi 4?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">No. The agent is a Divi 5 feature. It works inside the Divi 5 Visual Builder, where it can read the page structure and change modules directly.</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 undo what the Divi AI Agent does?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">Yes. The agent operates within the builder, so its changes are tracked in the same undo history and revisions you already rely on. It also keeps a readable record of the steps it took, so you can see what changed before you decide whether to keep it. Destructive actions, such as deleting a page or a template, require confirmation before they run.</div>
					</div>
				</div><div class="faqsu-faq-single" itemscope itemprop="mainEntity" itemtype="https://schema.org/Question">
					<h3 class="faqsu-faq-question" itemprop="name">Which AI models can the Divi AI Agent use?</h3>
					<div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer">
						<div class="faqsu-faq-answare" itemprop="text">You can let Divi select an efficient model for the task, or choose one yourself. A stronger model suits design work and long multi-step jobs; a faster, cheaper one handles chores like proofreading and alt text. Cost follows the model you pick. New models are added as they become generally available, and costs can change based on API pricing, so keep an eye on that regularly.</div>
					</div>
				</div></section>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/exploring-divi-5s-ai-agents">Exploring Divi 5&#8217;s AI Agents</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/exploring-divi-5s-ai-agents/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/divi-5-exploring-divi-ai-agents-ft-img-3.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>How To Add Search, Filters, And Sorting To Any Divi 5 Loop</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/how-to-add-search-filters-and-sorting-to-any-divi-5-loop</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/how-to-add-search-filters-and-sorting-to-any-divi-5-loop#respond</comments>
		
		<dc:creator><![CDATA[Aayush]]></dc:creator>
		<pubDate>Wed, 16 Sep 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[Divi 5 Filters]]></category>
		<category><![CDATA[Loop Builder]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=319699</guid>

					<description><![CDATA[<p>Search, filters, and sorting help visitors find specific content in a blog, product catalog, or directory. With Divi 5, you can add these controls to a custom post loop using the Post Filter Module. In this tutorial, we&#8217;ll connect a filter form to a blog post loop, configure its search and category fields, add sorting [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-add-search-filters-and-sorting-to-any-divi-5-loop">How To Add Search, Filters, And Sorting To Any Divi 5 Loop</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Search, filters, and sorting help visitors find specific content in a blog, product catalog, or directory. With <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>, you can add these controls to a custom post loop using the <a href="https://www.elegantthemes.com/blog/theme-releases/loop-filter-modules">Post Filter Module</a>.</p>
<p>In this tutorial, we&#8217;ll connect a filter form to a blog post loop, configure its search and category fields, add sorting controls, and style the form for desktop and mobile. The filtering tools are built into Divi 5, so this blog example needs no additional filtering plugin or custom code.</p>
<h2>What Do Search, Filters, And Sorting Do?</h2>
<p>Each control helps visitors browse a <a href="https://www.elegantthemes.com/blog/theme-releases/loop-builder">loop</a> in a different way:</p>
<ul>
<li><strong>Search</strong> finds content using a typed keyword.</li>
<li><strong>Filters</strong> narrow the results by criteria such as a category, tag, or custom field value.</li>
<li><strong>Sorting</strong> changes the order of the matching results, such as newest first or title A to Z.</li>
</ul>
<p>Baymard Institute&#8217;s <a href="https://baymard.com/blog/current-state-product-list-and-filtering" rel="noopener" target="_blank">research on product lists and filtering</a> highlights how these tools help shoppers find relevant products. A blog or directory can use the same browsing pattern to make a large collection easier to explore.</p>
<p>For example, a visitor could search for a recipe, select a category, and then sort the matching posts by date. Each control has a separate role in refining the results.</p>
<h2>Native Search, Filtering, And Sorting In Divi 5</h2>
<p>The <a href="https://www.elegantthemes.com/blog/theme-releases/loop-filter-modules">Post Filter Module</a> contains the form controls and connects them to a target loop. This tutorial uses a custom post loop built with Divi 5&#8217;s Loop Builder. For WooCommerce products, build a custom product loop rather than trying to attach the form to WooCommerce&#8217;s standard shop loop.</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/08/postfilterblog1-small.mp4" /></video></p>
<p>The module offers seven item types. <strong>Text</strong> provides a search input. <strong>Select</strong> displays choices in a dropdown, while <strong>Radio</strong> displays a list of single-choice options. You configure which post data, taxonomy, or custom field each relevant control uses.</p>
<p><strong>Checkbox</strong> allows multiple selections. <strong>Order By</strong> sets the sorting criterion, and <strong>Order</strong> sets its direction. <strong>Button</strong> items provide the form&#8217;s submit and reset actions.</p>
<p>Build and style the form in the Visual Builder, then check its behavior on the front end after saving.</p>
<h2>Adding Search, Filters, And Sorting To Your Loops In Divi 5</h2>
<p>Start with a working loop, place the filter form beside it, and connect the two. We&#8217;ll use blog posts for the example below.</p>
<h3>Build Your Loop</h3>
<p>Choose the content the loop should display, such as blog posts, WooCommerce products, or another custom post type. Then create the card that Divi will repeat for each result.</p>
<p>With <a href="https://www.elegantthemes.com/blog/theme-releases/loop-builder">Divi 5&#8217;s Loop Builder</a>, you can enable <strong>Loop Element</strong> on an element or container. For a card with several modules, use a container such as a Group or Column. Add the image, title, excerpt, and link using the corresponding loop Dynamic Content values.</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/07/settings-small-1.mp4" /></video></p>
<p>Our <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-create-a-custom-blog-post-loop-with-divi-5s-loop-builder">custom blog post loop guide</a> covers designing the cards, enabling the loop, and configuring its query.</p>
<h3>Arrange The Filters And Results</h3>
<p>Add a two-column row with a narrow left column for the filters and a wider right column for the results. An approximately 30/70 split gives the posts most of the available width.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319818" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-a-3070-row-and-column-in-Divi-5.jpg" alt="Adding a 3070 row and column in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-a-3070-row-and-column-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-a-3070-row-and-column-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-a-3070-row-and-column-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-a-3070-row-and-column-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-a-3070-row-and-column-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Place the blog loop in the wider column. Keep the narrow column available for the Post Filter Module.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319835" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-building-an-example-loop-in-Divi-5.jpg" alt="Building an example loop in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-building-an-example-loop-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-building-an-example-loop-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-building-an-example-loop-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-building-an-example-loop-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-building-an-example-loop-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Divi 5&#8217;s <a href="https://www.elegantthemes.com/blog/theme-releases/flexbox">Flexbox layout system</a> lets you adjust this split. In a Flex row, the row is the flex container and its columns are flex items.</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/07/rows-small.mp4" /></video></p>
<p>Use each column&#8217;s <strong>Design &gt; Sizing &gt; Column Class</strong> setting to adjust its share of the row. You can start with a row template and refine the column sizes to suit the form and cards.</p>
<p>With <a href="https://www.elegantthemes.com/blog/theme-releases/nested-rows">Nested Rows</a>, you can also place a row inside the results column to organize the cards. At smaller breakpoints, adjust the parent row&#8217;s <strong>Layout Direction</strong> and column sizing to stack the filters above the results.</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/nesting-small.mp4" /></video></p>
<p>This sidebar layout is a starting point. The same filter form can also sit above the loop if that better suits your page.</p>
<h3>Add And Connect The Post Filter Module</h3>
<p>Insert the <strong>Post Filter Module</strong> in the narrow column.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319839" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-the-post-filter-in-one-of-the-columns-in-Divi-5.jpg" alt="Adding the post filter in one of the columns in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-the-post-filter-in-one-of-the-columns-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-the-post-filter-in-one-of-the-columns-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-the-post-filter-in-one-of-the-columns-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-the-post-filter-in-one-of-the-columns-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-adding-the-post-filter-in-one-of-the-columns-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Open <strong>Content &gt; Target</strong> and choose your loop under <strong>Target Loop</strong>. Select the element with looping enabled, which is the <strong>Group</strong> in this example.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319840" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-selecting-the-loop-as-a-target-in-Divi-5.jpg" alt="Selecting the loop as a target in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-selecting-the-loop-as-a-target-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-selecting-the-loop-as-a-target-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-selecting-the-loop-as-a-target-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-selecting-the-loop-as-a-target-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-selecting-the-loop-as-a-target-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The default form in this example contains Search, Category, Reset, and Apply items.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319841" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-appearing-after-target-being-set-in-Divi-5.jpg" alt="The filters appearing after target being set in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-appearing-after-target-being-set-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-appearing-after-target-being-set-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-appearing-after-target-being-set-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-appearing-after-target-being-set-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-appearing-after-target-being-set-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the same <strong>Target</strong> group, review <strong>Apply Mode</strong> and <strong>Relation</strong>.</p>
<p><strong>Apply Mode</strong> determines when the form updates the results. <strong>Submit</strong> applies the criteria when visitors click the submit button. <strong>Automatic</strong> updates results as visitors change the controls. Use <strong>Submit</strong> here so visitors can choose several criteria before applying them.</p>
<p><strong>Relation</strong> determines how the filter conditions are combined. <strong>And</strong> requires matching conditions together, while <strong>Or</strong> allows alternatives. Keep <strong>And</strong> for this example. This form-level setting is separate from the choices made within an individual field.</p>
<p>Expand <strong>Content &gt; Elements</strong> to add, remove, edit, or drag the filter items into a different order.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319842" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-items-already-existed-in-Divi-5.jpg" alt="The filters items already existed in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-items-already-existed-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-items-already-existed-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-items-already-existed-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-items-already-existed-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-filters-items-already-existed-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Configure The Search Field</h4>
<p>Click the edit icon beside the existing <strong>Search</strong> item. Keep it as a <strong>Text</strong> field using the post search option for this blog example.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319843" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-edit-button-for-the-post-filter-item-in-Divi-5.jpg" alt="The edit button for the post filter item in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-edit-button-for-the-post-filter-item-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-edit-button-for-the-post-filter-item-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-edit-button-for-the-post-filter-item-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-edit-button-for-the-post-filter-item-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-edit-button-for-the-post-filter-item-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Set a helpful <strong>Field Placeholder</strong>, such as &#8220;Search Posts.&#8221; For a recipe blog, &#8220;Search Recipes&#8221; would be more specific. Changing the placeholder changes the prompt visitors see, not which content the field searches.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319844" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-placeholder-being-set-in-Divi-5.jpg" alt="The field placeholder being set in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-placeholder-being-set-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-placeholder-being-set-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-placeholder-being-set-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-placeholder-being-set-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-placeholder-being-set-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Set the <strong>Field Label</strong> to <strong>Search</strong>. Divi provides separate controls for the label&#8217;s text and visibility. Keep a clear label so the field remains identifiable after a visitor starts typing.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319845" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-label-being-set-in-Divi-5.jpg" alt="The field label being set in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-label-being-set-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-label-being-set-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-label-being-set-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-label-being-set-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-field-label-being-set-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Configure The Category Filter</h4>
<p>Return to the parent module&#8217;s <strong>Elements</strong> group and edit the existing <strong>Category</strong> item. For the checkbox list shown in this example:</p>
<ul>
<li>Keep the <strong>Field Label</strong> as <strong>Category</strong>.</li>
<li>Use <strong>Checkbox</strong> as the <strong>Field Type</strong>.</li>
<li>Under <strong>Field Option</strong>, select the category taxonomy for the posts in your target loop.</li>
<li>Use <strong>Automatic</strong> options to populate the choices from the taxonomy.</li>
</ul>
<p>The category names will reflect your site&#8217;s content, so they will differ from the sample terms in the screenshots. For a single-choice filter, use <strong>Select</strong> or <strong>Radio</strong> instead. Choose the taxonomy belonging to the target post type; product categories and blog categories are different taxonomies.</p>
<h4>Add Sorting Controls</h4>
<p>To let visitors choose both the sorting criterion and direction, add <strong>Order By</strong> and <strong>Order</strong> fields. Order By determines what to sort on, and Order determines whether the results run in ascending or descending order.</p>
<p>Use <strong>Add Element</strong> to add two Post Filter Items.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319888" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-add-element-button-in-the-post-filter-module-1.jpg" alt="The add element button in the post filter module" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-add-element-button-in-the-post-filter-module-1.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-add-element-button-in-the-post-filter-module-1-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-add-element-button-in-the-post-filter-module-1-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-add-element-button-in-the-post-filter-module-1-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-add-element-button-in-the-post-filter-module-1-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Drag the new items above the <strong>Reset</strong> and <strong>Apply</strong> buttons, then open each item&#8217;s settings.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319891" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-edit-button-for-the-post-filter-item.jpg" alt="The edit button for the post filter item" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-edit-button-for-the-post-filter-item.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-edit-button-for-the-post-filter-item-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-edit-button-for-the-post-filter-item-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-edit-button-for-the-post-filter-item-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-edit-button-for-the-post-filter-item-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Set one item&#8217;s <strong>Field Type</strong> to <strong>Order By</strong> and its <strong>Field Label</strong> to <strong>Order By</strong>. Set the other item&#8217;s type and label to <strong>Order</strong>. Use distinct labels so visitors can tell the two controls apart.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319890" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-changing-a-filter-items-filter-type-in-the-post-filter-module.jpg" alt="Changing a filter item's filter type in the post filter module" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-changing-a-filter-items-filter-type-in-the-post-filter-module.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-changing-a-filter-items-filter-type-in-the-post-filter-module-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-changing-a-filter-items-filter-type-in-the-post-filter-module-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-changing-a-filter-items-filter-type-in-the-post-filter-module-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-changing-a-filter-items-filter-type-in-the-post-filter-module-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Under <strong>Order By Options</strong>, choose the criteria visitors can use. For this blog loop, keep <strong>Publish Date</strong> and <strong>Title</strong>. You can also retain <strong>Default</strong> to let visitors use the loop&#8217;s configured order, and deselect options that are not useful for this page.</p>
<p>Available choices depend on the target loop and its data. A custom product loop can use a price-related sorting option where available; this blog example uses publish date and title.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319892" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-order-by-options-available-to-edit-.jpg" alt="Order by options available to edit" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-order-by-options-available-to-edit-.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-order-by-options-available-to-edit--300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-order-by-options-available-to-edit--768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-order-by-options-available-to-edit--1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-order-by-options-available-to-edit--610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The controls work together: <strong>Publish Date</strong> with <strong>Descending</strong> puts newer posts first, while <strong>Title</strong> with <strong>Ascending</strong> sorts titles from A to Z.</p>
<h4>Configure The Submit And Reset Buttons</h4>
<p>The default form includes <strong>Apply</strong> and <strong>Reset</strong> items. Open each item&#8217;s settings to review its button action and text.</p>
<p>Keep <strong>Apply</strong> as the submit button. With <strong>Apply Mode</strong> set to <strong>Submit</strong>, it applies the current search, filter, and sorting choices together.</p>
<p>Keep <strong>Reset</strong> as the reset button. It returns the form to its starting state. Resetting visitor filters does not remove restrictions already configured in the loop&#8217;s base query, such as its post type or category limits.</p>
<p>Use <strong>Button Text</strong> to change the visible labels if needed. &#8220;Apply Filters&#8221; and &#8220;Reset&#8221; are clear choices.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319896" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-button-text-that-can-be-edited.jpg" alt="The button text that can be edited" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-button-text-that-can-be-edited.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-button-text-that-can-be-edited-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-button-text-that-can-be-edited-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-button-text-that-can-be-edited-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-button-text-that-can-be-edited-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Style Your Search And Filters</h3>
<p>Style the search input, category options, sorting controls, and buttons to match the rest of the page. You can make shared changes at the parent module level and refine individual items where needed.</p>
<p>Use the parent Post Filter Module&#8217;s <strong>Design</strong> tab for shared field styling, including text, colors, borders, and shadows. These settings provide a consistent starting point for the form&#8217;s items.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319899" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-level.jpg" alt="The design field and options available on the Post Filter level" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-level.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-level-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-level-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-level-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-level-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Open an individual Post Filter Item&#8217;s <strong>Design</strong> tab to style that item separately. This is useful when the submit button needs a stronger treatment than the reset button.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319900" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-item-level.jpg" alt="The design field and options available on the Post Filter item level" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-item-level.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-item-level-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-item-level-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-item-level-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-the-design-field-and-options-available-on-the-Post-Filter-item-level-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>You can also connect the form to the rest of your site&#8217;s design system using variables and presets.</p>
<h4>Use Design Variables For Consistent Styling</h4>
<p><a href="https://www.elegantthemes.com/blog/theme-releases/design-variables">Design Variables</a> let you reuse named values instead of entering the same color, size, or font repeatedly.</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>Open the <strong>Variable Manager</strong> and create color, number, and font variables for your form. Use number variables for values such as spacing, border width, and corner radius. In supported settings, use <strong>Insert Dynamic Content</strong> to select the appropriate variable.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319906" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-color-from-Design-Variable-for-the-filters-input-fields-and-the-insert-dynamic-content-icon.jpg" alt="Applying color from Design Variable for the filter's input fields and the insert dynamic content icon" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-color-from-Design-Variable-for-the-filters-input-fields-and-the-insert-dynamic-content-icon.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-color-from-Design-Variable-for-the-filters-input-fields-and-the-insert-dynamic-content-icon-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-color-from-Design-Variable-for-the-filters-input-fields-and-the-insert-dynamic-content-icon-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-color-from-Design-Variable-for-the-filters-input-fields-and-the-insert-dynamic-content-icon-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-color-from-Design-Variable-for-the-filters-input-fields-and-the-insert-dynamic-content-icon-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Variables are reusable across the site, but they affect only settings that reference them. For example, the same color variable can be used on this filter form, a contact form, and a pricing table. Updating that variable changes each linked setting.</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/all-small.mp4" /></video></p>
<p>A value entered directly in a field remains independent; a variable keeps that value connected to your shared design system.</p>
<h4>Style Focus, Checked, And Hover States</h4>
<p>Use state styling to make it clear which field has focus and which options are selected. Relevant controls support <strong>Focus</strong>, <strong>Checked</strong>, and <strong>Hover</strong> styling.</p>
<p>The <a href="https://www.elegantthemes.com/blog/theme-releases/variable-generator">Variable Generator</a> can create tints and shades from your primary color. Use a light tint for a field background and a stronger shade for a visible border or selected state.</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/colors1-small.mp4" /></video></p>
<p>Open the responsive/state menu at the <strong>top right of the settings panel</strong> and select <strong>Focus</strong>.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319910" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-selecting-the-focus-view-in-Divi-5.jpg" alt="Selecting the focus view in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-selecting-the-focus-view-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-selecting-the-focus-view-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-selecting-the-focus-view-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-selecting-the-focus-view-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-selecting-the-focus-view-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the relevant field&#8217;s <strong>Design</strong> settings, assign a tint variable to its background. Use a contrasting border color to make focus easy to see. Keep the text readable in both the default and focused states.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319911" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-focused-state-in-Divi-5.jpg" alt="Applying a different background color for the focused state in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-focused-state-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-focused-state-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-focused-state-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-focused-state-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-focused-state-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For <strong>Checkbox</strong> and <strong>Radio</strong> controls, switch to <strong>Checked</strong> and style the selected state. Choose a fill that keeps the checkmark or selection indicator visible.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319912" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-checked-state-in-checkboxes-in-Divi-5.jpg" alt="Applying a different background color for the checked state in checkboxes in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-checked-state-in-checkboxes-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-checked-state-in-checkboxes-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-checked-state-in-checkboxes-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-checked-state-in-checkboxes-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-a-different-background-color-for-the-checked-state-in-checkboxes-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Use <strong>Hover</strong> to style the buttons when a pointer moves over them. Keep a visible focus treatment for keyboard users as well. Our <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-create-better-focus-states-for-accessible-forms-in-divi-5">guide to accessible form focus states</a> explains the same principles using a contact form.</p>
<h4>Save The Styling As Reusable Presets</h4>
<p><a href="https://www.elegantthemes.com/blog/theme-releases/preset-based-design">Option Group Presets</a> save settings from a particular option group, such as text, spacing, or borders. Reuse them on elements that support the same group.</p>
<p>In this example, a button in the loop already has the style we want. Hover over its relevant option group and click the <strong>presets icon</strong> to save those settings as an <strong>Option Group Preset</strong>.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319915" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-find-the-Option-Group-Presets-button-in-Divi-5.jpg" alt="Where to find the Option Group Presets button in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-find-the-Option-Group-Presets-button-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-find-the-Option-Group-Presets-button-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-find-the-Option-Group-Presets-button-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-find-the-Option-Group-Presets-button-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-find-the-Option-Group-Presets-button-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Apply that compatible preset to the filter&#8217;s <strong>Apply</strong> button. Style <strong>Reset</strong> separately with a more understated treatment so the primary action stands out.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319916" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-the-option-group-preset-to-apply-button.jpg" alt="Applying the option group preset to apply button" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-the-option-group-preset-to-apply-button.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-the-option-group-preset-to-apply-button-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-the-option-group-preset-to-apply-button-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-the-option-group-preset-to-apply-button-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-the-option-group-preset-to-apply-button-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Use an <strong>Element Preset</strong> to save a broader collection of settings for the same element type. It can include variable references and assigned Option Group Presets.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319917" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-manage-element-presets.jpg" alt="Where to manage element presets" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-manage-element-presets.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-manage-element-presets-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-manage-element-presets-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-manage-element-presets-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-where-to-manage-element-presets-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Apply the Element Preset when you create another filter element of the same type. Review its content and target settings for the new loop.</p>
<p>Editing a shared preset updates the elements using it, subject to any local overrides. Option Group Presets can be shared across compatible groups; Element Presets are tied to their element type.</p>
<h4>Style The Filter Container</h4>
<p>Style the parent <strong>Post Filter Module</strong> to give the whole form a background, padding, and border.</p>
<p>Set the panel color under <strong>Content &gt; Background</strong>. Select a color variable to keep it connected to your palette. Then use <strong>Design &gt; Spacing</strong> to add padding around the fields.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319928" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-styling-to-the-post-filter-module-container.jpg" alt="Applying styling to the post filter module container" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-styling-to-the-post-filter-module-container.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-styling-to-the-post-filter-module-container-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-styling-to-the-post-filter-module-container-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-styling-to-the-post-filter-module-container-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-applying-styling-to-the-post-filter-module-container-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Use the <strong>Border</strong> settings to add a border color and rounded corners. Add a subtle <strong>Box Shadow</strong> if you want to separate the form from the page background.</p>
<p>The module also provides Flexbox layout controls. Use <strong>Layout Direction</strong> to arrange the fields vertically or horizontally, depending on the space available.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319929" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-flexbox-options-available-for-the-post-filter-module-container.jpg" alt="Flexbox options available for the post filter module container" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-flexbox-options-available-for-the-post-filter-module-container.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-flexbox-options-available-for-the-post-filter-module-container-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-flexbox-options-available-for-the-post-filter-module-container-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-flexbox-options-available-for-the-post-filter-module-container-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-flexbox-options-available-for-the-post-filter-module-container-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Use the gap settings to control spacing between items. <strong>Justify Content</strong> distributes items along the main axis; <strong>Space Between</strong> spreads available space between all items, rather than moving only the buttons to the bottom. It needs spare space in the container to have that effect. <strong>Align Items</strong> controls the cross-axis alignment. Our <a href="https://www.elegantthemes.com/blog/divi-resources/understanding-every-single-flexbox-setting-in-divi-5">guide to Divi 5&#8217;s Flexbox settings</a> explains each control.</p>
<h3>Make The Filters Easier To Use On Mobile</h3>
<p>A tall filter sidebar can push the results far down the page on a phone. Put the mobile form inside a collapsible Toggle so visitors can open the filters when needed.</p>
<p>Divi 5&#8217;s <strong>Toggle Module</strong> supports nested elements, including the Post Filter Module. Give it a clear title such as &#8220;Filter Your Posts&#8221; and set its initial <strong>State</strong> to closed.</p>
<p>Keep the existing sidebar filter for desktop. Add a Toggle for phones and tablets, then duplicate the Post Filter Module into the Toggle&#8217;s content area. Keep the duplicate connected to the same <strong>Target Loop</strong>.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319934" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-putting-the-filters-in-a-toggle-in-Divi-5.jpg" alt="Putting the filters in a toggle in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-putting-the-filters-in-a-toggle-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-putting-the-filters-in-a-toggle-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-putting-the-filters-in-a-toggle-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-putting-the-filters-in-a-toggle-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-putting-the-filters-in-a-toggle-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the Toggle&#8217;s <strong>Advanced &gt; Visibility</strong> settings, disable it on <strong>Desktop</strong>.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319935" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-toggle-for-desktops-in-Divi-5.jpg" alt="Hiding the toggle for desktops in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-toggle-for-desktops-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-toggle-for-desktops-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-toggle-for-desktops-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-toggle-for-desktops-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-toggle-for-desktops-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>On the original sidebar Post Filter Module, open <strong>Advanced &gt; Visibility</strong> and disable it on <strong>Phone</strong> and <strong>Tablet</strong>.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319936" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-sidebar-filters-for-mobiles-and-tablets-in-Divi-5.jpg" alt="Hiding the sidebar filters for mobiles and tablets in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-sidebar-filters-for-mobiles-and-tablets-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-sidebar-filters-for-mobiles-and-tablets-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-sidebar-filters-for-mobiles-and-tablets-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-sidebar-filters-for-mobiles-and-tablets-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/A-screenshot-of-hiding-the-sidebar-filters-for-mobiles-and-tablets-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>At phone and tablet breakpoints, check the parent row&#8217;s layout and column widths so the Toggle and results use the available width. Hide an otherwise empty desktop-only sidebar column if it still occupies space.</p>
<p>Save the page and check the form on the front end. Try a search term and category, apply a date or title sort, and use Reset to return to the starting view. On a phone or tablet, open the Toggle and repeat those actions to confirm that the visible form controls the intended loop.</p>
<h2>Give Visitors More Ways To Browse Your Loop</h2>
<p>Use search for keywords, category filters to narrow the results, and sorting to change their order. With the form connected to your custom loop, you can reuse the approach for other post types and adapt the controls to the content visitors need to find.</p>
<p>Download <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> to build your own searchable, filterable loop.</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-add-search-filters-and-sorting-to-any-divi-5-loop">How To Add Search, Filters, And Sorting To Any Divi 5 Loop</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-add-search-filters-and-sorting-to-any-divi-5-loop/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/How-To-Add-Search-Filters-And-Sorting-To-Any-Divi-5-Loop-featured-image.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>10 CSS Subgrid Layouts For Divi 5 (Free Download!)</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/css-subgrid-layouts-for-divi-5</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/css-subgrid-layouts-for-divi-5#respond</comments>
		
		<dc:creator><![CDATA[Donjete Vuniqi]]></dc:creator>
		<pubDate>Tue, 15 Sep 2026 16:00:48 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[CSS Grid]]></category>
		<category><![CDATA[Divi 5 Freebie]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=319878</guid>

					<description><![CDATA[<p>Divi 5 brings the flexibility of CSS Grid into the Visual Builder, making it possible to create structured layouts with precise control over rows, columns, gaps, and alignment. In this free pack, you’ll get 10 CSS Subgrid Layouts for Divi 5 that are perfect for testimonials, services, feature cards, team sections, project showcases, comparison layouts, [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/css-subgrid-layouts-for-divi-5">10 CSS Subgrid Layouts 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> brings the flexibility of <a href="https://www.elegantthemes.com/blog/theme-releases/css-grid" rel=" ">CSS Grid</a> into the Visual Builder, making it possible to create structured layouts with precise control over rows, columns, gaps, and alignment. In this free pack, you’ll get 10 CSS Subgrid Layouts for Divi 5 that are perfect for testimonials, services, feature cards, team sections, project showcases, comparison layouts, process steps, and other repeated content.</p>
<p>Subgrid allows a nested grid to use track sizing from its parent grid along a selected axis. This is especially useful for repeated cards because corresponding areas can remain aligned across the layout even when headings, descriptions, images, or other content vary in length. Import your favorite section, replace the example content, customize the styling, and adapt the structure to your website.</p>
<h2>Preview</h2>
<p>Here’s a quick look at the 10 CSS Subgrid Layouts included in the pack. The download is further down the post.</p>
<p><img loading="lazy" decoding="async" class="alignnone wp-image-319980" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/CSS-Subgrid-Layouts-For-Divi-5.jpeg" alt="CSS Subgrid Layouts For Divi 5" width="1800" height="4024" /></p>
<h2>Download 10 CSS Subgrid Layouts For Divi 5</h2>
<p>Get all 10 sections 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="319878" 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/08/divi-5-css-subgrid-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="319878" 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 (11 Exports)</h2>
<p>After you download and unzip the file, you’ll find 10 individual CSS Subgrid section exports, plus 1 file containing all layouts.</p>
<p><em>CSS Grid Subgrid Section 1 to 10 (10) → Ten fully styled layouts featuring different combinations of repeated cards, imagery, headings, descriptions, labels, numbers, buttons, and supporting details arranged with CSS Grid and Subgrid.</em></p>
<p><em>CSS Grid Subgrid Sections (All) → Imports all 10 designs into your Divi Library at once.</em></p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319978 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/subgrid-JSON-files.jpg" alt="subgrid JSON files" width="1800" height="497" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/subgrid-JSON-files.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/subgrid-JSON-files-300x83.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/subgrid-JSON-files-768x212.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/subgrid-JSON-files-1536x424.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/subgrid-JSON-files-610x168.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>How To Use The CSS Subgrid Layouts</h2>
<p>Keep your download folder handy. We’ll import the files, add a CSS Subgrid section to a page, replace the example content, and customize the design while preserving its alignment system.</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 wp-image-318249 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import.jpeg" alt="Divi Library import" width="1800" height="886" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-300x148.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-768x378.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-1536x756.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-610x300.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the <em>Import &amp; Export Layouts</em> modal, switch to the <em>Import</em> tab, then click <em>Choose File</em>. Select any individual <em>CSS Grid Subgrid Section</em> JSON file if you only want one design. To import every layout at once, choose <em>CSS Grid Subgrid Sections (All).json</em> instead.</p>
<p>Click <em>Import Divi Builder Layouts</em> and wait for the import to complete.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319981 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-subgrid-layouts.jpeg" alt="import subgrid layouts" width="1800" height="895" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-subgrid-layouts.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-subgrid-layouts-300x149.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-subgrid-layouts-768x382.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-subgrid-layouts-1536x764.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-subgrid-layouts-610x303.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>2. Add A CSS Subgrid Section To Any Page</h3>
<p>Open a page in the <em>Visual Builder</em> and add a new <em>Section</em> where you want the layout to appear.</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>Click <em>Add From Library</em> and select one of the CSS Subgrid sections you imported.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319982 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/add-layout-from-library.jpeg" alt="add layout from library" width="1800" height="929" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/add-layout-from-library.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/add-layout-from-library-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/add-layout-from-library-768x396.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/add-layout-from-library-1536x793.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/add-layout-from-library-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The complete design will be added to the page with its original modules, nested containers, Grid settings, Subgrid relationships, colors, typography, and spacing intact.</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/09/import-divi-layout.mp4" /></video></p>
<h3>3. Replace The Example Content</h3>
<p>Start by replacing the example headings, descriptions, labels, numbers, names, roles, buttons, images, and other supporting details with your own content.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319985 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/replacing-text-content.jpeg" alt="replacing text content" width="1800" height="930" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/replacing-text-content.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/replacing-text-content-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/replacing-text-content-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/replacing-text-content-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/replacing-text-content-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Work through one repeated item at a time. Replace every piece of content inside that item, then move to the next card or block. This makes it easier to keep the structure consistent across the full section.</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/09/replace-one-content-area-at-a-time.mp4" /></video></p>
<p>The layouts are designed to accommodate natural differences in content length while keeping corresponding areas aligned. However, extremely short or long copy can still change the balance of a card, so review the section as a complete composition after adding your content.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319987 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/varying-content-lengths.jpeg" alt="varying content lengths" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/varying-content-lengths.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/varying-content-lengths-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/varying-content-lengths-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/varying-content-lengths-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/varying-content-lengths-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>When replacing buttons or linked elements, update their destination URLs and make sure the labels clearly describe the action visitors can take.</p>
<h3>4. Understand The Parent Grid And Subgrid Structure</h3>
<p>Each design uses a parent grid to establish the larger layout and nested grid containers for the repeated content. Subgrid allows those nested containers to follow the relevant row or column tracks defined by the parent instead of creating unrelated tracks of their own.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319988 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/parent-grid-structure.jpeg" alt="parent grid structure" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/parent-grid-structure.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/parent-grid-structure-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/parent-grid-structure-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/parent-grid-structure-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/parent-grid-structure-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>This shared structure helps corresponding elements line up across neighboring cards. For example, headings can occupy the same track, descriptions can begin and end within coordinated areas, and buttons or author details can remain aligned toward the bottom.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319989 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/lined-up-content.jpeg" alt="grid track content" width="1800" height="929" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/lined-up-content.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/lined-up-content-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/lined-up-content-768x396.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/lined-up-content-1536x793.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/lined-up-content-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>When exploring a layout, use Divi’s Layers panel or Element breadcrumbs to understand which elements belong to the parent grid and which sit inside the nested grid containers. Identifying that hierarchy before making structural changes will help you preserve the intended alignment.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319990 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/layers-panel-and-breadcrumbs.jpeg" alt="layers panel and breadcrumbs" width="1800" height="929" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/layers-panel-and-breadcrumbs.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/layers-panel-and-breadcrumbs-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/layers-panel-and-breadcrumbs-768x396.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/layers-panel-and-breadcrumbs-1536x793.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/layers-panel-and-breadcrumbs-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Avoid removing a nested container solely because it appears to add another layer. That container may be responsible for the Subgrid relationship that coordinates its internal content with neighboring items.</p>
<h3>5. Adjust The Grid Without Breaking Alignment</h3>
<p>If you want to change the number or width of the main columns, begin with the parent grid container. Use its Grid settings or open Divi 5’s <a href="https://www.elegantthemes.com/blog/theme-releases/css-grid-editor" rel=" ">CSS Grid Editor</a> where appropriate to review the larger structure, track sizes, and gaps.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319991 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/using-the-grid-editor.jpeg" alt="using the grid editor" width="1800" height="930" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/using-the-grid-editor.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/using-the-grid-editor-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/using-the-grid-editor-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/using-the-grid-editor-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/using-the-grid-editor-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Make one structural change at a time and then check every repeated item. Because the nested grids depend on tracks established by the parent, changing the parent can affect alignment throughout the section.</p>
<p>To add another service, testimonial, feature, or other repeated item, duplicate the complete item container rather than copying only its visible modules. This preserves the nested structure and gives the new item the same alignment behavior as the existing ones.</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/09/making-structural-changes.mp4" /></video></p>
<p>If you remove an item, check whether the parent grid still has the right number of columns for the remaining content. Adjust the column structure when necessary so the section does not leave an unintended gap.</p>
<h3>6. Customize The Styling</h3>
<p>These CSS Subgrid Layouts are already styled, but you can customize their colors, backgrounds, typography, borders, images, spacing, buttons, and other design settings to match your website.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-319993" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/styling-changes-in-Divi-5.jpeg" alt="styling changes in Divi 5" width="1800" height="930" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/styling-changes-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/styling-changes-in-Divi-5-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/styling-changes-in-Divi-5-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/styling-changes-in-Divi-5-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/styling-changes-in-Divi-5-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Start with shared visual decisions such as the section background, card colors, heading styles, border treatments, and button appearance. Repeating a focused set of values helps the individual items read as parts of one system.</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/09/changing-background-colors.mp4" /></video></p>
<p>When changing internal padding or gaps, apply the values consistently across comparable items. Subgrid coordinates track alignment, but inconsistent spacing inside individual elements can still make the design feel uneven.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319995 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/adding-internal-padding-in-Divi-5.jpeg" alt="adding internal padding in Divi 5" width="1800" height="930" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/adding-internal-padding-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/adding-internal-padding-in-Divi-5-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/adding-internal-padding-in-Divi-5-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/adding-internal-padding-in-Divi-5-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/adding-internal-padding-in-Divi-5-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For layouts that use contrasting cards, you can vary background and accent colors while keeping typography, borders, spacing, and component order consistent. This adds visual variety without weakening the shared structure.</p>
<h3>7. Check The Layout On Smaller Screens</h3>
<p>Repeated multi-column layouts often need a different structure on narrower screens. Use Divi’s responsive editing tools to review the section on desktop, tablet, and phone before publishing.</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/09/Divi-5-responsive-tools.mp4" /></video></p>
<p>Pay particular attention to the number of columns, stacking order, nested alignment, card spacing, text length, button placement, and image sizing. A row of four cards on desktop may work better as two columns on tablet and one column on phone.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319997 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/grid-settings-on-mobile.jpeg" alt="grid settings on mobile" width="1800" height="930" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/grid-settings-on-mobile.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/grid-settings-on-mobile-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/grid-settings-on-mobile-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/grid-settings-on-mobile-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/grid-settings-on-mobile-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>If you change the parent grid at a smaller breakpoint, review the nested items at that same breakpoint. Confirm that each card still contains its content in a logical order and that the Subgrid structure continues to support the intended alignment.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319998 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/nested-items-on-phones.jpeg" alt="nested items on phones" width="1800" height="930" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/nested-items-on-phones.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/nested-items-on-phones-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/nested-items-on-phones-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/nested-items-on-phones-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/nested-items-on-phones-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Check the live page as well as the builder previews. This will help you confirm that the content remains readable and the repeated items feel balanced at different viewport widths.</p>
<h2>Tips For Effective CSS Subgrid Layouts</h2>
<p>Subgrid is most useful when multiple nested components need to share a larger alignment system. Use these tips to preserve that relationship while adapting the designs to your content.</p>
<h3>Keep The Component Structure Consistent</h3>
<p>Repeated items should generally contain the same types of elements in the same order. A consistent internal structure makes it easier for corresponding headings, descriptions, metadata, and buttons to align across the grid.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-320000 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-the-structure-consistent.jpg" alt="keep the structure consistent" width="1800" height="1349" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-the-structure-consistent.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-the-structure-consistent-300x225.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-the-structure-consistent-768x576.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-the-structure-consistent-1536x1151.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-the-structure-consistent-610x457.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Let The Parent Grid Lead</h3>
<p>Treat the parent grid as the main source of structure. Decide how many columns the section needs, how wide those tracks should be, and how much space belongs between them before fine-tuning individual content elements.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-320001 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/let-the-parent-grid-lead.jpg" alt="let the parent grid lead" width="1800" height="1241" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/let-the-parent-grid-lead.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/let-the-parent-grid-lead-300x207.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/let-the-parent-grid-lead-768x529.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/let-the-parent-grid-lead-1536x1059.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/let-the-parent-grid-lead-610x421.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Use Subgrid Where Alignment Adds Value</h3>
<p>Subgrid is especially helpful for testimonials, service cards, feature comparisons, team profiles, and other repeated components where matching internal rows make the content easier to scan. Simpler elements without shared alignment needs may not require the same nested structure.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-320002 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/use-subgrid-where-alignment-adds-value.jpg" alt="use subgrid where alignment adds value" width="1800" height="939" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/use-subgrid-where-alignment-adds-value.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/use-subgrid-where-alignment-adds-value-300x157.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/use-subgrid-where-alignment-adds-value-768x401.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/use-subgrid-where-alignment-adds-value-1536x801.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/use-subgrid-where-alignment-adds-value-610x318.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Allow For Real Content Differences</h3>
<p>Test the layout with realistic copy rather than identical placeholder text. Different heading and description lengths will reveal how the structure behaves and whether any item needs editorial tightening.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-320003 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/allow-for-real-content-differences.jpg" alt="allow for real content differences" width="1800" height="1408" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/allow-for-real-content-differences.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/allow-for-real-content-differences-300x235.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/allow-for-real-content-differences-768x601.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/allow-for-real-content-differences-1536x1201.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/allow-for-real-content-differences-610x477.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Keep Calls To Action Aligned</h3>
<p>When cards include buttons or links, consistent placement makes the section easier to scan and interact with. Preserve the track that holds the calls to action so varying description lengths do not push each button to a different position.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-320004 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-ctas-aligned.jpg" alt="keep call to actions aligned" width="1800" height="1123" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-ctas-aligned.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-ctas-aligned-300x187.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-ctas-aligned-768x479.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-ctas-aligned-1536x958.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/keep-ctas-aligned-610x381.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Avoid Spacing Fixes That Fight The Grid</h3>
<p>Large fixed heights, excessive padding, and manual offsets can hide an alignment issue at one screen size while creating another elsewhere. Adjust the parent tracks, nested structure, or shared gaps before adding isolated spacing corrections.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-320005 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/avoid-spacing-fixes.jpg" alt="avoid spacing fixes" width="1800" height="2231" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/avoid-spacing-fixes.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/avoid-spacing-fixes-242x300.jpg 242w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/avoid-spacing-fixes-768x952.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/avoid-spacing-fixes-1239x1536.jpg 1239w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/avoid-spacing-fixes-1652x2048.jpg 1652w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/avoid-spacing-fixes-610x756.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Preserve A Logical Reading Order</h3>
<p>The visual arrangement should support the underlying content order. This becomes particularly important when several columns stack vertically on smaller screens, where visitors encounter each item in sequence.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-320006 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/preserve-a-logical-reading-order.jpeg" alt="preserve a logical reading order" width="1800" height="930" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/preserve-a-logical-reading-order.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/preserve-a-logical-reading-order-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/preserve-a-logical-reading-order-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/preserve-a-logical-reading-order-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/preserve-a-logical-reading-order-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Test Every Responsive Breakpoint</h3>
<p>Do not assume the desktop alignment will translate automatically to every screen size. Review the parent and nested grids together on tablet and phone, and make responsive adjustments wherever the column count or content flow changes.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-320007 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/test-every-responsive-breakpoint.jpeg" alt="test every responsive breakpoint" width="1800" height="929" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/test-every-responsive-breakpoint.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/test-every-responsive-breakpoint-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/test-every-responsive-breakpoint-768x396.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/test-every-responsive-breakpoint-1536x793.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/test-every-responsive-breakpoint-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Start Building In Divi 5 Today!</h2>
<p>These 10 CSS Subgrid Layouts give you flexible starting points for testimonials, services, features, team members, projects, comparisons, process steps, and other repeated content. Import your favorite design, replace the example content, customize the styling, and use the coordinated Grid and Subgrid structure to create polished sections 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/css-subgrid-layouts-for-divi-5">10 CSS Subgrid Layouts 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/css-subgrid-layouts-for-divi-5/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/10-CSS-Subgrid-Layouts-For-Divi-5-Free-Download.jpeg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>Divi 5.13 Release Notes</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/divi-5-13-release-notes</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/divi-5-13-release-notes#respond</comments>
		
		<dc:creator><![CDATA[Nick Roach]]></dc:creator>
		<pubDate>Mon, 14 Sep 2026 12:00:42 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=320570</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.13 update notification today. If you want to get an early inside scoop, I [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/divi-5-13-release-notes">Divi 5.13 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.13</strong> update notification </span>today.</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.13?</h2>
<p>This is purely a maintenance release; no big features this time, just lots of little updates. The update includes<span style="box-sizing: border-box; margin: 0px; padding: 0px;"> <a href="#changelog">65 bug fixes and improvements.</a></span></p>
<p>But we have some exciting things in the works! 👇</p>
<h3>What&#8217;s Coming Next?</h3>
<p>There are some great updates in the pipeline. New modules, major AI improvements, and most excitingly: <a href="https://www.elegantthemes.com/blog/theme-sneak-peeks/components-and-slots">Components and Slots</a>!</p>
<p>Components are a reimagining of Divi’s existing Global Elements. They retain the power of globally synchronized elements while introducing a much more flexible system for controlling what stays global and what can be customized on each instance.</p>
<p>You can detach individual settings from modules nested inside a Component, making those settings editable at the instance level while everything else remains globally synchronized. You can also add Slots, which create free-form areas inside Components where unique content can be built for each instance.</p>
<p>We’re also giving Components a much more prominent place in the builder, alongside systems such as Presets and Variables, with new interfaces for creating, managing, editing, using, and detaching Components.</p>
<p><strong>Watch this video to get an early look.</strong> 👇</p>
<p><iframe loading="lazy" class="youtube-player" type="text/html"  title="New features incoming! 👀" width="719" height="404" src="https://www.youtube.com/embed/kLTbUzyhO7w?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 id="changelog">Changelog</h2>
<p>Here is a list of all fixes and improvements included in this update.</p>
<ul>
<li>Dropdown panels now distinguish static content from clickable triggers and controls with appropriate cursors.</li>
<li>Gallery modules no longer show a false Design → Image modified indicator after image selection, and real Image sizing edits now expose matching modified and reset states.</li>
<li>Fixed Loop Builder pagination showing an empty last page when Post Offset is used.</li>
<li>Added Theme Builder (`is_tb`) propagation coverage for WooCommerce cart, checkout, and product VB modules, and shipped the protected taxonomy singular-resource fix for #46838.</li>
<li>Fixed Group Carousel item alignment so custom-width Groups can be positioned left, center, or right.</li>
<li>Hidden modules no longer contribute frontend runtime assets or extracted-font webfont loads when Conditional Display discards them or when they are fully disabled, including container-hidden descendants, while their styles can still be collected for Dynamic Assets.</li>
<li>Added expanded Divi 5 LayoutStyle unit coverage for display, gaps, and flex layout CSS emission.</li>
<li>Fixed some theme builder module-specific regressions and wrote tests.</li>
<li>Fixed Theme Builder header and footer content-area backgrounds affecting native page content, Theme Builder body row gutters, and custom CSS disappearing on pages with random-order loops.</li>
<li>Added third-party APIs so that plugins and child themes can register custom icon fonts in the Divi 5 icon picker and on the frontend.</li>
<li>Fixed an issue where default module preset design changes did not live-preview in the Visual Builder for modules such as Group Carousel and Accordion.</li>
<li>Fixed a security issue that allowed logged-in Divi Cloud users to make the site server send requests to unintended addresses during token refresh.</li>
<li>Fixed Map and Fullwidth Map module height not applying when set from a preset in the Visual Builder.</li>
<li>Added a Show Labels option to the Contact Form module and fixed Label Text styles so they apply to field labels when labels are enabled.</li>
<li>Fixed the default gap between Contact Form field labels and inputs to match the Field Layout 10px setting.</li>
<li>Prevent preset options from inheriting parent values as the default value.</li>
<li>Fixed Global Colors used in Off Canvas not appearing on 404 pages.</li>
<li>Fixed Testimonial module Grid layout so column count applies to the description area only and no longer nests inside the module wrapper.</li>
<li>Fixed an issue where the Blog module&#8217;s auto-generated page excerpts could expose unresolved loop-variable payload text.</li>
<li>Fixed MailPoet block email editor failing to load when Divi is active because Divi Gutenberg integration assets were loading on unsupported custom post type editor screens.</li>
<li>Fixed the issue where the Settings Modal didn&#8217;t reflect the module settings update on History state changes (undo/redo).</li>
<li>Frontend content migrations now register Theme Builder layout rewrite callbacks with named methods gated by `has_filter()`, so repeated migration setup cannot restack layout rewrites, and workers still re-register after each request hook reset.</li>
<li>Theme Builder template ID lookup and WooCommerce body-layout checks tolerate templates that override the header or footer without a body layout entry.</li>
<li>Fixed the AI Agent installing custom fonts without asking for confirmation.</li>
<li>Fixed Divi AI so updating a page, updating an AI rule, or creating a menu requires the same in-chat approval token as similar high-impact actions.</li>
<li>Fixed AI Agent font upload authorization to validate chat ownership before processing.</li>
<li>Fixed Contact Form 7 Styler Label Text Alignment not applying in the Visual Builder and on the frontend.</li>
<li>Fixed SVG nested-module grid columns not reflowing when the number of Columns is changed in Divi 5 (#51872).</li>
<li>Fixed nested default header submenus opening off-screen when a page had no Menu Module.</li>
<li>Fixed an issue where deleting a nested option group preset while editing an element preset would unexpectedly close the Element Preset panel.</li>
<li>Free-form custom CSS migrated from Divi 4 now applies to the module on the frontend and matches the Visual Builder result.</li>
<li>Fixed global section editing in Wireframe Mode by ensuring the global layout is fetched when the Visual Builder loads directly into the wireframe view.</li>
<li>Fixed SVG Module uploaded SVGs that use class-based styles, rendering as solid black instead of their intended colors.</li>
<li>Fixed broken Column Class dropdown layout when `No Column Class` is selected in Divi 5 Visual Builder.</li>
<li>Fixed Blurb image height sizing in the Visual Builder so height, min-height, max-height, and aspect-ratio render on the image element to match the front end.</li>
<li>Fixed AI Agent image uploads failing when attaching a file or pasting from the clipboard.</li>
<li>Fixed Woo Products modules appearing blank when editing WooCommerce shop and product archive templates via frontend Theme Builder Visual Builder.</li>
<li>Fixed AI Agent chat stuttering while replies stream, including when many past chats are in History.</li>
<li>Fixed Visual Builder failing on WordPress VIP because CodeMirror styles were loaded from blocked node_modules URLs.</li>
<li>No customer-facing change in this repository. The Visual Builder WordPress VIP CodeMirror CSS fix ships from the paired common and ai-app PRs.</li>
<li>Fixed Post Content module headings displaying the body font family instead of the heading font family in the Visual Builder when editing Theme Builder body templates.</li>
<li>Fixed Tabs module parallax, video, mask, and pattern backgrounds so they stay in the content panel in the Visual Builder and on the frontend.</li>
<li>Fixed a permission issue that allowed users without administrator capabilities to change site-wide AI layout default fonts, colors, and descriptions.</li>
<li>Fixed Post Filter items so they can be added inside other modules nested in the Post Filter module.</li>
<li>Fixed a Theme Builder frontend issue where using preset interactions with off-canvas interactions could cause main-canvas elements to inherit off-canvas styles.</li>
<li>Fixed preset custom ID attributes not appearing on the front end for modules using a module preset or custom-attributes option-group preset.</li>
<li>Fixed the modified indicator not appearing on the Title and similar composite option groups when text shadow settings were changed in the Visual Builder.</li>
<li>Fixed a layout export security issue that could allow remote image URLs to reach internal network addresses.</li>
<li>Fixed a Visual Builder security gap where text-effects image fill could emit unsanitized stored values into generated CSS.</li>
<li>Fixed Pricing Tables horizontal gap spacing by applying `clearfix` only for block layouts.</li>
<li>Added a third-party registration hook after the AI Agent store is ready.</li>
<li>Fixed legacy saves so that encoded Builder 5 Dynamic Content cannot preserve Raw HTML for unprivileged users.</li>
<li>Fixed a Dynamic Content security issue that could preserve Raw HTML through encoded save data.</li>
<li>Fixed an issue where Theme Builder Visual Builder displayed body font instead of heading font on module headings when the heading font was set to Default.</li>
<li>Fixed a Visual Builder security gap where module background image URLs could emit unsanitized stored values into generated CSS.</li>
<li>Fixed a security issue where looped custom field content could render as unescaped HTML when a non-default date format was selected, even with raw HTML disabled.</li>
<li>Fixed an issue where looped custom field content with raw HTML enabled was not sanitized the same way as regular custom fields.</li>
<li>Fixed an issue where a CSS class from an Element/Attributes preset would override the local module CSS class on the frontend.</li>
<li>Fixed an issue where internal development tools were included in the public Divi zip, causing some malware scanners to flag the theme.</li>
<li>Fixed sticky posts appearing on every Blog module pagination page instead of only the first page.</li>
<li>Fixed Text module Visual-mode oEmbed URLs not converting to embeds on the front-end.</li>
<li>Fixed the SVG Module ignoring per-path fill colors set with inline styles.</li>
<li>Fixed Extend Attributes so field-level Text Shadow and Box Shadow copies include all related values (offset, blur, color, and Box Shadow spread/position), not only the selected preset.</li>
<li>Fixed Inspector Layout Style reset so it affects only the selected layout value’s modules, not sibling layout settings.</li>
<li>Added a Divi 5 Slider swipe controls bar with formatted slide counts, segmented progress, and a customizable swipe label. Existing sites keep dot navigation by default after conversion; new sliders use swipe controls with an option to switch back to dot navigation.</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-13-release-notes">Divi 5.13 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-13-release-notes/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Thumbnail-1.png" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>How To Get The Most Out Of Divi 5&#8217;s New Variable Fonts</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/how-to-get-the-most-out-of-divi-5s-new-variable-fonts</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/how-to-get-the-most-out-of-divi-5s-new-variable-fonts#respond</comments>
		
		<dc:creator><![CDATA[Aayush]]></dc:creator>
		<pubDate>Sun, 13 Sep 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<category><![CDATA[variable fonts]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=318412</guid>

					<description><![CDATA[<p>Every typography decision on a website is about relationships: how one text element reads against another, how clearly the hierarchy comes through, and how body text stays readable without competing with the elements around it. Static fonts give you a set of fixed styles. Variable fonts give you the continuous range between them, and Divi [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-get-the-most-out-of-divi-5s-new-variable-fonts">How To Get The Most Out Of Divi 5&#8217;s New Variable Fonts</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Every typography decision on a website is about relationships: how one text element reads against another, how clearly the hierarchy comes through, and how body text stays readable without competing with the elements around it.</p>
<p>Static fonts give you a set of fixed styles. Variable fonts give you the continuous range between them, and <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> brings those controls directly into the Visual Builder through its <a href="https://www.elegantthemes.com/blog/theme-releases/variable-fonts">Variable Fonts</a> feature.</p>
<p>In this post, we’ll use practical combinations to solve common typography challenges. We’ll configure Design Variables, tune headings, subheadings, buttons, and body text, save those decisions with Presets, and replace existing static styles without editing every module individually.</p>
<h2>What Are Variable Fonts?</h2>
<p>Static font families are divided into separate files or styles, such as Light, Regular, Semibold, and Bold. If the precise weight or width you need falls between those options, you have to compensate with another setting or settle for the closest available style.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-317064" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-static-fonts-work.jpg" alt="How static fonts work" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-static-fonts-work.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-static-fonts-work-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-static-fonts-work-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-static-fonts-work-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-static-fonts-work-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Designers often work around those gaps by adjusting letter spacing, increasing the font size, or choosing a nearby weight that does not quite produce the intended relationship.</p>
<p>A variable font stores one or more continuous design axes inside an OpenType file. Instead of offering only isolated styles, it can let you move through a range of weights, widths, slants, optical sizes, or other characteristics defined by the font designer.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-317067" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-variable-fonts-work.jpg" alt="How variable fonts work" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-variable-fonts-work.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-variable-fonts-work-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-variable-fonts-work-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-variable-fonts-work-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/How-variable-fonts-work-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Regular and Bold can still serve as familiar reference points, but you are no longer limited to them. If a heading needs a weight of 520, the font can render that coordinate instead of rounding the design to the nearest static style.</p>
<p>The available axes depend on the font. Some include only Weight, while more extensive families may also include Width, Slant, Grade, Optical Sizing, and font-specific controls.</p>
<h3>Why Should You Use Variable Fonts?</h3>
<p>Designers often start using variable fonts for their precision, but file consolidation can be useful too. One variable font file can replace several static files when a design uses multiple weights or widths.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318598" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-multiple-fonts-increase-load-times.jpg" alt="An example of how multiple fonts increase load times" width="1774" height="887" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-multiple-fonts-increase-load-times.jpg 1774w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-multiple-fonts-increase-load-times-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-multiple-fonts-increase-load-times-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-multiple-fonts-increase-load-times-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-multiple-fonts-increase-load-times-610x305.jpg 610w" sizes="auto, (max-width: 1774px) 100vw, 1774px" /></p>
<p>That can reduce the number of font requests a page needs to make. However, a variable font file may be larger than one individual static file, so the performance benefit depends on how many styles your website would otherwise load. The advantage is usually clearest when one variable file replaces several static weights or widths.</p>
<p>The same source file also creates a consistent visual foundation. A heading at Weight 600 and body text at Weight 380 still come from the same underlying typeface, so both retain the family’s shared proportions and characteristics.</p>
<p>You do not have to check whether a separate bold file still feels related to the regular style. That relationship is built into the family.</p>
<p>Variable fonts are also supported by current versions of Chrome, Firefox, Safari, and Edge. As with any web font, it is still worth defining appropriate fallbacks and testing the result across the devices your audience uses.</p>
<h2>Introducing Divi 5’s Variable Font Settings</h2>
<p>Divi 5 adds <a href="https://www.elegantthemes.com/blog/theme-releases/variable-fonts">Variable Font controls</a> to the Visual Builder. You’ll find them in the Design tab within text-related option groups such as Heading Text, Body Text, Title Text, and Meta Text.</p>
<p>The available controls appear below the standard font settings and depend on the variable font you load.</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/06/vfblog1-small.mp4" /></video></p>
<p>Weight moves through the font’s available weight range. Width makes the glyphs narrower or wider, while Slant adjusts their angle without necessarily switching to a separate italic design.</p>
<p>Grade can make text appear heavier or lighter with little or no change to the space each character occupies. This makes it useful when you need more contrast without noticeably shifting the layout.</p>
<p>Optical Sizing adjusts letterform details for the size at which the text is displayed. When supported by the font, smaller text may receive more open forms and sturdier details, while larger text can use finer proportions.</p>
<p>Some variable fonts include additional custom axes. Divi reveals the controls included in the selected font, which may include CRSV, ROND, Casual, Element Shape, Element Expansion, Thick Stroke, Thin Stroke, Counter Width, Lowercase Height, Uppercase Height, Ascender Height, Descender Depth, Figure Height, and Monospace.</p>
<p>Axes that are not included in the font remain hidden, so the panel only displays controls the selected font supports.</p>
<h2>Getting The Most Out Of Variable Fonts In Divi 5</h2>
<p>Variable fonts can expose a wide range of axes, and Divi 5 places those controls inside the Design tab. The following workflow covers how to configure your fonts before building, combine axes for common typography relationships, save the results with Presets, and apply the system across an existing website.</p>
<h3>Setting Up Design Variables</h3>
<p>You can select a variable font directly inside any module’s Design tab. That may be enough for a quick experiment or an isolated layout.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318639" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-directly-applying-a-font-to-a-heading.jpg" alt="Applying a variable font directly to a heading" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-directly-applying-a-font-to-a-heading.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-directly-applying-a-font-to-a-heading-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-directly-applying-a-font-to-a-heading-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-directly-applying-a-font-to-a-heading-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-directly-applying-a-font-to-a-heading-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For a website intended to grow, <a href="https://www.elegantthemes.com/blog/theme-releases/design-variables">Design Variables</a> provide a more maintainable foundation.</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>Open the Variable Manager from the left sidebar of the Visual Builder and select the Fonts tab. Divi provides default Heading and Body font variables that you can configure for the website.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-317962" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-where-to-find-the-variable-manager-and-select-the-font-variables-.jpg" alt="Finding font variables in the Divi 5 Variable Manager" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-where-to-find-the-variable-manager-and-select-the-font-variables-.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-where-to-find-the-variable-manager-and-select-the-font-variables--300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-where-to-find-the-variable-manager-and-select-the-font-variables--768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-where-to-find-the-variable-manager-and-select-the-font-variables--1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-where-to-find-the-variable-manager-and-select-the-font-variables--610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>After defining a font variable, click the Insert Dynamic Content icon in a compatible font field and select it. Every element connected to that variable will inherit the selected family. Changing the font in the Variable Manager will then update those connected elements throughout the website.</p>
<p>The Fonts tab includes Heading and Body variables by default, but you can create additional font variables for other roles, such as display text, labels, or accent typography.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-317963" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-the-option-to-add-more-font-variables-.jpg" alt="Adding another font variable in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-the-option-to-add-more-font-variables-.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-the-option-to-add-more-font-variables--300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-the-option-to-add-more-font-variables--768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-the-option-to-add-more-font-variables--1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/A-screenshot-of-the-option-to-add-more-font-variables--610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Sizing can follow the same reusable logic. Instead of assigning one fixed pixel size to a heading, you can use a clamp() value with a minimum, fluid range, and maximum.</p>
<p>The Numbers tab in the Variable Manager includes an option for generating fluid sizing variables. This can create a reusable clamp() scale across heading levels. You can use Divi 5’s <a href="https://www.elegantthemes.com/blog/theme-releases/variable-generator">Variable Generator</a> to build the scale more quickly.</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/sizing1-small.mp4" /></video></p>
<p>Defining the font families and type scale before building gives every connected element a consistent starting point while preserving the flexibility to update the system later.</p>
<h3>Creating Variable Font Combinations</h3>
<p>The following examples cover three typography relationships that appear frequently on real websites. Each one uses Roboto Flex, whose extensive axis range makes the differences easy to see.</p>
<p>Treat the values as practical starting points for Roboto Flex rather than universal settings. Another variable font may expose different axes, use different ranges, or respond differently at the same coordinate.</p>
<h4>Example 1: Pairing A Heading With A Subheading</h4>
<p>Headings and subheadings should feel related without becoming visually identical. If their styling is too similar, the hierarchy fades. If the contrast is too strong, they can feel as though they belong to different systems.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318623" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-demonstrate-how-heading-hierarchy-can-look-flat.jpg" alt="An example of a flat heading hierarchy" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-demonstrate-how-heading-hierarchy-can-look-flat.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-demonstrate-how-heading-hierarchy-can-look-flat-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-demonstrate-how-heading-hierarchy-can-look-flat-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-demonstrate-how-heading-hierarchy-can-look-flat-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-demonstrate-how-heading-hierarchy-can-look-flat-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>One common solution is to introduce a second typeface. That can create contrast, but it also adds another family to load and another set of decisions to maintain.</p>
<p>A variable font with several axes can create the separation within one family. Each heading level remains visibly connected while receiving a distinct weight, width, and voice.</p>
<p>For the H2, set Weight near 660 and keep Width at 100. Leave Optical Sizing on Auto and Slant at 0 to create an upright, structured heading.</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/08/an-example-of-applying-weight-and-width-to-a-heading.mp4" /></video></p>
<p>Give the H3 a lighter treatment. A Weight near 520 reduces its visual mass, while increasing Width to around 130 opens the letterforms and distinguishes it from the more compact H2.</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/08/An-example-of-applying-weight-and-width-to-the-subheading-in-Divi-5.mp4" /></video></p>
<p>A slight Slant near -3 introduces another layer of contrast without switching to a separate italic style. Lowering Grade to approximately -15 softens the density further, helping the subheading read as secondary without relying on a smaller size alone.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318638" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-font-slant-and-grade-works.jpg" alt="Adjusting font slant and grade in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-font-slant-and-grade-works.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-font-slant-and-grade-works-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-font-slant-and-grade-works-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-font-slant-and-grade-works-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-font-slant-and-grade-works-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The result is a clear hierarchy created with one family. The H2 feels grounded, while the H3 remains related but lighter, wider, and more expressive.</p>
<h4>Example 2: Scaling Buttons Without Losing Consistency</h4>
<p>Many websites use at least two button sizes. A larger CTA may anchor a hero section, while a smaller button sits inside a card or appears inline.</p>
<p>If both buttons inherit exactly the same typography, the larger one may feel balanced while the smaller label becomes thin, cramped, or difficult to scan. Variable axes let you calibrate the text for each context instead of relying only on padding and font size.</p>
<p>Using Roboto Flex, open the Button module’s Design tab and expand the Button Text option group.</p>
<p>For a standard or large button, start with Weight near 700 and Width at 100. This creates a firm, stable label.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318641" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-primary-button.jpg" alt="Applying font weight and width to a primary button" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-primary-button.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-primary-button-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-primary-button-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-primary-button-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-primary-button-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Set Letter Spacing near 0.06em to open the label slightly and give the larger button more presence without adding another level of weight.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318642" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-letter-spacing-to-a-primary-button.jpg" alt="Applying letter spacing to a primary button" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-letter-spacing-to-a-primary-button.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-letter-spacing-to-a-primary-button-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-letter-spacing-to-a-primary-button-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-letter-spacing-to-a-primary-button-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-letter-spacing-to-a-primary-button-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>A Grade near +10 can add enough density for the label to hold its own against a light background while producing less layout movement than another weight adjustment may introduce.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318643" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-text-grading-to-a-primary-button.jpg" alt="Applying font grade to a primary button" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-text-grading-to-a-primary-button.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-text-grading-to-a-primary-button-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-text-grading-to-a-primary-button-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-text-grading-to-a-primary-button-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-button-text-grading-to-a-primary-button-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For a smaller button, try Weight near 620 and reduce Width to around 80. The narrower forms use the available horizontal space more efficiently, while the adjusted weight keeps the label from feeling too delicate.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318645" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-secondary-button.jpg" alt="Applying font weight and width to a secondary button" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-secondary-button.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-secondary-button-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-secondary-button-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-secondary-button-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-weight-and-width-to-a-secondary-button-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Letter Spacing near 0.08em adds separation between the narrower characters. With Optical Sizing active, Roboto Flex can also adapt its details to the smaller text size, supporting legibility through changes such as sturdier strokes and more open forms.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318646" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-letter-spacing-to-a-secondary-button.jpg" alt="Applying letter spacing to a secondary button" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-letter-spacing-to-a-secondary-button.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-letter-spacing-to-a-secondary-button-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-letter-spacing-to-a-secondary-button-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-letter-spacing-to-a-secondary-button-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-letter-spacing-to-a-secondary-button-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Both buttons still read as part of the same design system, but each configuration responds to a different scale and amount of available space.</p>
<h4>Example 3: Balancing A Heading With Body Text</h4>
<p>Headings and body text serve different purposes. A heading is usually scanned quickly, while body text must remain comfortable across complete sentences and paragraphs.</p>
<p>Variable fonts let you tune each style for its specific job rather than treating body text as a smaller version of the heading.</p>
<p>For the heading, start with Weight near 660, Width at 100, Slant at 0, and Optical Sizing on Auto. This gives it the same solid foundation used in the first example.</p>
<p>To add more display presence without relying entirely on Weight, raise Uppercase Height to around 720.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318648" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-increasing-the-uppercase-height-for-a-heading-in-Divi-5.jpg" alt="Increasing uppercase height for a heading in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-increasing-the-uppercase-height-for-a-heading-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-increasing-the-uppercase-height-for-a-heading-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-increasing-the-uppercase-height-for-a-heading-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-increasing-the-uppercase-height-for-a-heading-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-increasing-the-uppercase-height-for-a-heading-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Set Thick Stroke near 110 to reinforce the primary strokes. A Grade around +10 can add a little more density while helping the heading sit cleanly against a light background.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318649" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-grade-and-thick-stroke-for-a-heading-in-Divi-5.jpg" alt="Applying font grade and thick stroke to a heading in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-grade-and-thick-stroke-for-a-heading-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-grade-and-thick-stroke-for-a-heading-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-grade-and-thick-stroke-for-a-heading-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-grade-and-thick-stroke-for-a-heading-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-grade-and-thick-stroke-for-a-heading-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Body text needs a different kind of support. Weight near 450, Width at 100, and Optical Sizing on Auto provide a practical starting point.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318650" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-width-and-slant-for-a-body-text-in-Divi-5.jpg" alt="Applying variable font settings to body text in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-width-and-slant-for-a-body-text-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-width-and-slant-for-a-body-text-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-width-and-slant-for-a-body-text-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-width-and-slant-for-a-body-text-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-width-and-slant-for-a-body-text-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>From there, set Lowercase Height near 545. Increasing the apparent height of lowercase letters can help their shapes remain distinguishable during sustained reading.</p>
<p>Set Thin Stroke near 85 to prevent finer lines from becoming too delicate. A Counter Width near 510 opens the internal spaces in letters such as “o,” “n,” and “d,” helping them remain clear at smaller sizes.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318652" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-lowercase-height-counter-width-and-thick-stroke-for-a-body-text-in-Divi-5.jpg" alt="Adjusting lowercase height, counter width, and thin stroke for body text in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-lowercase-height-counter-width-and-thick-stroke-for-a-body-text-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-lowercase-height-counter-width-and-thick-stroke-for-a-body-text-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-lowercase-height-counter-width-and-thick-stroke-for-a-body-text-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-lowercase-height-counter-width-and-thick-stroke-for-a-body-text-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-font-lowercase-height-counter-width-and-thick-stroke-for-a-body-text-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The heading is tuned for immediate impact, while the body text is tuned for longer reading. Font size still contributes to the hierarchy, but the axis settings give each text style proportions suited to its purpose.</p>
<h3>Locking It All In With Presets</h3>
<p>Once a heading, button, or body-text configuration feels balanced, you should not have to rebuild it manually for every module.</p>
<p>Divi 5’s Preset system turns those axis combinations into reusable styles, making it easier to keep the typography consistent as the website grows.</p>
<h4>Creating And Reusing Option Group Presets</h4>
<p>Axis values applied directly to a heading remain local to that module. That works for one element, but it becomes inefficient when the same heading appears in several sections or a teammate needs to reproduce it inside another module type.</p>
<p>An <a href="https://www.elegantthemes.com/blog/theme-releases/preset-based-design">Option Group Preset</a> saves the complete configuration of one settings group as a named style.</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/03/background-small.mp4" /></video></p>
<p>A typography preset can include the font family, variable axis values, font size, line height, letter spacing, and other settings from that option group.</p>
<p>Because the preset belongs to the option group rather than one module type, a compatible Body Text preset can be reused across modules such as Text, Blurb, and Accordion modules.</p>
<p>To create one, open the relevant option group on a styled module. Hover over the group title until the Preset icon appears.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318660" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-finding-the-option-group-preset-icon-for-text-option-group.jpg" alt="Finding the Option Group Preset icon in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-finding-the-option-group-preset-icon-for-text-option-group.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-finding-the-option-group-preset-icon-for-text-option-group-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-finding-the-option-group-preset-icon-for-text-option-group-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-finding-the-option-group-preset-icon-for-text-option-group-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-finding-the-option-group-preset-icon-for-text-option-group-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Click the icon and select New Preset From Current Styles. Give the preset a descriptive name and save it.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318662" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-an-option-group-preset-from-existing-styling-and-labelling-it-accordingly-in-Divi-5.jpg" alt="Creating an Option Group Preset from existing typography styles" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-an-option-group-preset-from-existing-styling-and-labelling-it-accordingly-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-an-option-group-preset-from-existing-styling-and-labelling-it-accordingly-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-an-option-group-preset-from-existing-styling-and-labelling-it-accordingly-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-an-option-group-preset-from-existing-styling-and-labelling-it-accordingly-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-an-option-group-preset-from-existing-styling-and-labelling-it-accordingly-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Build a focused library from there. You might create Card Title for headings used inside repeated cards, Section Intro Heading for section-level subheadings, and Primary Button Text for larger calls to action. Each preset can carry its own variable-axis configuration.</p>
<p>To apply one to another module, open the matching option group, click the Preset icon, and select the saved style.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318663" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-an-option-group-preset-in-Divi-5.jpg" alt="Applying an Option Group Preset in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-an-option-group-preset-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-an-option-group-preset-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-an-option-group-preset-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-an-option-group-preset-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-an-option-group-preset-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Setting Up A Preset Library Before You Build</h4>
<p>Creating Presets from existing modules works well when a website is already underway. When starting a new build, you can define the typography system before adding the full layout.</p>
<p>The <a href="https://www.elegantthemes.com/blog/theme-releases/preset-manager">Preset Manager</a> lets you create and organize those styles away from the live canvas. Open it from the left sidebar of the Visual Builder.</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>Open the Groups tab and select the option-group type you want to configure, such as Heading Text. Click Add New Preset to open a live preview where you can adjust the axis values before applying the preset to an element on the page.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318664" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-new-option-group-presets-using-the-Preset-Manager-on-a-fresh-site.jpg" alt="Creating an Option Group Preset in the Divi 5 Preset Manager" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-new-option-group-presets-using-the-Preset-Manager-on-a-fresh-site.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-new-option-group-presets-using-the-Preset-Manager-on-a-fresh-site-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-new-option-group-presets-using-the-Preset-Manager-on-a-fresh-site-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-new-option-group-presets-using-the-Preset-Manager-on-a-fresh-site-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-creating-new-option-group-presets-using-the-Preset-Manager-on-a-fresh-site-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Work through the typography roles your website needs: one preset for each heading level, one or more body-text styles, and a preset for each button size.</p>
<p>Once a preset is ready, click the star icon to make it the default for that option group. New compatible modules will then inherit the selected typography automatically, allowing the build to remain focused on content and structure.</p>
<p>You can repeat this process for other shared design decisions, including backgrounds, borders, and shadows. This guide on <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-create-reusable-border-and-shadow-presets-in-divi-5">creating reusable Border and Box Shadow Presets</a> explains how to extend the same approach beyond typography.</p>
<h4>How Element Presets Take It Further</h4>
<p>An Option Group Preset controls one group of related settings. That focused scope makes it reusable across compatible module types, but it does not style the rest of the element.</p>
<p>Applying a Heading Text preset to a Blurb module can configure its heading. The module’s background, border, box shadow, spacing, and other option groups remain separate.</p>
<p>An Element Preset captures the styling of the complete module. It can include the heading, background, border, box shadow, spacing, and any Option Group Presets used inside the element.</p>
<p>Apply the Element Preset to another Blurb, and the complete design arrives together. If you later update an Option Group Preset referenced inside that Element Preset, the connected elements inherit the updated group-level style.</p>
<p>To create one, click the Element Preset icon in the upper-right corner of the module settings panel. Name the preset, save it, and make it the default when that module type should use it as its standard starting point.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318666" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-where-to-create-element-presets-in-Divi-5.jpg" alt="Creating an Element Preset in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-where-to-create-element-presets-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-where-to-create-element-presets-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-where-to-create-element-presets-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-where-to-create-element-presets-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-where-to-create-element-presets-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>How The Full System Works In Practice</h4>
<p>Design Variables, Option Group Presets, and Element Presets operate at different levels. Used together, they create a maintainable typography system:</p>
<ul>
<li><strong>Design Variables store reusable values.</strong> A Font Variable can hold the selected font family, while Number Variables can hold font sizes or line heights. Color Variables can store text and border colors. Updating a variable changes every connected setting.</li>
<li><strong>Option Group Presets define how a settings group should be styled.</strong> A Subheading preset can combine the Font Variable with Weight, Width, Grade, Optical Sizing, font size, and line height. Because the preset belongs to the option group, it can be reused across compatible module types.</li>
<li><strong>Element Presets assemble those decisions into a complete module style.</strong> They can combine typography Presets with backgrounds, borders, shadows, spacing, and other settings. Updating a referenced Preset or Variable allows the change to propagate through the system.</li>
</ul>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-318669" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-design-variables-and-preset-works-in-tandem-in-Divi-5.jpg" alt="How Design Variables and Presets work together in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-design-variables-and-preset-works-in-tandem-in-Divi-5.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-design-variables-and-preset-works-in-tandem-in-Divi-5-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-design-variables-and-preset-works-in-tandem-in-Divi-5-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-design-variables-and-preset-works-in-tandem-in-Divi-5-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/An-example-of-how-design-variables-and-preset-works-in-tandem-in-Divi-5-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Local overrides remain possible. You can change one module’s border or typography setting without automatically rewriting the shared Preset. The connected system establishes consistency while still allowing intentional exceptions.</p>
<h3>Pro Tip: Replacing Existing Styles With The New Font System</h3>
<p>Adding a variable font does not automatically replace static font settings already applied throughout a website. Divi 5 includes several tools that can help you migrate those styles without opening every module individually.</p>
<h4>Find And Replace</h4>
<p><a href="https://www.elegantthemes.com/blog/theme-releases/find-and-replace-for-divi-5">Find And Replace</a> is useful for broad, repetitive changes, such as replacing the same static font value across several modules.</p>
<p>Right-click a font field in the Design tab and choose Replace Value. You can replace the existing font with a Font Design Variable and select the appropriate scope.</p>
<p>Each distinct font value or style may require its own pass. Enable Only Replace Identical Fields to avoid changing unrelated settings that happen to contain the same value.</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/changing-colors.mp4" /></video></p>
<h4>Extend Attributes</h4>
<p><a href="https://www.elegantthemes.com/blog/theme-releases/extend-attributes">Extend Attributes</a> starts with an element that is already styled correctly and copies its attributes to compatible elements.</p>
<p>Right-click the updated module, choose the option to extend its attributes, select which styles or Presets should be copied, and define how far the change should reach.</p>
<p>This approach is useful when one correctly configured module should become the source for similar elements elsewhere in the section, page, or website.</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>
<h4>Inspector</h4>
<p><a href="https://www.elegantthemes.com/blog/theme-releases/inspector">The Inspector</a> is suited to more targeted work, such as finding a module with a unique local font value or reviewing which Presets affect repeated elements.</p>
<p>Right-click an element and select Inspect. The Styles tab surfaces settings that carry custom values, making it easier to find and replace a static font. The Presets tab helps you review the Presets connected to the inspected elements and identify where a shared style should be updated.</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>For a closer comparison of these three tools, read <a href="https://www.elegantthemes.com/blog/divi-resources/inspector-vs-find-and-replace-vs-extend-attributes">Inspector Vs. Find And Replace Vs. Extend Attributes</a>.</p>
<h2>Get More From Every Variable Font Axis In Divi 5</h2>
<p>Static fonts offer a limited set of predefined styles. Variable fonts fill the space between those options, turning each supported axis into a practical design decision rather than a workaround.</p>
<p><a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> places those controls directly in the Design tab, so you can tune variable fonts without writing custom CSS. Design Variables establish the shared font families and sizing values, Option Group Presets preserve the axis combinations, and Element Presets apply them as part of complete module designs.</p>
<p>Start with the purpose of each text style. Give headings the presence they need, optimize body text for sustained reading, and adjust button labels for the space available. Then save the successful combinations so the system remains consistent as the website grows.</p>
<p>Download Divi 5 below and start exploring the full axis range available in your favorite variable fonts.</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-get-the-most-out-of-divi-5s-new-variable-fonts">How To Get The Most Out Of Divi 5&#8217;s New Variable Fonts</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-get-the-most-out-of-divi-5s-new-variable-fonts/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/divi-5-make-most-out-of-variable-fonts-ft-img-3.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>Divi 5 Sneak Peek: Components and Slots</title>
		<link>https://www.elegantthemes.com/blog/theme-sneak-peeks/components-and-slots</link>
					<comments>https://www.elegantthemes.com/blog/theme-sneak-peeks/components-and-slots#comments</comments>
		
		<dc:creator><![CDATA[Nick Roach]]></dc:creator>
		<pubDate>Sat, 12 Sep 2026 02:08:25 +0000</pubDate>
				<category><![CDATA[Theme Sneak Peeks]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=320532</guid>

					<description><![CDATA[<p>We’re back with another Divi 5 sneak peek, and this one introduces two upcoming features that will fundamentally improve the way you build reusable designs in Divi: Components and Slots. Components are a reimagining of Divi’s existing Global Elements. They retain the power of globally synchronized elements while introducing a much more flexible system for [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/theme-sneak-peeks/components-and-slots">Divi 5 Sneak Peek: Components and Slots</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>We’re back with another <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> sneak peek, and this one introduces two upcoming features that will fundamentally improve the way you build reusable designs in Divi: <a href="https://www.youtube.com/watch?v=kLTbUzyhO7w" rel="noopener" target="_blank">Components and Slots</a>.</p>
<p>Components are a reimagining of Divi’s existing Global Elements. They retain the power of globally synchronized elements while introducing a much more flexible system for controlling what stays global and what can be customized on each instance.</p>
<p>You can detach individual settings from modules nested inside a Component, making those settings editable at the instance level while everything else remains globally synchronized. You can also add Slots, which create free-form areas inside Components where unique content can be built for each instance.</p>
<p>We’re also giving Components a much more prominent place in the builder, alongside systems such as Presets and Variables, with new interfaces for creating, managing, editing, using, and detaching Components.</p>
<p><strong>The following video covers it all. Let’s take a closer look.</strong> 👇</p>
<p><iframe loading="lazy" class="youtube-player" type="text/html"  title="New features incoming!" width="719" height="404" src="https://www.youtube.com/embed/kLTbUzyhO7w?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 id="components-are-the-evolution-of-global-modules">Components Are The Evolution Of Global Elements</h2>
<p>Divi was ahead of its time when we introduced Global Elements and selective synchronization nearly a decade ago. The ability to reuse elements across your website, keep them globally connected, and selectively detach individual settings gave Divi users a powerful way to build more consistent and maintainable websites.</p>
<p>Now, it’s time to take that concept to the next level.</p>
<h2 id="detach-individual-attributes-for-instance-level-editing">Detach Nested Attributes For Instance-Level Editing</h2>
<p>One of the most important additions to Components is the ability to detach individual attributes from modules nested inside the Component.</p>
<p>Imagine creating a reusable testimonial Component that includes an image module, an icon module, text modules, and other design elements.</p>
<p>You might want the Component’s typography, spacing, colors, borders, sizing, and layout to remain synchronized globally. At the same time, every testimonial needs a different photo, name, job title, and quote.</p>
<p>With Components, those individual attributes can be detached.</p>
<p>Once an attribute has been detached, it becomes editable at the instance level. The rest of the Component remains connected to the global Component definition.</p>
<p>For example, you could detach:</p>
<ul>
<li>The text inside a Text Module.</li>
<li>The image used by an Image Module.</li>
<li>A Button Module’s link URL.</li>
<li>A background image or background color.</li>
<li>Specific design settings that should vary between instances.</li>
</ul>
<p>You decide which attributes remain global and which attributes become local.</p>
<p>This gives Components a much more practical balance between <strong>global synchronization</strong> and <strong>instance-level customization</strong>.</p>
<h2 id="local-and-global-settings-are-clearly-separated">Local And Global Settings Are Clearly Separated</h2>
<p>We’re also updating the Divi Builder interface to make the distinction between local and global Component settings much clearer.</p>
<p>When editing a Component instance, the settings panel will surface the attributes that have been detached and are available for local editing.</p>
<p>These settings are unique to the current instance.</p>
<p>The globally synchronized attributes remain separate from local settings and are edited directly in the Component.</p>
<p>This makes it immediately clear which changes will affect only the current instance and which changes will affect every instance of the Component across your website.</p>
<p>When you enter Component editing mode, you can work with the global structure and settings without mixing them with instance-specific values.</p>
<h2 id="components-become-first-class-citizens-in-the-divi-builder">Components Become First-Class Citizens In The Divi Builder</h2>
<p>Components are also getting a dedicated place in the builder interface.</p>
<p>Rather than treating global elements as an extension of the existing module workflow, this update elevates Components alongside other foundational features such as <strong>Presets</strong> and <strong>Variables</strong>.</p>
<p>The new Component interface will make it easier to:</p>
<ul>
<li>Create Components from existing Divi elements.</li>
<li>Find and insert Components while building.</li>
<li>Identify Component instances on the page.</li>
<li>Manage detached attributes.</li>
<li>Detach a Component instance when you no longer want it synchronized.</li>
<li>Convert existing elements to existing components.</li>
</ul>
<p>The goal is to make reusable design a core part of the Divi 5 workflow, rather than something hidden behind individual element settings.</p>
<p>As websites become larger and design systems become more sophisticated, Components will provide a much better foundation for building and maintaining reusable layouts.</p>
<h2 id="introducing-the-new-slot-module">The Upcoming Slot Module</h2>
<p>Components become even more powerful with the introduction of <strong>Slots</strong>.</p>
<p>A Slot is a special module that can be added inside a Component. The Slot itself is part of the globally synchronized Component, but the content placed inside it is unique to each Component instance.</p>
<p>In other words, a Slot creates a free-form editable area inside an otherwise global Component.</p>
<p>For example, imagine creating a site-wide call-to-action Component. The heading, description, background, spacing, typography, and overall layout could remain globally synchronized, ensuring every instance shares the same design and messaging.</p>
<p>Within that Component, however, you could add a Slot specifically for the call to action.</p>
<p>On one page, the Slot might contain a Button Module. On the other hand, it could contain an Email Opt-in Module. Somewhere else, it could contain a Contact Form or an entirely different collection of modules.</p>
<p>Everything surrounding the Slot remains part of the global Component and updates everywhere at once, while that one designated area can contain something uniquely suited to each instance.</p>
<p>The Component defines what stays consistent. The Slot defines where you’re free to build something unique.</p>
<h2 id="components-presets-and-variables-work-together">Components, Presets, And Variables Work Together</h2>
<p>Components also fit naturally into Divi 5’s broader approach to building design systems.</p>
<ul>
<li><strong>Variables</strong> let you define reusable values.</li>
<li><strong>Presets</strong> let you define reusable sets of element settings.</li>
<li><strong>Components</strong> let you define reusable collections of elements and determine which parts remain synchronized.</li>
<li><strong>Slots</strong> let you introduce unique content within those Components.</li>
</ul>
<p>These systems solve different problems, and they become especially powerful when used together.</p>
<p>The result is a much more composable way to build websites with Divi.</p>
<p>What do you think? <a href="https://www.youtube.com/watch?v=kLTbUzyhO7w" rel="noopener" target="_blank">Drop us a comment</a> on the YouTube video and let us know how we can make Components even better!</p>
<p>The post <a href="https://www.elegantthemes.com/blog/theme-sneak-peeks/components-and-slots">Divi 5 Sneak Peek: Components and Slots</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/theme-sneak-peeks/components-and-slots/feed</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/magnifying2.png" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>5 Creative CSS Grid Editor Layouts &#038; How To Create Them In Divi 5</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/creative-css-grid-editor-layouts-how-to-create-them-in-divi-5</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/creative-css-grid-editor-layouts-how-to-create-them-in-divi-5#respond</comments>
		
		<dc:creator><![CDATA[Aayush]]></dc:creator>
		<pubDate>Fri, 11 Sep 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[CSS Grid]]></category>
		<category><![CDATA[css grid editor]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=319325</guid>

					<description><![CDATA[<p>Perfectly even Grids are useful, but they are not always memorable. Stretch one card, deepen another, or build a diagonal that climbs across the page, and the layout begins to guide the eye with purpose. A few deliberate placement choices can change the entire composition. Divi 5&#8216;s Grid Editor makes those choices easy to explore. [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/creative-css-grid-editor-layouts-how-to-create-them-in-divi-5">5 Creative CSS Grid Editor Layouts &#038; How To Create Them In Divi 5</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Perfectly even Grids are useful, but they are not always memorable. Stretch one card, deepen another, or build a diagonal that climbs across the page, and the layout begins to guide the eye with purpose. A few deliberate placement choices can change the entire composition.</p>
<p><a href="https://www.elegantthemes.com/members-area/divi-5/">Divi 5</a>&#8216;s <a href="https://www.elegantthemes.com/blog/theme-releases/css-grid-editor">Grid Editor</a> makes those choices easy to explore. You can resize and reposition items directly on a visual canvas, then see how each change affects the layout before you move on.</p>
<p>In this guide, we will build five creative Grid layouts, each designed to direct attention in a different way.</p>
<h2>How CSS Grid Works</h2>
<p>Before CSS Grid, designers commonly built page layouts with tables, floats, positioning, and, later, Flexbox. Those methods still have valid uses, but complex two-dimensional layouts often required extra markup or careful workarounds.</p>
<p>CSS Grid provides a layout system built around <strong>columns</strong> and <strong>rows</strong>. Their intersections form cells, and child items can be placed automatically or assigned to specific positions within that structure. By default, items follow the Grid&#8217;s auto-placement behavior, but you can change their starting points, spans, and flow.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-313896" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/Differences-of-Flex-vs-Grid-Shown-Visually-e1778615569872.jpg" alt="Visual comparison of Flexbox and CSS Grid layouts" width="2226" height="1206" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/Differences-of-Flex-vs-Grid-Shown-Visually-e1778615569872.jpg 2226w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/Differences-of-Flex-vs-Grid-Shown-Visually-e1778615569872-300x163.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/Differences-of-Flex-vs-Grid-Shown-Visually-e1778615569872-1946x1054.jpg 1946w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/Differences-of-Flex-vs-Grid-Shown-Visually-e1778615569872-768x416.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/Differences-of-Flex-vs-Grid-Shown-Visually-e1778615569872-1536x832.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/Differences-of-Flex-vs-Grid-Shown-Visually-e1778615569872-2048x1110.jpg 2048w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/05/Differences-of-Flex-vs-Grid-Shown-Visually-e1778615569872-610x330.jpg 610w" sizes="auto, (max-width: 2226px) 100vw, 2226px" /></p>
<p>An item can span multiple columns, multiple rows, or both. You can also preserve empty cells, align items to shared tracks, and place multiple items in the same Grid area when a design calls for overlap. The browser still follows the rules you define, which makes asymmetrical layouts easier to control.</p>
<p>Grid tracks can use fixed values, flexible units, content-based sizes, or combinations of all three. That flexibility helps the same structure adapt across different screen sizes, although complex Grids still need responsive adjustments at Divi&#8217;s breakpoints.</p>
<h3>Why Grid Works For Creative Layouts</h3>
<p>Creative layouts often rely on contrast, intentional empty space, varied proportions, and elements that break a uniform rhythm. CSS Grid supports those choices without abandoning an underlying structure.</p>
<p>Empty cells can remain open by design. One item can span several tracks while another stays compact. Items can also share cells for layered effects. These controls make it possible to create magazine spreads, stair-step compositions, pinboards, and other expressive layouts with one two-dimensional system.</p>
<h2>How To Build A Grid Layout In Divi 5</h2>
<p>When writing CSS by hand, you define properties such as <code>grid-template-columns</code> and <code>grid-template-rows</code>, then add placement or span rules for individual items. Divi 5 exposes the same core concepts through <a href="https://www.elegantthemes.com/blog/divi-resources/understanding-every-grid-setting-in-divi-5">Grid settings in the Visual Builder</a>.</p>
<p>You can begin with one of Divi&#8217;s premade <a href="https://www.elegantthemes.com/blog/theme-releases/css-grid">Grid templates</a> or create a custom structure.</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/2025/09/templates-small.mp4" type="video/mp4" /></video></p>
<p>To turn a <strong>Section</strong>, <strong>Row</strong>, <strong>Column</strong>, or <strong>Module Group</strong> into a Grid container, open its <strong>Design</strong> tab, expand <strong>Layout</strong>, and set <strong>Layout Style</strong> to <strong>Grid</strong>. You can use this setting on a new container or an existing one.</p>
<p><a href="https://www.elegantthemes.com/blog/divi-resources/mastering-divi-5s-grid-offset-editor">Grid Offset Rules</a> let you target child positions from the container. A rule can change where a matching item starts or how many columns and rows it spans. Because the rule belongs to the container rather than the child element, the pattern can continue when matching items are added, duplicated, or generated by a Loop.</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/07/grid-blog-2-small.mp4" type="video/mp4" /></video></p>
<h3>How To Use The Grid Editor</h3>
<p>The <a href="https://www.elegantthemes.com/blog/divi-resources/build-grids-visually-with-divi-5s-new-css-grid-editor-new-feature">Grid Editor</a> turns those settings and rules into a visual canvas.</p>
<p>When <strong>Layout Style</strong> is set to <strong>Grid</strong>, an <strong>Open Grid Editor</strong> button appears in the Grid settings. Click it to view the container&#8217;s columns, rows, gaps, preview items, and offset rules in one place.</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/07/grid-blog-1-small.mp4" type="video/mp4" /></video></p>
<p>Drag a column or row edge to resize a track. Adjust the horizontal and vertical gaps by dragging or entering exact values. To resize an item, drag one of its corner anchors so it spans additional rows or columns. You can also drag and drop an item into another cell to change its position.</p>
<p>These visual changes create or update Grid Offset Rules behind the scenes. The editor also highlights the rules and the positions they affect, making complex patterns easier to understand.</p>
<p>The <strong>Grid Items</strong> control deserves one clarification: it adds sample items to the editor for visualization. It does not add Columns, modules, or other child elements to the container. Once the preview looks right, add the actual child elements separately in the builder.</p>
<h2>Building Five Creative Layouts In Divi 5</h2>
<p>Each of the following layouts uses the same Grid Editor tools, but changes the placement strategy. Some establish a clear focal point, some create rhythm through repeated spans, and others use empty cells as part of the composition.</p>
<h3>1. The Magazine Lead</h3>
<p>The Magazine Lead places one story ahead of the rest. It works well for news pages, blog indexes, portfolios, and any section built around one primary feature with several supporting cards.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319669" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-magazine-layout-would-look.jpg" alt="Magazine Lead Grid layout with one large feature and smaller supporting cards" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-magazine-layout-would-look.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-magazine-layout-would-look-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-magazine-layout-would-look-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-magazine-layout-would-look-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-magazine-layout-would-look-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Magazine and news sites can use the large block for the lead story. Agencies can place a flagship project there while recent work fills the smaller positions around it.</p>
<p>Add a new Row and choose <strong>Build Custom Grid</strong> from the structure options.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319103" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-build-custom-grid-button-in-the-insert-row-option-in-Divi-5-1.jpg" alt="Build Custom Grid option in the Divi 5 Row structure menu" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-build-custom-grid-button-in-the-insert-row-option-in-Divi-5-1.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-build-custom-grid-button-in-the-insert-row-option-in-Divi-5-1-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-build-custom-grid-button-in-the-insert-row-option-in-Divi-5-1-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-build-custom-grid-button-in-the-insert-row-option-in-Divi-5-1-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-build-custom-grid-button-in-the-insert-row-option-in-Divi-5-1-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the Grid Editor, set <strong>Columns</strong> to 4, <strong>Rows</strong> to 3, <strong>Grid Items</strong> to 12, and <strong>Gap</strong> to approximately 15px to 20px. The sample items let you see every position while you shape the layout.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319602" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-setting-the-options-on-the-Grid-Editor.jpg" alt="Four-column, three-row Magazine Lead settings in the Grid Editor" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-setting-the-options-on-the-Grid-Editor.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-setting-the-options-on-the-Grid-Editor-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-setting-the-options-on-the-Grid-Editor-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-setting-the-options-on-the-Grid-Editor-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-setting-the-options-on-the-Grid-Editor-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Select the sample item in the top-left position. Drag its right anchor one column to the right, then drag its bottom anchor down one row. The item now spans columns 1 and 2 and rows 1 and 2, creating a two-by-two feature area.</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/08/How-to-drag-a-grid-item-to-span-columns-and-rows.mp4" type="video/mp4" /></video></p>
<p>Leave the supporting positions at their default one-column, one-row size. Their uniform proportions keep the main feature visually dominant.</p>
<p>Remember that these Grid Items are previews. They show the intended pattern, but they do not create content. Add the required child Columns from the Row&#8217;s <strong>Content</strong> tab, then place your modules inside them.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319188" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-to-add-more-columns-from-the-content-tab.jpg" alt="Adding child Columns from a Row's Content tab in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-to-add-more-columns-from-the-content-tab.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-to-add-more-columns-from-the-content-tab-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-to-add-more-columns-from-the-content-tab-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-to-add-more-columns-from-the-content-tab-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-to-add-more-columns-from-the-content-tab-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>As the real child elements are added, the container&#8217;s Grid and offset rules determine where matching positions appear.</p>
<h3>2. The Cascade</h3>
<p>The Cascade creates a staircase that moves the eye down and to the right. It suits sections with a clear sequence or a progression from broad information to a concise result.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319671" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-cascade-layout-would-look.jpg" alt="Cascade Grid layout descending from left to right" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-cascade-layout-would-look.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-cascade-layout-would-look-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-cascade-layout-would-look-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-cascade-layout-would-look-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-cascade-layout-would-look-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Useful applications include:</p>
<ul>
<li><strong>Process flows:</strong> Give the first step the most room, then reduce each following step as the sequence approaches its outcome.</li>
<li><strong>Feature tiers:</strong> Lead with the broadest offering and use shorter cards for progressively focused additions.</li>
<li><strong>Sequential reveals:</strong> Build a narrative across four visual beats.</li>
</ul>
<p>Add a new Row and choose <strong>Build Custom Grid</strong>. Set <strong>Columns</strong> to 4, <strong>Rows</strong> to 4, <strong>Grid Items</strong> to 4, and <strong>Gap</strong> to 0px. With no gap, the cards read as one connected stepped shape.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319610" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-the-column-row-and-gap-settings-for-cascade.jpg" alt="Four-column, four-row Cascade settings with no Grid gap" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-the-column-row-and-gap-settings-for-cascade.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-the-column-row-and-gap-settings-for-cascade-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-the-column-row-and-gap-settings-for-cascade-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-the-column-row-and-gap-settings-for-cascade-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-the-column-row-and-gap-settings-for-cascade-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Resize and position the four sample items as follows:</p>
<ul>
<li>Place item 1 in row 1 and span all four columns.</li>
<li>Place item 2 in row 2, start it at column 2, and span columns 2 through 4.</li>
<li>Place item 3 in row 3, start it at column 3, and span columns 3 and 4.</li>
<li>Place item 4 in row 4 and column 4.</li>
</ul>
<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/08/An-example-of-how-to-create-a-cascading-grid-layout-in-the-Grid-Editor.mp4" type="video/mp4" /></video></p>
<p>Each drag updates the corresponding Grid Offset Rule at the container level.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319609" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-cascade-layout-put-together.jpg" alt="Completed Cascade layout in the Divi 5 Grid Editor" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-cascade-layout-put-together.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-cascade-layout-put-together-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-cascade-layout-put-together-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-cascade-layout-put-together-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-the-cascade-layout-put-together-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The open cells in the lower-left area are intentional. They create the diagonal edge that gives the composition its direction. Because the eye finishes at the final card in the lower-right corner, that card is a natural place for an outcome, next step, or call to action.</p>
<h3>3. The Pinboard</h3>
<p>The Pinboard gives a collection more rhythm by mixing wide, tall, and standard cards. It is useful when items have similar importance but a uniform Grid would feel too repetitive.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319675" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-pinboard-layout-would-look.jpg" alt="Pinboard Grid layout with varied card widths and heights" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-pinboard-layout-would-look.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-pinboard-layout-would-look-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-pinboard-layout-would-look-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-pinboard-layout-would-look-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-pinboard-layout-would-look-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Photography and design portfolios benefit from varied crops. Team pages can mix standard profiles with a wide group photo or introduction. Resource libraries and mixed-media feeds can also use the pattern to distinguish formats without creating a strict hierarchy.</p>
<p>In the Grid Editor, set <strong>Columns</strong> to 4, leave <strong>Rows</strong> set to auto, and set <strong>Grid Items</strong> to 8. Use a <strong>Gap</strong> of approximately 8px to 12px so the cards feel closely grouped while remaining distinct.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319654" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-settings-for-the-pinboard-grid-layout.jpg" alt="Four-column Pinboard settings in the Divi 5 Grid Editor" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-settings-for-the-pinboard-grid-layout.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-settings-for-the-pinboard-grid-layout-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-settings-for-the-pinboard-grid-layout-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-settings-for-the-pinboard-grid-layout-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-settings-for-the-pinboard-grid-layout-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Create the pattern by combining three item sizes. Leave standard cards at one column by one row. For a wide card, drag its right anchor across a second column. For a tall card, drag its bottom anchor down across a second row. Reposition the sample items as needed to match the arrangement shown below.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319655" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-various-span-rules-to-make-the-pinboard-layout-in-the-grid-editor.jpg" alt="Wide and tall span rules used to create the Pinboard layout" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-various-span-rules-to-make-the-pinboard-layout-in-the-grid-editor.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-various-span-rules-to-make-the-pinboard-layout-in-the-grid-editor-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-various-span-rules-to-make-the-pinboard-layout-in-the-grid-editor-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-various-span-rules-to-make-the-pinboard-layout-in-the-grid-editor-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-applying-various-span-rules-to-make-the-pinboard-layout-in-the-grid-editor-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Creating A Repeatable Pattern With Grid Offset Rules</h4>
<p>Rules that target individual positions work well for a fixed collection. If a Loop or feed will add items over time, use a repeating target so the visual rhythm continues as the content grows.</p>
<p>Hover over a rule pill and click its edit icon to open the targeting options.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319658" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-revealing-the-edit-button-on-rule-pill-hover.jpg" alt="Edit icon revealed on a Grid Offset Rule pill" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-revealing-the-edit-button-on-rule-pill-hover.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-revealing-the-edit-button-on-rule-pill-hover-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-revealing-the-edit-button-on-rule-pill-hover-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-revealing-the-edit-button-on-rule-pill-hover-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-revealing-the-edit-button-on-rule-pill-hover-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Edit the rule&#8217;s target so it applies to every fourth item instead of one fixed position. The two-row span will then repeat for every matching child position.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319659" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset.jpg" alt="Changing a Grid Offset Rule to target every fourth item" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>You can use the same approach for wide cards and other recurring placements. When new child items are added or generated, each matching position receives the container-level rule.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319660" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset-for-other-span-rules.jpg" alt="Repeating targets applied to additional Pinboard span rules" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset-for-other-span-rules.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset-for-other-span-rules-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset-for-other-span-rules-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset-for-other-span-rules-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-changing-the-Target-Offset-for-other-span-rules-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>4. The Bookend</h3>
<p>The Bookend places two tall anchors on the outer edges and four smaller cards between them. The strong boundaries frame the middle content and keep the composition balanced.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319679" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-bookend-layout-would-look.jpg" alt="Bookend Grid layout with tall cards on both outer edges" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-bookend-layout-would-look.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-bookend-layout-would-look-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-bookend-layout-would-look-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-bookend-layout-would-look-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-bookend-layout-would-look-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Editorial features can use the anchors for opening and closing images. Sponsor rows can frame standard logos with two featured partners. Comparison sections can also use the outer cards to mark two endpoints while the middle cards hold the options between them.</p>
<p>Set <strong>Columns</strong> to 4, <strong>Rows</strong> to 2, <strong>Grid Items</strong> to 6, and <strong>Gap</strong> to approximately 10px to 12px. Select the first sample item and drag its bottom anchor down one row so it spans both rows in column 1.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319662" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-first-column-span-two-rows-for-the-Bookend-layout.jpg" alt="First Bookend item spanning two Grid rows" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-first-column-span-two-rows-for-the-Bookend-layout.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-first-column-span-two-rows-for-the-Bookend-layout-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-first-column-span-two-rows-for-the-Bookend-layout-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-first-column-span-two-rows-for-the-Bookend-layout-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-first-column-span-two-rows-for-the-Bookend-layout-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Move the last sample item to column 4, then stretch it across both rows. Leave the four middle items at their default one-column, one-row size so they fill columns 2 and 3 across the two rows.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319663" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-fourth-column-span-two-rows-for-the-Bookend-layout.jpg" alt="Final Bookend item positioned in column four and spanning two rows" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-fourth-column-span-two-rows-for-the-Bookend-layout.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-fourth-column-span-two-rows-for-the-Bookend-layout-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-fourth-column-span-two-rows-for-the-Bookend-layout-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-fourth-column-span-two-rows-for-the-Bookend-layout-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-making-the-fourth-column-span-two-rows-for-the-Bookend-layout-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The completed structure contains six positions: two tall anchors on the outside and four equal cards in the middle.</p>
<h3>5. The Feature Wall</h3>
<p>The Feature Wall opens with a full-width statement, follows with four equal cards, and closes with a shorter three-column card. The unfilled final cell gives the bottom row an intentional stopping point.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319681" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look.jpg" alt="Feature Wall Grid with a full-width lead card and open final cell" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>On a landing page, the top band can hold a headline, the middle row can present features or benefits, and the bottom card can carry a closing note or call to action. A case study could use the same positions for a headline result, supporting metrics, and a concise summary.</p>
<p>Add a new Row. In the Grid Editor, set <strong>Columns</strong> to 4, <strong>Grid Items</strong> to 6, and <strong>Gap</strong> to 10px. Select the first sample item and drag its right anchor across all four columns to create the top band.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319666" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-first-card-span-entire-four-columns-for-the-Feature-Wall-layout-1.jpg" alt="First Feature Wall item spanning all four columns" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-first-card-span-entire-four-columns-for-the-Feature-Wall-layout-1.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-first-card-span-entire-four-columns-for-the-Feature-Wall-layout-1-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-first-card-span-entire-four-columns-for-the-Feature-Wall-layout-1-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-first-card-span-entire-four-columns-for-the-Feature-Wall-layout-1-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-first-card-span-entire-four-columns-for-the-Feature-Wall-layout-1-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Leave items 2 through 5 at their default one-column, one-row size so they fill the second row.</p>
<p>Move item 6 to column 1 in the third row, then stretch it across columns 1 through 3. Stop before column 4 to preserve the open final cell.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319667" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-sixth-card-span-entire-four-columns-for-the-Feature-Wall-layout.jpg" alt="Sixth Feature Wall item spanning three of four columns" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-sixth-card-span-entire-four-columns-for-the-Feature-Wall-layout.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-sixth-card-span-entire-four-columns-for-the-Feature-Wall-layout-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-sixth-card-span-entire-four-columns-for-the-Feature-Wall-layout-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-sixth-card-span-entire-four-columns-for-the-Feature-Wall-layout-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-sixth-card-span-entire-four-columns-for-the-Feature-Wall-layout-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The top and middle rows establish an edge-to-edge rhythm, so the shorter bottom row reads as a deliberate variation. The slight asymmetry gives the layout a clear finish.</p>
<p>The fourth cell can also hold a small testimonial, supporting statistic, or Button Module. Add another child item if the content benefits from filling that position.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319682" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look-with-non-empty-cell.jpg" alt="Feature Wall layout with content added to the final Grid cell" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look-with-non-empty-cell.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look-with-non-empty-cell-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look-with-non-empty-cell-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look-with-non-empty-cell-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-the-feature-wall-layout-would-look-with-non-empty-cell-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Make Each Grid Responsive</h2>
<p>The desktop structures above should be adjusted for tablet and phone breakpoints. A four-column Grid that works on a large screen may feel compressed when the same track count and spans are carried onto a narrow viewport.</p>
<p>Use Divi&#8217;s responsive controls to reduce the number of columns, change item spans or starting positions, and tighten gaps at smaller breakpoints. A practical starting point is four columns on desktop, two on tablet, and one on phone, but the content should determine the final structure. Preview every breakpoint and confirm that the reading order still makes sense when decorative empty cells are removed or the layout is simplified.</p>
<h2>Styling Your Grid Layouts In Divi 5</h2>
<p>Once the structure is set, use styling to reinforce its hierarchy. A dominant card might use a stronger fill, larger type, or both. In an evenly weighted layout such as the Pinboard, variations in image crop, type size, or font weight can create rhythm without making one item feel disproportionately important.</p>
<p>Divi 5&#8217;s <a href="https://www.elegantthemes.com/blog/theme-releases/design-variables">Design Variables</a> make those choices easier to maintain. A Design Variable is a reusable color, font, number, image, text string, or URL that can be referenced in compatible fields throughout a site.</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/2025/04/openvariables-small.mp4" type="video/mp4" /></video></p>
<p>Card colors, typography, spacing, gaps, and other supported values can reference variables instead of repeating static values. When you update a variable, every field that uses it updates as well.</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/2025/04/all-small.mp4" type="video/mp4" /></video></p>
<p>Create and manage these values in the <strong>Variable Manager</strong> in the Visual Builder.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319689" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-design-variable-colors-can-be-used-for-styling-the-grids-and-their-items.jpg" alt="Design Variable colors applied to Grid items in Divi 5" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-design-variable-colors-can-be-used-for-styling-the-grids-and-their-items.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-design-variable-colors-can-be-used-for-styling-the-grids-and-their-items-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-design-variable-colors-can-be-used-for-styling-the-grids-and-their-items-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-design-variable-colors-can-be-used-for-styling-the-grids-and-their-items-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-how-design-variable-colors-can-be-used-for-styling-the-grids-and-their-items-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For color systems, the <a href="https://www.elegantthemes.com/blog/theme-releases/variable-generator">Variable Generator</a> can create a palette of related color variables from primary and secondary colors. Because those generated colors retain their relationships, changing a base color can update its related shades across the design.</p>
<p><img loading="lazy" decoding="async" class="with-border aligncenter size-full wp-image-319283" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-generating-colors-with-Divi-5s-variable-generator.jpg" alt="Generating related color variables with the Divi 5 Variable Generator" width="1800" height="900" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-generating-colors-with-Divi-5s-variable-generator.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-generating-colors-with-Divi-5s-variable-generator-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-generating-colors-with-Divi-5s-variable-generator-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-generating-colors-with-Divi-5s-variable-generator-1536x768.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/A-screenshot-of-generating-colors-with-Divi-5s-variable-generator-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Build Your Grids Visually In Divi 5</h2>
<p>These five examples, built in <a href="https://www.elegantthemes.com/members-area/divi-5/">Divi 5</a>, use the same small set of actions: define tracks, resize items, reposition them, preserve intentional gaps, and target repeating positions when the content may grow. The visual result changes because the placement strategy changes.</p>
<p>Start with the layout that best matches your content, then adjust its proportions, responsive behavior, and styling in the Grid Editor. Once the structure works, save it as part of your design system and reuse the pattern wherever it supports the story you want the page to tell.</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/creative-css-grid-editor-layouts-how-to-create-them-in-divi-5">5 Creative CSS Grid Editor Layouts &#038; How To Create Them 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/creative-css-grid-editor-layouts-how-to-create-them-in-divi-5/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/divi-5-creative-css-grid-layouts-ft-img-5.jpg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>How To Build A Filterable Real Estate Listings With Divi 5</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-filterable-real-estate-listings-with-divi-5</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-filterable-real-estate-listings-with-divi-5#comments</comments>
		
		<dc:creator><![CDATA[Deanna McLean]]></dc:creator>
		<pubDate>Thu, 10 Sep 2026 16:00:00 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<category><![CDATA[Real Estate Listings]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=319355</guid>

					<description><![CDATA[<p>Real estate websites live or die by their search experience. Visitors expect to enter an address or city, choose a property type, select the number of bedrooms and bathrooms, pick an amenity, and see matching listings without leaving the page or wrestling with a clunky filtering plugin. In this post, we&#8217;ll build that kind of [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/how-to-build-a-filterable-real-estate-listings-with-divi-5">How To Build A Filterable Real Estate Listings With Divi 5</a> appeared first on <a href="https://www.elegantthemes.com/blog">Elegant Themes Blog</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Real estate websites live or die by their search experience. Visitors expect to enter an address or city, choose a property type, select the number of bedrooms and bathrooms, pick an amenity, and see matching listings without leaving the page or wrestling with a clunky filtering plugin.</p>
<p>In this post, we&#8217;ll build that kind of filterable listings page using <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> and <a href="https://www.elegantthemes.com/integrations/advanced-custom-fields/">Advanced Custom Fields (ACF)</a>. We&#8217;ll combine two Divi 5 features, the <a href="https://www.elegantthemes.com/blog/theme-releases/loop-builder">Loop Builder</a> and the Post Filter module introduced with the <a href="https://www.elegantthemes.com/blog/theme-releases/loop-filter-modules">Loop Filter Modules</a>, to create a fully custom property grid that visitors can search and filter on the front end. ACF will handle the custom fields, including price, city, bedrooms, bathrooms, square footage, amenities, and agent name, that power the loop cards and filter form.</p>
<p>By the end, you&#8217;ll have a polished real estate layout you can use on your next project, along with a downloadable JSON file of the completed design.</p>
<p>Let&#8217;s get started.</p>
<h2>What Is The Loop Builder In Divi 5?</h2>
<p>The Loop Builder is one of the most flexible features in Divi 5. It lets you turn any Divi element into a dynamic loop of content pulled from your site&#8217;s database. That content can be posts, custom post types, terms (categories or tags), or users.</p>
<p>In simple terms, you design one item exactly the way you want it to look, tell Divi which content to cycle through, and the builder automatically repeats that design for every matching item.</p>
<p>Here&#8217;s how it works:</p>
<p><strong>1. Design The Template</strong></p>
<p>Build a single loop item using any combination of Divi modules and design settings. You aren&#8217;t limited to a premade Blog or Portfolio module, so you have complete creative freedom.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319418 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-5-Loop-Builder-1.jpeg" alt="Divi 5 Loop Builder" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-5-Loop-Builder-1.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-5-Loop-Builder-1-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-5-Loop-Builder-1-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-5-Loop-Builder-1-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-5-Loop-Builder-1-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>2. Enable Looping And Configure The Query</strong></p>
<p>Turn looping on for the container that holds your design. Then set the query options: choose the post type (or terms/users), filter by categories or tags, include or exclude specific items, set the order, decide how many items appear per page, apply an offset, or create custom meta queries.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319419 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enabling-the-loop-builder.jpeg" alt="enabling the loop builder" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enabling-the-loop-builder.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enabling-the-loop-builder-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enabling-the-loop-builder-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enabling-the-loop-builder-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enabling-the-loop-builder-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p><strong>3. Insert Dynamic Content</strong></p>
<p>Replace static text and images with dynamic content from the loop, including the post title, Featured Image, excerpt, custom fields, and more. Each repeated item automatically displays its own data.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319420 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/using-dynamic-content-in-Divi-5.jpeg" alt="using dynamic content in Divi 5" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/using-dynamic-content-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/using-dynamic-content-in-Divi-5-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/using-dynamic-content-in-Divi-5-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/using-dynamic-content-in-Divi-5-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/using-dynamic-content-in-Divi-5-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Because the Loop Builder works with any Divi element, you have full control over the design of each repeated item. It supports custom post types, ACF fields, WooCommerce products, taxonomy terms, and users. This makes it suitable for many types of dynamic content.</p>
<h3>Why It&#8217;s Perfect For Real Estate Listings</h3>
<p>For a real estate website, you can design a custom property card that pulls in the exact fields you need, then have Divi automatically generate a responsive grid of those cards. This gives you control over the layout while keeping it connected to the listing data.</p>
<h2>What Are The Loop Filter Modules?</h2>
<p>The Loop Filter Modules add front-end controls to the Loop Builder. They let visitors search, filter, and sort looped content without leaving the page or relying on a separate third-party filtering plugin.</p>
<p>The foundation is the <strong>Post Filter</strong> module. It serves as a form wrapper with one or more <strong>Post Filter Item</strong> modules that create the controls visitors interact with.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319423 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-in-Divi-5-2.jpeg" alt="post filter module in Divi 5" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-in-Divi-5-2.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-in-Divi-5-2-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-in-Divi-5-2-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-in-Divi-5-2-1536x796.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-in-Divi-5-2-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>There are a variety of field types associated with the Post Filter module, including:</p>
<ul>
<li><strong>Text:</strong> A search field that queries post titles, content, or selected custom fields. We&#8217;ll use it to let visitors search by address or city.</li>
<li><strong>Select:</strong> A dropdown menu that pulls taxonomies or meta values.</li>
<li><strong>Radio:</strong> A list of single-choice buttons.</li>
<li><strong>Checkbox:</strong> Multi-select options that let users combine filters.</li>
<li><strong>Order / Order By:</strong> Controls that let visitors choose how the results are sorted.</li>
<li><strong>Buttons:</strong> Submit and Reset buttons that apply or clear the filters.</li>
</ul>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319422 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/various-field-types-in-Divi-5.jpeg" alt="various field types in Divi 5" width="1800" height="930" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/various-field-types-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/various-field-types-in-Divi-5-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/various-field-types-in-Divi-5-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/various-field-types-in-Divi-5-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/various-field-types-in-Divi-5-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Once you connect the Post Filter module to a specific <em>Loop Target</em>, the visitor&#8217;s submitted choices update the query that powers the loop. The matching results then refresh without requiring the visitor to leave the page.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319424 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-a-loop-target.jpeg" alt="setting a loop target" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-a-loop-target.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-a-loop-target-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-a-loop-target-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-a-loop-target-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-a-loop-target-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Divi 5 also includes a Tooltip module. You can nest it inside any module, including an item within a loop. Hovering over or clicking the parent element reveals the Tooltip, making it useful for the additional information often included on property listing cards.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319425 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-module-in-Divi-5.jpeg" alt="tooltip module in Divi 5" width="1800" height="930" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-module-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-module-in-Divi-5-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-module-in-Divi-5-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-module-in-Divi-5-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-module-in-Divi-5-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Prerequisites &amp; Setup</h2>
<p>Before we start building the listings page, we need a solid foundation of data. Here&#8217;s everything you&#8217;ll set up first.</p>
<h3>Create A Custom Post Type</h3>
<p>Using Advanced Custom Fields, register a new post type called <em>Listings</em>. This keeps your property data separate from regular blog posts and gives you control over its admin interface.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319394 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-post-type-in-ACF.jpg" alt="creating a post type in ACF" width="1800" height="897" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-post-type-in-ACF.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-post-type-in-ACF-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-post-type-in-ACF-768x383.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-post-type-in-ACF-1536x765.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-post-type-in-ACF-610x304.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Add Taxonomies And Custom Fields</h3>
<p>Still inside ACF, create a <em>Taxonomy</em> for <em>Property Types</em>. Make sure the <em>Listings Post Type</em> is selected before saving. This will power the Property Type control in the Post Filter form.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319395 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-taxonomy-in-ACF.jpg" alt="creating a taxonomy in ACF" width="1800" height="896" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-taxonomy-in-ACF.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-taxonomy-in-ACF-300x149.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-taxonomy-in-ACF-768x382.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-taxonomy-in-ACF-1536x765.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/creating-a-taxonomy-in-ACF-610x304.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, create a new <em>Field Group</em> and name it <em>Real Estate Listings</em>.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-319396" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-field-group-in-ACF.jpg" alt="create a new Field Group in ACF" width="1800" height="901" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-field-group-in-ACF.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-field-group-in-ACF-300x150.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-field-group-in-ACF-768x384.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-field-group-in-ACF-1536x769.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-field-group-in-ACF-610x305.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>From there, you&#8217;ll create the following <em>Custom Fields</em>:</p>
<ul>
<li><strong>Tooltip Text (Text):</strong> This is the content that will appear in the info tooltip.</li>
<li><strong>City (Text):</strong> This stores the location visitors can search alongside the listing address.</li>
<li><strong>Price (Text):</strong> This will hold the listing&#8217;s price in the loop card.</li>
<li><strong>Bedrooms (Radio Button):</strong> This will display the number of bedrooms (2-5) on the listing card and serve as a Radio field in the Post Filter module.</li>
<li><strong>Bathrooms (Radio Button):</strong> Displays the number of bathrooms (2-5) in the card and Post Filter module.</li>
<li><strong>Amenities (Radio Button):</strong> Stores one amenity value, such as Garage, Pool, Waterfront, or New Construction, for the card and filter.</li>
<li><strong>Agent (Text):</strong> Displays the listing agent&#8217;s name in the listing card.</li>
<li><strong>Square Footage (Text):</strong> Displays the listing&#8217;s total square footage on the listing card.</li>
</ul>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319398 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ACF-field-groups.jpeg" alt="ACF custom fields" width="1800" height="1436" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ACF-field-groups.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ACF-field-groups-300x239.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ACF-field-groups-768x613.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ACF-field-groups-1536x1225.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ACF-field-groups-610x487.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Create Sample Listings</h3>
<p>Add several listings (we&#8217;ll add 12) using your new custom post type.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319400 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-listings.jpeg" alt="real estate listings" width="1800" height="879" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-listings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-listings-300x147.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-listings-768x375.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-listings-1536x750.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-listings-610x298.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Fill in the <em>Title</em> using the listing&#8217;s address, add the <em>Featured Image</em>, complete all the custom fields, and assign a <em>Property Type</em>. The more varied your sample data is, the better you&#8217;ll be able to test the filters later.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319401 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/fill-out-property-listing.jpeg" alt="fill out property listing" width="1800" height="1437" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/fill-out-property-listing.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/fill-out-property-listing-300x240.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/fill-out-property-listing-768x613.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/fill-out-property-listing-1536x1226.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/fill-out-property-listing-610x487.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Create A New Page</h3>
<p>In the WordPress admin dashboard, create a <em>new page</em>, name it <em>Listings</em>, and open it with the <em>Visual Builder</em>. This is where we&#8217;ll build the entire filterable real estate layout.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319402 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-page-in-Divi-5.jpeg" alt="create a new page in Divi 5" width="1800" height="895" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-page-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-page-in-Divi-5-300x149.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-page-in-Divi-5-768x382.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-page-in-Divi-5-1536x764.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-new-page-in-Divi-5-610x303.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Once these four steps are complete, you&#8217;re ready to start designing the loop and the filter form.</p>
<h2>Build The Real Estate Listings Loop</h2>
<p>Now that the data foundation is in place, it&#8217;s time to design the heart of the page: the listings loop itself. In this section, we&#8217;ll create a clean, fully custom property card and turn it into a dynamic loop that pulls in real listing data. By the end, you&#8217;ll have a responsive grid that looks like the finished layout below, ready to be filtered and searched in the next steps.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319403 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-layout.jpeg" alt="real estate listings layout" width="1800" height="1876" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-layout.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-layout-288x300.jpeg 288w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-layout-768x800.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-layout-1474x1536.jpeg 1474w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/real-estate-layout-610x636.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Create The Foundation</h3>
<p>Start by adding a <em>1/4 + 3/4 Column Row</em> to the page.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319404 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-a-new-row.jpeg" alt="add a new row in the Visual builder" width="1800" height="914" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-a-new-row.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-a-new-row-300x152.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-a-new-row-768x390.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-a-new-row-1536x780.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-a-new-row-610x310.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the Row&#8217;s <em>Design</em> tab, expand the <em>Layout</em> option group and assign a <em>0px Horizontal Gap</em> and a <em>30px Vertical Gap</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319405 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-layout-settings.jpeg" alt="row layout settings" width="1800" height="902" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-layout-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-layout-settings-300x150.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-layout-settings-768x385.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-layout-settings-1536x770.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-layout-settings-610x306.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, expand the <em>Border</em> option group. Under <em>Border Styles</em>, select the <em>Top Border</em> tab, assign a <em>1px Top Border Width</em>, add a <em>Top Border Color</em>, and set the <em>Top Border Style</em> to <em>Dashed</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319406 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-border-styles.jpeg" alt="row border styles" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-border-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-border-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-border-styles-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-border-styles-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/row-border-styles-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Configure The First Column</h4>
<p>Now, open the first <em>Column</em> of the Row and navigate to the <em>Design</em> tab. Expand the <em>Layout</em> option group and assign a <em>20px Vertical Gap</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319407 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-vertical-gap-1.jpeg" alt="first column vertical gap" width="1800" height="858" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-vertical-gap-1.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-vertical-gap-1-300x143.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-vertical-gap-1-768x366.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-vertical-gap-1-1536x732.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-vertical-gap-1-610x291.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>While in the <em>Design</em> tab, expand the <em>Spacing</em> option group and add <em>25px Padding</em> on all four sides.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319408 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-padding.jpeg" alt="first column padding" width="1800" height="923" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-padding.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-padding-300x154.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-padding-768x394.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-padding-1536x788.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-padding-610x313.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the <em>Border</em> option group, add a <em>1px Right Border</em> to the Column.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319409 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-border-settings.jpeg" alt="first column border settings" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-border-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-border-settings-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-border-settings-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-border-settings-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/first-column-border-settings-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Configure The Second Column</h4>
<p>Open the second <em>Column</em> in the Row. Go to the <em>Design</em> tab, expand the <em>Spacing</em> option group, and add <em>20px Padding</em> on all four sides.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319410 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-column-padding.jpeg" alt="second column padding" width="1800" height="924" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-column-padding.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-column-padding-300x154.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-column-padding-768x394.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-column-padding-1536x788.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-column-padding-610x313.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Add A Nested Row</h4>
<p>With the Gaps, Borders, and Spacing set, add a <em>Nested Row</em> to the second Column. Click the <em>black + icon</em> and select a single-column Row.</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/08/adding-Nested-Rows-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p>In the new Row&#8217;s <em>Design</em> tab, expand the <em>Layout</em> option group and assign a <em>20px Horizontal</em> and <em>Vertical Gap</em>. Also enable <em>Wrap</em> under <em>Layout Wrapping</em>. This will keep the spacing consistent and allow items to flow to the next line once the loop runs out of available space.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319412 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-settings.jpeg" alt="nested row settings" width="1800" height="903" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-settings-300x151.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-settings-768x385.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-settings-1536x771.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-settings-610x306.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, click to edit the <em>Column</em>. In the <em>Content</em> tab, expand the <em>Meta</em> option group and add <em>Listings</em> as the <em>Element Label</em>. This will allow you to easily assign a <em>Loop Target</em> when we build the Post Filter form in the next step.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319413 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-an-element-label-in-Divi-5.jpeg" alt="adding an element label in Divi 5" width="1800" height="728" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-an-element-label-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-an-element-label-in-Divi-5-300x121.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-an-element-label-in-Divi-5-768x311.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-an-element-label-in-Divi-5-1536x621.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-an-element-label-in-Divi-5-610x247.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, go to the <em>Design</em> tab. Open the <em>Layout</em> option group and set the <em>Vertical Gap</em> to <em>0px</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319414 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-column-gap.jpeg" alt="setting gaps for nested rows in Divi 5" width="1800" height="858" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-column-gap.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-column-gap-300x143.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-column-gap-768x366.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-column-gap-1536x732.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/nested-row-column-gap-610x291.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the <em>Sizing</em> option group, set the <em>Column Class</em> to <em>1/2</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319415 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/assigning-column-class-in-Divi-5.jpeg" alt="assigning column class in Divi 5" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/assigning-column-class-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/assigning-column-class-in-Divi-5-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/assigning-column-class-in-Divi-5-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/assigning-column-class-in-Divi-5-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/assigning-column-class-in-Divi-5-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Lastly, expand the <em>Border</em> option group. Assign a <em>10px Border Radius</em>, <em>1px Border Width</em>, and enter a <em>Border Color</em> for the Column.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319416 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-column-border-styles.jpeg" alt="loop column border styles" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-column-border-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-column-border-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-column-border-styles-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-column-border-styles-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-column-border-styles-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Enable The Loop Builder</h3>
<p>With the Column&#8217;s structure set, the next step is to enable the Loop Builder. While in the <em>Column</em>, go back to the <em>Content</em> tab and expand the <em>Loop</em> option group. Toggle <em>Loop Element</em> on.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319429 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enable-looping-in-Divi-5.jpeg" alt="enable looping in Divi 5" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enable-looping-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enable-looping-in-Divi-5-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enable-looping-in-Divi-5-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enable-looping-in-Divi-5-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/enable-looping-in-Divi-5-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Leave the <em>Query Type</em> set to <em>Post Type</em>, but remove the default <em>Posts</em> under <em>Post Type</em>. Instead, select the <em>Listings</em> post type we created in the previous step.</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/08/choosing-a-loop-post-type.mp4" type="video/mp4" /></video></p>
<p>Scroll to reveal the <em>Order</em> and <em>Posts Per Page</em> fields. Set <em>Order</em> to <em>Ascending</em> and <em>Posts Per Page</em> to <em>4</em>. This setting controls how many listings appear per page. Because we created 12 sample listings, add a Pagination module and target this loop if you want visitors to access the remaining results.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319431 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-loop-order.jpeg" alt="setting loop order" width="1800" height="897" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-loop-order.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-loop-order-300x150.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-loop-order-768x383.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-loop-order-1536x765.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/setting-loop-order-610x304.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Add Modules To The Loop</h3>
<p>Now that the Loop Builder is enabled, we can start adding modules to the layout.</p>
<h4>Insert A Module Group</h4>
<p>Start by adding a <em>Module Group</em> to the Column. Within the Group, add an <em>Icon</em> module.</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/08/adding-a-module-group.mp4" type="video/mp4" /></video></p>
<p>Choose an <em>Info Icon</em> in the <em>Content</em> tab.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319433 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-an-info-icon.jpeg" alt="add an info icon" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-an-info-icon.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-an-info-icon-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-an-info-icon-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-an-info-icon-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-an-info-icon-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the Icon&#8217;s <em>Design</em> tab, set an <em>Icon Size</em> and <em>Icon Color</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319435 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-an-icon-module.jpeg" alt="styling an icon module" width="1800" height="845" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-an-icon-module.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-an-icon-module-300x141.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-an-icon-module-768x361.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-an-icon-module-1536x721.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-an-icon-module-610x286.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>While in the <em>Design</em> tab, expand the <em>Sizing</em> option group. Set <em>Alignment</em> to <em>End</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319437 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/icon-alignment.jpeg" alt="icon alignment" width="1800" height="779" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/icon-alignment.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/icon-alignment-300x130.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/icon-alignment-768x332.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/icon-alignment-1536x665.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/icon-alignment-610x264.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Finally, add a <em>Tooltip</em> module beneath the Icon. In the <em>Content</em> tab, add a <em>Background Color</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319472 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooptip-background-color.jpeg" alt="tooltip background color" width="1800" height="930" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooptip-background-color.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooptip-background-color-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooptip-background-color-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooptip-background-color-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooptip-background-color-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the Tooltip&#8217;s <em>Design</em> tab, expand the <em>Tooltip</em> option group and set <em>Show Tooltip On</em> to <em>Click</em>. Set the <em>Tooltip Position</em> as shown in the screenshot below. While in the Design tab, adjust Spacing, Border, and any other design settings as needed.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319473 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-settings.jpeg" alt="tooltip settings" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-settings-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-settings-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-settings-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-settings-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Now, open the Group&#8217;s <em>Design</em> tab. Expand the <em>Sizing</em> option group and assign an <em>Aspect Ratio</em> of <em>3</em> by <em>2</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319439 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-aspect-ratio.jpeg" alt="group aspect ratio" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-aspect-ratio.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-aspect-ratio-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-aspect-ratio-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-aspect-ratio-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-aspect-ratio-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, expand the <em>Spacing</em> option group and assign <em>15px Padding</em> on all four sides.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319440 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding.jpeg" alt="module group padding" width="1800" height="923" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding-300x154.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding-768x394.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding-1536x788.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding-610x313.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Still within the <em>Group</em> settings, navigate to the <em>Content</em> tab. Expand the <em>Background</em> option group and tab over to assign a <em>Background Image</em>. Hover just above the <em>Background Image field</em> to reveal the <em>Insert Dynamic Content</em> icon.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319441 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/insert-dynamic-content.jpg" alt="insert dynamic content" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/insert-dynamic-content.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/insert-dynamic-content-300x155.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/insert-dynamic-content-768x397.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/insert-dynamic-content-1536x794.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/insert-dynamic-content-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>When the list of dynamic content options appears, choose <em>Loop Featured Image</em>. Divi 5 will load the Featured Image from each of your Listings posts.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319442 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-featured-image.jpg" alt="loop featured image" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-featured-image.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-featured-image-300x155.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-featured-image-768x397.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-featured-image-1536x794.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-featured-image-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h4>Add A Second Module Group</h4>
<p>With the first Module Group styled, we&#8217;ll add another directly beneath it. Within the <em>Group</em>, go to the <em>Design</em> tab and expand the <em>Layout</em> option group. Set the <em>Vertical Gap</em> to <em>5px</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319446 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-module-group-gap.jpeg" alt="second module group gap" width="1800" height="929" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-module-group-gap.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-module-group-gap-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-module-group-gap-768x396.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-module-group-gap-1536x793.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/second-module-group-gap-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, expand the <em>Spacing</em> option group and add <em>25px Padding</em> on all four sides.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319447 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding-1.jpeg" alt="module group padding" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding-1.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding-1-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding-1-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding-1-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/module-group-padding-1-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Click into the Group&#8217;s <em>Content</em> tab and expand the <em>Background</em> option group. Assign a <em>Background Color</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319449 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-background-color.jpeg" alt="group background color" width="1800" height="906" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-background-color.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-background-color-300x151.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-background-color-768x387.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-background-color-1536x773.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-background-color-610x307.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Now, expand the <em>Elements</em> option group and add two Heading modules and a Text module to the Group. Style them as desired.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319451 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-modules-in-Divi-5.jpeg" alt="adding modules in Divi 5" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-modules-in-Divi-5.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-modules-in-Divi-5-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-modules-in-Divi-5-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-modules-in-Divi-5-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/adding-modules-in-Divi-5-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Add another <em>Module Group</em> to the Column, nest three Text modules inside it, and style them as desired. In the Group&#8217;s <em>Design</em> tab, expand the <em>Layout</em> option group and set <em>Layout Direction</em> to <em>Row</em>. Apply <em>5px</em> to the <em>Horizontal Gap</em> and <em>Vertical Gap</em> fields.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319452 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flex-settings.jpeg" alt="group flex settings" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flex-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flex-settings-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flex-settings-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flex-settings-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flex-settings-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Add two more modules to the Column, including a <em>Text module</em> and another <em>Module Group</em>. Style the Text module as desired.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319453 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-remaining-modules.jpeg" alt="add remaining modules" width="1800" height="936" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-remaining-modules.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-remaining-modules-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-remaining-modules-768x399.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-remaining-modules-1536x799.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-remaining-modules-610x317.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the newly added Module Group settings, go to the <em>Design</em> tab and expand the <em>Layout</em> option group. Set <em>Layout Direction</em> to <em>Row</em>, <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-319454 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flexbox-settings.jpeg" alt="group flexbox settings" width="1800" height="897" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flexbox-settings.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flexbox-settings-300x150.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flexbox-settings-768x383.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flexbox-settings-1536x765.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-flexbox-settings-610x304.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Within the Module Group, add a <em>Text</em> and <em>Button</em> module and style them as desired.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319456 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/final-module-group-styling.jpeg" alt="final module group styling" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/final-module-group-styling.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/final-module-group-styling-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/final-module-group-styling-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/final-module-group-styling-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/final-module-group-styling-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Link The Custom Fields</h3>
<p>Now, we need to connect the custom fields we created to the modules in the loop Column. Start by selecting the first Heading module we added in the last step. In the <em>Content</em> tab, expand the <em>Text</em> option group and hover next to the <em>Heading</em> field to reveal the <em>Insert Dynamic Content</em> icon. Choose <em>Loop Post Custom Field</em> from the available options.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319459 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-post-custom-field.jpg" alt="loop post custom field" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-post-custom-field.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-post-custom-field-300x155.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-post-custom-field-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-post-custom-field-1536x795.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-post-custom-field-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>When the modal appears, click <em>Enter Custom Meta Key</em> in the <em>Select Custom Field</em> dropdown menu.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319461 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-custom-field.jpeg" alt="select custom field" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-custom-field.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-custom-field-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-custom-field-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-custom-field-1536x796.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-custom-field-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>When the options appear, choose the <em>Price</em> custom field.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319462 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-price-custom-field.jpg" alt="using a custom field in Divi 5" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-price-custom-field.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-price-custom-field-300x155.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-price-custom-field-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-price-custom-field-1536x795.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-price-custom-field-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Finally, click the <em>Apply</em> button to assign the field to the module.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319463 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/apply-custom-field.jpeg" alt="applying a custom field in Divi 5" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/apply-custom-field.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/apply-custom-field-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/apply-custom-field-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/apply-custom-field-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/apply-custom-field-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Repeat these steps to assign the remaining dynamic content to the corresponding modules. For the second Heading module, choose <em>Loop Post Title</em>. For the Text module, choose <em>Loop Excerpt</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/08/assigning-custom-fields-in-Divi-5.mp4" type="video/mp4" /></video></p>
<p>For the Module Group with three Text modules, assign the <em>Bedrooms</em> custom field to the first Text module and add a separator in the <em>After</em> field.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319466 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/bedrooms-custom-field.jpeg" alt="bedrooms custom field" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/bedrooms-custom-field.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/bedrooms-custom-field-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/bedrooms-custom-field-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/bedrooms-custom-field-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/bedrooms-custom-field-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Use the <em>Bathrooms</em> custom field for the second Text module and <em>Square Footage</em> for the third.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319467 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-custom-fields.jpeg" alt="group custom fields" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-custom-fields.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-custom-fields-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-custom-fields-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-custom-fields-1536x796.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/group-custom-fields-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For the standalone Text module, use the <em>Amenities</em> custom field.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319468 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ammenities-custom-field.jpeg" alt="amenities custom field" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ammenities-custom-field.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ammenities-custom-field-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ammenities-custom-field-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ammenities-custom-field-1536x796.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ammenities-custom-field-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>In the final Module Group, assign the <em>Agent</em> custom field to the Text module.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319469 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/agent-custom-field.jpeg" alt="agent custom field" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/agent-custom-field.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/agent-custom-field-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/agent-custom-field-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/agent-custom-field-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/agent-custom-field-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For the Button module, add the button text and assign <em>Loop Link</em> to the <em>Button Link URL</em> in the <em>Link</em> option group.</p>
<p><img loading="lazy" decoding="async" class="with-border wp-image-319470 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-link-custom-field.jpeg" alt="Loop Link custom field" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-link-custom-field.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-link-custom-field-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-link-custom-field-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-link-custom-field-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/loop-link-custom-field-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For the final custom field, use the <em>Layers Panel</em> to locate the Tooltip module. In the <em>Content</em> tab, assign the <em>Tooltip Text</em> custom field to the <em>Body</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319474 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-custom-field.jpeg" alt="tooltip custom field" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-custom-field.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-custom-field-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-custom-field-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-custom-field-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/tooltip-custom-field-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>Create The Filterable Search With The Post Filter Module</h2>
<p>With the listings loop ready to go, the final step is to give visitors control over what they see. We&#8217;ll add a Post Filter module that lets them search by keyword, choose a property type, filter by bedrooms and bathrooms, select an amenity, and apply or reset their choices.</p>
<h3>Add The Post Filter Module</h3>
<p>Place a <em>Post Filter</em> module in the left Column of the Row. This module serves as the form wrapper that contains all the individual Post Filter Items.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319478 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-the-post-filter-module.jpeg" alt="add the post filter module" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-the-post-filter-module.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-the-post-filter-module-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-the-post-filter-module-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-the-post-filter-module-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/add-the-post-filter-module-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Once added, navigate to the <em>Content</em> tab of the <em>Post Filter</em> module. Expand the <em>Target</em> option group and select the <em>Listings</em> loop we created in the last step.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319479 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-the-listings-loop.jpg" alt="select the listings loop" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-the-listings-loop.jpg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-the-listings-loop-300x155.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-the-listings-loop-768x398.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-the-listings-loop-1536x795.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-the-listings-loop-610x316.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Expand the <em>Elements</em> option group to view and add more fields to the module. By default, the Post Filter module includes a <em>Search</em> field, a <em>Category</em> filter, and <em>Reset</em> and <em>Apply</em> buttons. These are the <em>Post Filter Items</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319480 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-items-1.jpeg" alt="post filter items" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-items-1.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-items-1-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-items-1-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-items-1-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-items-1-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Assign The Taxonomy And Custom Fields</h3>
<p>Start by editing the <em>Search</em> Post Filter Item. Keep <em>Field Type</em> set to <em>Text</em>, then configure the field to query the post title and the <em>City</em> custom field. This will allow visitors to search by the property address or city.</p>
<p>Next, click to edit the <em>Category</em> Post Filter Item. Expand the <em>Field</em> option group and select <em>Radio</em> as the <em>Field Type</em>. In the <em>Field Option</em> dropdown, select the <em>Property Types</em> taxonomy we created in ACF. The <em>Field Label</em> will populate automatically, but you can change it to whatever you like.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319483 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/map-property-type-select-field.jpeg" alt="map property type select field" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/map-property-type-select-field.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/map-property-type-select-field-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/map-property-type-select-field-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/map-property-type-select-field-1536x796.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/map-property-type-select-field-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>We&#8217;ll add three new fields to the Post Filter module. In the main Post Filter module&#8217;s <em>Content</em> tab, expand the <em>Elements</em> option group and click <em>+ Add Element</em>. Choose <em>Post Filter Item</em> from the available options.</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/08/add-new-post-filter-item.mp4" type="video/mp4" /></video></p>
<p><em>Click and drag</em> the new field to place it directly under the <em>Property Type</em> field.</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/08/reorder-post-filter-items.mp4" type="video/mp4" /></video></p>
<p>Click to edit the new field. Change <em>Field Type</em> to <em>Radio</em>. For <em>Field Value</em>, select <em>Amenities</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/08/assigning-custom-fields-to-post-filter-items.mp4" type="video/mp4" /></video></p>
<p>Now, copy the new Post Filter Item twice. Change <em>Field Option</em> to <em>Bedrooms</em> for one field and <em>Bathrooms</em> for the other.</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/08/mapping-field-types.mp4" type="video/mp4" /></video></p>
<h3>Style The Filter Fields</h3>
<p>Now that all fields are in place, we need to style them. In the main <em>Post Filter</em> module settings, go to the <em>Design</em> tab. Expand the <em>Layout</em> option group and set the <em>Vertical Gap</em> to <em>25px</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319495 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-vertical-gap.jpeg" alt="post filter module vertical gap" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-vertical-gap.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-vertical-gap-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-vertical-gap-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-vertical-gap-1536x796.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/post-filter-module-vertical-gap-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, expand the <em>Field</em> option group. Expand the <em>Input Text</em> group, choose a field font, font weight, text size, and text color.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319496 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/input-text-styles.jpeg" alt="input text styles" width="1800" height="929" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/input-text-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/input-text-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/input-text-styles-768x396.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/input-text-styles-1536x793.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/input-text-styles-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Now, open the <em>Label Text</em> group. Assign a label font, label font weight, label text size, label text color, and label line height.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319497 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/label-text-styles.jpeg" alt="label text styles" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/label-text-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/label-text-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/label-text-styles-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/label-text-styles-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/label-text-styles-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Add styles for the <em>Placeholder Text</em>, including font, font weight, text size, text color, and line height.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319498 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/placeholder-text-styles.jpeg" alt="placeholder text styles" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/placeholder-text-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/placeholder-text-styles-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/placeholder-text-styles-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/placeholder-text-styles-1536x796.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/placeholder-text-styles-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Set a <em>Background Color</em> and assign <em>Border Styles</em> as desired.</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/08/style-the-field-background.mp4" type="video/mp4" /></video></p>
<h3>Style The Radio Options</h3>
<p>Expand the <em>Radio Options</em> group in the <em>Design</em> tab. Style the <em>Input Text</em> by assigning its font, text size, text color, and line height.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319501 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-options-input-text-styles.jpeg" alt="radio options input text styles" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-options-input-text-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-options-input-text-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-options-input-text-styles-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-options-input-text-styles-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-options-input-text-styles-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Similar to the Fields group, assign a <em>Background Color</em> for the <em>Radio Options</em> along with <em>Border Styles</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319502 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-border-styles.jpeg" alt="radio border styles" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-border-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-border-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-border-styles-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-border-styles-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/radio-border-styles-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Add Button Styles</h3>
<p>The last step is styling the <em>Apply</em> and <em>Reset</em> buttons in the Post Filter module. In the main Post Filter settings, expand the <em>Button</em> option group in the <em>Design</em> tab. Set a <em>Background Color</em> and <em>Border Styles</em> first.</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/08/button-border-styles.mp4" type="video/mp4" /></video></p>
<p>Next, expand the <em>Text</em> options within the Button styles. Assign a Button Font, Text Size, Text Color, and Capitalization, then make any other necessary styling adjustments.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319505 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-text-styles.jpeg" alt="button text styles" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-text-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-text-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-text-styles-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-text-styles-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-text-styles-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Lastly, expand the <em>Spacing</em> group within the Button styles. Assign top and bottom <em>Padding</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319506 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-spacing-styles.jpeg" alt="button spacing styles" width="1800" height="929" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-spacing-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-spacing-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-spacing-styles-768x396.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-spacing-styles-1536x793.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/button-spacing-styles-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Make Responsive Adjustments</h3>
<p>With the Post Filter form styled, we need to ensure the layout looks good at every screen size. Using Divi 5&#8217;s <a href="https://www.elegantthemes.com/blog/theme-releases/customizable-responsive-breakpoints">Customizable Responsive Breakpoints</a>, switch to the <em>Tablet</em> view. Start by adjusting the <em>Vertical Gap</em> at the Section level to reduce the amount of space between Rows.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319508 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/section-vertical-gap.jpeg" alt="section vertical gap" width="1800" height="923" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/section-vertical-gap.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/section-vertical-gap-300x154.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/section-vertical-gap-768x394.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/section-vertical-gap-1536x788.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/section-vertical-gap-610x313.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Work your way through Rows and Columns, making spacing adjustments as necessary.</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/08/tablet-and-phone-spacing-adjustments.mp4" type="video/mp4" /></video></p>
<p>If you need to adjust Column sizes at smaller breakpoints, use <em>Structure Templates</em> to resize them. In the Row settings, open the <em>Content</em> tab, expand the <em>Elements</em> option group, and click <em>Apply Structure Template</em>. From there, select one of the predefined Row templates.</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/08/apply-structure-templates.mp4" type="video/mp4" /></video></p>
<p>Repeat these steps for the <em>Phone</em> breakpoint, making any necessary tweaks to spacing or row structure.</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/08/tablet-breakpoint-changes.mp4" type="video/mp4" /></video></p>
<h3>Preview The Post Filter Form On The Front End</h3>
<p>The final step is to preview the completed page on the front end. Test each filter individually by searching for an address or city, selecting a property type, choosing bedroom and bathroom counts, and selecting an amenity. Then, test the fields in combination and use the Apply and Reset buttons to confirm that the loop updates correctly. Once you&#8217;ve verified that the filters and loop work together smoothly, your filterable real estate listings page is ready.</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/08/testing-the-post-filter-module.mp4" type="video/mp4" /></video></p>
<h2>Download The Files</h2>
<p>To give you a clear picture of how the finished layout works, we&#8217;ve created a ready-to-use JSON file of the complete design built in this post.</p>
<p>To use it, navigate 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-318249 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import.jpeg" alt="Divi Library import" width="1800" height="886" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-300x148.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-768x378.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-1536x756.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-610x300.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Click the <em>Import</em> tab, attach the <em>Real Estate Listings Loop &amp; Filter.JSON</em> 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-319514 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/import-divi-layouts.jpeg" alt="import divi layouts" width="1800" height="897" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/import-divi-layouts.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/import-divi-layouts-300x150.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/import-divi-layouts-768x383.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/import-divi-layouts-1536x765.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/import-divi-layouts-610x304.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Next, create a <em>new page</em> in the Visual Builder. When the Builder loads, click the <em>blue + icon</em> to add a new Section.</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, and click <em>Use This Section</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/08/add-Divi-library-item.mp4" type="video/mp4" /></video></p>
<p>For the loop and filters to populate correctly, make sure you have already completed the prerequisite steps, including:</p>
<ol>
<li>Creating the Listings custom post type.</li>
<li>Adding the Property Types taxonomy.</li>
<li>Setting up the ACF Field Group with all the required custom fields.</li>
<li>Publishing real estate Listing posts.</li>
</ol>
<p>Without published listing data, the loop will remain empty. Once those items are in place, the imported layout will display and filter your properties as shown in this post.</p>
<div class="et_bloom_locked_container et_bloom_optin_1" data-page_id="319355" 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/08/Real-Estate-Loop-and-Filter-layout.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="319355" 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>Start Building Your Filterable Listings Today</h2>
<p>Combining <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a>&#8216;s <a href="https://www.elegantthemes.com/blog/theme-releases/loop-builder">Loop Builder</a> with the Post Filter module from the <a href="https://www.elegantthemes.com/blog/theme-releases/loop-filter-modules">Loop Filter Modules</a> gives you control over the listing design and front-end search experience. You can create fully custom property cards and let visitors search and filter them without relying on a separate third-party filtering plugin.</p>
<p>The same approach works just as well for any directory-style site, including job boards, event calendars, team directories, product catalogs, and more. Experiment with different field types, layouts, and queries to see how flexible the system really is.</p>
<p>Give it a try in Divi 5 and let us know how it works for you. Share your questions or feedback in the comments below or on our social media channels. We&#8217;d love to see what you build!</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-filterable-real-estate-listings-with-divi-5">How To Build A Filterable Real Estate Listings With 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-filterable-real-estate-listings-with-divi-5/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/How-To-Build-A-Filterable-Real-Estate-Listings-With-Divi-5.jpeg" width="280" type="image/jpg" medium="image" />	</item>
		<item>
		<title>Exploring Divi 5&#8217;s New Gravity Forms Module</title>
		<link>https://www.elegantthemes.com/blog/divi-resources/exploring-divi-5s-new-gravity-forms-module</link>
					<comments>https://www.elegantthemes.com/blog/divi-resources/exploring-divi-5s-new-gravity-forms-module#comments</comments>
		
		<dc:creator><![CDATA[Deanna McLean]]></dc:creator>
		<pubDate>Wed, 09 Sep 2026 16:00:46 +0000</pubDate>
				<category><![CDATA[Divi Resources]]></category>
		<category><![CDATA[divi 5]]></category>
		<category><![CDATA[Divi 5 Tutorial]]></category>
		<category><![CDATA[Gravity Forms Module]]></category>
		<guid isPermaLink="false">https://www.elegantthemes.com/blog/?p=319528</guid>

					<description><![CDATA[<p>Gravity Forms is one of the most popular tools for building contact forms, multi-page applications, and lead forms in WordPress. Previously, adding one to a Divi page relied on a shortcode, while matching its fields, buttons, and validation states to the surrounding design often required custom CSS. Divi 5 adds a native Gravity Forms Module [&#8230;]</p>
<p>The post <a href="https://www.elegantthemes.com/blog/divi-resources/exploring-divi-5s-new-gravity-forms-module">Exploring Divi 5&#8217;s New Gravity Forms Module</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/integrations/gravity-forms/">Gravity Forms</a> is one of the most popular tools for building contact forms, multi-page applications, and lead forms in WordPress. Previously, adding one to a Divi page relied on a shortcode, while matching its fields, buttons, and validation states to the surrounding design often required custom CSS. <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> adds a native <a href="https://www.elegantthemes.com/blog/theme-releases/four-new-modules-for-divi-5-charts-gravity-forms-imagely-payment-button">Gravity Forms Module</a> to the Visual Builder, allowing you to select an existing form, preview it, and style its output with Divi&#8217;s design settings.</p>
<p>In this post, we&#8217;ll explore what the module does and show you how to add, configure, style, and test a Gravity Form across breakpoints. We&#8217;ll also explain how to import the downloadable example layouts.</p>
<p>Let&#8217;s get started.</p>
<h2>What Is The Gravity Forms Module?</h2>
<p>The Gravity Forms Module is a native Divi 5 integration for forms created with Gravity Forms. Once the plugin is installed and active, the module appears in the Visual Builder. Add it like any other module, select a form in its settings, and preview the result on the page.</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/08/add-the-Gravity-Forms-module.mp4" /></video></p>
<p>The module removes the need to place a Gravity Forms shortcode in a Code Module. It handles the embed and provides a live preview, allowing you to design the page around the actual form.</p>
<p>The form&#8217;s structure and behavior still live in Gravity Forms. Create its fields, conditional logic, notifications, confirmations, and other functional settings in the plugin.</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/08/editing-a-form-in-WordPress.mp4" /></video></p>
<p>Use the Divi module to choose where that form appears and control how its output looks on the page.</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/08/style-the-Gravity-Forms-module.mp4" /></video></p>
<p>Its design settings cover form text, fields, buttons, validation messages, and paging controls. This gives you control over the form&#8217;s empty, interactive, error, and multi-page states without leaving the Visual Builder.</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/08/Gravity-Forms-styling-options.mp4" /></video></p>
<h3>Key Advantages</h3>
<p>The primary advantage is a cleaner workflow. You can place and style an existing form through one module instead of moving between a shortcode, CSS, and the front end to check each change.</p>
<p>The live preview also reveals long labels, stacked fields, button placement, and multi-page controls while you work. You can preview validation and confirmation messages, then style them so they feel connected to the rest of the design.</p>
<p>The result is a more consistent experience across contact forms, lead forms, applications, and other Gravity Forms layouts.</p>
<h2>Before You Start</h2>
<p>A few things need to be in place before the Gravity Forms Module appears and works as expected.</p>
<p>First, install and activate Gravity Forms. The Divi module depends on the plugin and does not appear in the module list when Gravity Forms is inactive.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319848 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/activate-Gravity-Forms.jpeg" alt="Activate Gravity Forms" width="1800" height="797" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/activate-Gravity-Forms.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/activate-Gravity-Forms-300x133.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/activate-Gravity-Forms-768x340.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/activate-Gravity-Forms-1536x680.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/activate-Gravity-Forms-610x270.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Build the form in Gravity Forms before styling it in Divi. Add the required fields and configure its conditional logic, notifications, and confirmations. The Divi module embeds the form but does not create its fields.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319849 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-Gravity-form.jpeg" alt="Create a Gravity Form" width="1800" height="896" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-Gravity-form.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-Gravity-form-300x149.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-Gravity-form-768x382.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-Gravity-form-1536x765.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/create-a-Gravity-form-610x304.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The native Gravity Forms Module shipped with <a href="https://www.elegantthemes.com/blog/divi-resources/divi-5-11-release-notes">Divi 5.11</a>, so update Divi before looking for it in the Visual Builder.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319850 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-version-5.11.jpeg" alt="Divi version 5.11" width="1800" height="901" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-version-5.11.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-version-5.11-300x150.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-version-5.11-768x384.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-version-5.11-1536x769.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Divi-version-5.11-610x305.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Finally, choose the form you plan to use before styling. Working with the actual field structure is faster than designing around one form and replacing it with a substantially different one later.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319851 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/preview-the-form.jpeg" alt="Preview a Gravity Form" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/preview-the-form.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/preview-the-form-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/preview-the-form-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/preview-the-form-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/preview-the-form-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h2>How To Use The Gravity Forms Module</h2>
<h3>1. Add The Module</h3>
<p>Create a page or open an existing one in the Visual Builder, then add the Gravity Forms Module to a Section.</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/08/add-the-Gravity-Forms-module-1.mp4" /></video></p>
<p>In the module&#8217;s <em>Content</em> tab, open the <em>Gravity Forms</em> option group. Use the <em>Form</em> field to select one of your existing forms.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319863 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-a-gravity-form.jpeg" alt="Select a Gravity Form" width="1800" height="929" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-a-gravity-form.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-a-gravity-form-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-a-gravity-form-768x396.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-a-gravity-form-1536x793.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/select-a-gravity-form-610x315.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Check the Canvas to confirm that the form renders correctly.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319864 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/check-the-form-preview.jpeg" alt="Check the Gravity Form preview" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/check-the-form-preview.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/check-the-form-preview-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/check-the-form-preview-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/check-the-form-preview-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/check-the-form-preview-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>2. Configure The Settings</h3>
<p>In the <em>Content</em> tab, choose whether to enable <em>Ajax</em>. While styling, enable the Validation and Confirmation message previews so you can see and design those states inside the Builder.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319865 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ajax-and-preview-messages.jpeg" alt="Ajax and message preview settings" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ajax-and-preview-messages.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ajax-and-preview-messages-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ajax-and-preview-messages-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ajax-and-preview-messages-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/ajax-and-preview-messages-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>3. Style The Form</h3>
<p>Open the <em>Design</em> tab and begin with <em>Title Text</em>. Adjust its font, weight, size, color, line height, and other available settings.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319866 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Title-text-styles.jpeg" alt="Gravity Forms Title Text styles" width="1800" height="932" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Title-text-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Title-text-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Title-text-styles-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Title-text-styles-1536x795.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/Title-text-styles-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Use the <em>Description Text</em>, <em>Section Heading Text</em>, and <em>Sub-Label Text</em> groups to style the form&#8217;s supporting text.</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/08/style-additional-text-groups.mp4" /></video></p>
<p>Open the <em>Input</em> group to style input, label, and placeholder text, control Spacing, and adjust the background, border, and shadow. Divi&#8217;s <a href="https://www.elegantthemes.com/blog/theme-releases/new-form-options-field-presets-focus-editing-and-cf7-module">form field editing modes</a> also let you design hover and focus states, making the active field easier to identify.</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/08/styling-inputs-in-the-Gravity-Forms-module.mp4" /></video></p>
<p>If the form includes checkboxes, radio buttons, or image-based choices, style them through their corresponding option groups. Checked-state editing can help distinguish selected choices from unselected ones.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319869 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-radios-and-checkboxes.jpeg" alt="Style radio buttons and checkboxes" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-radios-and-checkboxes.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-radios-and-checkboxes-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-radios-and-checkboxes-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-radios-and-checkboxes-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/styling-radios-and-checkboxes-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>For multi-page forms, use the <em>Progress Bar Text</em> group to style the text associated with the progress indicator.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319870 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/progress-bar-styling.jpeg" alt="Style a multi-page form progress bar" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/progress-bar-styling.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/progress-bar-styling-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/progress-bar-styling-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/progress-bar-styling-1536x796.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/progress-bar-styling-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>The <em>Submit Button</em> group is available for every form. <em>Save &amp; Continue</em>, <em>Next Page</em>, and <em>Previous Page</em> apply to multi-page forms, while <em>File Upload</em> styles the upload control when that field is present.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319871 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/gravity-forms-module-button-styles.jpeg" alt="Gravity Forms Module button styles" width="1800" height="931" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/gravity-forms-module-button-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/gravity-forms-module-button-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/gravity-forms-module-button-styles-768x397.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/gravity-forms-module-button-styles-1536x794.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/gravity-forms-module-button-styles-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Use <em>Validation Summary Text</em>, <em>Field Validation Text</em>, and <em>Confirmation Text</em> to style the module&#8217;s feedback messages. Keep the message previews enabled while designing so you can see the result.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319872 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/validation-summary-styles.jpeg" alt="Validation Summary Text styles" width="1800" height="927" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/validation-summary-styles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/validation-summary-styles-300x155.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/validation-summary-styles-768x396.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/validation-summary-styles-1536x791.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/validation-summary-styles-610x314.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></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/08/style-confirmation-text.mp4" /></video></p>
<h3>4. Test For Responsiveness And Function</h3>
<p>Switch the Builder to Tablet and Phone views and check the form at each breakpoint.</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/09/check-tablet-and-phone-breakpoints.mp4" /></video></p>
<p>Look for wrapped labels, stacked columns, undersized buttons, and inconsistent padding. On multi-page forms, move through every step and confirm that the paging controls remain easy to tap.</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/09/check-layout-on-mobile-devices.mp4" /></video></p>
<p>Finally, submit the form on the front end. Confirm that required fields validate, error messages remain readable, conditional fields behave correctly, and the confirmation state fits the layout.</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/09/check-error-messages.mp4" /></video></p>
<p>After testing, you can reuse the module or its field presets elsewhere, select another form, and review the output for any differences in field structure.</p>
<h2>Tips And Best Practices</h2>
<p>These practices will help keep Gravity Forms layouts consistent, responsive, and reliable.</p>
<h3>Build The Form First</h3>
<p>Finish the fields, labels, required settings, conditional logic, notifications, and confirmation before styling. The module styles the markup Gravity Forms generates, so structural changes may require another design review.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319856 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/build-the-form-first.jpeg" alt="Build the Gravity Form before styling it" width="1800" height="897" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/build-the-form-first.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/build-the-form-first-300x150.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/build-the-form-first-768x383.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/build-the-form-first-1536x765.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/build-the-form-first-610x304.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Style Hover, Focus, And Checked States</h3>
<p>The empty form is only one state. Define hover and focus styles for fields and buttons, and checked styles for radios and checkboxes. Then review validation and confirmation messages so every stage feels connected to the same design.</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/08/style-hover-states.mp4" /></video></p>
<h3>Use Design Variables And Presets For Repeated Values</h3>
<p>Store repeated colors, spacing, radii, and border widths as <a href="https://www.elegantthemes.com/blog/theme-releases/design-variables">Design Variables</a>. You can also create field presets for inputs, radios, and checkboxes so forms across multiple modules share the same base design.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-319858 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-design-variabbles.jpeg" alt="Use Design Variables with the Gravity Forms Module" width="1800" height="933" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-design-variabbles.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-design-variabbles-300x156.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-design-variabbles-768x398.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-design-variabbles-1536x796.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/08/use-design-variabbles-610x316.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<h3>Test The Form On The Front End</h3>
<p>Builder previews are useful, but they do not replace a real submission. Send an entry and confirm that validation, file uploads, conditional fields, notifications, and confirmations work as expected. Test every page of a multi-page form on desktop and mobile.</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/08/test-the-form-on-the-front-end.mp4" /></video></p>
<h2>Download And Install The Files</h2>
<p>We&#8217;ve created two Section layouts based on the examples in this post. The downloadable zip includes three JSON files: one <em>Gravity Forms &#8211; ALL.JSON</em> file containing both layouts and two individual files.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-320013" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/gravity-forms-examples.jpg" alt="Gravity Forms example JSON files" width="1800" height="215" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/gravity-forms-examples.jpg 1789w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/gravity-forms-examples-300x36.jpg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/gravity-forms-examples-768x92.jpg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/gravity-forms-examples-1536x184.jpg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/gravity-forms-examples-610x73.jpg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Go to <em>Divi &gt; Divi Library</em> and click <em>Import &amp; Export</em>.</p>
<p><img loading="lazy" decoding="async" class="with-border alignnone wp-image-318249 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import.jpeg" alt="Divi Library Import and Export button" width="1800" height="886" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-300x148.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-768x378.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-1536x756.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/07/Divi-Library-import-610x300.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Select the <em>Import</em> tab, choose 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-320014 size-full" src="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-divi-builder-layouts-1.jpeg" alt="Import Divi Builder layouts" width="1800" height="908" srcset="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-divi-builder-layouts-1.jpeg 1800w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-divi-builder-layouts-1-300x151.jpeg 300w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-divi-builder-layouts-1-768x387.jpeg 768w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-divi-builder-layouts-1-1536x775.jpeg 1536w, https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/import-divi-builder-layouts-1-610x308.jpeg 610w" sizes="auto, (max-width: 1800px) 100vw, 1800px" /></p>
<p>Create a page or open an existing one in the Visual Builder, then click the <em>blue + icon</em> to add a Section.</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 a new Section in Divi 5" 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>Open the <em>Add From Library</em> tab, choose 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/09/adding-a-section-in-Divi.mp4" /></video></p>
<p>Open the Gravity Forms Module in the imported Section. In the <em>Gravity Forms</em> group under the <em>Content</em> tab, select a form and confirm that it loads correctly.</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/09/select-a-form.mp4" /></video></p>
<div class="et_bloom_locked_container et_bloom_optin_1" data-page_id="319528" 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/09/Gravity-Forms-examples.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="319528" 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>Gravity Forms Now Belongs In The Builder</h2>
<p>You no longer need a shortcode to add a Gravity Form to a <a href="https://www.elegantthemes.com/divi-5/">Divi 5</a> page. Add the <a href="https://www.elegantthemes.com/blog/theme-releases/four-new-modules-for-divi-5-charts-gravity-forms-imagely-payment-button">Gravity Forms Module</a>, select an existing form, style its output in the Visual Builder, and test it across breakpoints and submission states.</p>
<p>For a head start, download the example layouts and import one into Divi. Select your form, adjust its colors and Spacing, and review every field and message before publishing. Make sure Divi and Gravity Forms are up to date so the integration is available and works as expected.</p>
<p>Tell us how the Gravity Forms Module works for you in the comments or on our social media channels. Your feedback helps us improve future modules and features.</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/exploring-divi-5s-new-gravity-forms-module">Exploring Divi 5&#8217;s New Gravity Forms Module</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/exploring-divi-5s-new-gravity-forms-module/feed</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<enclosure url="https://www.elegantthemes.com/blog/wp-content/uploads/2026/09/Exploring-Divi-5s-New-Gravity-Forms-Module.jpeg" width="280" type="image/jpg" medium="image" />	</item>
	</channel>
</rss>
