Skip to main content

This is an internal development app.

To learn how to design and build digital services, visit the design system in the NHS digital service manual for guidance and examples.

Tabs

These examples are used for automated tests and may not follow service manual best practice.

Tabs default

Open this example in a new tab: Tabs default

Contents

Past day
Case manager Cases opened Cases closed
David Francis 3 0
Paul Farmer 1 0
Rita Patel 2 0
Past week
Case manager Cases opened Cases closed
David Francis 24 18
Paul Farmer 16 20
Rita Patel 24 27
Past month
Case manager Cases opened Cases closed
David Francis 98 95
Paul Farmer 122 131
Rita Patel 126 142
Past year
Case manager Cases opened Cases closed
David Francis 1380 1472
Paul Farmer 1129 1083
Rita Patel 1539 1265
Code

Markup

<div class="nhsuk-tabs" data-module="nhsuk-tabs">
  <h2 class="nhsuk-tabs__title">
    Contents
  </h2>
  <ul class="nhsuk-tabs__list">
    <li class="nhsuk-tabs__list-item nhsuk-tabs__list-item--selected">
      <a class="nhsuk-tabs__tab" href="#past-day">
        Past day
      </a>
    </li>
    <li class="nhsuk-tabs__list-item">
      <a class="nhsuk-tabs__tab" href="#past-week">
        Past week
      </a>
    </li>
    <li class="nhsuk-tabs__list-item">
      <a class="nhsuk-tabs__tab" href="#past-month">
        Past month
      </a>
    </li>
    <li class="nhsuk-tabs__list-item">
      <a class="nhsuk-tabs__tab" href="#past-year">
        Past year
      </a>
    </li>
  </ul>
  <div class="nhsuk-tabs__panel" id="past-day">
    <table class="nhsuk-table">
      <caption class="nhsuk-table__caption">
        Past day
      </caption>
      <thead class="nhsuk-table__head">
        <tr class="nhsuk-table__row">
          <th scope="col" class="nhsuk-table__header">
            Case manager
          </th>
          <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">
            Cases opened
          </th>
          <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">
            Cases closed
          </th>
        </tr>
      </thead>
      <tbody class="nhsuk-table__body">
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            David Francis
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            3
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            0
          </td>
        </tr>
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            Paul Farmer
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            1
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            0
          </td>
        </tr>
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            Rita Patel
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            2
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            0
          </td>
        </tr>
      </tbody>
    </table>
  </div>
  <div class="nhsuk-tabs__panel nhsuk-tabs__panel--hidden" id="past-week">
    <table class="nhsuk-table">
      <caption class="nhsuk-table__caption">
        Past week
      </caption>
      <thead class="nhsuk-table__head">
        <tr class="nhsuk-table__row">
          <th scope="col" class="nhsuk-table__header">
            Case manager
          </th>
          <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">
            Cases opened
          </th>
          <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">
            Cases closed
          </th>
        </tr>
      </thead>
      <tbody class="nhsuk-table__body">
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            David Francis
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            24
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            18
          </td>
        </tr>
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            Paul Farmer
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            16
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            20
          </td>
        </tr>
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            Rita Patel
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            24
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            27
          </td>
        </tr>
      </tbody>
    </table>
  </div>
  <div class="nhsuk-tabs__panel nhsuk-tabs__panel--hidden" id="past-month">
    <table class="nhsuk-table">
      <caption class="nhsuk-table__caption">
        Past month
      </caption>
      <thead class="nhsuk-table__head">
        <tr class="nhsuk-table__row">
          <th scope="col" class="nhsuk-table__header">
            Case manager
          </th>
          <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">
            Cases opened
          </th>
          <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">
            Cases closed
          </th>
        </tr>
      </thead>
      <tbody class="nhsuk-table__body">
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            David Francis
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            98
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            95
          </td>
        </tr>
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            Paul Farmer
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            122
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            131
          </td>
        </tr>
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            Rita Patel
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            126
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            142
          </td>
        </tr>
      </tbody>
    </table>
  </div>
  <div class="nhsuk-tabs__panel nhsuk-tabs__panel--hidden" id="past-year">
    <table class="nhsuk-table">
      <caption class="nhsuk-table__caption">
        Past year
      </caption>
      <thead class="nhsuk-table__head">
        <tr class="nhsuk-table__row">
          <th scope="col" class="nhsuk-table__header">
            Case manager
          </th>
          <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">
            Cases opened
          </th>
          <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">
            Cases closed
          </th>
        </tr>
      </thead>
      <tbody class="nhsuk-table__body">
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            David Francis
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            1380
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            1472
          </td>
        </tr>
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            Paul Farmer
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            1129
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            1083
          </td>
        </tr>
        <tr class="nhsuk-table__row">
          <td class="nhsuk-table__cell">
            Rita Patel
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            1539
          </td>
          <td class="nhsuk-table__cell nhsuk-table__cell--numeric">
            1265
          </td>
        </tr>
      </tbody>
    </table>
  </div>
</div>

Macro

{% from "tabs/macro.njk" import tabs -%}

