How to create a “Read More” dropdown in Auto Layouts (Squarespace 7.1)

Squarespace 7.1 Auto Layouts (List Sections) are great for structured content, but they quickly run into a common limitation: long descriptions make layouts feel crowded and harder to scan.

A simple way to fix this is by adding a “Read More” dropdown toggle inside each list item. This keeps your design clean by default, while still allowing users to expand content when they want more detail.

In this guide, you’ll build a lightweight solution using custom JavaScript + CSS, with no plugins required.

Table of Contents

Why this approach is useful

Squarespace doesn’t natively support collapsible content inside Auto Layout descriptions. That means you often have to choose between:

  • Clean design (but less detail visible)

  • Full detail (but cluttered layout)

This solution bridges that gap by letting you:

  • Keep layouts visually clean

  • Hide long text behind a toggle

  • Improve readability and user experience

  • Avoid third-party plugins

  • Maintain native Squarespace structure

How the system works

This method uses a simple idea:

  • A <u> tag acts as the “Read More” trigger (You simply underline the text - Read More) See image below. Note any text can be underlined e.g show etc.

  • Everything after it is automatically hidden

  • Clicking toggles the hidden content with a smooth animation

No restructuring of Squarespace blocks is needed.

Step 1: Structure your content in Squarespace

Inside an Auto Layout list item description, structure your text like this:

This is the visible summary text that users will always see.
<u>Read More</u>
This is the hidden content that will expand when clicked.
You can add multiple lines, paragraphs, or detailed information here.

💡 Important: Everything you want hidden must come after the <u> tag.

Step 2: Add the JavaScript (core functionality)

Add this code to:

Settings → Advanced → Code Injection → Footer

<!-- Copyright Primitus Consultancy -->
<!-- How to create a “Read More” dropdown in Auto Layouts (Squarespace 7.1) -->
<script>
document.addEventListener('DOMContentLoaded', function () {
  if (document.body.classList.contains('sqs-edit-mode-active')) return;

  document.querySelectorAll('.list-item-content__description p:has(u)').forEach(function (p) {
    var u = p.querySelector('u');
    if (!u) return;

    var afterU = [];
    var node = u.nextSibling;

    while (node) {
      afterU.push(node);
      node = node.nextSibling;
    }

    var wrapper = document.createElement('span');
    wrapper.style.display = 'none';
    wrapper.style.overflow = 'hidden';

    afterU.forEach(function (n) {
      wrapper.appendChild(n);
    });

    p.appendChild(wrapper);

    u.style.cursor = 'pointer';

    u.addEventListener('click', function () {
      var isOpen = wrapper.style.display !== 'none';

      if (isOpen) {
        slideUp(wrapper);
        u.classList.remove('open-dropdown');
      } else {
        slideDown(wrapper);
        u.classList.add('open-dropdown');
      }
    });
  });
});

function slideDown(el) {
  el.style.display = 'inline';
  var height = el.scrollHeight + 'px';
  el.style.height = '0';
  el.style.overflow = 'hidden';
  el.style.transition = 'height 0.3s ease';

  requestAnimationFrame(function () {
    el.style.height = height;
  });

  el.addEventListener('transitionend', function () {
    el.style.height = '';
    el.style.overflow = '';
  }, { once: true });
}

function slideUp(el) {
  el.style.height = el.scrollHeight + 'px';
  el.style.overflow = 'hidden';
  el.style.transition = 'height 0.3s ease';

  requestAnimationFrame(function () {
    el.style.height = '0';
  });

  el.addEventListener('transitionend', function () {
    el.style.display = 'none';
    el.style.height = '';
  }, { once: true });
}
</script>
<!-- End How to create a “Read More” dropdown in Auto Layouts (Squarespace 7.1) -->

Step 3: Add the CSS styling

From the Squarespace dashboard navigate to Pages > Custom Code > Custom CSS and paste the code below

body:not(.sqs-edit-mode-active) .list-item-content__description u {
  align-items: center;
  border-bottom: 1px solid #152944;
  display: inline-flex;
  cursor: pointer;
  font-size: 14px;
  justify-content: space-between;
  text-decoration: none;
  text-transform: uppercase;
  min-width: 100px;
  pointer-events: auto;
}

body:not(.sqs-edit-mode-active) .list-item-content__description u::after {
  content: '↓';
  display: inline-block;
  transition: transform 0.3s ease;
}

body:not(.sqs-edit-mode-active) .list-item-content__description u.open-dropdown::after {
  transform: rotate(180deg);
}

Customisation Options

You can easily tailor the behaviour and style:

Change the animation speed

transition: 'height 0.3s ease';

Try:

  • 0.2s → faster

  • 0.5s → smoother

Change the dropdown indicator

Update this in CSS:

content: '↓';

Examples:

  • +

  • Read More

Change styling of the trigger

You can adjust:

border-bottom: 1px solid #152944;
text-transform: uppercase;

Key Takeaways

  • Works without plugins or extensions

  • Keeps Auto Layout designs clean and structured

  • Improves readability and user experience

  • Fully compatible with Squarespace 7.1

  • Easy to customise styling and behaviour

  • Ideal for services, portfolios, FAQs, and long-form content

FAQs

Does this work on all Squarespace sections?

No. It is designed specifically for Auto Layout / List Sections.

Is the hidden content SEO-friendly?

Yes. The content remains in the HTML and is only visually hidden.

Can I rename “Read More”?

Yes. Just change the <u> text inside your content.

Does it work on mobile?

Yes. The interaction is touch-friendly and responsive.

Can I use multiple dropdowns?

Yes, each list item can have its own independent toggle.



Conclusion

This method gives you a clean, scalable way to manage long-form content inside Squarespace 7.1 Auto Layouts without compromising design.

Instead of overwhelming users with large blocks of text, you create a controlled reading experience where content expands only when needed.

It’s a simple enhancement, but it significantly improves usability—especially for service lists, portfolios, and structured content layouts.


If you have any questions or need any help with your Squarespace website design, you can book a 1:1 consultation.


All work in this guide is provided ‘as-is’. Other than as provided this guide makes no other warranties, expressed or implied, and hereby disclaims all implied warranties, including any warranty of fitness for a particular purpose.

If you require professional advice, you can book our consultation services.

Primitus Consultancy

We work with small and medium-sized businesses to help create a professional online presence. We provide a one shop full-service design studio in London, United Kingdom. 

https://primitusconsultancy.co.uk
Next
Next

How to add a Substack feed to Squarespace