To create a multi-select filter in Webflow for custom CMS-based filtering, you'll need to enhance your existing custom filter setup with JavaScript that handles multiple option selections per category (e.g., selecting multiple "Tags" or "Categories" simultaneously). Webflow doesn't natively support this, so you'll be combining CMS collections, custom checkbox UI, and JavaScript logic.
---
filter-tag.data-attributes for each checkbox to identify the filter value, like data-filter="design" or data-category="branding".
---
data-attributes (e.g., data-tags="branding design ux").divs inside each CMS item to store these values for filtering logic.
---
Example (include this script in an Embed element placed at the bottom of the page):
<script>
document.addEventListener("DOMContentLoaded", function () {
const checkboxes = document.querySelectorAll('.filter-tag');
const items = document.querySelectorAll('.cms-item'); // adjust this class to match your CMS item wrapper
checkboxes.forEach(checkbox => {
checkbox.addEventListener('change', filterItems);
});
function filterItems() {
const selectedValues = Array.from(checkboxes)
.filter(cb => cb.checked)
.map(cb => cb.getAttribute('data-filter'));
items.forEach(item => {
const itemTags = item.getAttribute('data-tags').split(' ');
// Checks if any selected filter matches itemTags
const match = selectedValues.every(val => itemTags.includes(val));
if (selectedValues.length === 0 || match) {
item.style.display = '';
} else {
item.style.display = 'none';
}
});
}
});
</script>
data-tags="branding design ui" where the values match filter options.
---
Array.every()).Array.some():
const match = selectedValues.some(val => itemTags.includes(val));
---
If you'd prefer a step-by-step visual guide, refer to Jetboost's advanced filtering tutorials on YouTube:
"Webflow multi-select CMS filtering custom code" on YouTube.
There isn't a single official video for this exact setup, but the Finsweet CMS Filter tutorial series covers near-identical configurations.
---
To enable a multi-select filter in Webflow, use checkboxes with data-filter attributes, mirror filter terms in data-tags on each CMS item, and use JavaScript to handle selection logic and conditional display. Customize logic as needed for "AND" vs "OR" filtering. For visuals, check related tutorials by Finsweet or Jetboost.