{{ tabs({
  items: [
    {
      label: "Past day",
      id: "past-day",
      panel: {
        html: '<table class="nhsuk-table">\n  <caption class="nhsuk-table__caption">\n    Past day\n  </caption>\n  <thead class="nhsuk-table__head">\n    <tr class="nhsuk-table__row">\n      <th scope="col" class="nhsuk-table__header">\n        Case manager\n      </th>\n      <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">\n        Cases opened\n      </th>\n      <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">\n        Cases closed\n      </th>\n    </tr>\n  </thead>\n  <tbody class="nhsuk-table__body">\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        David Francis\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        3\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        0\n      </td>\n    </tr>\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        Paul Farmer\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        1\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        0\n      </td>\n    </tr>\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        Rita Patel\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        2\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        0\n      </td>\n    </tr>\n  </tbody>\n</table>\n'
      }
    },
    {
      label: "Past week",
      id: "past-week",
      panel: {
        html: '<table class="nhsuk-table">\n  <caption class="nhsuk-table__caption">\n    Past week\n  </caption>\n  <thead class="nhsuk-table__head">\n    <tr class="nhsuk-table__row">\n      <th scope="col" class="nhsuk-table__header">\n        Case manager\n      </th>\n      <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">\n        Cases opened\n      </th>\n      <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">\n        Cases closed\n      </th>\n    </tr>\n  </thead>\n  <tbody class="nhsuk-table__body">\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        David Francis\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        24\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        18\n      </td>\n    </tr>\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        Paul Farmer\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        16\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        20\n      </td>\n    </tr>\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        Rita Patel\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        24\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        27\n      </td>\n    </tr>\n  </tbody>\n</table>\n'
      }
    },
    {
      label: "Past month",
      id: "past-month",
      panel: {
        html: '<table class="nhsuk-table">\n  <caption class="nhsuk-table__caption">\n    Past month\n  </caption>\n  <thead class="nhsuk-table__head">\n    <tr class="nhsuk-table__row">\n      <th scope="col" class="nhsuk-table__header">\n        Case manager\n      </th>\n      <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">\n        Cases opened\n      </th>\n      <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">\n        Cases closed\n      </th>\n    </tr>\n  </thead>\n  <tbody class="nhsuk-table__body">\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        David Francis\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        98\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        95\n      </td>\n    </tr>\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        Paul Farmer\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        122\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        131\n      </td>\n    </tr>\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        Rita Patel\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        126\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        142\n      </td>\n    </tr>\n  </tbody>\n</table>\n'
      }
    },
    {
      label: "Past year",
      id: "past-year",
      panel: {
        html: '<table class="nhsuk-table">\n  <caption class="nhsuk-table__caption">\n    Past year\n  </caption>\n  <thead class="nhsuk-table__head">\n    <tr class="nhsuk-table__row">\n      <th scope="col" class="nhsuk-table__header">\n        Case manager\n      </th>\n      <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">\n        Cases opened\n      </th>\n      <th scope="col" class="nhsuk-table__header nhsuk-table__header--numeric">\n        Cases closed\n      </th>\n    </tr>\n  </thead>\n  <tbody class="nhsuk-table__body">\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        David Francis\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        1380\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        1472\n      </td>\n    </tr>\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        Paul Farmer\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        1129\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        1083\n      </td>\n    </tr>\n    <tr class="nhsuk-table__row">\n      <td class="nhsuk-table__cell">\n        Rita Patel\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        1539\n      </td>\n      <td class="nhsuk-table__cell nhsuk-table__cell--numeric">\n        1265\n      </td>\n    </tr>\n  </tbody>\n</table>\n'
      }
    }
  ]
}) }}

Tabs with anchor in panel

Open this example in a new tab: Tabs with anchor in panel

Contents

Tab 1 content

Testing that when you click the link it moves focus.

Tab 2 content

Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.

Tab 3 content

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?

Code

Markup

<div class="nhsuk-tabs" data-module="nhsuk-tabs">
  <h2 class="nhsuk-tabs__title">
    Contents
  </h2>
  <ul class="nhsuk-tabs__list">
    <li class="nhsuk-tabs__list-item nhsuk-tabs__list-item--selected">
      <a class="nhsuk-tabs__tab" href="#tab-1">
        Tab 1
      </a>
    </li>
    <li class="nhsuk-tabs__list-item">
      <a class="nhsuk-tabs__tab" href="#tab-2">
        Tab 2
      </a>
    </li>
    <li class="nhsuk-tabs__list-item">
      <a class="nhsuk-tabs__tab" href="#tab-3">
        Tab 3
      </a>
    </li>
  </ul>
  <div class="nhsuk-tabs__panel" id="tab-1">
    <h2>Tab 1 content</h2>
    <p>Testing that when you <a href="#anchor">click the link</a> it moves focus.</p>
    <ul>
      <li><a href="#tab-1" id="anchor">Tab panel 1</a></li>
      <li><a href="#tab-2">Tab panel 2</a></li>
      <li><a href="#tab-3">Tab panel 3</a></li>
    </ul>
  </div>
  <div class="nhsuk-tabs__panel nhsuk-tabs__panel--hidden" id="tab-2">
    <h2>Tab 2 content</h2>
    <p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.</p>
  </div>
  <div class="nhsuk-tabs__panel nhsuk-tabs__panel--hidden" id="tab-3">
    <h2>Tab 3 content</h2>
    <p>Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>
  </div>
</div>

Macro

{% from "tabs/macro.njk" import tabs -%}

{{ tabs({
  items: [
    {
      label: "Tab 1",
      id: "tab-1",
      panel: {
        html: '<h2>Tab 1 content</h2>\n<p>Testing that when you <a href="#anchor">click the link</a> it moves focus.</p>\n<ul>\n  <li><a href="#tab-1" id="anchor">Tab panel 1</a></li>\n  <li><a href="#tab-2">Tab panel 2</a></li>\n  <li><a href="#tab-3">Tab panel 3</a></li>\n</ul>'
      }
    },
    {
      label: "Tab 2",
      id: "tab-2",
      panel: {
        html: "<h2>Tab 2 content</h2>\n<p>Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.</p>"
      }
    },
    {
      label: "Tab 3",
      id: "tab-3",
      panel: {
        html: "<h2>Tab 3 content</h2>\n<p>Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?</p>"
      }
    }
  ]
}) }}