govuk-frontend
Advanced tools
Changelog
v5.7.1 (Fix release)
To install this version with npm, run npm install govuk-frontend@5.7.1
. You can also find more information about how to stay up to date in our documentation.
value
for File upload componentsThe File upload component currently supports a value
parameter, which populates the value
HTML attribute of the input.
However, since no modern browser supports passing a value
to a file input, we've made the decision to remove this parameter. It has been deprecated and will be removed in a future version of GOV.UK Frontend.
We introduced this change in pull request #5330: Deprecate File upload component's value
parameter.
We've made fixes to GOV.UK Frontend in the following pull requests:
Changelog
v5.7.0 (Feature release)
To install this version with npm, run npm install govuk-frontend@5.7.0
. You can also find more information about how to stay up to date in our documentation.
The Royal Arms in the GOV.UK footer has been updated to reflect the version introduced by King Charles III.
If your service does not use the image directly from the Frontend package, you should ensure the new image is being copied to your service’s image assets folder. By default this folder is located at /assets/images
.
If you’re using Nunjucks, the asset path may have been changed by the assetPath
global variable or assetsPath
parameter on the header component.
Copy the govuk-crest.svg
file from /dist/assets/images
into your assets folder.
You can safely delete the old image files, named govuk-crest.png
and govuk-crest-2x.png
.
We introduced this change in pull request #5376: Update the Royal Arms graphic in footer (v5.x).
GOV.UK Frontend components now throw an error if they've already been initialised on the DOM Element they're receiving for initialisation. This prevents components from being initialised more than once and therefore not working properly.
We introduced this change in pull request #5272: Prevent multiple initialisations of a single component instance
createAll
and initAll
We've added a new onError
option for createAll
and initAll
that lets you respond to initialisation errors.
The functions will continue catching errors and initialising components further down the page if one component fails to initialise,
but this option will let you react to a component failing to initialise. For example, to allow reporting to an error monitoring service.
We introduced this change in:
Changelog
v5.6.0 (Feature release)
To install this version with npm, run npm install govuk-frontend@5.6.0
. You can also find more information about how to stay up to date in our documentation.
We've added a new Service navigation component to help users to navigate services with multiple top-level sections. This replaces the navigation functions of the Header component, which will be deprecated in a future release of GOV.UK Frontend.
This component includes some features we consider experimental. We intend to iterate these features in response to user feedback. These are:
We introduced this change in pull request #5206: Service navigation component.
Changelog
v5.5.0 (Feature release)
To install this version with npm, run npm install govuk-frontend@5.5.0
. You can also find more information about how to stay up to date in our documentation.
We've overhauled the list of organisations and organisation brand colours that are shipped with GOV.UK Frontend.
The previous list was outdated and had not kept up with changes to the machinery of government. We’ve updated the list to:
To enable these changes, set the feature flag variable $govuk-new-organisation-colours
to true
before you import GOV.UK Frontend in your Sass files:
// application.scss
$govuk-new-organisation-colours: true;
@import "govuk-frontend/all";
You can also silence warnings about defunct organisations by adding organisation-colours
to the $govuk-suppressed-warnings
setting.
We introduced this change in pull request #3407: Update organisation colours.
govuk-!-text-break-word
We've added a new override class to help display long words with no obvious break points when the space is too narrow to display them on one line. An example of a long word might be an email address entered by a user.
Wrapping the content with the govuk-!-text-break-word
class forces words that are too long for the parent element to break onto a new line.
A confirmation email will be sent to <span class="govuk-!-text-break-word">arthur_phillip_dent.42@peoplepersonalitydivision.siriuscyberneticscorporation.corp</span>.
Sass users can also use the govuk-text-break-word
mixin.
We introduced this change in pull request #5159: Add break-word typography helper.
$websafe
parameter on the govuk-organisation-colour
functionThe govuk-organisation-colour
Sass function's $websafe
parameter has been renamed to $contrast-safe
.
This is to more accurately describe the functionality of the parameter.
The old parameter name will stop working in the next major version of GOV.UK Frontend.
We introduced this change in pull request #3407: Update organisation colours.
We've made fixes to GOV.UK Frontend in the following pull requests:
Changelog
5.4.1 (Fix release)
nav
and aria-label
We've made changes to the Breadcrumbs component to improve how it appears to screen readers.
We've changed the wrapping element to use the nav
tag to expose it as a navigational landmark, and added an aria-label
attribute to differentiate it as breadcrumb navigation.
This change was introduced in pull request #4995: Update Breadcrumb component to improve screen reader accessibility.
We've made fixes to GOV.UK Frontend in the following pull requests:
Changelog
5.4.0 (Feature release)
To install this version with npm, run npm install govuk-frontend@5.4.0
. You can also find more information about how to stay up to date in our documentation.
This release includes new features to help you include only the components your service uses. Doing this can help reduce the size of the JavaScript and CSS files sent to users, improving their experience.
createAll
We've added a new createAll
function that lets you initialise specific components in the same way that initAll
does.
The createAll
function will:
data-module
attributeimport { createAll, Button, Checkboxes } from 'govuk-frontend'
createAll(Button)
createAll(Checkboxes)
You can also pass a config object and a scope within which to search for elements.
You can find out more about how to use the createAll
function in our documentation.
This change was introduced in pull request #4975: Add createAll
function to initialise individual components.
govuk-!-font-tabular-numbers
We've added a new override class for tabular number styling: govuk-!-font-tabular-numbers
.
Using tabular numbers can make it easier for users to read numbers intended for comparison to one another, or for numbers that dynamically update.
It was previously only possible to use tabular numbers by using the govuk-font-tabular-numbers
Sass mixin.
This change was introduced in pull request #4973: Add override class for tabular numbers.
all
filesYou'll see a warning when compiling your Sass if you import any of our layers using the all
file. Importing using the all
files is deprecated, and we’ll remove them in the next major release.
In your import statements, use a trailing /index
rather than /all
to load GOV.UK Frontend's files.
For example:
@import "govuk/index";
instead of @import "govuk/all";
;@import "govuk/<PATH>/index";
instead of @import "govuk/<PATH>/all";
;You do not need /index
at the end of each import path if you’re using Dart Sass, LibSass 3.6.0 or higher, or Ruby Sass 3.6.0 or higher.
This change was introduced in pull request #4955: Rename all
files to index
for our Sass entry points.
We've made fixes to GOV.UK Frontend in the following pull requests:
errorMessage
argument for the password input component - thanks to Tim South for contributing this changegovuk-frontend
errorList
is providedChangelog
5.3.1 (Fix release)
To install this version with npm, run npm install govuk-frontend@5.3.1
. You can also find more information about how to stay up to date in our documentation.
We've made fixes to GOV.UK Frontend in the following pull requests:
attributes
option ignoring values passed from the safe
filter Changelog
5.3.0 (Feature release)
To install this version with npm, run npm install govuk-frontend@5.3.0
. You can also find more information about how to stay up to date in our documentation.
The Password input component allows users to choose:
This helps users use longer and more complex passwords without needing to remember what they've already typed.
This change was introduced in pull request #4442: Create password input component. Thanks to @andysellick for the original contribution.
We've updated the HTML for the Character count component. The component wrapper data-module="govuk-character-count"
and its form group class="govuk-form-group"
are now combined as the same <div>
. The hint text used as the count message now appears directly after the <textarea>
.
If you're not using Nunjucks macros, then you should:
<div>
to the component wrapper <div>
<div>
and closing </div>
tags used by the form group<textarea>
The following example shows some HTML and the difference once it’s updated.
HTML before:
<div class="govuk-character-count" data-module="govuk-character-count" data-maxlength="100">
<div class="govuk-form-group">
<!-- // Label, hint, error and textarea -->
</div>
<!-- // Count message -->
</div>
HTML after:
<div class="govuk-form-group govuk-character-count" data-module="govuk-character-count" data-maxlength="100">
<!-- // Label, hint, error, textarea and count message -->
</div>
Check your changes against the Character count example in the Design System to make sure you’ve correctly implemented them.
This change was introduced in pull request #4566: Use Character count formGroup
as module wrapper.
role
attributes from elementsWe've made minor changes to the HTML of the page template, as well as the header, footer and pagination components.
You can update your HTML to remove the role
attribute from some elements. These include the:
main
role on the main
element in the templatebanner
role on the header
element in the Header componentcontentinfo
role on the footer
element in the Footer componentnavigation
role on the nav
element in the Pagination componentThese roles were present to support legacy browsers, such as older versions of Internet Explorer. GOV.UK Frontend no longer supports these browsers, so you can now remove these roles.
You do not need to change anything if you're using the Nunjucks versions of the page template or these components,
This change was introduced in pull request #4854: Remove redundant role
attributes.
We've fixed an upstream issue in the cssnano npm package that caused elements with transparency to render incorrectly in Internet Explorer 11. This affected the pre-compiled CSS files in the GOV.UK Frontend npm package and GitHub releases for versions 5.0, 5.1 and 5.2. This was fixed in:
We've made fixes to GOV.UK Frontend in the following pull requests:
KeyboardEvent.key
over deprecated KeyboardEvent.keyCode
in the Tabs componentKeyboardEvent.key
over deprecated KeyboardEvent.keyCode
in the Button componentKeyboardEvent
properties from the Exit this Page componentChangelog
5.2.0 (Feature release)
In this release, we’ve adjusted our responsive type scale, which is available behind a feature flag. The type scale change is to make text easier to read on smaller screens. We’ve also deprecated the useTudorCrown
parameter.
To install this version with npm, run npm install govuk-frontend@5.2.0
. You can also find more information about how to stay up to date in our documentation.
We've made the following adjustments to our responsive type scale:
To enable these changes, set the feature flag variable $govuk-new-typography-scale
to true
before you import GOV.UK Frontend in your Sass files:
// application.scss
$govuk-new-typography-scale: true;
@import "govuk-frontend/all";
If your service uses custom elements made using GOV.UK Frontend, test your service against the new typography scale to assess if you need to make any adjustments.
You can read more on upgrading your service to the new type scale in our upgrade guide.
This change was introduced in pull request #2421: Adjust the responsive type scale
You can now insert custom HTML into form group wrappers for all components with form fields.
govukInput({
formGroup: {
beforeInput: {
html: "example"
},
afterInput: {
html: "example"
},
}
})
This change was introduced in pull request #4567: Add beforeInput(s)
and beforeInput(s)
options to form groups.
useTudorCrown
parameter in the Heading componentThe rollout for the revised GOV.UK logo has started and the Tudor crown logo is now shown by default. We’ve deprecated the useTudorCrown
parameter and will remove it in the next major release.
You can now remove the useTudorCrown
parameter, along with any other adjustments made to display the Tudor crown logo in your service.
This change was introduced in pull request #4740: Make Tudor Crown logo the default
We've made fixes to GOV.UK Frontend in the following pull requests: