Skip to main content

Mini-hub

Mini-hubs are a way of presenting a number of pages about 1 topic on the NHS website.

Mini-hub example on desktop

The mini-hub is made up of:

When to use this pattern

Use mini-hubs to present information on 1 complex topic spread over 2 to 8 pages.

We've found that mini-hubs help users understand complex topics. They break the topic down into manageable chunks and help users digest the information in a way that meets their needs.

But this isn't the case for all of the NHS website. (We explain more in the Research section on this page.) Test the pattern with your users to make sure that it works for your content.

When not to use this pattern

Do not use mini-hubs:

  • for pages that are about more than 1 topic
  • in a transactional service

Elements of the mini-hub

Heading and sub-heading

Put an H1 heading at the top of the page. The first thing in the H1 heading should be the name of the page you're on, not the mini-hub topic.

Put the mini-hub topic underneath the page heading. We include it in the same H1 with class="nhsuk-caption-xl" which makes it look like a sub-heading.

The page heading and topic are both part of the H1 but the page heading looks more important than the topic. (We explain why we do this in the Research section on this page.)

In this example, "What is AMD?" is the heading for the page. "Age-related macular degeneration (AMD)" is the topic.

Open in new window
Copy
<h1>
  <span role="text">
    What is AMD?
    <span class="nhsuk-caption-xl nhsuk-caption--bottom">
      <span class="nhsuk-u-visually-hidden">
        -
      </span>
      Age-related macular degeneration (AMD)
    </span>
  </span>
</h1>

Contents list

Use a contents list at the top of the page, underneath the heading and sub-heading, to help users navigate around a small group of related pages (up to 8 pages), for example a group of pages about a specific health condition. The example on this page is from the NHS website information about AMD.

Open in new window
Copy
<nav class="nhsuk-contents-list" role="navigation" aria-label="Pages in this guide">
  <h2 class="nhsuk-u-visually-hidden">Contents</h2>
  <ol class="nhsuk-contents-list__list">
    <li class="nhsuk-contents-list__item" aria-current="page">
      <span class="nhsuk-contents-list__current">What is AMD?</span>
    </li>
    <li class="nhsuk-contents-list__item">
      <a class="nhsuk-contents-list__link" href="https://www.nhs.uk/conditions/age-related-macular-degeneration-amd/symptoms/">Symptoms</a>
    </li>
    <li class="nhsuk-contents-list__item">
      <a class="nhsuk-contents-list__link" href="https://www.nhs.uk/conditions/age-related-macular-degeneration-amd/getting-diagnosed/">Getting diagnosed</a>
    </li>
    <li class="nhsuk-contents-list__item">
      <a class="nhsuk-contents-list__link" href="https://www.nhs.uk/conditions/age-related-macular-degeneration-amd/treatment/">Treatments</a>
    </li>
    <li class="nhsuk-contents-list__item">
      <a class="nhsuk-contents-list__link" href="https://www.nhs.uk/conditions/age-related-macular-degeneration-amd/living-with-amd/">Living with AMD</a>
    </li>
  </ol>
</nav>
Copy
{% from 'contents-list/macro.njk' import contentsList %}

{{ contentsList({
  items: [
    {
      href: "https://www.nhs.uk/conditions/age-related-macular-degeneration-amd/",
      text: "What is AMD?",
      current: "true"
    },
    {
      href: "https://www.nhs.uk/conditions/age-related-macular-degeneration-amd/symptoms/",
      text: "Symptoms"
    },
    {
      href: "https://www.nhs.uk/conditions/age-related-macular-degeneration-amd/getting-diagnosed/",
      text: "Getting diagnosed"
    }
    ,
    {
      href: "https://www.nhs.uk/conditions/age-related-macular-degeneration-amd/treatment/",
      text: "Treatments"
    }
    ,
    {
      href: "https://www.nhs.uk/conditions/age-related-macular-degeneration-amd/living-with-amd/",
      text: "Living with AMD"
    }
  ]
}) }}

Pagination

Use pagination at the bottom of the page to help users navigate around a small group of related pages (up to 8 pages), for example a group of pages about a specific health condition.

Open in new window
Copy
<nav class="nhsuk-pagination" role="navigation" aria-label="Pagination">
  <ul class="nhsuk-list nhsuk-pagination__list">
    <li class="nhsuk-pagination-item--previous">
      <a class="nhsuk-pagination__link nhsuk-pagination__link--prev" href="/section/treatments">
        <span class="nhsuk-pagination__title">Previous</span>
        <span class="nhsuk-u-visually-hidden">:</span>
        <span class="nhsuk-pagination__page">Treatments</span>
        <svg class="nhsuk-icon nhsuk-icon__arrow-left" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
          <path d="M4.1 12.3l2.7 3c.2.2.5.2.7 0 .1-.1.1-.2.1-.3v-2h11c.6 0 1-.4 1-1s-.4-1-1-1h-11V9c0-.2-.1-.4-.3-.5h-.2c-.1 0-.3.1-.4.2l-2.7 3c0 .2 0 .4.1.6z"></path>
        </svg>
      </a>
    </li>
    <li class="nhsuk-pagination-item--next">
      <a class="nhsuk-pagination__link nhsuk-pagination__link--next" href="/section/symptoms">
        <span class="nhsuk-pagination__title">Next</span>
        <span class="nhsuk-u-visually-hidden">:</span>
        <span class="nhsuk-pagination__page">Symptoms</span>
        <svg class="nhsuk-icon nhsuk-icon__arrow-right" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
          <path d="M19.6 11.66l-2.73-3A.51.51 0 0 0 16 9v2H5a1 1 0 0 0 0 2h11v2a.5.5 0 0 0 .32.46.39.39 0 0 0 .18 0 .52.52 0 0 0 .37-.16l2.73-3a.5.5 0 0 0 0-.64z"></path>
        </svg>
      </a>
    </li>
  </ul>
</nav>
Copy
{% from 'pagination/macro.njk' import pagination %}

{{ pagination({
  "previousUrl": "/section/treatments",
  "previousPage": "Treatments",
  "nextUrl": "/section/symptoms",
  "nextPage": "Symptoms"
}) }}

Research on this pattern

We developed the mini-hub pattern for NHS website pages about health conditions.

We ran 3 rounds of research and tested our information about AMD with a range of users, including disabled people and people with low digital literacy. The Digital Accessibility Centre also tested the pattern.

We found that:

  • the structure and labelling of the pages fitted users' mental model and helped them understand the structure of the content
  • the active link formatting in the contents list helped users know where they were and, in some cases, it helped them choose the information that was relevant to them
  • most users (including a user with very low digital skills) used the pagination to navigate through pages and knew it was related to the contents list at the top of the page

Heading structure

At first we made the mini-hub topic the main H1 heading but, when users navigated between pages, it was not obvious to them which page they were on. In some cases they did not realise they had moved between pages. It was only when we made the page heading into the larger H1 heading that users were clear which page they were on.

We found that screen readers struggled to pronounce the heading and sub-heading together and that confused people. So we've used <span> tags around the headings in the <h1></h1> to help screen readers read more naturally. We've also included <span class="nhsuk-u-visually-hidden">-</span> to add a natural pause.

Where this pattern did not work

We tried using this pattern for information about medicines and found that users did not understand that the separate pages of a mini-hub made up a whole medicines topic. Users expected to see all the information about a medicine on 1 long page.

Discuss

Discuss mini-hubs on GitHub.

Get in touch

If you have a question:

Updated: November 2019

Components in this pattern