Components

Panel

The panel component is a visible container used on confirmation or results pages to highlight important content.

<div class="govuk-panel govuk-panel--confirmation">
  <h1 class="govuk-panel__title">
    Application complete
  </h1>
  <div class="govuk-panel__body">
    Your reference number<br><strong>HDJ2123F</strong>
  </div>
</div>
Nunjucks macro options

Use options to customise the appearance, content and behaviour of a component when using a macro, for example, changing the text.

Some options are required for the macro to work; these are marked as “Required” in the option description.

If you’re using Nunjucks macros in production with “html” options, or ones ending with “html”, you must sanitise the HTML to protect against cross-site scripting exploits.

Primary options
Name Type Description
titleText string Required. If titleHtml is set, this is not required. Text to use within the panel. If titleHtml is provided, the titleText option will be ignored.
titleHtml string Required. If titleText is set, this is not required. HTML to use within the panel. If titleHtml is provided, the titleText option will be ignored.
headingLevel integer Heading level, from 1 to 6. Default is 1.
text string Required. If html is set, this is not required. Text to use within the panel content. If html is provided, the text option will be ignored.
html string Required. If text is set, this is not required. HTML to use within the panel content. If html is provided, the text option will be ignored.
caller nunjucks-block Not strictly a parameter but Nunjucks code convention. Using a call block enables you to call a macro with all the text inside the tag. This is helpful if you want to pass a lot of content into a macro. To use it, you will need to wrap the entire panel component in a call block.
classes string Classes to add to the panel container.
attributes object HTML attributes (for example data attributes) to add to the panel container.
{% from "govuk/components/panel/macro.njk" import govukPanel %}

{{ govukPanel({
  titleText: "Application complete",
  html: "Your reference number<br><strong>HDJ2123F</strong>"
}) }}

When to use this component

Use the panel component to display important information when a transaction has been  completed.

In most cases, the panel component is used on confirmation pages, to tell the user they have successfully completed the transaction.

When not to use this component

Never use the panel component to highlight important information within body content.

How it works

There are 2 ways to use the panel component. You can use HTML or, if you are using Nunjucks or the GOV.UK Prototype Kit, you can use the Nunjucks macro.

<div class="govuk-panel govuk-panel--confirmation">
  <h1 class="govuk-panel__title">
    Application complete
  </h1>
  <div class="govuk-panel__body">
    Your reference number<br><strong>HDJ2123F</strong>
  </div>
</div>
Nunjucks macro options

Use options to customise the appearance, content and behaviour of a component when using a macro, for example, changing the text.

Some options are required for the macro to work; these are marked as “Required” in the option description.

If you’re using Nunjucks macros in production with “html” options, or ones ending with “html”, you must sanitise the HTML to protect against cross-site scripting exploits.

Primary options
Name Type Description
titleText string Required. If titleHtml is set, this is not required. Text to use within the panel. If titleHtml is provided, the titleText option will be ignored.
titleHtml string Required. If titleText is set, this is not required. HTML to use within the panel. If titleHtml is provided, the titleText option will be ignored.
headingLevel integer Heading level, from 1 to 6. Default is 1.
text string Required. If html is set, this is not required. Text to use within the panel content. If html is provided, the text option will be ignored.
html string Required. If text is set, this is not required. HTML to use within the panel content. If html is provided, the text option will be ignored.
caller nunjucks-block Not strictly a parameter but Nunjucks code convention. Using a call block enables you to call a macro with all the text inside the tag. This is helpful if you want to pass a lot of content into a macro. To use it, you will need to wrap the entire panel component in a call block.
classes string Classes to add to the panel container.
attributes object HTML attributes (for example data attributes) to add to the panel container.
{% from "govuk/components/panel/macro.njk" import govukPanel %}

{{ govukPanel({
  titleText: "Application complete",
  html: "Your reference number<br><strong>HDJ2123F</strong>"
}) }}

How to write panel text

Keep your panel text brief, as it’s only meant for a high-level explanation of what has happened. For example, ‘Application complete’.

Aim to use short words and phrases to make sure highlighted information is easy to read at different screen sizes. For example, shorter amounts of information is less likely to wrap around the panel, which can happen when using the zoom function on mobiles.

If you need to give detailed information, or more context, use the description text under the heading text.

Selecting and copying information

WCAG 2.2 Allow users to select and copy text within a panel component. For example, users should be able to select and copy a booking number. This relates to WCAG 2.2 success criterion 3.3.7 Redundant Entry.

Consider offering an option for the user to copy information in the panel component area into their device’s clipboard if there’s information that the user is expected:

  • save
  • remember
  • copy

Help improve this component

To help make sure that this page is useful, relevant and up to date, you can:

Tell us if your service uses this component

Take part in our usage survey (opens in a new tab) to help us improve this component to better meet the needs of the services that use it.

Need help?

If you’ve got a question about the GOV.UK Design System, contact the team.