-
Notifications
You must be signed in to change notification settings - Fork 331
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release v4.0.0 #2480
Merged
Merged
Release v4.0.0 #2480
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
govuk-design-system-ci
temporarily deployed
to
govuk-frontend-pr-2480
December 15, 2021 14:41
Inactive
Changes to distdiff --git a/dist/VERSION.txt b/dist/VERSION.txt
index 0d0e48dd..e74e2121 100644
--- a/dist/VERSION.txt
+++ b/dist/VERSION.txt
@@ -1 +1 @@
-3.13.1
+4.0.0
diff --git a/dist/govuk-frontend-3.13.1.min.css b/dist/govuk-frontend-4.0.0.min.css
similarity index 5%
rename from dist/govuk-frontend-3.13.1.min.css
rename to dist/govuk-frontend-4.0.0.min.css
index ffc0356d..5ad564e5 100644
--- a/dist/govuk-frontend-3.13.1.min.css
+++ b/dist/govuk-frontend-4.0.0.min.css
@@ -47,10 +47,7 @@
color: #003078
}
-.govuk-link:active {
- color: #0b0c0c
-}
-
+.govuk-link:active,
.govuk-link:focus {
color: #0b0c0c
}
@@ -72,14 +69,8 @@
}
.govuk-link--muted:active,
-.govuk-link--muted:hover {
- color: #0b0c0c
-}
-
-.govuk-link--muted:focus {
- color: #0b0c0c
-}
-
+.govuk-link--muted:focus,
+.govuk-link--muted:hover,
.govuk-link--text-colour:link,
.govuk-link--text-colour:visited {
color: #0b0c0c
@@ -137,11 +128,9 @@
color: #003078
}
-.govuk-link--no-visited-state:active {
- color: #0b0c0c
-}
-
-.govuk-link--no-visited-state:focus {
+.govuk-link--no-visited-state:active,
+.govuk-link--no-visited-state:focus,
+.govuk-list {
color: #0b0c0c
}
@@ -153,7 +142,6 @@
font-size: 16px;
font-size: 1rem;
line-height: 1.25;
- color: #0b0c0c;
margin-top: 0;
margin-bottom: 15px;
padding-left: 0;
@@ -229,24 +217,6 @@
}
}
-.govuk-template {
- background-color: #f3f2f1;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
- text-size-adjust: 100%
-}
-
-@media screen {
- .govuk-template {
- overflow-y: scroll
- }
-}
-
-.govuk-template__body {
- margin: 0;
- background-color: #fff
-}
-
.govuk-heading-xl {
color: #0b0c0c;
font-family: GDS Transport, arial, sans-serif;
@@ -1111,6 +1081,24 @@
}
}
+.govuk-template {
+ background-color: #f3f2f1;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+ text-size-adjust: 100%
+}
+
+@media screen {
+ .govuk-template {
+ overflow-y: scroll
+ }
+}
+
+.govuk-template__body {
+ margin: 0;
+ background-color: #fff
+}
+
.govuk-width-container {
max-width: 960px;
margin-right: 15px;
@@ -1166,65 +1154,44 @@
padding-top: 15px
}
-.govuk-accordion__section-header {
- padding-top: 15px;
- padding-bottom: 15px
-}
-
.govuk-accordion__section-heading {
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- font-weight: 400;
- font-size: 18px;
- font-size: 1.125rem;
- line-height: 1.11111;
margin-top: 0;
- margin-bottom: 0
-}
-
-@media print {
- .govuk-accordion__section-heading {
- font-family: sans-serif
- }
+ margin-bottom: 0;
+ padding-top: 15px;
+ padding-bottom: 15px
}
-@media (min-width:40.0625em) {
- .govuk-accordion__section-heading {
- font-size: 24px;
- font-size: 1.5rem;
- line-height: 1.25
- }
+.govuk-accordion__section-button {
+ color: #0b0c0c;
+ display: block;
+ margin-bottom: 0;
+ padding-top: 15px
}
@media print {
- .govuk-accordion__section-heading {
- font-size: 18pt;
- line-height: 1.15
+ .govuk-accordion__section-button {
+ color: #000
}
}
-.govuk-accordion__section-button {
+.govuk-accordion__section-heading-text {
font-family: GDS Transport, arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 700;
font-size: 18px;
font-size: 1.125rem;
- line-height: 1.11111;
- display: inline-block;
- margin-bottom: 0;
- padding-top: 15px
+ line-height: 1.11111
}
@media print {
- .govuk-accordion__section-button {
+ .govuk-accordion__section-heading-text {
font-family: sans-serif
}
}
@media (min-width:40.0625em) {
- .govuk-accordion__section-button {
+ .govuk-accordion__section-heading-text {
font-size: 24px;
font-size: 1.5rem;
line-height: 1.25
@@ -1232,17 +1199,12 @@
}
@media print {
- .govuk-accordion__section-button {
+ .govuk-accordion__section-heading-text {
font-size: 18pt;
line-height: 1.15
}
}
-.govuk-accordion__section-summary {
- margin-top: 10px;
- margin-bottom: 0
-}
-
.govuk-accordion__section-content>:last-child {
margin-bottom: 0
}
@@ -1257,14 +1219,12 @@
.js-enabled .govuk-accordion__section-content {
display: none;
- padding-top: 15px;
- padding-bottom: 15px
+ padding-bottom: 30px
}
@media (min-width:40.0625em) {
.js-enabled .govuk-accordion__section-content {
- padding-top: 15px;
- padding-bottom: 15px
+ padding-bottom: 50px
}
}
@@ -1272,104 +1232,178 @@
display: block
}
-.js-enabled .govuk-accordion__open-all {
+.js-enabled .govuk-accordion__show-all {
+ font-family: GDS Transport, arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
font-weight: 400;
- font-size: 14px;
- font-size: .875rem;
- line-height: 1.14286;
+ font-size: 16px;
+ font-size: 1rem;
+ line-height: 1.25;
position: relative;
z-index: 1;
- margin: 0;
- padding: 0;
+ margin-bottom: 9px;
+ padding: 5px 2px 5px 0;
border-width: 0;
color: #1d70b8;
background: none;
cursor: pointer;
- -webkit-appearance: none;
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- text-decoration: underline
+ -webkit-appearance: none
+}
+
+@media print {
+ .js-enabled .govuk-accordion__show-all {
+ font-family: sans-serif
+ }
}
@media (min-width:40.0625em) {
- .js-enabled .govuk-accordion__open-all {
- font-size: 16px;
- font-size: 1rem;
- line-height: 1.25
+ .js-enabled .govuk-accordion__show-all {
+ font-size: 19px;
+ font-size: 1.1875rem;
+ line-height: 1.31579
}
}
@media print {
- .js-enabled .govuk-accordion__open-all {
+ .js-enabled .govuk-accordion__show-all {
font-size: 14pt;
- line-height: 1.2;
- font-family: sans-serif
+ line-height: 1.15
}
}
-.js-enabled .govuk-accordion__open-all:focus {
+@media (min-width:48.0625em) {
+ .js-enabled .govuk-accordion__show-all {
+ margin-bottom: 14px
+ }
+}
+
+.js-enabled .govuk-accordion__show-all::-moz-focus-inner {
+ padding: 0;
+ border: 0
+}
+
+.js-enabled .govuk-accordion__show-all:hover {
+ color: #0b0c0c;
+ background: #f3f2f1;
+ box-shadow: 0 -2px #f3f2f1, 0 4px #f3f2f1
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion__section-toggle-text {
+ color: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron:after {
+ color: #f3f2f1
+}
+
+.js-enabled .govuk-accordion__show-all:focus {
outline: 3px solid rgba(0, 0, 0, 0);
+ color: #0b0c0c;
background-color: #fd0;
box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
text-decoration: none
}
-.js-enabled .govuk-accordion__open-all:link {
- color: #1d70b8
-}
-
-.js-enabled .govuk-accordion__open-all:visited {
- color: #4c2c92
+.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron {
+ background: #0b0c0c
}
-.js-enabled .govuk-accordion__open-all:hover {
- color: #003078
+.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron:after {
+ color: #fd0
}
-.js-enabled .govuk-accordion__open-all:active {
- color: #0b0c0c
+.js-enabled .govuk-accordion__section-heading {
+ padding: 0
}
-.js-enabled .govuk-accordion__open-all:focus {
- color: #0b0c0c
+.js-enabled .govuk-accordion-nav__chevron {
+ box-sizing: border-box;
+ display: inline-block;
+ position: relative;
+ width: 1.25rem;
+ height: 1.25rem;
+ border: .0625rem solid;
+ border-radius: 50%;
+ vertical-align: middle
}
-.js-enabled .govuk-accordion__open-all::-moz-focus-inner {
- padding: 0;
- border: 0
+.js-enabled .govuk-accordion-nav__chevron:after {
+ content: "";
+ box-sizing: border-box;
+ display: block;
+ position: absolute;
+ bottom: .3125rem;
+ left: .375rem;
+ width: .375rem;
+ height: .375rem;
+ -webkit-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ border-top: .125rem solid;
+ border-right: .125rem solid
}
-.js-enabled .govuk-accordion__section-header {
- position: relative;
- padding-right: 40px;
- border-top: 1px solid #b1b4b6;
- cursor: pointer
+.js-enabled .govuk-accordion-nav__chevron--down {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg)
}
.js-enabled .govuk-accordion__section-button {
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 0;
- padding: 0;
- border-width: 0;
- color: #1d70b8;
+ width: 100%;
+ padding: 10px 0 0;
+ border: 0;
+ border-top: 1px solid #b1b4b6;
+ border-bottom: 10px solid rgba(0, 0, 0, 0);
+ color: #0b0c0c;
background: none;
text-align: left;
cursor: pointer;
-webkit-appearance: none
}
-@media print {
+@media (min-width:40.0625em) {
.js-enabled .govuk-accordion__section-button {
- font-family: sans-serif
+ padding-bottom: 10px
}
}
+.js-enabled .govuk-accordion__section-button:active {
+ color: #0b0c0c;
+ background: none
+}
+
+.js-enabled .govuk-accordion__section-button:hover {
+ color: #0b0c0c;
+ background: #f3f2f1
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion__section-toggle-text {
+ color: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron:after {
+ color: #f3f2f1
+}
+
.js-enabled .govuk-accordion__section-button:focus {
+ outline: 0
+}
+
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
outline: 3px solid rgba(0, 0, 0, 0);
color: #0b0c0c;
background-color: #fd0;
@@ -1377,72 +1411,121 @@
text-decoration: none
}
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron:after {
+ color: #fd0
+}
+
.js-enabled .govuk-accordion__section-button::-moz-focus-inner {
padding: 0;
border: 0
}
-.js-enabled .govuk-accordion__section-button:after {
- content: "";
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0
+.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-button {
+ padding-bottom: 20px;
+ border-bottom: 0
}
-.js-enabled .govuk-accordion__section-button:hover:not(:focus) {
- color: #003078;
- text-decoration: underline;
- text-underline-offset: .1em
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
+ padding-bottom: 3px
}
-@media (hover:none) {
- .js-enabled .govuk-accordion__section-button:hover {
- text-decoration: none
+@media (min-width:48.0625em) {
+ .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
+ padding-bottom: 2px
}
}
-.js-enabled .govuk-accordion__controls {
- text-align: right
+.js-enabled .govuk-accordion__section-heading-text,
+.js-enabled .govuk-accordion__section-summary,
+.js-enabled .govuk-accordion__section-toggle {
+ display: block;
+ margin-bottom: 13px
}
-.js-enabled .govuk-accordion__icon {
- position: absolute;
- top: 50%;
- right: 15px;
- width: 16px;
- height: 16px;
- margin-top: -8px
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-toggle-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-toggle-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-toggle-focus {
+ display: inline
}
-.js-enabled .govuk-accordion__icon:after,
-.js-enabled .govuk-accordion__icon:before {
- content: "";
- box-sizing: border-box;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- width: 25%;
- height: 25%;
- margin: auto;
- border: 2px solid rgba(0, 0, 0, 0);
- background-color: #0b0c0c
+.js-enabled .govuk-accordion__section-toggle {
+ font-family: GDS Transport, arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-weight: 400;
+ font-size: 16px;
+ font-size: 1rem;
+ line-height: 1.25;
+ color: #1d70b8
}
-.js-enabled .govuk-accordion__icon:before {
- width: 100%
+@media print {
+ .js-enabled .govuk-accordion__section-toggle {
+ font-family: sans-serif
+ }
}
-.js-enabled .govuk-accordion__icon:after {
- height: 100%
+@media (min-width:40.0625em) {
+ .js-enabled .govuk-accordion__section-toggle {
+ font-size: 19px;
+ font-size: 1.1875rem;
+ line-height: 1.31579
+ }
}
-.js-enabled .govuk-accordion__section--expanded .govuk-accordion__icon:after {
- content: " ";
- display: none
+@media print {
+ .js-enabled .govuk-accordion__section-toggle {
+ font-size: 14pt;
+ line-height: 1.15
+ }
+}
+
+.js-enabled .govuk-accordion__section-toggle-text,
+.js-enabled .govuk-accordion__show-all-text {
+ margin-left: 5px;
+ vertical-align: middle
+}
+
+@media screen and (forced-colors:active) {
+
+ .js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron,
+ .js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {
+ background-color: rgba(0, 0, 0, 0)
+ }
+
+ .js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron,
+ .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,
+ .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,
+ .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus,
+ .js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron,
+ .js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-heading-text-focus,
+ .js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-summary-focus,
+ .js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-toggle-focus {
+ background: rgba(0, 0, 0, 0);
+ background-color: rgba(0, 0, 0, 0)
+ }
+}
+
+@media (hover:none) {
+ .js-enabled .govuk-accordion__section-header:hover {
+ border-top-color: #b1b4b6;
+ box-shadow: inset 0 3px 0 0 #1d70b8
+ }
+
+ .js-enabled .govuk-accordion__section-header:hover .govuk-accordion__section-button {
+ border-top-color: #b1b4b6
+ }
}
.govuk-back-link {
@@ -1925,6 +2008,7 @@
font-size: 1rem;
line-height: 1.25;
display: block;
+ margin-top: 0;
margin-bottom: 15px;
clear: both;
color: #d4351c
@@ -2152,7 +2236,6 @@
font-size: 16px;
font-size: 1rem;
line-height: 1.25;
- display: block;
margin-bottom: 15px;
color: #505a5f
}
@@ -2666,7 +2749,7 @@ screen and (forced-colors:active) {
}
.govuk-textarea--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-textarea--error:focus {
@@ -2718,39 +2801,11 @@ screen and (forced-colors:active) {
}
.govuk-cookie-banner {
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- font-weight: 400;
- font-size: 16px;
- font-size: 1rem;
- line-height: 1.25;
padding-top: 20px;
border-bottom: 10px solid rgba(0, 0, 0, 0);
background-color: #f3f2f1
}
-@media print {
- .govuk-cookie-banner {
- font-family: sans-serif
- }
-}
-
-@media (min-width:40.0625em) {
- .govuk-cookie-banner {
- font-size: 19px;
- font-size: 1.1875rem;
- line-height: 1.31579
- }
-}
-
-@media print {
- .govuk-cookie-banner {
- font-size: 14pt;
- line-height: 1.15
- }
-}
-
.govuk-cookie-banner[hidden] {
display: none
}
@@ -2806,14 +2861,18 @@ screen and (forced-colors:active) {
display: table;
width: 100%;
table-layout: fixed;
+ border-collapse: collapse;
margin-bottom: 30px
}
}
+.govuk-summary-list__row {
+ border-bottom: 1px solid #b1b4b6
+}
+
@media (max-width:40.0525em) {
.govuk-summary-list__row {
- margin-bottom: 15px;
- border-bottom: 1px solid #b1b4b6
+ margin-bottom: 15px
}
}
@@ -2823,6 +2882,11 @@ screen and (forced-colors:active) {
}
}
+.govuk-summary-list__row--no-actions:after {
+ content: "";
+ display: table-cell
+}
+
.govuk-summary-list__actions,
.govuk-summary-list__key,
.govuk-summary-list__value {
@@ -2837,8 +2901,7 @@ screen and (forced-colors:active) {
display: table-cell;
padding-top: 10px;
padding-right: 20px;
- padding-bottom: 10px;
- border-bottom: 1px solid #b1b4b6
+ padding-bottom: 10px
}
}
@@ -2877,18 +2940,6 @@ screen and (forced-colors:active) {
}
}
-@media (min-width:40.0625em) {
- .govuk-summary-list__value {
- width: 50%
- }
-}
-
-@media (min-width:40.0625em) {
- .govuk-summary-list__value:last-child {
- width: 70%
- }
-}
-
.govuk-summary-list__value>p {
margin-bottom: 10px
}
@@ -2919,10 +2970,8 @@ screen and (forced-colors:active) {
border: 0
}
-@media (max-width:40.0525em) {
- .govuk-summary-list--no-border .govuk-summary-list__row {
- border: 0
- }
+.govuk-summary-list--no-border .govuk-summary-list__row {
+ border: 0
}
@media (min-width:40.0625em) {
@@ -2930,15 +2979,12 @@ screen and (forced-colors:active) {
.govuk-summary-list--no-border .govuk-summary-list__actions,
.govuk-summary-list--no-border .govuk-summary-list__key,
.govuk-summary-list--no-border .govuk-summary-list__value {
- padding-bottom: 11px;
- border: 0
+ padding-bottom: 11px
}
}
-@media (max-width:40.0525em) {
- .govuk-summary-list__row--no-border {
- border: 0
- }
+.govuk-summary-list__row--no-border {
+ border: 0
}
@media (min-width:40.0625em) {
@@ -2946,8 +2992,7 @@ screen and (forced-colors:active) {
.govuk-summary-list__row--no-border .govuk-summary-list__actions,
.govuk-summary-list__row--no-border .govuk-summary-list__key,
.govuk-summary-list__row--no-border .govuk-summary-list__value {
- padding-bottom: 11px;
- border: 0
+ padding-bottom: 11px
}
}
@@ -3010,7 +3055,7 @@ screen and (forced-colors:active) {
}
.govuk-input--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-input--error:focus {
@@ -3714,17 +3759,11 @@ only screen and (min-resolution:192dpi) {
}
.govuk-footer__heading {
- margin-bottom: 25px;
+ margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 1px solid #b1b4b6
}
-@media (min-width:40.0625em) {
- .govuk-footer__heading {
- margin-bottom: 40px
- }
-}
-
@media (max-width:40.0525em) {
.govuk-footer__heading {
padding-bottom: 10px
@@ -3732,47 +3771,20 @@ only screen and (min-resolution:192dpi) {
}
.govuk-footer__navigation {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
margin-right: -15px;
- margin-left: -15px;
- -webkit-flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap
+ margin-left: -15px
+}
+
+.govuk-footer__navigation:after {
+ content: "";
+ display: block;
+ clear: both
}
.govuk-footer__section {
display: inline-block;
- margin-right: 15px;
margin-bottom: 30px;
- margin-left: 15px;
- vertical-align: top;
- -webkit-box-flex: 1;
- -webkit-flex-grow: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
- -webkit-flex-shrink: 1;
- -ms-flex-negative: 1;
- flex-shrink: 1
-}
-
-@media (max-width:48.0525em) {
- .govuk-footer__section {
- -webkit-flex-basis: 200px;
- -ms-flex-preferred-size: 200px;
- flex-basis: 200px
- }
-}
-
-@media (min-width:48.0625em) {
- .govuk-footer__section:first-child:nth-last-child(2) {
- -webkit-box-flex: 2;
- -webkit-flex-grow: 2;
- -ms-flex-positive: 2;
- flex-grow: 2
- }
+ vertical-align: top
}
.govuk-footer__list {
@@ -4155,19 +4167,18 @@ only screen and (min-resolution:192dpi) {
border-bottom-color: inherit
}
-.govuk-header__navigation {
- display: block;
- margin: 0;
- padding: 0;
- list-style: none
-}
-
-@media (min-width:40.0625em) {
+@media (min-width:48.0625em) {
.govuk-header__navigation {
margin-bottom: 10px
}
}
+.govuk-header__navigation-list {
+ margin: 0;
+ padding: 0;
+ list-style: none
+}
+
.js-enabled .govuk-header__menu-button {
display: block
}
@@ -4178,17 +4189,17 @@ only screen and (min-resolution:192dpi) {
}
}
-.js-enabled .govuk-header__navigation {
+.js-enabled .govuk-header__navigation-list {
display: none
}
@media (min-width:48.0625em) {
- .js-enabled .govuk-header__navigation {
+ .js-enabled .govuk-header__navigation-list {
display: block
}
}
-.js-enabled .govuk-header__navigation--open {
+.js-enabled .govuk-header__navigation-list--open {
display: block
}
@@ -4261,7 +4272,8 @@ only screen and (min-resolution:192dpi) {
}
.govuk-header__navigation-item:last-child {
- margin-right: 0
+ margin-right: 0;
+ border-bottom: 0
}
@media print {
@@ -4517,10 +4529,7 @@ only screen and (min-resolution:192dpi) {
color: #003078
}
-.govuk-notification-banner__link:active {
- color: #0b0c0c
-}
-
+.govuk-notification-banner__link:active,
.govuk-notification-banner__link:focus {
color: #0b0c0c
}
@@ -4585,7 +4594,9 @@ only screen and (min-resolution:192dpi) {
@media (max-width:40.0525em) {
.govuk-panel {
- padding: 25px
+ padding: 10px;
+ overflow-wrap: break-word;
+ word-wrap: break-word
}
}
@@ -4710,10 +4721,6 @@ only screen and (min-resolution:192dpi) {
}
}
-.govuk-tag--inactive {
- background-color: #505a5f
-}
-
.govuk-tag--grey {
color: #383f43;
background: #eeefef
@@ -4946,10 +4953,7 @@ only screen and (min-resolution:192dpi) {
color: #003078
}
-.govuk-tabs__tab:active {
- color: #0b0c0c
-}
-
+.govuk-tabs__tab:active,
.govuk-tabs__tab:focus {
color: #0b0c0c
}
@@ -5406,7 +5410,7 @@ screen and (forced-colors:active) {
}
.govuk-select--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-select--error:focus {
@@ -5511,6 +5515,10 @@ screen and (forced-colors:active) {
background-color: #fd0
}
+.govuk-skip-link-focused-element:focus {
+ outline: none
+}
+
.govuk-table {
font-family: GDS Transport, arial, sans-serif;
-webkit-font-smoothing: antialiased;
@@ -6897,6 +6905,18 @@ screen and (forced-colors:active) {
}
}
+.govuk-\!-text-align-left {
+ text-align: left !important
+}
+
+.govuk-\!-text-align-centre {
+ text-align: center !important
+}
+
+.govuk-\!-text-align-right {
+ text-align: right !important
+}
+
.govuk-\!-font-size-80 {
font-size: 53px !important;
font-size: 3.3125rem !important;
diff --git a/dist/govuk-frontend-3.13.1.min.js b/dist/govuk-frontend-4.0.0.min.js
similarity index 11%
rename from dist/govuk-frontend-3.13.1.min.js
rename to dist/govuk-frontend-4.0.0.min.js
index e9366b04..56ea78f8 100644
--- a/dist/govuk-frontend-3.13.1.min.js
+++ b/dist/govuk-frontend-4.0.0.min.js
@@ -3,15 +3,15 @@
}(this, function(t) {
"use strict";
- function r(t, e) {
+ function s(t, e) {
if (window.NodeList.prototype.forEach) return t.forEach(e);
for (var n = 0; n < t.length; n++) e.call(window, t[n], n, t)
}
function n(t) {
- this.$module = t, this.moduleId = t.getAttribute("id"), this.$sections = t.querySelectorAll(".govuk-accordion__section"), this.$openAllButton = "", this.browserSupportsSessionStorage = e.checkForSessionStorage(), this.controlsClass = "govuk-accordion__controls", this.openAllClass = "govuk-accordion__open-all", this.iconClass = "govuk-accordion__icon", this.sectionHeaderClass = "govuk-accordion__section-header", this.sectionHeaderFocusedClass = "govuk-accordion__section-header--focused", this.sectionHeadingClass = "govuk-accordion__section-heading", this.sectionSummaryClass = "govuk-accordion__section-summary", this.sectionButtonClass = "govuk-accordion__section-button", this.sectionExpandedClass = "govuk-accordion__section--expanded"
+ this.$module = t, this.moduleId = t.getAttribute("id"), this.$sections = t.querySelectorAll(".govuk-accordion__section"), this.$showAllButton = "", this.browserSupportsSessionStorage = e.checkForSessionStorage(), this.controlsClass = "govuk-accordion__controls", this.showAllClass = "govuk-accordion__show-all", this.showAllTextClass = "govuk-accordion__show-all-text", this.sectionExpandedClass = "govuk-accordion__section--expanded", this.sectionButtonClass = "govuk-accordion__section-button", this.sectionHeaderClass = "govuk-accordion__section-header", this.sectionHeadingClass = "govuk-accordion__section-heading", this.sectionHeadingTextClass = "govuk-accordion__section-heading-text", this.sectionHeadingTextFocusClass = "govuk-accordion__section-heading-text-focus", this.sectionShowHideToggleClass = "govuk-accordion__section-toggle", this.sectionShowHideToggleFocusClass = "govuk-accordion__section-toggle-focus", this.sectionShowHideTextClass = "govuk-accordion__section-toggle-text", this.upChevronIconClass = "govuk-accordion-nav__chevron", this.downChevronIconClass = "govuk-accordion-nav__chevron--down", this.sectionSummaryClass = "govuk-accordion__section-summary", this.sectionSummaryFocusClass = "govuk-accordion__section-summary-focus"
}(function(t) {
- var a, c, l, u;
+ var a, l, c, u;
"defineProperty" in Object && function() {
try {
return Object.defineProperty({}, "test", {
@@ -20,23 +20,23 @@
} catch (t) {
return !1
}
- }() || (a = Object.defineProperty, c = Object.prototype.hasOwnProperty("__defineGetter__"), l = "Getters & setters cannot be defined on this javascript engine", u = "A property cannot both have accessors and be writable or have a value", Object.defineProperty = function(t, e, n) {
+ }() || (a = Object.defineProperty, l = Object.prototype.hasOwnProperty("__defineGetter__"), c = "Getters & setters cannot be defined on this javascript engine", u = "A property cannot both have accessors and be writable or have a value", Object.defineProperty = function(t, e, n) {
if (a && (t === window || t === document || t === Element.prototype || t instanceof Element)) return a(t, e, n);
if (null === t || !(t instanceof Object || "object" == typeof t)) throw new TypeError("Object.defineProperty called on non-object");
if (!(n instanceof Object)) throw new TypeError("Property description must be an object");
var o = String(e),
i = "value" in n || "writable" in n,
- r = "get" in n && typeof n.get,
- s = "set" in n && typeof n.set;
- if (r) {
- if ("function" !== r) throw new TypeError("Getter must be a function");
- if (!c) throw new TypeError(l);
+ s = "get" in n && typeof n.get,
+ r = "set" in n && typeof n.set;
+ if (s) {
+ if ("function" !== s) throw new TypeError("Getter must be a function");
+ if (!l) throw new TypeError(c);
if (i) throw new TypeError(u);
Object.__defineGetter__.call(t, o, n.get)
} else t[o] = n.value;
- if (s) {
- if ("function" !== s) throw new TypeError("Setter must be a function");
- if (!c) throw new TypeError(l);
+ if (r) {
+ if ("function" !== r) throw new TypeError("Setter must be a function");
+ if (!l) throw new TypeError(c);
if (i) throw new TypeError(u);
Object.__defineSetter__.call(t, o, n.set)
}
@@ -49,38 +49,38 @@
var n, t = Array,
o = Object,
i = o.prototype,
- r = t.prototype,
- s = function s() {},
+ s = t.prototype,
+ r = function r() {},
a = i.toString,
- c = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag,
- l = Function.prototype.toString,
+ l = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag,
+ c = Function.prototype.toString,
u = function u(t) {
try {
- return l.call(t), !0
+ return c.call(t), !0
} catch (e) {
return !1
}
};
n = function n(t) {
if ("function" != typeof t) return !1;
- if (c) return u(t);
+ if (l) return u(t);
var e = a.call(t);
return "[object Function]" === e || "[object GeneratorFunction]" === e
};
- var d = r.slice,
- h = r.concat,
- p = r.push,
+ var d = s.slice,
+ h = s.concat,
+ p = s.push,
f = Math.max,
- b = this;
- if (!n(b)) throw new TypeError("Function.prototype.bind called on incompatible " + b);
- for (var m, y = d.call(arguments, 1), v = f(0, b.length - y.length), g = [], w = 0; w < v; w++) p.call(g, "$" + w);
- return m = Function("binder", "return function (" + g.join(",") + "){ return binder.apply(this, arguments); }")(function() {
- if (this instanceof m) {
- var t = b.apply(this, h.call(y, d.call(arguments)));
+ m = this;
+ if (!n(m)) throw new TypeError("Function.prototype.bind called on incompatible " + m);
+ for (var b, v = d.call(arguments, 1), y = f(0, m.length - v.length), g = [], w = 0; w < y; w++) p.call(g, "$" + w);
+ return b = Function("binder", "return function (" + g.join(",") + "){ return binder.apply(this, arguments); }")(function() {
+ if (this instanceof b) {
+ var t = m.apply(this, h.call(v, d.call(arguments)));
return o(t) === t ? t : this
}
- return b.apply(e, h.call(y, d.call(arguments)))
- }), b.prototype && (s.prototype = b.prototype, m.prototype = new s, s.prototype = null), m
+ return m.apply(e, h.call(v, d.call(arguments)))
+ }), m.prototype && (r.prototype = m.prototype, b.prototype = new r, r.prototype = null), b
}
})
}.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
@@ -99,20 +99,20 @@
} catch (t) {
i = !1
}
- return function(i, r) {
- var s = this,
+ return function(i, s) {
+ var r = this,
a = [],
- c = {},
- l = 0,
+ l = {},
+ c = 0,
t = 0,
e = function(t) {
- n(s, t, function() {
+ n(r, t, function() {
return d(), a[t]
}, !1)
},
u = function() {
- if (t <= l)
- for (; t < l; ++t) e(t)
+ if (t <= c)
+ for (; t < c; ++t) e(t)
},
d = function() {
var t, e, n = arguments,
@@ -120,29 +120,29 @@
if (n.length)
for (e = 0; e < n.length; ++e)
if (o.test(n[e])) throw (t = new SyntaxError('String "' + n[e] + '" contains an invalid character')).code = 5, t.name = "InvalidCharacterError", t;
- for ("" === (a = "object" == typeof i[r] ? ("" + i[r].baseVal).replace(/^\s+|\s+$/g, "").split(o) : ("" + i[r]).replace(/^\s+|\s+$/g, "").split(o))[0] && (a = []), c = {}, e = 0; e < a.length; ++e) c[a[e]] = !0;
- l = a.length, u()
+ for ("" === (a = "object" == typeof i[s] ? ("" + i[s].baseVal).replace(/^\s+|\s+$/g, "").split(o) : ("" + i[s]).replace(/^\s+|\s+$/g, "").split(o))[0] && (a = []), l = {}, e = 0; e < a.length; ++e) l[a[e]] = !0;
+ c = a.length, u()
};
- return d(), n(s, "length", function() {
- return d(), l
- }), s.toLocaleString = s.toString = function() {
+ return d(), n(r, "length", function() {
+ return d(), c
+ }), r.toLocaleString = r.toString = function() {
return d(), a.join(" ")
- }, s.item = function(t) {
+ }, r.item = function(t) {
return d(), a[t]
- }, s.contains = function(t) {
- return d(), !!c[t]
- }, s.add = function() {
- d.apply(s, t = arguments);
- for (var t, e, n = 0, o = t.length; n < o; ++n) c[e = t[n]] || (a.push(e), c[e] = !0);
- l !== a.length && (l = a.length >>> 0, "object" == typeof i[r] ? i[r].baseVal = a.join(" ") : i[r] = a.join(" "), u())
- }, s.remove = function() {
- d.apply(s, t = arguments);
- for (var t, e = {}, n = 0, o = []; n < t.length; ++n) e[t[n]] = !0, delete c[t[n]];
+ }, r.contains = function(t) {
+ return d(), !!l[t]
+ }, r.add = function() {
+ d.apply(r, t = arguments);
+ for (var t, e, n = 0, o = t.length; n < o; ++n) l[e = t[n]] || (a.push(e), l[e] = !0);
+ c !== a.length && (c = a.length >>> 0, "object" == typeof i[s] ? i[s].baseVal = a.join(" ") : i[s] = a.join(" "), u())
+ }, r.remove = function() {
+ d.apply(r, t = arguments);
+ for (var t, e = {}, n = 0, o = []; n < t.length; ++n) e[t[n]] = !0, delete l[t[n]];
for (n = 0; n < a.length; ++n) e[a[n]] || o.push(a[n]);
- l = (a = o).length >>> 0, "object" == typeof i[r] ? i[r].baseVal = a.join(" ") : i[r] = a.join(" "), u()
- }, s.toggle = function(t, e) {
- return d.apply(s, [t]), o !== e ? e ? (s.add(t), !0) : (s.remove(t), !1) : c[t] ? (s.remove(t), !1) : (s.add(t), !0)
- }, s
+ c = (a = o).length >>> 0, "object" == typeof i[s] ? i[s].baseVal = a.join(" ") : i[s] = a.join(" "), u()
+ }, r.toggle = function(t, e) {
+ return d.apply(r, [t]), o !== e ? e ? (r.add(t), !0) : (r.remove(t), !1) : l[t] ? (r.remove(t), !1) : (r.add(t), !0)
+ }, r
}
}()), "classList" in (n = document.createElement("span")) && (n.classList.toggle("x", !1), n.classList.contains("x") && (n.classList.constructor.prototype.toggle = function(t) {
var e = arguments[1];
@@ -177,31 +177,31 @@
var t, e = document.appendChild(document.createElement("body")),
n = e.appendChild(document.createElement("iframe")).contentWindow.document,
a = Element.prototype = n.appendChild(n.createElement("*")),
- c = {},
- l = function(t, e) {
- var n, o, i, r = t.childNodes || [],
- s = -1;
+ l = {},
+ c = function(t, e) {
+ var n, o, i, s = t.childNodes || [],
+ r = -1;
if (1 === t.nodeType && t.constructor !== Element)
- for (n in t.constructor = Element, c) o = c[n], t[n] = o;
- for (; i = e && r[++s];) l(i, e);
+ for (n in t.constructor = Element, l) o = l[n], t[n] = o;
+ for (; i = e && s[++r];) c(i, e);
return t
},
u = document.getElementsByTagName("*"),
o = document.createElement,
i = 100;
a.attachEvent("onpropertychange", function(t) {
- for (var e, n = t.propertyName, o = !c.hasOwnProperty(n), i = a[n], r = c[n], s = -1; e = u[++s];) 1 === e.nodeType && (!o && e[n] !== r || (e[n] = i));
- c[n] = i
+ for (var e, n = t.propertyName, o = !l.hasOwnProperty(n), i = a[n], s = l[n], r = -1; e = u[++r];) 1 === e.nodeType && (!o && e[n] !== s || (e[n] = i));
+ l[n] = i
}), a.constructor = Element, a.hasAttribute || (a.hasAttribute = function(t) {
return null !== this.getAttribute(t)
- }), r() || (document.onreadystatechange = r, t = setInterval(r, 25)), document.createElement = function(t) {
+ }), s() || (document.onreadystatechange = s, t = setInterval(s, 25)), document.createElement = function(t) {
var e = o(String(t).toLowerCase());
- return l(e)
+ return c(e)
}, document.removeChild(e)
} else window.HTMLElement = window.Element;
- function r() {
- return i-- || clearTimeout(t), !(!document.body || document.body.prototype || !/(complete|interactive)/.test(document.readyState)) && (l(document, !0), t && document.body.prototype && clearTimeout(t), !!document.body.prototype)
+ function s() {
+ return i-- || clearTimeout(t), !(!document.body || document.body.prototype || !/(complete|interactive)/.test(document.readyState)) && (c(document, !0), t && document.body.prototype && clearTimeout(t), !!document.body.prototype)
}
}()
}.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
@@ -220,19 +220,19 @@
} catch (e) {
u = !1
}
- var h = function(t, c, l) {
- d(t.prototype, c, function() {
+ var h = function(t, l, c) {
+ d(t.prototype, l, function() {
var t, e = this,
- n = "__defineGetter__DEFINE_PROPERTY" + c;
+ n = "__defineGetter__DEFINE_PROPERTY" + l;
if (e[n]) return t;
if (!(e[n] = !0) === u) {
- for (var o, i = h.mirror || document.createElement("div"), r = i.childNodes, s = r.length, a = 0; a < s; ++a)
- if (r[a]._R === e) {
- o = r[a];
+ for (var o, i = h.mirror || document.createElement("div"), s = i.childNodes, r = s.length, a = 0; a < r; ++a)
+ if (s[a]._R === e) {
+ o = s[a];
break
- } o = o || i.appendChild(document.createElement("div")), t = DOMTokenList.call(o, e, l)
- } else t = new DOMTokenList(e, l);
- return d(e, c, function() {
+ } o = o || i.appendChild(document.createElement("div")), t = DOMTokenList.call(o, e, c)
+ } else t = new DOMTokenList(e, c);
+ return d(e, l, function() {
return t
}), delete e[n], t
}, !0)
@@ -243,56 +243,81 @@
if (this.$module) {
this.initControls(), this.initSectionHeaders();
var t = this.checkIfAllSectionsOpen();
- this.updateOpenAllButton(t)
+ this.updateShowAllButton(t)
}
}, n.prototype.initControls = function() {
- this.$openAllButton = document.createElement("button"), this.$openAllButton.setAttribute("type", "button"), this.$openAllButton.innerHTML = 'Open all <span class="govuk-visually-hidden">sections</span>', this.$openAllButton.setAttribute("class", this.openAllClass), this.$openAllButton.setAttribute("aria-expanded", "false"), this.$openAllButton.setAttribute("type", "button");
- var t = document.createElement("div");
- t.setAttribute("class", this.controlsClass), t.appendChild(this.$openAllButton), this.$module.insertBefore(t, this.$module.firstChild), this.$openAllButton.addEventListener("click", this.onOpenOrCloseAllToggle.bind(this))
+ this.$showAllButton = document.createElement("button"), this.$showAllButton.setAttribute("type", "button"), this.$showAllButton.setAttribute("class", this.showAllClass), this.$showAllButton.setAttribute("aria-expanded", "false");
+ var t = document.createElement("span");
+ t.classList.add(this.upChevronIconClass), this.$showAllButton.appendChild(t);
+ var e = document.createElement("div");
+ e.setAttribute("class", this.controlsClass), e.appendChild(this.$showAllButton), this.$module.insertBefore(e, this.$module.firstChild);
+ var n = document.createElement("span");
+ n.classList.add(this.showAllTextClass), this.$showAllButton.appendChild(n), this.$showAllButton.addEventListener("click", this.onShowOrHideAllToggle.bind(this))
}, n.prototype.initSectionHeaders = function() {
- r(this.$sections, function(t, e) {
+ s(this.$sections, function(t, e) {
var n = t.querySelector("." + this.sectionHeaderClass);
- this.initHeaderAttributes(n, e), this.setExpanded(this.isExpanded(t), t), n.addEventListener("click", this.onSectionToggle.bind(this, t)), this.setInitialState(t)
+ this.constructHeaderMarkup(n, e), this.setExpanded(this.isExpanded(t), t), n.addEventListener("click", this.onSectionToggle.bind(this, t)), this.setInitialState(t)
}.bind(this))
- }, n.prototype.initHeaderAttributes = function(e, t) {
- var n = this,
- o = e.querySelector("." + this.sectionButtonClass),
- i = e.querySelector("." + this.sectionHeadingClass),
- r = e.querySelector("." + this.sectionSummaryClass),
+ }, n.prototype.constructHeaderMarkup = function(t, e) {
+ var n = t.querySelector("." + this.sectionButtonClass),
+ o = t.querySelector("." + this.sectionHeadingClass),
+ i = t.querySelector("." + this.sectionSummaryClass),
s = document.createElement("button");
- s.setAttribute("type", "button"), s.setAttribute("id", this.moduleId + "-heading-" + (t + 1)), s.setAttribute("aria-controls", this.moduleId + "-content-" + (t + 1));
- for (var a = 0; a < o.attributes.length; a++) {
- var c = o.attributes.item(a);
- s.setAttribute(c.nodeName, c.nodeValue)
+ s.setAttribute("type", "button"), s.setAttribute("aria-controls", this.moduleId + "-content-" + (e + 1));
+ for (var r = 0; r < n.attributes.length; r++) {
+ var a = n.attributes.item(r);
+ "id" !== a.nodeName && s.setAttribute(a.nodeName, a.nodeValue)
}
- s.addEventListener("focusin", function(t) {
- e.classList.contains(n.sectionHeaderFocusedClass) || (e.className += " " + n.sectionHeaderFocusedClass)
- }), s.addEventListener("blur", function(t) {
- e.classList.remove(n.sectionHeaderFocusedClass)
- }), null != r && s.setAttribute("aria-describedby", this.moduleId + "-summary-" + (t + 1)), s.innerHTML = o.innerHTML, i.removeChild(o), i.appendChild(s);
var l = document.createElement("span");
- l.className = this.iconClass, l.setAttribute("aria-hidden", "true"), s.appendChild(l)
+ l.classList.add(this.sectionHeadingTextClass), l.id = n.id;
+ var c = document.createElement("span");
+ c.classList.add(this.sectionHeadingTextFocusClass), l.appendChild(c), c.innerHTML = n.innerHTML;
+ var u = document.createElement("span");
+ u.classList.add(this.sectionShowHideToggleClass), u.setAttribute("data-nosnippet", "");
+ var d = document.createElement("span");
+ d.classList.add(this.sectionShowHideToggleFocusClass), u.appendChild(d);
+ var h = document.createElement("span"),
+ p = document.createElement("span");
+ if (p.classList.add(this.upChevronIconClass), d.appendChild(p), h.classList.add(this.sectionShowHideTextClass), d.appendChild(h), s.appendChild(l), s.appendChild(this.getButtonPunctuationEl()), null != i) {
+ var f = document.createElement("span"),
+ m = document.createElement("span");
+ m.classList.add(this.sectionSummaryFocusClass), f.appendChild(m);
+ for (var b = 0, v = i.attributes.length; b < v; ++b) {
+ var y = i.attributes.item(b).nodeName,
+ g = i.attributes.item(b).nodeValue;
+ f.setAttribute(y, g)
+ }
+ m.innerHTML = i.innerHTML, i.parentNode.replaceChild(f, i), s.appendChild(f), s.appendChild(this.getButtonPunctuationEl())
+ }
+ s.appendChild(u), o.removeChild(n), o.appendChild(s)
}, n.prototype.onSectionToggle = function(t) {
var e = this.isExpanded(t);
this.setExpanded(!e, t), this.storeState(t)
- }, n.prototype.onOpenOrCloseAllToggle = function() {
+ }, n.prototype.onShowOrHideAllToggle = function() {
var e = this,
t = this.$sections,
n = !this.checkIfAllSectionsOpen();
- r(t, function(t) {
+ s(t, function(t) {
e.setExpanded(n, t), e.storeState(t)
- }), e.updateOpenAllButton(n)
+ }), e.updateShowAllButton(n)
}, n.prototype.setExpanded = function(t, e) {
- e.querySelector("." + this.sectionButtonClass).setAttribute("aria-expanded", t), t ? e.classList.add(this.sectionExpandedClass) : e.classList.remove(this.sectionExpandedClass);
- var n = this.checkIfAllSectionsOpen();
- this.updateOpenAllButton(n)
+ var n = e.querySelector("." + this.upChevronIconClass),
+ o = e.querySelector("." + this.sectionShowHideTextClass),
+ i = e.querySelector("." + this.sectionButtonClass),
+ s = t ? "Hide" : "Show",
+ r = document.createElement("span");
+ r.classList.add("govuk-visually-hidden"), r.innerHTML = " this section", o.innerHTML = s, o.appendChild(r), i.setAttribute("aria-expanded", t), t ? (e.classList.add(this.sectionExpandedClass), n.classList.remove(this.downChevronIconClass)) : (e.classList.remove(this.sectionExpandedClass), n.classList.add(this.downChevronIconClass));
+ var a = this.checkIfAllSectionsOpen();
+ this.updateShowAllButton(a)
}, n.prototype.isExpanded = function(t) {
return t.classList.contains(this.sectionExpandedClass)
}, n.prototype.checkIfAllSectionsOpen = function() {
return this.$sections.length === this.$module.querySelectorAll("." + this.sectionExpandedClass).length
- }, n.prototype.updateOpenAllButton = function(t) {
- var e = t ? "Close all" : "Open all";
- e += '<span class="govuk-visually-hidden"> sections</span>', this.$openAllButton.setAttribute("aria-expanded", t), this.$openAllButton.innerHTML = e
+ }, n.prototype.updateShowAllButton = function(t) {
+ var e = this.$showAllButton.querySelector("." + this.upChevronIconClass),
+ n = this.$showAllButton.querySelector("." + this.showAllTextClass),
+ o = t ? "Hide all sections" : "Show all sections";
+ this.$showAllButton.setAttribute("aria-expanded", t), n.innerHTML = o, t ? e.classList.remove(this.downChevronIconClass) : e.classList.add(this.downChevronIconClass)
};
var e = {
checkForSessionStorage: function() {
@@ -322,13 +347,16 @@
null !== o && this.setExpanded("true" === o, t)
}
}
+ }, n.prototype.getButtonPunctuationEl = function() {
+ var t = document.createElement("span");
+ return t.classList.add("govuk-visually-hidden", "govuk-accordion__section-heading-divider"), t.innerHTML = ", ", t
},
function(t) {
"Window" in this || "undefined" == typeof WorkerGlobalScope && "function" != typeof importScripts && function(t) {
t.constructor ? t.Window = t.constructor : (t.Window = t.constructor = new Function("return function Window() {}")()).prototype = this
}(this)
}.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
- function(r) {
+ function(s) {
! function(t) {
if (!("Event" in t)) return !1;
if ("function" == typeof t.Event) return !0;
@@ -362,34 +390,34 @@
var n;
if ("createEvent" in document) {
n = document.createEvent("Event");
- var o = !(!e || e.bubbles === r) && e.bubbles,
- i = !(!e || e.cancelable === r) && e.cancelable;
+ var o = !(!e || e.bubbles === s) && e.bubbles,
+ i = !(!e || e.cancelable === s) && e.cancelable;
return n.initEvent(t, o, i), n
}
- return (n = document.createEventObject()).type = t, n.bubbles = !(!e || e.bubbles === r) && e.bubbles, n.cancelable = !(!e || e.cancelable === r) && e.cancelable, n
+ return (n = document.createEventObject()).type = t, n.bubbles = !(!e || e.bubbles === s) && e.bubbles, n.cancelable = !(!e || e.cancelable === s) && e.cancelable, n
}, t && Object.defineProperty(window.Event, "prototype", {
configurable: !1,
enumerable: !1,
writable: !0,
value: t
}), "createEvent" in document || (window.addEventListener = Window.prototype.addEventListener = Document.prototype.addEventListener = Element.prototype.addEventListener = function() {
- var s = this,
+ var r = this,
t = arguments[0],
e = arguments[1];
- if (s === window && t in n) throw new Error("In IE8 the event: " + t + " is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.");
- s._events || (s._events = {}), s._events[t] || (s._events[t] = function(t) {
- var e, n = s._events[t.type].list,
+ if (r === window && t in n) throw new Error("In IE8 the event: " + t + " is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.");
+ r._events || (r._events = {}), r._events[t] || (r._events[t] = function(t) {
+ var e, n = r._events[t.type].list,
o = n.slice(),
i = -1,
- r = o.length;
+ s = o.length;
for (t.preventDefault = function() {
!1 !== t.cancelable && (t.returnValue = !1)
}, t.stopPropagation = function() {
t.cancelBubble = !0
}, t.stopImmediatePropagation = function() {
t.cancelBubble = !0, t.cancelImmediate = !0
- }, t.currentTarget = s, t.relatedTarget = t.fromElement || null, t.target = t.target || t.srcElement || s, t.timeStamp = (new Date).getTime(), t.clientX && (t.pageX = t.clientX + document.documentElement.scrollLeft, t.pageY = t.clientY + document.documentElement.scrollTop); ++i < r && !t.cancelImmediate;) i in o && -1 !== a(n, e = o[i]) && "function" == typeof e && e.call(s, t)
- }, s._events[t].list = [], s.attachEvent && s.attachEvent("on" + t, s._events[t])), s._events[t].list.push(e)
+ }, t.currentTarget = r, t.relatedTarget = t.fromElement || null, t.target = t.target || t.srcElement || r, t.timeStamp = (new Date).getTime(), t.clientX && (t.pageX = t.clientX + document.documentElement.scrollLeft, t.pageY = t.clientY + document.documentElement.scrollTop); ++i < s && !t.cancelImmediate;) i in o && -1 !== a(n, e = o[i]) && "function" == typeof e && e.call(r, t)
+ }, r._events[t].list = [], r.attachEvent && r.attachEvent("on" + t, r._events[t])), r._events[t].list.push(e)
}, window.removeEventListener = Window.prototype.removeEventListener = Document.prototype.removeEventListener = Element.prototype.removeEventListener = function() {
var t, e = this,
n = arguments[0],
@@ -447,19 +475,19 @@
this.$module = t
}
- function s(t) {
- this.$module = t, this.$textarea = t.querySelector(".govuk-js-character-count"), this.$textarea && (this.$countMessage = t.querySelector('[id="' + this.$textarea.id + '-info"]'))
+ function r(t) {
+ this.$module = t, this.$textarea = t.querySelector(".govuk-js-character-count"), this.$textarea && (this.$countMessage = document.getElementById(this.$textarea.id + "-info"))
}
function a(t) {
this.$module = t, this.$inputs = t.querySelectorAll('input[type="checkbox"]')
}
- function c(t) {
+ function l(t) {
this.$module = t
}
- function l(t) {
+ function c(t) {
this.$module = t
}
@@ -472,6 +500,10 @@
}
function h(t) {
+ this.$module = t, this.$linkedElement = null, this.linkedElementListener = !1
+ }
+
+ function p(t) {
this.$module = t, this.$tabs = t.querySelectorAll(".govuk-tabs__tab"), this.keys = {
left: 37,
right: 39,
@@ -507,10 +539,10 @@
var e = t.target;
32 === t.keyCode && "summary" === e.nodeName.toLowerCase() && t.preventDefault()
}), t.addEventListener("click", n)
- }, s.prototype.defaults = {
+ }, r.prototype.defaults = {
characterCountAttribute: "data-maxlength",
wordCountAttribute: "data-maxwords"
- }, s.prototype.init = function() {
+ }, r.prototype.init = function() {
var t = this.$module,
e = this.$textarea,
n = this.$countMessage;
@@ -519,63 +551,63 @@
var o = this.defaults.characterCountAttribute;
this.options.maxwords && (o = this.defaults.wordCountAttribute), this.maxLength = t.getAttribute(o), this.maxLength && (t.removeAttribute("maxlength"), "onpageshow" in window ? window.addEventListener("pageshow", this.sync.bind(this)) : window.addEventListener("DOMContentLoaded", this.sync.bind(this)), this.sync())
}
- }, s.prototype.sync = function() {
+ }, r.prototype.sync = function() {
this.bindChangeEvents(), this.updateCountMessage()
- }, s.prototype.getDataset = function(t) {
+ }, r.prototype.getDataset = function(t) {
var e = {},
n = t.attributes;
if (n)
for (var o = 0; o < n.length; o++) {
var i = n[o],
- r = i.name.match(/^data-(.+)/);
- r && (e[r[1]] = i.value)
+ s = i.name.match(/^data-(.+)/);
+ s && (e[s[1]] = i.value)
}
return e
- }, s.prototype.count = function(t) {
+ }, r.prototype.count = function(t) {
var e;
this.options.maxwords ? e = (t.match(/\S+/g) || []).length : e = t.length;
return e
- }, s.prototype.bindChangeEvents = function() {
+ }, r.prototype.bindChangeEvents = function() {
var t = this.$textarea;
t.addEventListener("keyup", this.checkIfValueChanged.bind(this)), t.addEventListener("focus", this.handleFocus.bind(this)), t.addEventListener("blur", this.handleBlur.bind(this))
- }, s.prototype.checkIfValueChanged = function() {
+ }, r.prototype.checkIfValueChanged = function() {
this.$textarea.oldValue || (this.$textarea.oldValue = ""), this.$textarea.value !== this.$textarea.oldValue && (this.$textarea.oldValue = this.$textarea.value, this.updateCountMessage())
- }, s.prototype.updateCountMessage = function() {
+ }, r.prototype.updateCountMessage = function() {
var t = this.$textarea,
e = this.options,
n = this.$countMessage,
o = this.count(t.value),
i = this.maxLength,
- r = i - o;
- o < i * (e.threshold ? e.threshold : 0) / 100 ? (n.classList.add("govuk-character-count__message--disabled"), n.setAttribute("aria-hidden", !0)) : (n.classList.remove("govuk-character-count__message--disabled"), n.removeAttribute("aria-hidden")), r < 0 ? (t.classList.add("govuk-textarea--error"), n.classList.remove("govuk-hint"), n.classList.add("govuk-error-message")) : (t.classList.remove("govuk-textarea--error"), n.classList.remove("govuk-error-message"), n.classList.add("govuk-hint"));
- var s, a, c = "character";
- e.maxwords && (c = "word"), c += -1 == r || 1 == r ? "" : "s", s = r < 0 ? "too many" : "remaining", a = Math.abs(r), n.innerHTML = "You have " + a + " " + c + " " + s
- }, s.prototype.handleFocus = function() {
+ s = i - o;
+ o < i * (e.threshold ? e.threshold : 0) / 100 ? (n.classList.add("govuk-character-count__message--disabled"), n.setAttribute("aria-hidden", !0)) : (n.classList.remove("govuk-character-count__message--disabled"), n.removeAttribute("aria-hidden")), s < 0 ? (t.classList.add("govuk-textarea--error"), n.classList.remove("govuk-hint"), n.classList.add("govuk-error-message")) : (t.classList.remove("govuk-textarea--error"), n.classList.remove("govuk-error-message"), n.classList.add("govuk-hint"));
+ var r, a, l = "character";
+ e.maxwords && (l = "word"), l += -1 == s || 1 == s ? "" : "s", r = s < 0 ? "too many" : "remaining", a = Math.abs(s), n.innerHTML = "You have " + a + " " + l + " " + r
+ }, r.prototype.handleFocus = function() {
this.valueChecker = setInterval(this.checkIfValueChanged.bind(this), 1e3)
- }, s.prototype.handleBlur = function() {
+ }, r.prototype.handleBlur = function() {
clearInterval(this.valueChecker)
}, a.prototype.init = function() {
- var n = this.$module;
- r(this.$inputs, function(t) {
+ var t = this.$module;
+ s(this.$inputs, function(t) {
var e = t.getAttribute("data-aria-controls");
- e && n.querySelector("#" + e) && (t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls"))
- }), "onpageshow" in window ? window.addEventListener("pageshow", this.syncAllConditionalReveals.bind(this)) : window.addEventListener("DOMContentLoaded", this.syncAllConditionalReveals.bind(this)), this.syncAllConditionalReveals(), n.addEventListener("click", this.handleClick.bind(this))
+ e && document.getElementById(e) && (t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls"))
+ }), "onpageshow" in window ? window.addEventListener("pageshow", this.syncAllConditionalReveals.bind(this)) : window.addEventListener("DOMContentLoaded", this.syncAllConditionalReveals.bind(this)), this.syncAllConditionalReveals(), t.addEventListener("click", this.handleClick.bind(this))
}, a.prototype.syncAllConditionalReveals = function() {
- r(this.$inputs, this.syncConditionalRevealWithInputState.bind(this))
+ s(this.$inputs, this.syncConditionalRevealWithInputState.bind(this))
}, a.prototype.syncConditionalRevealWithInputState = function(t) {
- var e = this.$module.querySelector("#" + t.getAttribute("aria-controls"));
+ var e = document.getElementById(t.getAttribute("aria-controls"));
if (e && e.classList.contains("govuk-checkboxes__conditional")) {
var n = t.checked;
t.setAttribute("aria-expanded", n), e.classList.toggle("govuk-checkboxes__conditional--hidden", !n)
}
}, a.prototype.unCheckAllInputsExcept = function(e) {
- r(document.querySelectorAll('input[type="checkbox"][name="' + e.name + '"]'), function(t) {
- e.form === t.form && t !== e && (t.checked = !1)
- }), this.syncAllConditionalReveals()
+ s(document.querySelectorAll('input[type="checkbox"][name="' + e.name + '"]'), function(t) {
+ e.form === t.form && t !== e && (t.checked = !1, this.syncConditionalRevealWithInputState(t))
+ }.bind(this))
}, a.prototype.unCheckExclusiveInputs = function(e) {
- r(document.querySelectorAll('input[data-behaviour="exclusive"][type="checkbox"][name="' + e.name + '"]'), function(t) {
- e.form === t.form && (t.checked = !1)
- }), this.syncAllConditionalReveals()
+ s(document.querySelectorAll('input[data-behaviour="exclusive"][type="checkbox"][name="' + e.name + '"]'), function(t) {
+ e.form === t.form && (t.checked = !1, this.syncConditionalRevealWithInputState(t))
+ }.bind(this))
}, a.prototype.handleClick = function(t) {
var e = t.target;
"checkbox" === e.type && (e.getAttribute("aria-controls") && this.syncConditionalRevealWithInputState(e), e.checked && ("exclusive" === e.getAttribute("data-behaviour") ? this.unCheckAllInputsExcept(e) : this.unCheckExclusiveInputs(e)))
@@ -594,13 +626,13 @@
}
return null
})
- }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}), c.prototype.init = function() {
+ }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}), l.prototype.init = function() {
var t = this.$module;
t && (t.focus(), t.addEventListener("click", this.handleClick.bind(this)))
- }, c.prototype.handleClick = function(t) {
+ }, l.prototype.handleClick = function(t) {
var e = t.target;
this.focusTarget(e) && t.preventDefault()
- }, c.prototype.focusTarget = function(t) {
+ }, l.prototype.focusTarget = function(t) {
if ("A" !== t.tagName || !1 === t.href) return !1;
var e = this.getFragmentFromUrl(t.href),
n = document.getElementById(e);
@@ -609,9 +641,9 @@
return !!o && (o.scrollIntoView(), n.focus({
preventScroll: !0
}), !0)
- }, c.prototype.getFragmentFromUrl = function(t) {
+ }, l.prototype.getFragmentFromUrl = function(t) {
return -1 !== t.indexOf("#") && t.split("#").pop()
- }, c.prototype.getAssociatedLegendOrLabel = function(t) {
+ }, l.prototype.getAssociatedLegendOrLabel = function(t) {
var e = t.closest("fieldset");
if (e) {
var n = e.getElementsByTagName("legend");
@@ -619,46 +651,58 @@
var o = n[0];
if ("checkbox" === t.type || "radio" === t.type) return o;
var i = o.getBoundingClientRect().top,
- r = t.getBoundingClientRect();
- if (r.height && window.innerHeight)
- if (r.top + r.height - i < window.innerHeight / 2) return o
+ s = t.getBoundingClientRect();
+ if (s.height && window.innerHeight)
+ if (s.top + s.height - i < window.innerHeight / 2) return o
}
}
return document.querySelector("label[for='" + t.getAttribute("id") + "']") || t.closest("label")
- }, l.prototype.init = function() {
+ }, c.prototype.init = function() {
this.$module && this.setFocus()
- }, l.prototype.setFocus = function() {
+ }, c.prototype.setFocus = function() {
var t = this.$module;
"true" !== t.getAttribute("data-disable-auto-focus") && "alert" === t.getAttribute("role") && (t.getAttribute("tabindex") || (t.setAttribute("tabindex", "-1"), t.addEventListener("blur", function() {
t.removeAttribute("tabindex")
})), t.focus())
}, u.prototype.init = function() {
- this.$module && this.$menuButton && this.$menu && (this.syncState(this.$menu.classList.contains("govuk-header__navigation--open")), this.$menuButton.addEventListener("click", this.handleMenuButtonClick.bind(this)))
+ this.$module && this.$menuButton && this.$menu && (this.syncState(this.$menu.classList.contains("govuk-header__navigation-list--open")), this.$menuButton.addEventListener("click", this.handleMenuButtonClick.bind(this)))
}, u.prototype.syncState = function(t) {
this.$menuButton.classList.toggle("govuk-header__menu-button--open", t), this.$menuButton.setAttribute("aria-expanded", t)
}, u.prototype.handleMenuButtonClick = function() {
- var t = this.$menu.classList.toggle("govuk-header__navigation--open");
+ var t = this.$menu.classList.toggle("govuk-header__navigation-list--open");
this.syncState(t)
}, d.prototype.init = function() {
- var n = this.$module;
- r(this.$inputs, function(t) {
+ var t = this.$module;
+ s(this.$inputs, function(t) {
var e = t.getAttribute("data-aria-controls");
- e && n.querySelector("#" + e) && (t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls"))
- }), "onpageshow" in window ? window.addEventListener("pageshow", this.syncAllConditionalReveals.bind(this)) : window.addEventListener("DOMContentLoaded", this.syncAllConditionalReveals.bind(this)), this.syncAllConditionalReveals(), n.addEventListener("click", this.handleClick.bind(this))
+ e && document.getElementById(e) && (t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls"))
+ }), "onpageshow" in window ? window.addEventListener("pageshow", this.syncAllConditionalReveals.bind(this)) : window.addEventListener("DOMContentLoaded", this.syncAllConditionalReveals.bind(this)), this.syncAllConditionalReveals(), t.addEventListener("click", this.handleClick.bind(this))
}, d.prototype.syncAllConditionalReveals = function() {
- r(this.$inputs, this.syncConditionalRevealWithInputState.bind(this))
+ s(this.$inputs, this.syncConditionalRevealWithInputState.bind(this))
}, d.prototype.syncConditionalRevealWithInputState = function(t) {
- var e = document.querySelector("#" + t.getAttribute("aria-controls"));
+ var e = document.getElementById(t.getAttribute("aria-controls"));
if (e && e.classList.contains("govuk-radios__conditional")) {
var n = t.checked;
t.setAttribute("aria-expanded", n), e.classList.toggle("govuk-radios__conditional--hidden", !n)
}
}, d.prototype.handleClick = function(t) {
var n = t.target;
- "radio" === n.type && r(document.querySelectorAll('input[type="radio"][aria-controls]'), function(t) {
+ "radio" === n.type && s(document.querySelectorAll('input[type="radio"][aria-controls]'), function(t) {
var e = t.form === n.form;
t.name === n.name && e && this.syncConditionalRevealWithInputState(t)
}.bind(this))
+ }, h.prototype.init = function() {
+ this.$module && (this.$linkedElement = this.getLinkedElement(), this.$linkedElement && this.$module.addEventListener("click", this.focusLinkedElement.bind(this)))
+ }, h.prototype.getLinkedElement = function() {
+ var t = this.getFragmentFromUrl();
+ return !!t && document.getElementById(t)
+ }, h.prototype.focusLinkedElement = function() {
+ var t = this.$linkedElement;
+ t.getAttribute("tabindex") || (t.setAttribute("tabindex", "-1"), t.classList.add("govuk-skip-link-focused-element"), this.linkedElementListener || (this.$linkedElement.addEventListener("blur", this.removeFocusProperties.bind(this)), this.linkedElementListener = !0)), t.focus()
+ }, h.prototype.removeFocusProperties = function() {
+ this.$linkedElement.removeAttribute("tabindex"), this.$linkedElement.classList.remove("govuk-skip-link-focused-element")
+ }, h.prototype.getFragmentFromUrl = function() {
+ return !!this.$module.hash && this.$module.hash.split("#").pop()
},
function(t) {
"document" in this && "nextElementSibling" in document.documentElement || Object.defineProperty(Element.prototype, "nextElementSibling", {
@@ -675,37 +719,37 @@
return t
}
})
- }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}), h.prototype.init = function() {
+ }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}), p.prototype.init = function() {
"function" == typeof window.matchMedia ? this.setupResponsiveChecks() : this.setup()
- }, h.prototype.setupResponsiveChecks = function() {
+ }, p.prototype.setupResponsiveChecks = function() {
this.mql = window.matchMedia("(min-width: 40.0625em)"), this.mql.addListener(this.checkMode.bind(this)), this.checkMode()
- }, h.prototype.checkMode = function() {
+ }, p.prototype.checkMode = function() {
this.mql.matches ? this.setup() : this.teardown()
- }, h.prototype.setup = function() {
+ }, p.prototype.setup = function() {
var t = this.$module,
e = this.$tabs,
n = t.querySelector(".govuk-tabs__list"),
o = t.querySelectorAll(".govuk-tabs__list-item");
if (e && n && o) {
- n.setAttribute("role", "tablist"), r(o, function(t) {
+ n.setAttribute("role", "tablist"), s(o, function(t) {
t.setAttribute("role", "presentation")
- }), r(e, function(t) {
+ }), s(e, function(t) {
this.setAttributes(t), t.boundTabClick = this.onTabClick.bind(this), t.boundTabKeydown = this.onTabKeydown.bind(this), t.addEventListener("click", t.boundTabClick, !0), t.addEventListener("keydown", t.boundTabKeydown, !0), this.hideTab(t)
}.bind(this));
var i = this.getTab(window.location.hash) || this.$tabs[0];
this.showTab(i), t.boundOnHashChange = this.onHashChange.bind(this), window.addEventListener("hashchange", t.boundOnHashChange, !0)
}
- }, h.prototype.teardown = function() {
+ }, p.prototype.teardown = function() {
var t = this.$module,
e = this.$tabs,
n = t.querySelector(".govuk-tabs__list"),
o = t.querySelectorAll(".govuk-tabs__list-item");
- e && n && o && (n.removeAttribute("role"), r(o, function(t) {
+ e && n && o && (n.removeAttribute("role"), s(o, function(t) {
t.removeAttribute("role", "presentation")
- }), r(e, function(t) {
+ }), s(e, function(t) {
t.removeEventListener("click", t.boundTabClick, !0), t.removeEventListener("keydown", t.boundTabKeydown, !0), this.unsetAttributes(t)
}.bind(this)), window.removeEventListener("hashchange", t.boundOnHashChange, !0))
- }, h.prototype.onHashChange = function(t) {
+ }, p.prototype.onHashChange = function(t) {
var e = window.location.hash,
n = this.getTab(e);
if (n)
@@ -714,32 +758,32 @@
var o = this.getCurrentTab();
this.hideTab(o), this.showTab(n), n.focus()
}
- }, h.prototype.hideTab = function(t) {
+ }, p.prototype.hideTab = function(t) {
this.unhighlightTab(t), this.hidePanel(t)
- }, h.prototype.showTab = function(t) {
+ }, p.prototype.showTab = function(t) {
this.highlightTab(t), this.showPanel(t)
- }, h.prototype.getTab = function(t) {
+ }, p.prototype.getTab = function(t) {
return this.$module.querySelector('.govuk-tabs__tab[href="' + t + '"]')
- }, h.prototype.setAttributes = function(t) {
+ }, p.prototype.setAttributes = function(t) {
var e = this.getHref(t).slice(1);
t.setAttribute("id", "tab_" + e), t.setAttribute("role", "tab"), t.setAttribute("aria-controls", e), t.setAttribute("aria-selected", "false"), t.setAttribute("tabindex", "-1");
var n = this.getPanel(t);
n.setAttribute("role", "tabpanel"), n.setAttribute("aria-labelledby", t.id), n.classList.add(this.jsHiddenClass)
- }, h.prototype.unsetAttributes = function(t) {
+ }, p.prototype.unsetAttributes = function(t) {
t.removeAttribute("id"), t.removeAttribute("role"), t.removeAttribute("aria-controls"), t.removeAttribute("aria-selected"), t.removeAttribute("tabindex");
var e = this.getPanel(t);
e.removeAttribute("role"), e.removeAttribute("aria-labelledby"), e.classList.remove(this.jsHiddenClass)
- }, h.prototype.onTabClick = function(t) {
+ }, p.prototype.onTabClick = function(t) {
if (!t.target.classList.contains("govuk-tabs__tab")) return !1;
t.preventDefault();
var e = t.target,
n = this.getCurrentTab();
this.hideTab(n), this.showTab(e), this.createHistoryEntry(e)
- }, h.prototype.createHistoryEntry = function(t) {
+ }, p.prototype.createHistoryEntry = function(t) {
var e = this.getPanel(t),
n = e.id;
e.id = "", this.changingHash = !0, window.location.hash = this.getHref(t).slice(1), e.id = n
- }, h.prototype.onTabKeydown = function(t) {
+ }, p.prototype.onTabKeydown = function(t) {
switch (t.keyCode) {
case this.keys.left:
case this.keys.up:
@@ -749,49 +793,49 @@
case this.keys.down:
this.activateNextTab(), t.preventDefault()
}
- }, h.prototype.activateNextTab = function() {
+ }, p.prototype.activateNextTab = function() {
var t = this.getCurrentTab(),
e = t.parentNode.nextElementSibling;
if (e) var n = e.querySelector(".govuk-tabs__tab");
n && (this.hideTab(t), this.showTab(n), n.focus(), this.createHistoryEntry(n))
- }, h.prototype.activatePreviousTab = function() {
+ }, p.prototype.activatePreviousTab = function() {
var t = this.getCurrentTab(),
e = t.parentNode.previousElementSibling;
if (e) var n = e.querySelector(".govuk-tabs__tab");
n && (this.hideTab(t), this.showTab(n), n.focus(), this.createHistoryEntry(n))
- }, h.prototype.getPanel = function(t) {
+ }, p.prototype.getPanel = function(t) {
return this.$module.querySelector(this.getHref(t))
- }, h.prototype.showPanel = function(t) {
+ }, p.prototype.showPanel = function(t) {
this.getPanel(t).classList.remove(this.jsHiddenClass)
- }, h.prototype.hidePanel = function(t) {
+ }, p.prototype.hidePanel = function(t) {
this.getPanel(t).classList.add(this.jsHiddenClass)
- }, h.prototype.unhighlightTab = function(t) {
+ }, p.prototype.unhighlightTab = function(t) {
t.setAttribute("aria-selected", "false"), t.parentNode.classList.remove("govuk-tabs__list-item--selected"), t.setAttribute("tabindex", "-1")
- }, h.prototype.highlightTab = function(t) {
+ }, p.prototype.highlightTab = function(t) {
t.setAttribute("aria-selected", "true"), t.parentNode.classList.add("govuk-tabs__list-item--selected"), t.setAttribute("tabindex", "0")
- }, h.prototype.getCurrentTab = function() {
+ }, p.prototype.getCurrentTab = function() {
return this.$module.querySelector(".govuk-tabs__list-item--selected .govuk-tabs__tab")
- }, h.prototype.getHref = function(t) {
+ }, p.prototype.getHref = function(t) {
var e = t.getAttribute("href");
return e.slice(e.indexOf("#"), e.length)
- }, t.initAll = function p(t) {
+ }, t.initAll = function f(t) {
var e = "undefined" != typeof(t = void 0 !== t ? t : {}).scope ? t.scope : document;
- r(e.querySelectorAll('[data-module="govuk-button"]'), function(t) {
+ s(e.querySelectorAll('[data-module="govuk-button"]'), function(t) {
new o(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-accordion"]'), function(t) {
+ }), s(e.querySelectorAll('[data-module="govuk-accordion"]'), function(t) {
new n(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-details"]'), function(t) {
+ }), s(e.querySelectorAll('[data-module="govuk-details"]'), function(t) {
new i(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-character-count"]'), function(t) {
- new s(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-checkboxes"]'), function(t) {
+ }), s(e.querySelectorAll('[data-module="govuk-character-count"]'), function(t) {
+ new r(t).init()
+ }), s(e.querySelectorAll('[data-module="govuk-checkboxes"]'), function(t) {
new a(t).init()
- }), new c(e.querySelector('[data-module="govuk-error-summary"]')).init(), new u(e.querySelector('[data-module="govuk-header"]')).init(), r(e.querySelectorAll('[data-module="govuk-notification-banner"]'), function(t) {
- new l(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-radios"]'), function(t) {
+ }), new l(e.querySelector('[data-module="govuk-error-summary"]')).init(), new u(e.querySelector('[data-module="govuk-header"]')).init(), s(e.querySelectorAll('[data-module="govuk-notification-banner"]'), function(t) {
+ new c(t).init()
+ }), s(e.querySelectorAll('[data-module="govuk-radios"]'), function(t) {
new d(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-tabs"]'), function(t) {
- new h(t).init()
+ }), new h(e.querySelector('[data-module="govuk-skip-link"]')).init(), s(e.querySelectorAll('[data-module="govuk-tabs"]'), function(t) {
+ new p(t).init()
})
- }, t.Accordion = n, t.Button = o, t.Details = i, t.CharacterCount = s, t.Checkboxes = a, t.ErrorSummary = c, t.Header = u, t.Radios = d, t.Tabs = h
+ }, t.Accordion = n, t.Button = o, t.Details = i, t.CharacterCount = r, t.Checkboxes = a, t.ErrorSummary = l, t.Header = u, t.NotificationBanner = c, t.Radios = d, t.SkipLink = h, t.Tabs = p
});
\ No newline at end of file
diff --git a/dist/govuk-frontend-ie8-3.13.1.min.css b/dist/govuk-frontend-ie8-4.0.0.min.css
similarity index 5%
rename from dist/govuk-frontend-ie8-3.13.1.min.css
rename to dist/govuk-frontend-ie8-4.0.0.min.css
index ee0ca6f6..fb7224dd 100644
--- a/dist/govuk-frontend-ie8-3.13.1.min.css
+++ b/dist/govuk-frontend-ie8-4.0.0.min.css
@@ -23,10 +23,7 @@
color: #003078
}
-.govuk-link:active {
- color: #0b0c0c
-}
-
+.govuk-link:active,
.govuk-link:focus {
color: #0b0c0c
}
@@ -37,14 +34,8 @@
}
.govuk-link--muted:active,
-.govuk-link--muted:hover {
- color: #0b0c0c
-}
-
-.govuk-link--muted:focus {
- color: #0b0c0c
-}
-
+.govuk-link--muted:focus,
+.govuk-link--muted:hover,
.govuk-link--text-colour:link,
.govuk-link--text-colour:visited {
color: #0b0c0c
@@ -86,11 +77,9 @@
color: #003078
}
-.govuk-link--no-visited-state:active {
- color: #0b0c0c
-}
-
-.govuk-link--no-visited-state:focus {
+.govuk-link--no-visited-state:active,
+.govuk-link--no-visited-state:focus,
+.govuk-list {
color: #0b0c0c
}
@@ -105,7 +94,6 @@
font-size: 19px;
font-size: 1.1875rem;
line-height: 1.31579;
- color: #0b0c0c;
margin-top: 0;
margin-bottom: 20px;
padding-left: 0;
@@ -139,19 +127,6 @@
margin-bottom: 15px
}
-.govuk-template {
- background-color: #f3f2f1;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
- text-size-adjust: 100%;
- overflow-y: scroll
-}
-
-.govuk-template__body {
- margin: 0;
- background-color: #fff
-}
-
.govuk-heading-xl {
color: #0b0c0c;
font-family: GDS Transport, arial, sans-serif;
@@ -564,6 +539,19 @@
padding-top: 50px
}
+.govuk-template {
+ background-color: #f3f2f1;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+ text-size-adjust: 100%;
+ overflow-y: scroll
+}
+
+.govuk-template__body {
+ margin: 0;
+ background-color: #fff
+}
+
.govuk-width-container {
max-width: 960px;
width: 960px;
@@ -588,39 +576,31 @@
padding-top: 15px
}
-.govuk-accordion__section-header {
+.govuk-accordion__section-heading {
+ margin-top: 0;
+ margin-bottom: 0;
padding-top: 15px;
padding-bottom: 15px
}
-.govuk-accordion__section-heading {
- font-weight: 400;
- margin-top: 0
+.govuk-accordion__section-button {
+ color: #0b0c0c;
+ display: block;
+ margin-bottom: 0;
+ padding-top: 15px
}
-.govuk-accordion__section-button,
-.govuk-accordion__section-heading {
+.govuk-accordion__section-heading-text {
font-family: GDS Transport, arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
+ font-weight: 700;
font-size: 18px;
font-size: 1.125rem;
line-height: 1.11111;
font-size: 24px;
font-size: 1.5rem;
- line-height: 1.25;
- margin-bottom: 0
-}
-
-.govuk-accordion__section-button {
- font-weight: 700;
- display: inline-block;
- padding-top: 15px
-}
-
-.govuk-accordion__section-summary {
- margin-top: 10px;
- margin-bottom: 0
+ line-height: 1.25
}
.govuk-accordion__section-content>:last-child {
@@ -637,158 +617,230 @@
.js-enabled .govuk-accordion__section-content {
display: none;
- padding-top: 15px;
- padding-bottom: 15px
+ padding-bottom: 50px
}
.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-content {
display: block
}
-.js-enabled .govuk-accordion__open-all {
+.js-enabled .govuk-accordion__show-all {
+ font-family: GDS Transport, arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
font-weight: 400;
- font-size: 14px;
- font-size: .875rem;
- line-height: 1.14286;
font-size: 16px;
font-size: 1rem;
line-height: 1.25;
+ font-size: 19px;
+ font-size: 1.1875rem;
+ line-height: 1.31579;
position: relative;
z-index: 1;
- margin: 0;
- padding: 0;
+ padding: 5px 2px 5px 0;
border-width: 0;
color: #1d70b8;
background: none;
cursor: pointer;
-webkit-appearance: none;
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- text-decoration: underline
+ margin-bottom: 14px
}
-.js-enabled .govuk-accordion__open-all:focus {
+.js-enabled .govuk-accordion__show-all::-moz-focus-inner {
+ padding: 0;
+ border: 0
+}
+
+.js-enabled .govuk-accordion__show-all:hover {
+ color: #0b0c0c;
+ background: #f3f2f1;
+ box-shadow: 0 -2px #f3f2f1, 0 4px #f3f2f1
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion__section-toggle-text {
+ color: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron:after {
+ color: #f3f2f1
+}
+
+.js-enabled .govuk-accordion__show-all:focus {
+ color: #0b0c0c;
background-color: #fd0;
box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
text-decoration: none
}
-.js-enabled .govuk-accordion__open-all:link {
- color: #1d70b8
+.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron {
+ background: #0b0c0c
}
-.js-enabled .govuk-accordion__open-all:visited {
- color: #4c2c92
+.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron:after {
+ color: #fd0
}
-.js-enabled .govuk-accordion__open-all:hover {
- color: #003078
+.js-enabled .govuk-accordion__section-heading {
+ padding: 0
}
-.js-enabled .govuk-accordion__open-all:active {
- color: #0b0c0c
+.js-enabled .govuk-accordion-nav__chevron {
+ box-sizing: border-box;
+ position: relative;
+ width: 1.25rem;
+ height: 1.25rem;
+ border: .0625rem solid;
+ border-radius: 50%;
+ vertical-align: middle;
+ display: inline-block;
+ max-height: 20px;
+ line-height: 1
}
-.js-enabled .govuk-accordion__open-all:focus {
- color: #0b0c0c
+.js-enabled .govuk-accordion-nav__chevron:after {
+ content: "";
+ box-sizing: border-box;
+ display: block;
+ position: absolute;
+ bottom: .3125rem;
+ left: .375rem;
+ width: .375rem;
+ height: .375rem;
+ -webkit-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ content: "\25B2";
+ position: relative;
+ border: 0
}
-.js-enabled .govuk-accordion__open-all::-moz-focus-inner {
- padding: 0;
- border: 0
+.js-enabled .govuk-accordion-nav__chevron--down {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg)
}
-.js-enabled .govuk-accordion__section-header {
- position: relative;
- padding-right: 40px;
- border-top: 1px solid #b1b4b6;
- cursor: pointer
+.js-enabled .govuk-accordion-nav__chevron--down:after {
+ content: "\25BC";
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
}
.js-enabled .govuk-accordion__section-button {
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 0;
- padding: 0;
- border-width: 0;
- color: #1d70b8;
+ width: 100%;
+ border: 0;
+ border-top: 1px solid #b1b4b6;
+ border-bottom: 10px solid transparent;
+ color: #0b0c0c;
background: none;
text-align: left;
cursor: pointer;
- -webkit-appearance: none
+ -webkit-appearance: none;
+ padding: 10px 0
+}
+
+.js-enabled .govuk-accordion__section-button:active {
+ color: #0b0c0c;
+ background: none
+}
+
+.js-enabled .govuk-accordion__section-button:hover {
+ color: #0b0c0c;
+ background: #f3f2f1
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion__section-toggle-text {
+ color: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron:after {
+ color: #f3f2f1
}
.js-enabled .govuk-accordion__section-button:focus {
+ outline: 0
+}
+
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
color: #0b0c0c;
background-color: #fd0;
box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
text-decoration: none
}
-.js-enabled .govuk-accordion__section-button::-moz-focus-inner {
- padding: 0;
- border: 0
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
}
-.js-enabled .govuk-accordion__section-button:after {
- content: "";
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron:after {
+ color: #fd0
}
- {
- color: #003078;
- text-decoration: underline;
- text-underline-offset: .1em
+.js-enabled .govuk-accordion__section-button::-moz-focus-inner {
+ padding: 0;
+ border: 0
}
-.js-enabled .govuk-accordion__controls {
- text-align: right
+.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-button {
+ padding-bottom: 20px;
+ border-bottom: 0
}
-.js-enabled .govuk-accordion__icon {
- position: absolute;
- top: 50%;
- right: 15px;
- width: 16px;
- height: 16px;
- margin-top: -8px
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
+ padding-bottom: 2px
}
-.js-enabled .govuk-accordion__icon:after,
-.js-enabled .govuk-accordion__icon:before {
- content: "";
- box-sizing: border-box;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- width: 25%;
- height: 25%;
- margin: auto;
- border: 2px solid transparent;
- background-color: #0b0c0c
+.js-enabled .govuk-accordion__section-heading-text,
+.js-enabled .govuk-accordion__section-summary,
+.js-enabled .govuk-accordion__section-toggle {
+ display: block;
+ margin-bottom: 13px
}
-.js-enabled .govuk-accordion__icon:before {
- width: 100%
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-toggle-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-toggle-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-toggle-focus {
+ display: inline
}
-.js-enabled .govuk-accordion__icon:after {
- height: 100%
+.js-enabled .govuk-accordion__section-toggle {
+ font-family: GDS Transport, arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-weight: 400;
+ font-size: 16px;
+ font-size: 1rem;
+ line-height: 1.25;
+ font-size: 19px;
+ font-size: 1.1875rem;
+ line-height: 1.31579;
+ color: #1d70b8
}
-.js-enabled .govuk-accordion__section--expanded .govuk-accordion__icon:after {
- content: " ";
- display: none
+.js-enabled .govuk-accordion__section-toggle-text,
+.js-enabled .govuk-accordion__show-all-text {
+ margin-left: 5px;
+ vertical-align: middle
}
.govuk-back-link {
@@ -1147,6 +1199,7 @@
font-size: 1.1875rem;
line-height: 1.31579;
display: block;
+ margin-top: 0;
margin-bottom: 15px;
clear: both;
color: #d4351c
@@ -1262,7 +1315,6 @@
font-size: 19px;
font-size: 1.1875rem;
line-height: 1.31579;
- display: block;
margin-bottom: 15px;
color: #505a5f
}
@@ -1540,7 +1592,7 @@
}
.govuk-textarea--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-textarea--error:focus {
@@ -1580,16 +1632,6 @@
}
.govuk-cookie-banner {
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- font-weight: 400;
- font-size: 16px;
- font-size: 1rem;
- line-height: 1.25;
- font-size: 19px;
- font-size: 1.1875rem;
- line-height: 1.31579;
padding-top: 20px;
border-bottom: 10px solid transparent;
background-color: #f3f2f1
@@ -1626,13 +1668,20 @@
display: table;
width: 100%;
table-layout: fixed;
+ border-collapse: collapse;
margin: 0 0 30px
}
.govuk-summary-list__row {
+ border-bottom: 1px solid #b1b4b6;
display: table-row
}
+.govuk-summary-list__row--no-actions:after {
+ content: "";
+ display: table-cell
+}
+
.govuk-summary-list__actions,
.govuk-summary-list__key,
.govuk-summary-list__value {
@@ -1640,8 +1689,7 @@
display: table-cell;
padding-top: 10px;
padding-right: 20px;
- padding-bottom: 10px;
- border-bottom: 1px solid #b1b4b6
+ padding-bottom: 10px
}
.govuk-summary-list__actions {
@@ -1663,14 +1711,6 @@
width: 30%
}
-.govuk-summary-list__value {
- width: 50%
-}
-
-.govuk-summary-list__value:last-child {
- width: 70%
-}
-
.govuk-summary-list__value>p {
margin-bottom: 10px
}
@@ -1701,14 +1741,24 @@
border: 0
}
+.govuk-summary-list--no-border .govuk-summary-list__row {
+ border: 0
+}
+
.govuk-summary-list--no-border .govuk-summary-list__actions,
.govuk-summary-list--no-border .govuk-summary-list__key,
-.govuk-summary-list--no-border .govuk-summary-list__value,
+.govuk-summary-list--no-border .govuk-summary-list__value {
+ padding-bottom: 11px
+}
+
+.govuk-summary-list__row--no-border {
+ border: 0
+}
+
.govuk-summary-list__row--no-border .govuk-summary-list__actions,
.govuk-summary-list__row--no-border .govuk-summary-list__key,
.govuk-summary-list__row--no-border .govuk-summary-list__value {
- padding-bottom: 11px;
- border: 0
+ padding-bottom: 11px
}
.govuk-input {
@@ -1753,7 +1803,7 @@
}
.govuk-input--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-input--error:focus {
@@ -2194,43 +2244,26 @@
}
.govuk-footer__heading {
- margin-bottom: 40px;
+ margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 1px solid #b1b4b6
}
.govuk-footer__navigation {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
margin-right: -15px;
- margin-left: -15px;
- -webkit-flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap
+ margin-left: -15px
+}
+
+.govuk-footer__navigation:after {
+ content: "";
+ display: block;
+ clear: both
}
.govuk-footer__section {
display: inline-block;
- margin-right: 15px;
margin-bottom: 30px;
- margin-left: 15px;
- vertical-align: top;
- -webkit-box-flex: 1;
- -webkit-flex-grow: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
- -webkit-flex-shrink: 1;
- -ms-flex-negative: 1;
- flex-shrink: 1
-}
-
-.govuk-footer__section:first-child:nth-last-child(2) {
- -webkit-box-flex: 2;
- -webkit-flex-grow: 2;
- -ms-flex-positive: 2;
- flex-grow: 2
+ vertical-align: top
}
.govuk-footer__list {
@@ -2494,19 +2527,22 @@
}
.govuk-header__navigation {
- display: block;
+ margin-bottom: 10px
+}
+
+.govuk-header__navigation-list {
margin: 0;
padding: 0;
list-style: none
}
.js-enabled .govuk-header__menu-button,
-.js-enabled .govuk-header__navigation {
+.js-enabled .govuk-header__navigation-list {
display: block;
display: none
}
-.js-enabled .govuk-header__navigation--open {
+.js-enabled .govuk-header__navigation-list--open {
display: block
}
@@ -2552,7 +2588,8 @@
}
.govuk-header__navigation-item:last-child {
- margin-right: 0
+ margin-right: 0;
+ border-bottom: 0
}
.govuk-inset-text {
@@ -2677,10 +2714,7 @@
color: #003078
}
-.govuk-notification-banner__link:active {
- color: #0b0c0c
-}
-
+.govuk-notification-banner__link:active,
.govuk-notification-banner__link:focus {
color: #0b0c0c
}
@@ -2784,10 +2818,6 @@
padding: 5px 8px 4px
}
-.govuk-tag--inactive {
- background-color: #505a5f
-}
-
.govuk-tag--grey {
color: #383f43;
background: #eeefef
@@ -2938,10 +2968,7 @@
color: #003078
}
-.govuk-tabs__tab:active {
- color: #0b0c0c
-}
-
+.govuk-tabs__tab:active,
.govuk-tabs__tab:focus {
color: #0b0c0c
}
@@ -3276,7 +3303,7 @@
}
.govuk-select--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-select--error:focus {
@@ -3347,6 +3374,10 @@
background-color: #fd0
}
+.govuk-skip-link-focused-element:focus {
+ outline: none
+}
+
.govuk-table {
font-family: GDS Transport, arial, sans-serif;
-webkit-font-smoothing: antialiased;
@@ -3976,6 +4007,18 @@
padding-left: 60px !important
}
+.govuk-\!-text-align-left {
+ text-align: left !important
+}
+
+.govuk-\!-text-align-centre {
+ text-align: center !important
+}
+
+.govuk-\!-text-align-right {
+ text-align: right !important
+}
+
.govuk-\!-font-size-80 {
font-size: 53px !important;
font-size: 3.3125rem !important;
|
govuk-design-system-ci
temporarily deployed
to
govuk-frontend-pr-2480
December 15, 2021 15:09
Inactive
Changes to distdiff --git a/dist/VERSION.txt b/dist/VERSION.txt
index 0d0e48dd..e74e2121 100644
--- a/dist/VERSION.txt
+++ b/dist/VERSION.txt
@@ -1 +1 @@
-3.13.1
+4.0.0
diff --git a/dist/govuk-frontend-3.13.1.min.css b/dist/govuk-frontend-4.0.0.min.css
similarity index 5%
rename from dist/govuk-frontend-3.13.1.min.css
rename to dist/govuk-frontend-4.0.0.min.css
index ffc0356d..5ad564e5 100644
--- a/dist/govuk-frontend-3.13.1.min.css
+++ b/dist/govuk-frontend-4.0.0.min.css
@@ -47,10 +47,7 @@
color: #003078
}
-.govuk-link:active {
- color: #0b0c0c
-}
-
+.govuk-link:active,
.govuk-link:focus {
color: #0b0c0c
}
@@ -72,14 +69,8 @@
}
.govuk-link--muted:active,
-.govuk-link--muted:hover {
- color: #0b0c0c
-}
-
-.govuk-link--muted:focus {
- color: #0b0c0c
-}
-
+.govuk-link--muted:focus,
+.govuk-link--muted:hover,
.govuk-link--text-colour:link,
.govuk-link--text-colour:visited {
color: #0b0c0c
@@ -137,11 +128,9 @@
color: #003078
}
-.govuk-link--no-visited-state:active {
- color: #0b0c0c
-}
-
-.govuk-link--no-visited-state:focus {
+.govuk-link--no-visited-state:active,
+.govuk-link--no-visited-state:focus,
+.govuk-list {
color: #0b0c0c
}
@@ -153,7 +142,6 @@
font-size: 16px;
font-size: 1rem;
line-height: 1.25;
- color: #0b0c0c;
margin-top: 0;
margin-bottom: 15px;
padding-left: 0;
@@ -229,24 +217,6 @@
}
}
-.govuk-template {
- background-color: #f3f2f1;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
- text-size-adjust: 100%
-}
-
-@media screen {
- .govuk-template {
- overflow-y: scroll
- }
-}
-
-.govuk-template__body {
- margin: 0;
- background-color: #fff
-}
-
.govuk-heading-xl {
color: #0b0c0c;
font-family: GDS Transport, arial, sans-serif;
@@ -1111,6 +1081,24 @@
}
}
+.govuk-template {
+ background-color: #f3f2f1;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+ text-size-adjust: 100%
+}
+
+@media screen {
+ .govuk-template {
+ overflow-y: scroll
+ }
+}
+
+.govuk-template__body {
+ margin: 0;
+ background-color: #fff
+}
+
.govuk-width-container {
max-width: 960px;
margin-right: 15px;
@@ -1166,65 +1154,44 @@
padding-top: 15px
}
-.govuk-accordion__section-header {
- padding-top: 15px;
- padding-bottom: 15px
-}
-
.govuk-accordion__section-heading {
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- font-weight: 400;
- font-size: 18px;
- font-size: 1.125rem;
- line-height: 1.11111;
margin-top: 0;
- margin-bottom: 0
-}
-
-@media print {
- .govuk-accordion__section-heading {
- font-family: sans-serif
- }
+ margin-bottom: 0;
+ padding-top: 15px;
+ padding-bottom: 15px
}
-@media (min-width:40.0625em) {
- .govuk-accordion__section-heading {
- font-size: 24px;
- font-size: 1.5rem;
- line-height: 1.25
- }
+.govuk-accordion__section-button {
+ color: #0b0c0c;
+ display: block;
+ margin-bottom: 0;
+ padding-top: 15px
}
@media print {
- .govuk-accordion__section-heading {
- font-size: 18pt;
- line-height: 1.15
+ .govuk-accordion__section-button {
+ color: #000
}
}
-.govuk-accordion__section-button {
+.govuk-accordion__section-heading-text {
font-family: GDS Transport, arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 700;
font-size: 18px;
font-size: 1.125rem;
- line-height: 1.11111;
- display: inline-block;
- margin-bottom: 0;
- padding-top: 15px
+ line-height: 1.11111
}
@media print {
- .govuk-accordion__section-button {
+ .govuk-accordion__section-heading-text {
font-family: sans-serif
}
}
@media (min-width:40.0625em) {
- .govuk-accordion__section-button {
+ .govuk-accordion__section-heading-text {
font-size: 24px;
font-size: 1.5rem;
line-height: 1.25
@@ -1232,17 +1199,12 @@
}
@media print {
- .govuk-accordion__section-button {
+ .govuk-accordion__section-heading-text {
font-size: 18pt;
line-height: 1.15
}
}
-.govuk-accordion__section-summary {
- margin-top: 10px;
- margin-bottom: 0
-}
-
.govuk-accordion__section-content>:last-child {
margin-bottom: 0
}
@@ -1257,14 +1219,12 @@
.js-enabled .govuk-accordion__section-content {
display: none;
- padding-top: 15px;
- padding-bottom: 15px
+ padding-bottom: 30px
}
@media (min-width:40.0625em) {
.js-enabled .govuk-accordion__section-content {
- padding-top: 15px;
- padding-bottom: 15px
+ padding-bottom: 50px
}
}
@@ -1272,104 +1232,178 @@
display: block
}
-.js-enabled .govuk-accordion__open-all {
+.js-enabled .govuk-accordion__show-all {
+ font-family: GDS Transport, arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
font-weight: 400;
- font-size: 14px;
- font-size: .875rem;
- line-height: 1.14286;
+ font-size: 16px;
+ font-size: 1rem;
+ line-height: 1.25;
position: relative;
z-index: 1;
- margin: 0;
- padding: 0;
+ margin-bottom: 9px;
+ padding: 5px 2px 5px 0;
border-width: 0;
color: #1d70b8;
background: none;
cursor: pointer;
- -webkit-appearance: none;
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- text-decoration: underline
+ -webkit-appearance: none
+}
+
+@media print {
+ .js-enabled .govuk-accordion__show-all {
+ font-family: sans-serif
+ }
}
@media (min-width:40.0625em) {
- .js-enabled .govuk-accordion__open-all {
- font-size: 16px;
- font-size: 1rem;
- line-height: 1.25
+ .js-enabled .govuk-accordion__show-all {
+ font-size: 19px;
+ font-size: 1.1875rem;
+ line-height: 1.31579
}
}
@media print {
- .js-enabled .govuk-accordion__open-all {
+ .js-enabled .govuk-accordion__show-all {
font-size: 14pt;
- line-height: 1.2;
- font-family: sans-serif
+ line-height: 1.15
}
}
-.js-enabled .govuk-accordion__open-all:focus {
+@media (min-width:48.0625em) {
+ .js-enabled .govuk-accordion__show-all {
+ margin-bottom: 14px
+ }
+}
+
+.js-enabled .govuk-accordion__show-all::-moz-focus-inner {
+ padding: 0;
+ border: 0
+}
+
+.js-enabled .govuk-accordion__show-all:hover {
+ color: #0b0c0c;
+ background: #f3f2f1;
+ box-shadow: 0 -2px #f3f2f1, 0 4px #f3f2f1
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion__section-toggle-text {
+ color: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron:after {
+ color: #f3f2f1
+}
+
+.js-enabled .govuk-accordion__show-all:focus {
outline: 3px solid rgba(0, 0, 0, 0);
+ color: #0b0c0c;
background-color: #fd0;
box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
text-decoration: none
}
-.js-enabled .govuk-accordion__open-all:link {
- color: #1d70b8
-}
-
-.js-enabled .govuk-accordion__open-all:visited {
- color: #4c2c92
+.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron {
+ background: #0b0c0c
}
-.js-enabled .govuk-accordion__open-all:hover {
- color: #003078
+.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron:after {
+ color: #fd0
}
-.js-enabled .govuk-accordion__open-all:active {
- color: #0b0c0c
+.js-enabled .govuk-accordion__section-heading {
+ padding: 0
}
-.js-enabled .govuk-accordion__open-all:focus {
- color: #0b0c0c
+.js-enabled .govuk-accordion-nav__chevron {
+ box-sizing: border-box;
+ display: inline-block;
+ position: relative;
+ width: 1.25rem;
+ height: 1.25rem;
+ border: .0625rem solid;
+ border-radius: 50%;
+ vertical-align: middle
}
-.js-enabled .govuk-accordion__open-all::-moz-focus-inner {
- padding: 0;
- border: 0
+.js-enabled .govuk-accordion-nav__chevron:after {
+ content: "";
+ box-sizing: border-box;
+ display: block;
+ position: absolute;
+ bottom: .3125rem;
+ left: .375rem;
+ width: .375rem;
+ height: .375rem;
+ -webkit-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ border-top: .125rem solid;
+ border-right: .125rem solid
}
-.js-enabled .govuk-accordion__section-header {
- position: relative;
- padding-right: 40px;
- border-top: 1px solid #b1b4b6;
- cursor: pointer
+.js-enabled .govuk-accordion-nav__chevron--down {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg)
}
.js-enabled .govuk-accordion__section-button {
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 0;
- padding: 0;
- border-width: 0;
- color: #1d70b8;
+ width: 100%;
+ padding: 10px 0 0;
+ border: 0;
+ border-top: 1px solid #b1b4b6;
+ border-bottom: 10px solid rgba(0, 0, 0, 0);
+ color: #0b0c0c;
background: none;
text-align: left;
cursor: pointer;
-webkit-appearance: none
}
-@media print {
+@media (min-width:40.0625em) {
.js-enabled .govuk-accordion__section-button {
- font-family: sans-serif
+ padding-bottom: 10px
}
}
+.js-enabled .govuk-accordion__section-button:active {
+ color: #0b0c0c;
+ background: none
+}
+
+.js-enabled .govuk-accordion__section-button:hover {
+ color: #0b0c0c;
+ background: #f3f2f1
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion__section-toggle-text {
+ color: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron:after {
+ color: #f3f2f1
+}
+
.js-enabled .govuk-accordion__section-button:focus {
+ outline: 0
+}
+
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
outline: 3px solid rgba(0, 0, 0, 0);
color: #0b0c0c;
background-color: #fd0;
@@ -1377,72 +1411,121 @@
text-decoration: none
}
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron:after {
+ color: #fd0
+}
+
.js-enabled .govuk-accordion__section-button::-moz-focus-inner {
padding: 0;
border: 0
}
-.js-enabled .govuk-accordion__section-button:after {
- content: "";
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0
+.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-button {
+ padding-bottom: 20px;
+ border-bottom: 0
}
-.js-enabled .govuk-accordion__section-button:hover:not(:focus) {
- color: #003078;
- text-decoration: underline;
- text-underline-offset: .1em
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
+ padding-bottom: 3px
}
-@media (hover:none) {
- .js-enabled .govuk-accordion__section-button:hover {
- text-decoration: none
+@media (min-width:48.0625em) {
+ .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
+ padding-bottom: 2px
}
}
-.js-enabled .govuk-accordion__controls {
- text-align: right
+.js-enabled .govuk-accordion__section-heading-text,
+.js-enabled .govuk-accordion__section-summary,
+.js-enabled .govuk-accordion__section-toggle {
+ display: block;
+ margin-bottom: 13px
}
-.js-enabled .govuk-accordion__icon {
- position: absolute;
- top: 50%;
- right: 15px;
- width: 16px;
- height: 16px;
- margin-top: -8px
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-toggle-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-toggle-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-toggle-focus {
+ display: inline
}
-.js-enabled .govuk-accordion__icon:after,
-.js-enabled .govuk-accordion__icon:before {
- content: "";
- box-sizing: border-box;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- width: 25%;
- height: 25%;
- margin: auto;
- border: 2px solid rgba(0, 0, 0, 0);
- background-color: #0b0c0c
+.js-enabled .govuk-accordion__section-toggle {
+ font-family: GDS Transport, arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-weight: 400;
+ font-size: 16px;
+ font-size: 1rem;
+ line-height: 1.25;
+ color: #1d70b8
}
-.js-enabled .govuk-accordion__icon:before {
- width: 100%
+@media print {
+ .js-enabled .govuk-accordion__section-toggle {
+ font-family: sans-serif
+ }
}
-.js-enabled .govuk-accordion__icon:after {
- height: 100%
+@media (min-width:40.0625em) {
+ .js-enabled .govuk-accordion__section-toggle {
+ font-size: 19px;
+ font-size: 1.1875rem;
+ line-height: 1.31579
+ }
}
-.js-enabled .govuk-accordion__section--expanded .govuk-accordion__icon:after {
- content: " ";
- display: none
+@media print {
+ .js-enabled .govuk-accordion__section-toggle {
+ font-size: 14pt;
+ line-height: 1.15
+ }
+}
+
+.js-enabled .govuk-accordion__section-toggle-text,
+.js-enabled .govuk-accordion__show-all-text {
+ margin-left: 5px;
+ vertical-align: middle
+}
+
+@media screen and (forced-colors:active) {
+
+ .js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron,
+ .js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {
+ background-color: rgba(0, 0, 0, 0)
+ }
+
+ .js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron,
+ .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,
+ .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,
+ .js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus,
+ .js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron,
+ .js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-heading-text-focus,
+ .js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-summary-focus,
+ .js-enabled .govuk-accordion__show-all:focus .govuk-accordion__section-toggle-focus {
+ background: rgba(0, 0, 0, 0);
+ background-color: rgba(0, 0, 0, 0)
+ }
+}
+
+@media (hover:none) {
+ .js-enabled .govuk-accordion__section-header:hover {
+ border-top-color: #b1b4b6;
+ box-shadow: inset 0 3px 0 0 #1d70b8
+ }
+
+ .js-enabled .govuk-accordion__section-header:hover .govuk-accordion__section-button {
+ border-top-color: #b1b4b6
+ }
}
.govuk-back-link {
@@ -1925,6 +2008,7 @@
font-size: 1rem;
line-height: 1.25;
display: block;
+ margin-top: 0;
margin-bottom: 15px;
clear: both;
color: #d4351c
@@ -2152,7 +2236,6 @@
font-size: 16px;
font-size: 1rem;
line-height: 1.25;
- display: block;
margin-bottom: 15px;
color: #505a5f
}
@@ -2666,7 +2749,7 @@ screen and (forced-colors:active) {
}
.govuk-textarea--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-textarea--error:focus {
@@ -2718,39 +2801,11 @@ screen and (forced-colors:active) {
}
.govuk-cookie-banner {
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- font-weight: 400;
- font-size: 16px;
- font-size: 1rem;
- line-height: 1.25;
padding-top: 20px;
border-bottom: 10px solid rgba(0, 0, 0, 0);
background-color: #f3f2f1
}
-@media print {
- .govuk-cookie-banner {
- font-family: sans-serif
- }
-}
-
-@media (min-width:40.0625em) {
- .govuk-cookie-banner {
- font-size: 19px;
- font-size: 1.1875rem;
- line-height: 1.31579
- }
-}
-
-@media print {
- .govuk-cookie-banner {
- font-size: 14pt;
- line-height: 1.15
- }
-}
-
.govuk-cookie-banner[hidden] {
display: none
}
@@ -2806,14 +2861,18 @@ screen and (forced-colors:active) {
display: table;
width: 100%;
table-layout: fixed;
+ border-collapse: collapse;
margin-bottom: 30px
}
}
+.govuk-summary-list__row {
+ border-bottom: 1px solid #b1b4b6
+}
+
@media (max-width:40.0525em) {
.govuk-summary-list__row {
- margin-bottom: 15px;
- border-bottom: 1px solid #b1b4b6
+ margin-bottom: 15px
}
}
@@ -2823,6 +2882,11 @@ screen and (forced-colors:active) {
}
}
+.govuk-summary-list__row--no-actions:after {
+ content: "";
+ display: table-cell
+}
+
.govuk-summary-list__actions,
.govuk-summary-list__key,
.govuk-summary-list__value {
@@ -2837,8 +2901,7 @@ screen and (forced-colors:active) {
display: table-cell;
padding-top: 10px;
padding-right: 20px;
- padding-bottom: 10px;
- border-bottom: 1px solid #b1b4b6
+ padding-bottom: 10px
}
}
@@ -2877,18 +2940,6 @@ screen and (forced-colors:active) {
}
}
-@media (min-width:40.0625em) {
- .govuk-summary-list__value {
- width: 50%
- }
-}
-
-@media (min-width:40.0625em) {
- .govuk-summary-list__value:last-child {
- width: 70%
- }
-}
-
.govuk-summary-list__value>p {
margin-bottom: 10px
}
@@ -2919,10 +2970,8 @@ screen and (forced-colors:active) {
border: 0
}
-@media (max-width:40.0525em) {
- .govuk-summary-list--no-border .govuk-summary-list__row {
- border: 0
- }
+.govuk-summary-list--no-border .govuk-summary-list__row {
+ border: 0
}
@media (min-width:40.0625em) {
@@ -2930,15 +2979,12 @@ screen and (forced-colors:active) {
.govuk-summary-list--no-border .govuk-summary-list__actions,
.govuk-summary-list--no-border .govuk-summary-list__key,
.govuk-summary-list--no-border .govuk-summary-list__value {
- padding-bottom: 11px;
- border: 0
+ padding-bottom: 11px
}
}
-@media (max-width:40.0525em) {
- .govuk-summary-list__row--no-border {
- border: 0
- }
+.govuk-summary-list__row--no-border {
+ border: 0
}
@media (min-width:40.0625em) {
@@ -2946,8 +2992,7 @@ screen and (forced-colors:active) {
.govuk-summary-list__row--no-border .govuk-summary-list__actions,
.govuk-summary-list__row--no-border .govuk-summary-list__key,
.govuk-summary-list__row--no-border .govuk-summary-list__value {
- padding-bottom: 11px;
- border: 0
+ padding-bottom: 11px
}
}
@@ -3010,7 +3055,7 @@ screen and (forced-colors:active) {
}
.govuk-input--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-input--error:focus {
@@ -3714,17 +3759,11 @@ only screen and (min-resolution:192dpi) {
}
.govuk-footer__heading {
- margin-bottom: 25px;
+ margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 1px solid #b1b4b6
}
-@media (min-width:40.0625em) {
- .govuk-footer__heading {
- margin-bottom: 40px
- }
-}
-
@media (max-width:40.0525em) {
.govuk-footer__heading {
padding-bottom: 10px
@@ -3732,47 +3771,20 @@ only screen and (min-resolution:192dpi) {
}
.govuk-footer__navigation {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
margin-right: -15px;
- margin-left: -15px;
- -webkit-flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap
+ margin-left: -15px
+}
+
+.govuk-footer__navigation:after {
+ content: "";
+ display: block;
+ clear: both
}
.govuk-footer__section {
display: inline-block;
- margin-right: 15px;
margin-bottom: 30px;
- margin-left: 15px;
- vertical-align: top;
- -webkit-box-flex: 1;
- -webkit-flex-grow: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
- -webkit-flex-shrink: 1;
- -ms-flex-negative: 1;
- flex-shrink: 1
-}
-
-@media (max-width:48.0525em) {
- .govuk-footer__section {
- -webkit-flex-basis: 200px;
- -ms-flex-preferred-size: 200px;
- flex-basis: 200px
- }
-}
-
-@media (min-width:48.0625em) {
- .govuk-footer__section:first-child:nth-last-child(2) {
- -webkit-box-flex: 2;
- -webkit-flex-grow: 2;
- -ms-flex-positive: 2;
- flex-grow: 2
- }
+ vertical-align: top
}
.govuk-footer__list {
@@ -4155,19 +4167,18 @@ only screen and (min-resolution:192dpi) {
border-bottom-color: inherit
}
-.govuk-header__navigation {
- display: block;
- margin: 0;
- padding: 0;
- list-style: none
-}
-
-@media (min-width:40.0625em) {
+@media (min-width:48.0625em) {
.govuk-header__navigation {
margin-bottom: 10px
}
}
+.govuk-header__navigation-list {
+ margin: 0;
+ padding: 0;
+ list-style: none
+}
+
.js-enabled .govuk-header__menu-button {
display: block
}
@@ -4178,17 +4189,17 @@ only screen and (min-resolution:192dpi) {
}
}
-.js-enabled .govuk-header__navigation {
+.js-enabled .govuk-header__navigation-list {
display: none
}
@media (min-width:48.0625em) {
- .js-enabled .govuk-header__navigation {
+ .js-enabled .govuk-header__navigation-list {
display: block
}
}
-.js-enabled .govuk-header__navigation--open {
+.js-enabled .govuk-header__navigation-list--open {
display: block
}
@@ -4261,7 +4272,8 @@ only screen and (min-resolution:192dpi) {
}
.govuk-header__navigation-item:last-child {
- margin-right: 0
+ margin-right: 0;
+ border-bottom: 0
}
@media print {
@@ -4517,10 +4529,7 @@ only screen and (min-resolution:192dpi) {
color: #003078
}
-.govuk-notification-banner__link:active {
- color: #0b0c0c
-}
-
+.govuk-notification-banner__link:active,
.govuk-notification-banner__link:focus {
color: #0b0c0c
}
@@ -4585,7 +4594,9 @@ only screen and (min-resolution:192dpi) {
@media (max-width:40.0525em) {
.govuk-panel {
- padding: 25px
+ padding: 10px;
+ overflow-wrap: break-word;
+ word-wrap: break-word
}
}
@@ -4710,10 +4721,6 @@ only screen and (min-resolution:192dpi) {
}
}
-.govuk-tag--inactive {
- background-color: #505a5f
-}
-
.govuk-tag--grey {
color: #383f43;
background: #eeefef
@@ -4946,10 +4953,7 @@ only screen and (min-resolution:192dpi) {
color: #003078
}
-.govuk-tabs__tab:active {
- color: #0b0c0c
-}
-
+.govuk-tabs__tab:active,
.govuk-tabs__tab:focus {
color: #0b0c0c
}
@@ -5406,7 +5410,7 @@ screen and (forced-colors:active) {
}
.govuk-select--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-select--error:focus {
@@ -5511,6 +5515,10 @@ screen and (forced-colors:active) {
background-color: #fd0
}
+.govuk-skip-link-focused-element:focus {
+ outline: none
+}
+
.govuk-table {
font-family: GDS Transport, arial, sans-serif;
-webkit-font-smoothing: antialiased;
@@ -6897,6 +6905,18 @@ screen and (forced-colors:active) {
}
}
+.govuk-\!-text-align-left {
+ text-align: left !important
+}
+
+.govuk-\!-text-align-centre {
+ text-align: center !important
+}
+
+.govuk-\!-text-align-right {
+ text-align: right !important
+}
+
.govuk-\!-font-size-80 {
font-size: 53px !important;
font-size: 3.3125rem !important;
diff --git a/dist/govuk-frontend-3.13.1.min.js b/dist/govuk-frontend-4.0.0.min.js
similarity index 11%
rename from dist/govuk-frontend-3.13.1.min.js
rename to dist/govuk-frontend-4.0.0.min.js
index e9366b04..56ea78f8 100644
--- a/dist/govuk-frontend-3.13.1.min.js
+++ b/dist/govuk-frontend-4.0.0.min.js
@@ -3,15 +3,15 @@
}(this, function(t) {
"use strict";
- function r(t, e) {
+ function s(t, e) {
if (window.NodeList.prototype.forEach) return t.forEach(e);
for (var n = 0; n < t.length; n++) e.call(window, t[n], n, t)
}
function n(t) {
- this.$module = t, this.moduleId = t.getAttribute("id"), this.$sections = t.querySelectorAll(".govuk-accordion__section"), this.$openAllButton = "", this.browserSupportsSessionStorage = e.checkForSessionStorage(), this.controlsClass = "govuk-accordion__controls", this.openAllClass = "govuk-accordion__open-all", this.iconClass = "govuk-accordion__icon", this.sectionHeaderClass = "govuk-accordion__section-header", this.sectionHeaderFocusedClass = "govuk-accordion__section-header--focused", this.sectionHeadingClass = "govuk-accordion__section-heading", this.sectionSummaryClass = "govuk-accordion__section-summary", this.sectionButtonClass = "govuk-accordion__section-button", this.sectionExpandedClass = "govuk-accordion__section--expanded"
+ this.$module = t, this.moduleId = t.getAttribute("id"), this.$sections = t.querySelectorAll(".govuk-accordion__section"), this.$showAllButton = "", this.browserSupportsSessionStorage = e.checkForSessionStorage(), this.controlsClass = "govuk-accordion__controls", this.showAllClass = "govuk-accordion__show-all", this.showAllTextClass = "govuk-accordion__show-all-text", this.sectionExpandedClass = "govuk-accordion__section--expanded", this.sectionButtonClass = "govuk-accordion__section-button", this.sectionHeaderClass = "govuk-accordion__section-header", this.sectionHeadingClass = "govuk-accordion__section-heading", this.sectionHeadingTextClass = "govuk-accordion__section-heading-text", this.sectionHeadingTextFocusClass = "govuk-accordion__section-heading-text-focus", this.sectionShowHideToggleClass = "govuk-accordion__section-toggle", this.sectionShowHideToggleFocusClass = "govuk-accordion__section-toggle-focus", this.sectionShowHideTextClass = "govuk-accordion__section-toggle-text", this.upChevronIconClass = "govuk-accordion-nav__chevron", this.downChevronIconClass = "govuk-accordion-nav__chevron--down", this.sectionSummaryClass = "govuk-accordion__section-summary", this.sectionSummaryFocusClass = "govuk-accordion__section-summary-focus"
}(function(t) {
- var a, c, l, u;
+ var a, l, c, u;
"defineProperty" in Object && function() {
try {
return Object.defineProperty({}, "test", {
@@ -20,23 +20,23 @@
} catch (t) {
return !1
}
- }() || (a = Object.defineProperty, c = Object.prototype.hasOwnProperty("__defineGetter__"), l = "Getters & setters cannot be defined on this javascript engine", u = "A property cannot both have accessors and be writable or have a value", Object.defineProperty = function(t, e, n) {
+ }() || (a = Object.defineProperty, l = Object.prototype.hasOwnProperty("__defineGetter__"), c = "Getters & setters cannot be defined on this javascript engine", u = "A property cannot both have accessors and be writable or have a value", Object.defineProperty = function(t, e, n) {
if (a && (t === window || t === document || t === Element.prototype || t instanceof Element)) return a(t, e, n);
if (null === t || !(t instanceof Object || "object" == typeof t)) throw new TypeError("Object.defineProperty called on non-object");
if (!(n instanceof Object)) throw new TypeError("Property description must be an object");
var o = String(e),
i = "value" in n || "writable" in n,
- r = "get" in n && typeof n.get,
- s = "set" in n && typeof n.set;
- if (r) {
- if ("function" !== r) throw new TypeError("Getter must be a function");
- if (!c) throw new TypeError(l);
+ s = "get" in n && typeof n.get,
+ r = "set" in n && typeof n.set;
+ if (s) {
+ if ("function" !== s) throw new TypeError("Getter must be a function");
+ if (!l) throw new TypeError(c);
if (i) throw new TypeError(u);
Object.__defineGetter__.call(t, o, n.get)
} else t[o] = n.value;
- if (s) {
- if ("function" !== s) throw new TypeError("Setter must be a function");
- if (!c) throw new TypeError(l);
+ if (r) {
+ if ("function" !== r) throw new TypeError("Setter must be a function");
+ if (!l) throw new TypeError(c);
if (i) throw new TypeError(u);
Object.__defineSetter__.call(t, o, n.set)
}
@@ -49,38 +49,38 @@
var n, t = Array,
o = Object,
i = o.prototype,
- r = t.prototype,
- s = function s() {},
+ s = t.prototype,
+ r = function r() {},
a = i.toString,
- c = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag,
- l = Function.prototype.toString,
+ l = "function" == typeof Symbol && "symbol" == typeof Symbol.toStringTag,
+ c = Function.prototype.toString,
u = function u(t) {
try {
- return l.call(t), !0
+ return c.call(t), !0
} catch (e) {
return !1
}
};
n = function n(t) {
if ("function" != typeof t) return !1;
- if (c) return u(t);
+ if (l) return u(t);
var e = a.call(t);
return "[object Function]" === e || "[object GeneratorFunction]" === e
};
- var d = r.slice,
- h = r.concat,
- p = r.push,
+ var d = s.slice,
+ h = s.concat,
+ p = s.push,
f = Math.max,
- b = this;
- if (!n(b)) throw new TypeError("Function.prototype.bind called on incompatible " + b);
- for (var m, y = d.call(arguments, 1), v = f(0, b.length - y.length), g = [], w = 0; w < v; w++) p.call(g, "$" + w);
- return m = Function("binder", "return function (" + g.join(",") + "){ return binder.apply(this, arguments); }")(function() {
- if (this instanceof m) {
- var t = b.apply(this, h.call(y, d.call(arguments)));
+ m = this;
+ if (!n(m)) throw new TypeError("Function.prototype.bind called on incompatible " + m);
+ for (var b, v = d.call(arguments, 1), y = f(0, m.length - v.length), g = [], w = 0; w < y; w++) p.call(g, "$" + w);
+ return b = Function("binder", "return function (" + g.join(",") + "){ return binder.apply(this, arguments); }")(function() {
+ if (this instanceof b) {
+ var t = m.apply(this, h.call(v, d.call(arguments)));
return o(t) === t ? t : this
}
- return b.apply(e, h.call(y, d.call(arguments)))
- }), b.prototype && (s.prototype = b.prototype, m.prototype = new s, s.prototype = null), m
+ return m.apply(e, h.call(v, d.call(arguments)))
+ }), m.prototype && (r.prototype = m.prototype, b.prototype = new r, r.prototype = null), b
}
})
}.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
@@ -99,20 +99,20 @@
} catch (t) {
i = !1
}
- return function(i, r) {
- var s = this,
+ return function(i, s) {
+ var r = this,
a = [],
- c = {},
- l = 0,
+ l = {},
+ c = 0,
t = 0,
e = function(t) {
- n(s, t, function() {
+ n(r, t, function() {
return d(), a[t]
}, !1)
},
u = function() {
- if (t <= l)
- for (; t < l; ++t) e(t)
+ if (t <= c)
+ for (; t < c; ++t) e(t)
},
d = function() {
var t, e, n = arguments,
@@ -120,29 +120,29 @@
if (n.length)
for (e = 0; e < n.length; ++e)
if (o.test(n[e])) throw (t = new SyntaxError('String "' + n[e] + '" contains an invalid character')).code = 5, t.name = "InvalidCharacterError", t;
- for ("" === (a = "object" == typeof i[r] ? ("" + i[r].baseVal).replace(/^\s+|\s+$/g, "").split(o) : ("" + i[r]).replace(/^\s+|\s+$/g, "").split(o))[0] && (a = []), c = {}, e = 0; e < a.length; ++e) c[a[e]] = !0;
- l = a.length, u()
+ for ("" === (a = "object" == typeof i[s] ? ("" + i[s].baseVal).replace(/^\s+|\s+$/g, "").split(o) : ("" + i[s]).replace(/^\s+|\s+$/g, "").split(o))[0] && (a = []), l = {}, e = 0; e < a.length; ++e) l[a[e]] = !0;
+ c = a.length, u()
};
- return d(), n(s, "length", function() {
- return d(), l
- }), s.toLocaleString = s.toString = function() {
+ return d(), n(r, "length", function() {
+ return d(), c
+ }), r.toLocaleString = r.toString = function() {
return d(), a.join(" ")
- }, s.item = function(t) {
+ }, r.item = function(t) {
return d(), a[t]
- }, s.contains = function(t) {
- return d(), !!c[t]
- }, s.add = function() {
- d.apply(s, t = arguments);
- for (var t, e, n = 0, o = t.length; n < o; ++n) c[e = t[n]] || (a.push(e), c[e] = !0);
- l !== a.length && (l = a.length >>> 0, "object" == typeof i[r] ? i[r].baseVal = a.join(" ") : i[r] = a.join(" "), u())
- }, s.remove = function() {
- d.apply(s, t = arguments);
- for (var t, e = {}, n = 0, o = []; n < t.length; ++n) e[t[n]] = !0, delete c[t[n]];
+ }, r.contains = function(t) {
+ return d(), !!l[t]
+ }, r.add = function() {
+ d.apply(r, t = arguments);
+ for (var t, e, n = 0, o = t.length; n < o; ++n) l[e = t[n]] || (a.push(e), l[e] = !0);
+ c !== a.length && (c = a.length >>> 0, "object" == typeof i[s] ? i[s].baseVal = a.join(" ") : i[s] = a.join(" "), u())
+ }, r.remove = function() {
+ d.apply(r, t = arguments);
+ for (var t, e = {}, n = 0, o = []; n < t.length; ++n) e[t[n]] = !0, delete l[t[n]];
for (n = 0; n < a.length; ++n) e[a[n]] || o.push(a[n]);
- l = (a = o).length >>> 0, "object" == typeof i[r] ? i[r].baseVal = a.join(" ") : i[r] = a.join(" "), u()
- }, s.toggle = function(t, e) {
- return d.apply(s, [t]), o !== e ? e ? (s.add(t), !0) : (s.remove(t), !1) : c[t] ? (s.remove(t), !1) : (s.add(t), !0)
- }, s
+ c = (a = o).length >>> 0, "object" == typeof i[s] ? i[s].baseVal = a.join(" ") : i[s] = a.join(" "), u()
+ }, r.toggle = function(t, e) {
+ return d.apply(r, [t]), o !== e ? e ? (r.add(t), !0) : (r.remove(t), !1) : l[t] ? (r.remove(t), !1) : (r.add(t), !0)
+ }, r
}
}()), "classList" in (n = document.createElement("span")) && (n.classList.toggle("x", !1), n.classList.contains("x") && (n.classList.constructor.prototype.toggle = function(t) {
var e = arguments[1];
@@ -177,31 +177,31 @@
var t, e = document.appendChild(document.createElement("body")),
n = e.appendChild(document.createElement("iframe")).contentWindow.document,
a = Element.prototype = n.appendChild(n.createElement("*")),
- c = {},
- l = function(t, e) {
- var n, o, i, r = t.childNodes || [],
- s = -1;
+ l = {},
+ c = function(t, e) {
+ var n, o, i, s = t.childNodes || [],
+ r = -1;
if (1 === t.nodeType && t.constructor !== Element)
- for (n in t.constructor = Element, c) o = c[n], t[n] = o;
- for (; i = e && r[++s];) l(i, e);
+ for (n in t.constructor = Element, l) o = l[n], t[n] = o;
+ for (; i = e && s[++r];) c(i, e);
return t
},
u = document.getElementsByTagName("*"),
o = document.createElement,
i = 100;
a.attachEvent("onpropertychange", function(t) {
- for (var e, n = t.propertyName, o = !c.hasOwnProperty(n), i = a[n], r = c[n], s = -1; e = u[++s];) 1 === e.nodeType && (!o && e[n] !== r || (e[n] = i));
- c[n] = i
+ for (var e, n = t.propertyName, o = !l.hasOwnProperty(n), i = a[n], s = l[n], r = -1; e = u[++r];) 1 === e.nodeType && (!o && e[n] !== s || (e[n] = i));
+ l[n] = i
}), a.constructor = Element, a.hasAttribute || (a.hasAttribute = function(t) {
return null !== this.getAttribute(t)
- }), r() || (document.onreadystatechange = r, t = setInterval(r, 25)), document.createElement = function(t) {
+ }), s() || (document.onreadystatechange = s, t = setInterval(s, 25)), document.createElement = function(t) {
var e = o(String(t).toLowerCase());
- return l(e)
+ return c(e)
}, document.removeChild(e)
} else window.HTMLElement = window.Element;
- function r() {
- return i-- || clearTimeout(t), !(!document.body || document.body.prototype || !/(complete|interactive)/.test(document.readyState)) && (l(document, !0), t && document.body.prototype && clearTimeout(t), !!document.body.prototype)
+ function s() {
+ return i-- || clearTimeout(t), !(!document.body || document.body.prototype || !/(complete|interactive)/.test(document.readyState)) && (c(document, !0), t && document.body.prototype && clearTimeout(t), !!document.body.prototype)
}
}()
}.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
@@ -220,19 +220,19 @@
} catch (e) {
u = !1
}
- var h = function(t, c, l) {
- d(t.prototype, c, function() {
+ var h = function(t, l, c) {
+ d(t.prototype, l, function() {
var t, e = this,
- n = "__defineGetter__DEFINE_PROPERTY" + c;
+ n = "__defineGetter__DEFINE_PROPERTY" + l;
if (e[n]) return t;
if (!(e[n] = !0) === u) {
- for (var o, i = h.mirror || document.createElement("div"), r = i.childNodes, s = r.length, a = 0; a < s; ++a)
- if (r[a]._R === e) {
- o = r[a];
+ for (var o, i = h.mirror || document.createElement("div"), s = i.childNodes, r = s.length, a = 0; a < r; ++a)
+ if (s[a]._R === e) {
+ o = s[a];
break
- } o = o || i.appendChild(document.createElement("div")), t = DOMTokenList.call(o, e, l)
- } else t = new DOMTokenList(e, l);
- return d(e, c, function() {
+ } o = o || i.appendChild(document.createElement("div")), t = DOMTokenList.call(o, e, c)
+ } else t = new DOMTokenList(e, c);
+ return d(e, l, function() {
return t
}), delete e[n], t
}, !0)
@@ -243,56 +243,81 @@
if (this.$module) {
this.initControls(), this.initSectionHeaders();
var t = this.checkIfAllSectionsOpen();
- this.updateOpenAllButton(t)
+ this.updateShowAllButton(t)
}
}, n.prototype.initControls = function() {
- this.$openAllButton = document.createElement("button"), this.$openAllButton.setAttribute("type", "button"), this.$openAllButton.innerHTML = 'Open all <span class="govuk-visually-hidden">sections</span>', this.$openAllButton.setAttribute("class", this.openAllClass), this.$openAllButton.setAttribute("aria-expanded", "false"), this.$openAllButton.setAttribute("type", "button");
- var t = document.createElement("div");
- t.setAttribute("class", this.controlsClass), t.appendChild(this.$openAllButton), this.$module.insertBefore(t, this.$module.firstChild), this.$openAllButton.addEventListener("click", this.onOpenOrCloseAllToggle.bind(this))
+ this.$showAllButton = document.createElement("button"), this.$showAllButton.setAttribute("type", "button"), this.$showAllButton.setAttribute("class", this.showAllClass), this.$showAllButton.setAttribute("aria-expanded", "false");
+ var t = document.createElement("span");
+ t.classList.add(this.upChevronIconClass), this.$showAllButton.appendChild(t);
+ var e = document.createElement("div");
+ e.setAttribute("class", this.controlsClass), e.appendChild(this.$showAllButton), this.$module.insertBefore(e, this.$module.firstChild);
+ var n = document.createElement("span");
+ n.classList.add(this.showAllTextClass), this.$showAllButton.appendChild(n), this.$showAllButton.addEventListener("click", this.onShowOrHideAllToggle.bind(this))
}, n.prototype.initSectionHeaders = function() {
- r(this.$sections, function(t, e) {
+ s(this.$sections, function(t, e) {
var n = t.querySelector("." + this.sectionHeaderClass);
- this.initHeaderAttributes(n, e), this.setExpanded(this.isExpanded(t), t), n.addEventListener("click", this.onSectionToggle.bind(this, t)), this.setInitialState(t)
+ this.constructHeaderMarkup(n, e), this.setExpanded(this.isExpanded(t), t), n.addEventListener("click", this.onSectionToggle.bind(this, t)), this.setInitialState(t)
}.bind(this))
- }, n.prototype.initHeaderAttributes = function(e, t) {
- var n = this,
- o = e.querySelector("." + this.sectionButtonClass),
- i = e.querySelector("." + this.sectionHeadingClass),
- r = e.querySelector("." + this.sectionSummaryClass),
+ }, n.prototype.constructHeaderMarkup = function(t, e) {
+ var n = t.querySelector("." + this.sectionButtonClass),
+ o = t.querySelector("." + this.sectionHeadingClass),
+ i = t.querySelector("." + this.sectionSummaryClass),
s = document.createElement("button");
- s.setAttribute("type", "button"), s.setAttribute("id", this.moduleId + "-heading-" + (t + 1)), s.setAttribute("aria-controls", this.moduleId + "-content-" + (t + 1));
- for (var a = 0; a < o.attributes.length; a++) {
- var c = o.attributes.item(a);
- s.setAttribute(c.nodeName, c.nodeValue)
+ s.setAttribute("type", "button"), s.setAttribute("aria-controls", this.moduleId + "-content-" + (e + 1));
+ for (var r = 0; r < n.attributes.length; r++) {
+ var a = n.attributes.item(r);
+ "id" !== a.nodeName && s.setAttribute(a.nodeName, a.nodeValue)
}
- s.addEventListener("focusin", function(t) {
- e.classList.contains(n.sectionHeaderFocusedClass) || (e.className += " " + n.sectionHeaderFocusedClass)
- }), s.addEventListener("blur", function(t) {
- e.classList.remove(n.sectionHeaderFocusedClass)
- }), null != r && s.setAttribute("aria-describedby", this.moduleId + "-summary-" + (t + 1)), s.innerHTML = o.innerHTML, i.removeChild(o), i.appendChild(s);
var l = document.createElement("span");
- l.className = this.iconClass, l.setAttribute("aria-hidden", "true"), s.appendChild(l)
+ l.classList.add(this.sectionHeadingTextClass), l.id = n.id;
+ var c = document.createElement("span");
+ c.classList.add(this.sectionHeadingTextFocusClass), l.appendChild(c), c.innerHTML = n.innerHTML;
+ var u = document.createElement("span");
+ u.classList.add(this.sectionShowHideToggleClass), u.setAttribute("data-nosnippet", "");
+ var d = document.createElement("span");
+ d.classList.add(this.sectionShowHideToggleFocusClass), u.appendChild(d);
+ var h = document.createElement("span"),
+ p = document.createElement("span");
+ if (p.classList.add(this.upChevronIconClass), d.appendChild(p), h.classList.add(this.sectionShowHideTextClass), d.appendChild(h), s.appendChild(l), s.appendChild(this.getButtonPunctuationEl()), null != i) {
+ var f = document.createElement("span"),
+ m = document.createElement("span");
+ m.classList.add(this.sectionSummaryFocusClass), f.appendChild(m);
+ for (var b = 0, v = i.attributes.length; b < v; ++b) {
+ var y = i.attributes.item(b).nodeName,
+ g = i.attributes.item(b).nodeValue;
+ f.setAttribute(y, g)
+ }
+ m.innerHTML = i.innerHTML, i.parentNode.replaceChild(f, i), s.appendChild(f), s.appendChild(this.getButtonPunctuationEl())
+ }
+ s.appendChild(u), o.removeChild(n), o.appendChild(s)
}, n.prototype.onSectionToggle = function(t) {
var e = this.isExpanded(t);
this.setExpanded(!e, t), this.storeState(t)
- }, n.prototype.onOpenOrCloseAllToggle = function() {
+ }, n.prototype.onShowOrHideAllToggle = function() {
var e = this,
t = this.$sections,
n = !this.checkIfAllSectionsOpen();
- r(t, function(t) {
+ s(t, function(t) {
e.setExpanded(n, t), e.storeState(t)
- }), e.updateOpenAllButton(n)
+ }), e.updateShowAllButton(n)
}, n.prototype.setExpanded = function(t, e) {
- e.querySelector("." + this.sectionButtonClass).setAttribute("aria-expanded", t), t ? e.classList.add(this.sectionExpandedClass) : e.classList.remove(this.sectionExpandedClass);
- var n = this.checkIfAllSectionsOpen();
- this.updateOpenAllButton(n)
+ var n = e.querySelector("." + this.upChevronIconClass),
+ o = e.querySelector("." + this.sectionShowHideTextClass),
+ i = e.querySelector("." + this.sectionButtonClass),
+ s = t ? "Hide" : "Show",
+ r = document.createElement("span");
+ r.classList.add("govuk-visually-hidden"), r.innerHTML = " this section", o.innerHTML = s, o.appendChild(r), i.setAttribute("aria-expanded", t), t ? (e.classList.add(this.sectionExpandedClass), n.classList.remove(this.downChevronIconClass)) : (e.classList.remove(this.sectionExpandedClass), n.classList.add(this.downChevronIconClass));
+ var a = this.checkIfAllSectionsOpen();
+ this.updateShowAllButton(a)
}, n.prototype.isExpanded = function(t) {
return t.classList.contains(this.sectionExpandedClass)
}, n.prototype.checkIfAllSectionsOpen = function() {
return this.$sections.length === this.$module.querySelectorAll("." + this.sectionExpandedClass).length
- }, n.prototype.updateOpenAllButton = function(t) {
- var e = t ? "Close all" : "Open all";
- e += '<span class="govuk-visually-hidden"> sections</span>', this.$openAllButton.setAttribute("aria-expanded", t), this.$openAllButton.innerHTML = e
+ }, n.prototype.updateShowAllButton = function(t) {
+ var e = this.$showAllButton.querySelector("." + this.upChevronIconClass),
+ n = this.$showAllButton.querySelector("." + this.showAllTextClass),
+ o = t ? "Hide all sections" : "Show all sections";
+ this.$showAllButton.setAttribute("aria-expanded", t), n.innerHTML = o, t ? e.classList.remove(this.downChevronIconClass) : e.classList.add(this.downChevronIconClass)
};
var e = {
checkForSessionStorage: function() {
@@ -322,13 +347,16 @@
null !== o && this.setExpanded("true" === o, t)
}
}
+ }, n.prototype.getButtonPunctuationEl = function() {
+ var t = document.createElement("span");
+ return t.classList.add("govuk-visually-hidden", "govuk-accordion__section-heading-divider"), t.innerHTML = ", ", t
},
function(t) {
"Window" in this || "undefined" == typeof WorkerGlobalScope && "function" != typeof importScripts && function(t) {
t.constructor ? t.Window = t.constructor : (t.Window = t.constructor = new Function("return function Window() {}")()).prototype = this
}(this)
}.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}),
- function(r) {
+ function(s) {
! function(t) {
if (!("Event" in t)) return !1;
if ("function" == typeof t.Event) return !0;
@@ -362,34 +390,34 @@
var n;
if ("createEvent" in document) {
n = document.createEvent("Event");
- var o = !(!e || e.bubbles === r) && e.bubbles,
- i = !(!e || e.cancelable === r) && e.cancelable;
+ var o = !(!e || e.bubbles === s) && e.bubbles,
+ i = !(!e || e.cancelable === s) && e.cancelable;
return n.initEvent(t, o, i), n
}
- return (n = document.createEventObject()).type = t, n.bubbles = !(!e || e.bubbles === r) && e.bubbles, n.cancelable = !(!e || e.cancelable === r) && e.cancelable, n
+ return (n = document.createEventObject()).type = t, n.bubbles = !(!e || e.bubbles === s) && e.bubbles, n.cancelable = !(!e || e.cancelable === s) && e.cancelable, n
}, t && Object.defineProperty(window.Event, "prototype", {
configurable: !1,
enumerable: !1,
writable: !0,
value: t
}), "createEvent" in document || (window.addEventListener = Window.prototype.addEventListener = Document.prototype.addEventListener = Element.prototype.addEventListener = function() {
- var s = this,
+ var r = this,
t = arguments[0],
e = arguments[1];
- if (s === window && t in n) throw new Error("In IE8 the event: " + t + " is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.");
- s._events || (s._events = {}), s._events[t] || (s._events[t] = function(t) {
- var e, n = s._events[t.type].list,
+ if (r === window && t in n) throw new Error("In IE8 the event: " + t + " is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.");
+ r._events || (r._events = {}), r._events[t] || (r._events[t] = function(t) {
+ var e, n = r._events[t.type].list,
o = n.slice(),
i = -1,
- r = o.length;
+ s = o.length;
for (t.preventDefault = function() {
!1 !== t.cancelable && (t.returnValue = !1)
}, t.stopPropagation = function() {
t.cancelBubble = !0
}, t.stopImmediatePropagation = function() {
t.cancelBubble = !0, t.cancelImmediate = !0
- }, t.currentTarget = s, t.relatedTarget = t.fromElement || null, t.target = t.target || t.srcElement || s, t.timeStamp = (new Date).getTime(), t.clientX && (t.pageX = t.clientX + document.documentElement.scrollLeft, t.pageY = t.clientY + document.documentElement.scrollTop); ++i < r && !t.cancelImmediate;) i in o && -1 !== a(n, e = o[i]) && "function" == typeof e && e.call(s, t)
- }, s._events[t].list = [], s.attachEvent && s.attachEvent("on" + t, s._events[t])), s._events[t].list.push(e)
+ }, t.currentTarget = r, t.relatedTarget = t.fromElement || null, t.target = t.target || t.srcElement || r, t.timeStamp = (new Date).getTime(), t.clientX && (t.pageX = t.clientX + document.documentElement.scrollLeft, t.pageY = t.clientY + document.documentElement.scrollTop); ++i < s && !t.cancelImmediate;) i in o && -1 !== a(n, e = o[i]) && "function" == typeof e && e.call(r, t)
+ }, r._events[t].list = [], r.attachEvent && r.attachEvent("on" + t, r._events[t])), r._events[t].list.push(e)
}, window.removeEventListener = Window.prototype.removeEventListener = Document.prototype.removeEventListener = Element.prototype.removeEventListener = function() {
var t, e = this,
n = arguments[0],
@@ -447,19 +475,19 @@
this.$module = t
}
- function s(t) {
- this.$module = t, this.$textarea = t.querySelector(".govuk-js-character-count"), this.$textarea && (this.$countMessage = t.querySelector('[id="' + this.$textarea.id + '-info"]'))
+ function r(t) {
+ this.$module = t, this.$textarea = t.querySelector(".govuk-js-character-count"), this.$textarea && (this.$countMessage = document.getElementById(this.$textarea.id + "-info"))
}
function a(t) {
this.$module = t, this.$inputs = t.querySelectorAll('input[type="checkbox"]')
}
- function c(t) {
+ function l(t) {
this.$module = t
}
- function l(t) {
+ function c(t) {
this.$module = t
}
@@ -472,6 +500,10 @@
}
function h(t) {
+ this.$module = t, this.$linkedElement = null, this.linkedElementListener = !1
+ }
+
+ function p(t) {
this.$module = t, this.$tabs = t.querySelectorAll(".govuk-tabs__tab"), this.keys = {
left: 37,
right: 39,
@@ -507,10 +539,10 @@
var e = t.target;
32 === t.keyCode && "summary" === e.nodeName.toLowerCase() && t.preventDefault()
}), t.addEventListener("click", n)
- }, s.prototype.defaults = {
+ }, r.prototype.defaults = {
characterCountAttribute: "data-maxlength",
wordCountAttribute: "data-maxwords"
- }, s.prototype.init = function() {
+ }, r.prototype.init = function() {
var t = this.$module,
e = this.$textarea,
n = this.$countMessage;
@@ -519,63 +551,63 @@
var o = this.defaults.characterCountAttribute;
this.options.maxwords && (o = this.defaults.wordCountAttribute), this.maxLength = t.getAttribute(o), this.maxLength && (t.removeAttribute("maxlength"), "onpageshow" in window ? window.addEventListener("pageshow", this.sync.bind(this)) : window.addEventListener("DOMContentLoaded", this.sync.bind(this)), this.sync())
}
- }, s.prototype.sync = function() {
+ }, r.prototype.sync = function() {
this.bindChangeEvents(), this.updateCountMessage()
- }, s.prototype.getDataset = function(t) {
+ }, r.prototype.getDataset = function(t) {
var e = {},
n = t.attributes;
if (n)
for (var o = 0; o < n.length; o++) {
var i = n[o],
- r = i.name.match(/^data-(.+)/);
- r && (e[r[1]] = i.value)
+ s = i.name.match(/^data-(.+)/);
+ s && (e[s[1]] = i.value)
}
return e
- }, s.prototype.count = function(t) {
+ }, r.prototype.count = function(t) {
var e;
this.options.maxwords ? e = (t.match(/\S+/g) || []).length : e = t.length;
return e
- }, s.prototype.bindChangeEvents = function() {
+ }, r.prototype.bindChangeEvents = function() {
var t = this.$textarea;
t.addEventListener("keyup", this.checkIfValueChanged.bind(this)), t.addEventListener("focus", this.handleFocus.bind(this)), t.addEventListener("blur", this.handleBlur.bind(this))
- }, s.prototype.checkIfValueChanged = function() {
+ }, r.prototype.checkIfValueChanged = function() {
this.$textarea.oldValue || (this.$textarea.oldValue = ""), this.$textarea.value !== this.$textarea.oldValue && (this.$textarea.oldValue = this.$textarea.value, this.updateCountMessage())
- }, s.prototype.updateCountMessage = function() {
+ }, r.prototype.updateCountMessage = function() {
var t = this.$textarea,
e = this.options,
n = this.$countMessage,
o = this.count(t.value),
i = this.maxLength,
- r = i - o;
- o < i * (e.threshold ? e.threshold : 0) / 100 ? (n.classList.add("govuk-character-count__message--disabled"), n.setAttribute("aria-hidden", !0)) : (n.classList.remove("govuk-character-count__message--disabled"), n.removeAttribute("aria-hidden")), r < 0 ? (t.classList.add("govuk-textarea--error"), n.classList.remove("govuk-hint"), n.classList.add("govuk-error-message")) : (t.classList.remove("govuk-textarea--error"), n.classList.remove("govuk-error-message"), n.classList.add("govuk-hint"));
- var s, a, c = "character";
- e.maxwords && (c = "word"), c += -1 == r || 1 == r ? "" : "s", s = r < 0 ? "too many" : "remaining", a = Math.abs(r), n.innerHTML = "You have " + a + " " + c + " " + s
- }, s.prototype.handleFocus = function() {
+ s = i - o;
+ o < i * (e.threshold ? e.threshold : 0) / 100 ? (n.classList.add("govuk-character-count__message--disabled"), n.setAttribute("aria-hidden", !0)) : (n.classList.remove("govuk-character-count__message--disabled"), n.removeAttribute("aria-hidden")), s < 0 ? (t.classList.add("govuk-textarea--error"), n.classList.remove("govuk-hint"), n.classList.add("govuk-error-message")) : (t.classList.remove("govuk-textarea--error"), n.classList.remove("govuk-error-message"), n.classList.add("govuk-hint"));
+ var r, a, l = "character";
+ e.maxwords && (l = "word"), l += -1 == s || 1 == s ? "" : "s", r = s < 0 ? "too many" : "remaining", a = Math.abs(s), n.innerHTML = "You have " + a + " " + l + " " + r
+ }, r.prototype.handleFocus = function() {
this.valueChecker = setInterval(this.checkIfValueChanged.bind(this), 1e3)
- }, s.prototype.handleBlur = function() {
+ }, r.prototype.handleBlur = function() {
clearInterval(this.valueChecker)
}, a.prototype.init = function() {
- var n = this.$module;
- r(this.$inputs, function(t) {
+ var t = this.$module;
+ s(this.$inputs, function(t) {
var e = t.getAttribute("data-aria-controls");
- e && n.querySelector("#" + e) && (t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls"))
- }), "onpageshow" in window ? window.addEventListener("pageshow", this.syncAllConditionalReveals.bind(this)) : window.addEventListener("DOMContentLoaded", this.syncAllConditionalReveals.bind(this)), this.syncAllConditionalReveals(), n.addEventListener("click", this.handleClick.bind(this))
+ e && document.getElementById(e) && (t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls"))
+ }), "onpageshow" in window ? window.addEventListener("pageshow", this.syncAllConditionalReveals.bind(this)) : window.addEventListener("DOMContentLoaded", this.syncAllConditionalReveals.bind(this)), this.syncAllConditionalReveals(), t.addEventListener("click", this.handleClick.bind(this))
}, a.prototype.syncAllConditionalReveals = function() {
- r(this.$inputs, this.syncConditionalRevealWithInputState.bind(this))
+ s(this.$inputs, this.syncConditionalRevealWithInputState.bind(this))
}, a.prototype.syncConditionalRevealWithInputState = function(t) {
- var e = this.$module.querySelector("#" + t.getAttribute("aria-controls"));
+ var e = document.getElementById(t.getAttribute("aria-controls"));
if (e && e.classList.contains("govuk-checkboxes__conditional")) {
var n = t.checked;
t.setAttribute("aria-expanded", n), e.classList.toggle("govuk-checkboxes__conditional--hidden", !n)
}
}, a.prototype.unCheckAllInputsExcept = function(e) {
- r(document.querySelectorAll('input[type="checkbox"][name="' + e.name + '"]'), function(t) {
- e.form === t.form && t !== e && (t.checked = !1)
- }), this.syncAllConditionalReveals()
+ s(document.querySelectorAll('input[type="checkbox"][name="' + e.name + '"]'), function(t) {
+ e.form === t.form && t !== e && (t.checked = !1, this.syncConditionalRevealWithInputState(t))
+ }.bind(this))
}, a.prototype.unCheckExclusiveInputs = function(e) {
- r(document.querySelectorAll('input[data-behaviour="exclusive"][type="checkbox"][name="' + e.name + '"]'), function(t) {
- e.form === t.form && (t.checked = !1)
- }), this.syncAllConditionalReveals()
+ s(document.querySelectorAll('input[data-behaviour="exclusive"][type="checkbox"][name="' + e.name + '"]'), function(t) {
+ e.form === t.form && (t.checked = !1, this.syncConditionalRevealWithInputState(t))
+ }.bind(this))
}, a.prototype.handleClick = function(t) {
var e = t.target;
"checkbox" === e.type && (e.getAttribute("aria-controls") && this.syncConditionalRevealWithInputState(e), e.checked && ("exclusive" === e.getAttribute("data-behaviour") ? this.unCheckAllInputsExcept(e) : this.unCheckExclusiveInputs(e)))
@@ -594,13 +626,13 @@
}
return null
})
- }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}), c.prototype.init = function() {
+ }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}), l.prototype.init = function() {
var t = this.$module;
t && (t.focus(), t.addEventListener("click", this.handleClick.bind(this)))
- }, c.prototype.handleClick = function(t) {
+ }, l.prototype.handleClick = function(t) {
var e = t.target;
this.focusTarget(e) && t.preventDefault()
- }, c.prototype.focusTarget = function(t) {
+ }, l.prototype.focusTarget = function(t) {
if ("A" !== t.tagName || !1 === t.href) return !1;
var e = this.getFragmentFromUrl(t.href),
n = document.getElementById(e);
@@ -609,9 +641,9 @@
return !!o && (o.scrollIntoView(), n.focus({
preventScroll: !0
}), !0)
- }, c.prototype.getFragmentFromUrl = function(t) {
+ }, l.prototype.getFragmentFromUrl = function(t) {
return -1 !== t.indexOf("#") && t.split("#").pop()
- }, c.prototype.getAssociatedLegendOrLabel = function(t) {
+ }, l.prototype.getAssociatedLegendOrLabel = function(t) {
var e = t.closest("fieldset");
if (e) {
var n = e.getElementsByTagName("legend");
@@ -619,46 +651,58 @@
var o = n[0];
if ("checkbox" === t.type || "radio" === t.type) return o;
var i = o.getBoundingClientRect().top,
- r = t.getBoundingClientRect();
- if (r.height && window.innerHeight)
- if (r.top + r.height - i < window.innerHeight / 2) return o
+ s = t.getBoundingClientRect();
+ if (s.height && window.innerHeight)
+ if (s.top + s.height - i < window.innerHeight / 2) return o
}
}
return document.querySelector("label[for='" + t.getAttribute("id") + "']") || t.closest("label")
- }, l.prototype.init = function() {
+ }, c.prototype.init = function() {
this.$module && this.setFocus()
- }, l.prototype.setFocus = function() {
+ }, c.prototype.setFocus = function() {
var t = this.$module;
"true" !== t.getAttribute("data-disable-auto-focus") && "alert" === t.getAttribute("role") && (t.getAttribute("tabindex") || (t.setAttribute("tabindex", "-1"), t.addEventListener("blur", function() {
t.removeAttribute("tabindex")
})), t.focus())
}, u.prototype.init = function() {
- this.$module && this.$menuButton && this.$menu && (this.syncState(this.$menu.classList.contains("govuk-header__navigation--open")), this.$menuButton.addEventListener("click", this.handleMenuButtonClick.bind(this)))
+ this.$module && this.$menuButton && this.$menu && (this.syncState(this.$menu.classList.contains("govuk-header__navigation-list--open")), this.$menuButton.addEventListener("click", this.handleMenuButtonClick.bind(this)))
}, u.prototype.syncState = function(t) {
this.$menuButton.classList.toggle("govuk-header__menu-button--open", t), this.$menuButton.setAttribute("aria-expanded", t)
}, u.prototype.handleMenuButtonClick = function() {
- var t = this.$menu.classList.toggle("govuk-header__navigation--open");
+ var t = this.$menu.classList.toggle("govuk-header__navigation-list--open");
this.syncState(t)
}, d.prototype.init = function() {
- var n = this.$module;
- r(this.$inputs, function(t) {
+ var t = this.$module;
+ s(this.$inputs, function(t) {
var e = t.getAttribute("data-aria-controls");
- e && n.querySelector("#" + e) && (t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls"))
- }), "onpageshow" in window ? window.addEventListener("pageshow", this.syncAllConditionalReveals.bind(this)) : window.addEventListener("DOMContentLoaded", this.syncAllConditionalReveals.bind(this)), this.syncAllConditionalReveals(), n.addEventListener("click", this.handleClick.bind(this))
+ e && document.getElementById(e) && (t.setAttribute("aria-controls", e), t.removeAttribute("data-aria-controls"))
+ }), "onpageshow" in window ? window.addEventListener("pageshow", this.syncAllConditionalReveals.bind(this)) : window.addEventListener("DOMContentLoaded", this.syncAllConditionalReveals.bind(this)), this.syncAllConditionalReveals(), t.addEventListener("click", this.handleClick.bind(this))
}, d.prototype.syncAllConditionalReveals = function() {
- r(this.$inputs, this.syncConditionalRevealWithInputState.bind(this))
+ s(this.$inputs, this.syncConditionalRevealWithInputState.bind(this))
}, d.prototype.syncConditionalRevealWithInputState = function(t) {
- var e = document.querySelector("#" + t.getAttribute("aria-controls"));
+ var e = document.getElementById(t.getAttribute("aria-controls"));
if (e && e.classList.contains("govuk-radios__conditional")) {
var n = t.checked;
t.setAttribute("aria-expanded", n), e.classList.toggle("govuk-radios__conditional--hidden", !n)
}
}, d.prototype.handleClick = function(t) {
var n = t.target;
- "radio" === n.type && r(document.querySelectorAll('input[type="radio"][aria-controls]'), function(t) {
+ "radio" === n.type && s(document.querySelectorAll('input[type="radio"][aria-controls]'), function(t) {
var e = t.form === n.form;
t.name === n.name && e && this.syncConditionalRevealWithInputState(t)
}.bind(this))
+ }, h.prototype.init = function() {
+ this.$module && (this.$linkedElement = this.getLinkedElement(), this.$linkedElement && this.$module.addEventListener("click", this.focusLinkedElement.bind(this)))
+ }, h.prototype.getLinkedElement = function() {
+ var t = this.getFragmentFromUrl();
+ return !!t && document.getElementById(t)
+ }, h.prototype.focusLinkedElement = function() {
+ var t = this.$linkedElement;
+ t.getAttribute("tabindex") || (t.setAttribute("tabindex", "-1"), t.classList.add("govuk-skip-link-focused-element"), this.linkedElementListener || (this.$linkedElement.addEventListener("blur", this.removeFocusProperties.bind(this)), this.linkedElementListener = !0)), t.focus()
+ }, h.prototype.removeFocusProperties = function() {
+ this.$linkedElement.removeAttribute("tabindex"), this.$linkedElement.classList.remove("govuk-skip-link-focused-element")
+ }, h.prototype.getFragmentFromUrl = function() {
+ return !!this.$module.hash && this.$module.hash.split("#").pop()
},
function(t) {
"document" in this && "nextElementSibling" in document.documentElement || Object.defineProperty(Element.prototype, "nextElementSibling", {
@@ -675,37 +719,37 @@
return t
}
})
- }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}), h.prototype.init = function() {
+ }.call("object" == typeof window && window || "object" == typeof self && self || "object" == typeof global && global || {}), p.prototype.init = function() {
"function" == typeof window.matchMedia ? this.setupResponsiveChecks() : this.setup()
- }, h.prototype.setupResponsiveChecks = function() {
+ }, p.prototype.setupResponsiveChecks = function() {
this.mql = window.matchMedia("(min-width: 40.0625em)"), this.mql.addListener(this.checkMode.bind(this)), this.checkMode()
- }, h.prototype.checkMode = function() {
+ }, p.prototype.checkMode = function() {
this.mql.matches ? this.setup() : this.teardown()
- }, h.prototype.setup = function() {
+ }, p.prototype.setup = function() {
var t = this.$module,
e = this.$tabs,
n = t.querySelector(".govuk-tabs__list"),
o = t.querySelectorAll(".govuk-tabs__list-item");
if (e && n && o) {
- n.setAttribute("role", "tablist"), r(o, function(t) {
+ n.setAttribute("role", "tablist"), s(o, function(t) {
t.setAttribute("role", "presentation")
- }), r(e, function(t) {
+ }), s(e, function(t) {
this.setAttributes(t), t.boundTabClick = this.onTabClick.bind(this), t.boundTabKeydown = this.onTabKeydown.bind(this), t.addEventListener("click", t.boundTabClick, !0), t.addEventListener("keydown", t.boundTabKeydown, !0), this.hideTab(t)
}.bind(this));
var i = this.getTab(window.location.hash) || this.$tabs[0];
this.showTab(i), t.boundOnHashChange = this.onHashChange.bind(this), window.addEventListener("hashchange", t.boundOnHashChange, !0)
}
- }, h.prototype.teardown = function() {
+ }, p.prototype.teardown = function() {
var t = this.$module,
e = this.$tabs,
n = t.querySelector(".govuk-tabs__list"),
o = t.querySelectorAll(".govuk-tabs__list-item");
- e && n && o && (n.removeAttribute("role"), r(o, function(t) {
+ e && n && o && (n.removeAttribute("role"), s(o, function(t) {
t.removeAttribute("role", "presentation")
- }), r(e, function(t) {
+ }), s(e, function(t) {
t.removeEventListener("click", t.boundTabClick, !0), t.removeEventListener("keydown", t.boundTabKeydown, !0), this.unsetAttributes(t)
}.bind(this)), window.removeEventListener("hashchange", t.boundOnHashChange, !0))
- }, h.prototype.onHashChange = function(t) {
+ }, p.prototype.onHashChange = function(t) {
var e = window.location.hash,
n = this.getTab(e);
if (n)
@@ -714,32 +758,32 @@
var o = this.getCurrentTab();
this.hideTab(o), this.showTab(n), n.focus()
}
- }, h.prototype.hideTab = function(t) {
+ }, p.prototype.hideTab = function(t) {
this.unhighlightTab(t), this.hidePanel(t)
- }, h.prototype.showTab = function(t) {
+ }, p.prototype.showTab = function(t) {
this.highlightTab(t), this.showPanel(t)
- }, h.prototype.getTab = function(t) {
+ }, p.prototype.getTab = function(t) {
return this.$module.querySelector('.govuk-tabs__tab[href="' + t + '"]')
- }, h.prototype.setAttributes = function(t) {
+ }, p.prototype.setAttributes = function(t) {
var e = this.getHref(t).slice(1);
t.setAttribute("id", "tab_" + e), t.setAttribute("role", "tab"), t.setAttribute("aria-controls", e), t.setAttribute("aria-selected", "false"), t.setAttribute("tabindex", "-1");
var n = this.getPanel(t);
n.setAttribute("role", "tabpanel"), n.setAttribute("aria-labelledby", t.id), n.classList.add(this.jsHiddenClass)
- }, h.prototype.unsetAttributes = function(t) {
+ }, p.prototype.unsetAttributes = function(t) {
t.removeAttribute("id"), t.removeAttribute("role"), t.removeAttribute("aria-controls"), t.removeAttribute("aria-selected"), t.removeAttribute("tabindex");
var e = this.getPanel(t);
e.removeAttribute("role"), e.removeAttribute("aria-labelledby"), e.classList.remove(this.jsHiddenClass)
- }, h.prototype.onTabClick = function(t) {
+ }, p.prototype.onTabClick = function(t) {
if (!t.target.classList.contains("govuk-tabs__tab")) return !1;
t.preventDefault();
var e = t.target,
n = this.getCurrentTab();
this.hideTab(n), this.showTab(e), this.createHistoryEntry(e)
- }, h.prototype.createHistoryEntry = function(t) {
+ }, p.prototype.createHistoryEntry = function(t) {
var e = this.getPanel(t),
n = e.id;
e.id = "", this.changingHash = !0, window.location.hash = this.getHref(t).slice(1), e.id = n
- }, h.prototype.onTabKeydown = function(t) {
+ }, p.prototype.onTabKeydown = function(t) {
switch (t.keyCode) {
case this.keys.left:
case this.keys.up:
@@ -749,49 +793,49 @@
case this.keys.down:
this.activateNextTab(), t.preventDefault()
}
- }, h.prototype.activateNextTab = function() {
+ }, p.prototype.activateNextTab = function() {
var t = this.getCurrentTab(),
e = t.parentNode.nextElementSibling;
if (e) var n = e.querySelector(".govuk-tabs__tab");
n && (this.hideTab(t), this.showTab(n), n.focus(), this.createHistoryEntry(n))
- }, h.prototype.activatePreviousTab = function() {
+ }, p.prototype.activatePreviousTab = function() {
var t = this.getCurrentTab(),
e = t.parentNode.previousElementSibling;
if (e) var n = e.querySelector(".govuk-tabs__tab");
n && (this.hideTab(t), this.showTab(n), n.focus(), this.createHistoryEntry(n))
- }, h.prototype.getPanel = function(t) {
+ }, p.prototype.getPanel = function(t) {
return this.$module.querySelector(this.getHref(t))
- }, h.prototype.showPanel = function(t) {
+ }, p.prototype.showPanel = function(t) {
this.getPanel(t).classList.remove(this.jsHiddenClass)
- }, h.prototype.hidePanel = function(t) {
+ }, p.prototype.hidePanel = function(t) {
this.getPanel(t).classList.add(this.jsHiddenClass)
- }, h.prototype.unhighlightTab = function(t) {
+ }, p.prototype.unhighlightTab = function(t) {
t.setAttribute("aria-selected", "false"), t.parentNode.classList.remove("govuk-tabs__list-item--selected"), t.setAttribute("tabindex", "-1")
- }, h.prototype.highlightTab = function(t) {
+ }, p.prototype.highlightTab = function(t) {
t.setAttribute("aria-selected", "true"), t.parentNode.classList.add("govuk-tabs__list-item--selected"), t.setAttribute("tabindex", "0")
- }, h.prototype.getCurrentTab = function() {
+ }, p.prototype.getCurrentTab = function() {
return this.$module.querySelector(".govuk-tabs__list-item--selected .govuk-tabs__tab")
- }, h.prototype.getHref = function(t) {
+ }, p.prototype.getHref = function(t) {
var e = t.getAttribute("href");
return e.slice(e.indexOf("#"), e.length)
- }, t.initAll = function p(t) {
+ }, t.initAll = function f(t) {
var e = "undefined" != typeof(t = void 0 !== t ? t : {}).scope ? t.scope : document;
- r(e.querySelectorAll('[data-module="govuk-button"]'), function(t) {
+ s(e.querySelectorAll('[data-module="govuk-button"]'), function(t) {
new o(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-accordion"]'), function(t) {
+ }), s(e.querySelectorAll('[data-module="govuk-accordion"]'), function(t) {
new n(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-details"]'), function(t) {
+ }), s(e.querySelectorAll('[data-module="govuk-details"]'), function(t) {
new i(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-character-count"]'), function(t) {
- new s(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-checkboxes"]'), function(t) {
+ }), s(e.querySelectorAll('[data-module="govuk-character-count"]'), function(t) {
+ new r(t).init()
+ }), s(e.querySelectorAll('[data-module="govuk-checkboxes"]'), function(t) {
new a(t).init()
- }), new c(e.querySelector('[data-module="govuk-error-summary"]')).init(), new u(e.querySelector('[data-module="govuk-header"]')).init(), r(e.querySelectorAll('[data-module="govuk-notification-banner"]'), function(t) {
- new l(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-radios"]'), function(t) {
+ }), new l(e.querySelector('[data-module="govuk-error-summary"]')).init(), new u(e.querySelector('[data-module="govuk-header"]')).init(), s(e.querySelectorAll('[data-module="govuk-notification-banner"]'), function(t) {
+ new c(t).init()
+ }), s(e.querySelectorAll('[data-module="govuk-radios"]'), function(t) {
new d(t).init()
- }), r(e.querySelectorAll('[data-module="govuk-tabs"]'), function(t) {
- new h(t).init()
+ }), new h(e.querySelector('[data-module="govuk-skip-link"]')).init(), s(e.querySelectorAll('[data-module="govuk-tabs"]'), function(t) {
+ new p(t).init()
})
- }, t.Accordion = n, t.Button = o, t.Details = i, t.CharacterCount = s, t.Checkboxes = a, t.ErrorSummary = c, t.Header = u, t.Radios = d, t.Tabs = h
+ }, t.Accordion = n, t.Button = o, t.Details = i, t.CharacterCount = r, t.Checkboxes = a, t.ErrorSummary = l, t.Header = u, t.NotificationBanner = c, t.Radios = d, t.SkipLink = h, t.Tabs = p
});
\ No newline at end of file
diff --git a/dist/govuk-frontend-ie8-3.13.1.min.css b/dist/govuk-frontend-ie8-4.0.0.min.css
similarity index 5%
rename from dist/govuk-frontend-ie8-3.13.1.min.css
rename to dist/govuk-frontend-ie8-4.0.0.min.css
index ee0ca6f6..fb7224dd 100644
--- a/dist/govuk-frontend-ie8-3.13.1.min.css
+++ b/dist/govuk-frontend-ie8-4.0.0.min.css
@@ -23,10 +23,7 @@
color: #003078
}
-.govuk-link:active {
- color: #0b0c0c
-}
-
+.govuk-link:active,
.govuk-link:focus {
color: #0b0c0c
}
@@ -37,14 +34,8 @@
}
.govuk-link--muted:active,
-.govuk-link--muted:hover {
- color: #0b0c0c
-}
-
-.govuk-link--muted:focus {
- color: #0b0c0c
-}
-
+.govuk-link--muted:focus,
+.govuk-link--muted:hover,
.govuk-link--text-colour:link,
.govuk-link--text-colour:visited {
color: #0b0c0c
@@ -86,11 +77,9 @@
color: #003078
}
-.govuk-link--no-visited-state:active {
- color: #0b0c0c
-}
-
-.govuk-link--no-visited-state:focus {
+.govuk-link--no-visited-state:active,
+.govuk-link--no-visited-state:focus,
+.govuk-list {
color: #0b0c0c
}
@@ -105,7 +94,6 @@
font-size: 19px;
font-size: 1.1875rem;
line-height: 1.31579;
- color: #0b0c0c;
margin-top: 0;
margin-bottom: 20px;
padding-left: 0;
@@ -139,19 +127,6 @@
margin-bottom: 15px
}
-.govuk-template {
- background-color: #f3f2f1;
- -webkit-text-size-adjust: 100%;
- -ms-text-size-adjust: 100%;
- text-size-adjust: 100%;
- overflow-y: scroll
-}
-
-.govuk-template__body {
- margin: 0;
- background-color: #fff
-}
-
.govuk-heading-xl {
color: #0b0c0c;
font-family: GDS Transport, arial, sans-serif;
@@ -564,6 +539,19 @@
padding-top: 50px
}
+.govuk-template {
+ background-color: #f3f2f1;
+ -webkit-text-size-adjust: 100%;
+ -ms-text-size-adjust: 100%;
+ text-size-adjust: 100%;
+ overflow-y: scroll
+}
+
+.govuk-template__body {
+ margin: 0;
+ background-color: #fff
+}
+
.govuk-width-container {
max-width: 960px;
width: 960px;
@@ -588,39 +576,31 @@
padding-top: 15px
}
-.govuk-accordion__section-header {
+.govuk-accordion__section-heading {
+ margin-top: 0;
+ margin-bottom: 0;
padding-top: 15px;
padding-bottom: 15px
}
-.govuk-accordion__section-heading {
- font-weight: 400;
- margin-top: 0
+.govuk-accordion__section-button {
+ color: #0b0c0c;
+ display: block;
+ margin-bottom: 0;
+ padding-top: 15px
}
-.govuk-accordion__section-button,
-.govuk-accordion__section-heading {
+.govuk-accordion__section-heading-text {
font-family: GDS Transport, arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
+ font-weight: 700;
font-size: 18px;
font-size: 1.125rem;
line-height: 1.11111;
font-size: 24px;
font-size: 1.5rem;
- line-height: 1.25;
- margin-bottom: 0
-}
-
-.govuk-accordion__section-button {
- font-weight: 700;
- display: inline-block;
- padding-top: 15px
-}
-
-.govuk-accordion__section-summary {
- margin-top: 10px;
- margin-bottom: 0
+ line-height: 1.25
}
.govuk-accordion__section-content>:last-child {
@@ -637,158 +617,230 @@
.js-enabled .govuk-accordion__section-content {
display: none;
- padding-top: 15px;
- padding-bottom: 15px
+ padding-bottom: 50px
}
.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-content {
display: block
}
-.js-enabled .govuk-accordion__open-all {
+.js-enabled .govuk-accordion__show-all {
+ font-family: GDS Transport, arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
font-weight: 400;
- font-size: 14px;
- font-size: .875rem;
- line-height: 1.14286;
font-size: 16px;
font-size: 1rem;
line-height: 1.25;
+ font-size: 19px;
+ font-size: 1.1875rem;
+ line-height: 1.31579;
position: relative;
z-index: 1;
- margin: 0;
- padding: 0;
+ padding: 5px 2px 5px 0;
border-width: 0;
color: #1d70b8;
background: none;
cursor: pointer;
-webkit-appearance: none;
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- text-decoration: underline
+ margin-bottom: 14px
}
-.js-enabled .govuk-accordion__open-all:focus {
+.js-enabled .govuk-accordion__show-all::-moz-focus-inner {
+ padding: 0;
+ border: 0
+}
+
+.js-enabled .govuk-accordion__show-all:hover {
+ color: #0b0c0c;
+ background: #f3f2f1;
+ box-shadow: 0 -2px #f3f2f1, 0 4px #f3f2f1
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion__section-toggle-text {
+ color: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__show-all:hover .govuk-accordion-nav__chevron:after {
+ color: #f3f2f1
+}
+
+.js-enabled .govuk-accordion__show-all:focus {
+ color: #0b0c0c;
background-color: #fd0;
box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
text-decoration: none
}
-.js-enabled .govuk-accordion__open-all:link {
- color: #1d70b8
+.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron {
+ background: #0b0c0c
}
-.js-enabled .govuk-accordion__open-all:visited {
- color: #4c2c92
+.js-enabled .govuk-accordion__show-all:focus .govuk-accordion-nav__chevron:after {
+ color: #fd0
}
-.js-enabled .govuk-accordion__open-all:hover {
- color: #003078
+.js-enabled .govuk-accordion__section-heading {
+ padding: 0
}
-.js-enabled .govuk-accordion__open-all:active {
- color: #0b0c0c
+.js-enabled .govuk-accordion-nav__chevron {
+ box-sizing: border-box;
+ position: relative;
+ width: 1.25rem;
+ height: 1.25rem;
+ border: .0625rem solid;
+ border-radius: 50%;
+ vertical-align: middle;
+ display: inline-block;
+ max-height: 20px;
+ line-height: 1
}
-.js-enabled .govuk-accordion__open-all:focus {
- color: #0b0c0c
+.js-enabled .govuk-accordion-nav__chevron:after {
+ content: "";
+ box-sizing: border-box;
+ display: block;
+ position: absolute;
+ bottom: .3125rem;
+ left: .375rem;
+ width: .375rem;
+ height: .375rem;
+ -webkit-transform: rotate(-45deg);
+ -ms-transform: rotate(-45deg);
+ transform: rotate(-45deg);
+ content: "\25B2";
+ position: relative;
+ border: 0
}
-.js-enabled .govuk-accordion__open-all::-moz-focus-inner {
- padding: 0;
- border: 0
+.js-enabled .govuk-accordion-nav__chevron--down {
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg)
}
-.js-enabled .govuk-accordion__section-header {
- position: relative;
- padding-right: 40px;
- border-top: 1px solid #b1b4b6;
- cursor: pointer
+.js-enabled .govuk-accordion-nav__chevron--down:after {
+ content: "\25BC";
+ -webkit-transform: none;
+ -ms-transform: none;
+ transform: none
}
.js-enabled .govuk-accordion__section-button {
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- margin-top: 0;
- margin-bottom: 0;
- margin-left: 0;
- padding: 0;
- border-width: 0;
- color: #1d70b8;
+ width: 100%;
+ border: 0;
+ border-top: 1px solid #b1b4b6;
+ border-bottom: 10px solid transparent;
+ color: #0b0c0c;
background: none;
text-align: left;
cursor: pointer;
- -webkit-appearance: none
+ -webkit-appearance: none;
+ padding: 10px 0
+}
+
+.js-enabled .govuk-accordion__section-button:active {
+ color: #0b0c0c;
+ background: none
+}
+
+.js-enabled .govuk-accordion__section-button:hover {
+ color: #0b0c0c;
+ background: #f3f2f1
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion__section-toggle-text {
+ color: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
+}
+
+.js-enabled .govuk-accordion__section-button:hover .govuk-accordion-nav__chevron:after {
+ color: #f3f2f1
}
.js-enabled .govuk-accordion__section-button:focus {
+ outline: 0
+}
+
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
color: #0b0c0c;
background-color: #fd0;
box-shadow: 0 -2px #fd0, 0 4px #0b0c0c;
text-decoration: none
}
-.js-enabled .govuk-accordion__section-button::-moz-focus-inner {
- padding: 0;
- border: 0
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron {
+ color: #0b0c0c;
+ background: #0b0c0c
}
-.js-enabled .govuk-accordion__section-button:after {
- content: "";
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion-nav__chevron:after {
+ color: #fd0
}
- {
- color: #003078;
- text-decoration: underline;
- text-underline-offset: .1em
+.js-enabled .govuk-accordion__section-button::-moz-focus-inner {
+ padding: 0;
+ border: 0
}
-.js-enabled .govuk-accordion__controls {
- text-align: right
+.js-enabled .govuk-accordion__section--expanded .govuk-accordion__section-button {
+ padding-bottom: 20px;
+ border-bottom: 0
}
-.js-enabled .govuk-accordion__icon {
- position: absolute;
- top: 50%;
- right: 15px;
- width: 16px;
- height: 16px;
- margin-top: -8px
+.js-enabled .govuk-accordion__section-button:focus .govuk-accordion__section-toggle-focus {
+ padding-bottom: 2px
}
-.js-enabled .govuk-accordion__icon:after,
-.js-enabled .govuk-accordion__icon:before {
- content: "";
- box-sizing: border-box;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- width: 25%;
- height: 25%;
- margin: auto;
- border: 2px solid transparent;
- background-color: #0b0c0c
+.js-enabled .govuk-accordion__section-heading-text,
+.js-enabled .govuk-accordion__section-summary,
+.js-enabled .govuk-accordion__section-toggle {
+ display: block;
+ margin-bottom: 13px
}
-.js-enabled .govuk-accordion__icon:before {
- width: 100%
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-heading-text .govuk-accordion__section-toggle-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-summary .govuk-accordion__section-toggle-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-heading-text-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-summary-focus,
+.js-enabled .govuk-accordion__section-toggle .govuk-accordion__section-toggle-focus {
+ display: inline
}
-.js-enabled .govuk-accordion__icon:after {
- height: 100%
+.js-enabled .govuk-accordion__section-toggle {
+ font-family: GDS Transport, arial, sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+ font-weight: 400;
+ font-size: 16px;
+ font-size: 1rem;
+ line-height: 1.25;
+ font-size: 19px;
+ font-size: 1.1875rem;
+ line-height: 1.31579;
+ color: #1d70b8
}
-.js-enabled .govuk-accordion__section--expanded .govuk-accordion__icon:after {
- content: " ";
- display: none
+.js-enabled .govuk-accordion__section-toggle-text,
+.js-enabled .govuk-accordion__show-all-text {
+ margin-left: 5px;
+ vertical-align: middle
}
.govuk-back-link {
@@ -1147,6 +1199,7 @@
font-size: 1.1875rem;
line-height: 1.31579;
display: block;
+ margin-top: 0;
margin-bottom: 15px;
clear: both;
color: #d4351c
@@ -1262,7 +1315,6 @@
font-size: 19px;
font-size: 1.1875rem;
line-height: 1.31579;
- display: block;
margin-bottom: 15px;
color: #505a5f
}
@@ -1540,7 +1592,7 @@
}
.govuk-textarea--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-textarea--error:focus {
@@ -1580,16 +1632,6 @@
}
.govuk-cookie-banner {
- font-family: GDS Transport, arial, sans-serif;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
- font-weight: 400;
- font-size: 16px;
- font-size: 1rem;
- line-height: 1.25;
- font-size: 19px;
- font-size: 1.1875rem;
- line-height: 1.31579;
padding-top: 20px;
border-bottom: 10px solid transparent;
background-color: #f3f2f1
@@ -1626,13 +1668,20 @@
display: table;
width: 100%;
table-layout: fixed;
+ border-collapse: collapse;
margin: 0 0 30px
}
.govuk-summary-list__row {
+ border-bottom: 1px solid #b1b4b6;
display: table-row
}
+.govuk-summary-list__row--no-actions:after {
+ content: "";
+ display: table-cell
+}
+
.govuk-summary-list__actions,
.govuk-summary-list__key,
.govuk-summary-list__value {
@@ -1640,8 +1689,7 @@
display: table-cell;
padding-top: 10px;
padding-right: 20px;
- padding-bottom: 10px;
- border-bottom: 1px solid #b1b4b6
+ padding-bottom: 10px
}
.govuk-summary-list__actions {
@@ -1663,14 +1711,6 @@
width: 30%
}
-.govuk-summary-list__value {
- width: 50%
-}
-
-.govuk-summary-list__value:last-child {
- width: 70%
-}
-
.govuk-summary-list__value>p {
margin-bottom: 10px
}
@@ -1701,14 +1741,24 @@
border: 0
}
+.govuk-summary-list--no-border .govuk-summary-list__row {
+ border: 0
+}
+
.govuk-summary-list--no-border .govuk-summary-list__actions,
.govuk-summary-list--no-border .govuk-summary-list__key,
-.govuk-summary-list--no-border .govuk-summary-list__value,
+.govuk-summary-list--no-border .govuk-summary-list__value {
+ padding-bottom: 11px
+}
+
+.govuk-summary-list__row--no-border {
+ border: 0
+}
+
.govuk-summary-list__row--no-border .govuk-summary-list__actions,
.govuk-summary-list__row--no-border .govuk-summary-list__key,
.govuk-summary-list__row--no-border .govuk-summary-list__value {
- padding-bottom: 11px;
- border: 0
+ padding-bottom: 11px
}
.govuk-input {
@@ -1753,7 +1803,7 @@
}
.govuk-input--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-input--error:focus {
@@ -2194,43 +2244,26 @@
}
.govuk-footer__heading {
- margin-bottom: 40px;
+ margin-bottom: 30px;
padding-bottom: 20px;
border-bottom: 1px solid #b1b4b6
}
.govuk-footer__navigation {
- display: -webkit-box;
- display: -webkit-flex;
- display: -ms-flexbox;
- display: flex;
margin-right: -15px;
- margin-left: -15px;
- -webkit-flex-wrap: wrap;
- -ms-flex-wrap: wrap;
- flex-wrap: wrap
+ margin-left: -15px
+}
+
+.govuk-footer__navigation:after {
+ content: "";
+ display: block;
+ clear: both
}
.govuk-footer__section {
display: inline-block;
- margin-right: 15px;
margin-bottom: 30px;
- margin-left: 15px;
- vertical-align: top;
- -webkit-box-flex: 1;
- -webkit-flex-grow: 1;
- -ms-flex-positive: 1;
- flex-grow: 1;
- -webkit-flex-shrink: 1;
- -ms-flex-negative: 1;
- flex-shrink: 1
-}
-
-.govuk-footer__section:first-child:nth-last-child(2) {
- -webkit-box-flex: 2;
- -webkit-flex-grow: 2;
- -ms-flex-positive: 2;
- flex-grow: 2
+ vertical-align: top
}
.govuk-footer__list {
@@ -2494,19 +2527,22 @@
}
.govuk-header__navigation {
- display: block;
+ margin-bottom: 10px
+}
+
+.govuk-header__navigation-list {
margin: 0;
padding: 0;
list-style: none
}
.js-enabled .govuk-header__menu-button,
-.js-enabled .govuk-header__navigation {
+.js-enabled .govuk-header__navigation-list {
display: block;
display: none
}
-.js-enabled .govuk-header__navigation--open {
+.js-enabled .govuk-header__navigation-list--open {
display: block
}
@@ -2552,7 +2588,8 @@
}
.govuk-header__navigation-item:last-child {
- margin-right: 0
+ margin-right: 0;
+ border-bottom: 0
}
.govuk-inset-text {
@@ -2677,10 +2714,7 @@
color: #003078
}
-.govuk-notification-banner__link:active {
- color: #0b0c0c
-}
-
+.govuk-notification-banner__link:active,
.govuk-notification-banner__link:focus {
color: #0b0c0c
}
@@ -2784,10 +2818,6 @@
padding: 5px 8px 4px
}
-.govuk-tag--inactive {
- background-color: #505a5f
-}
-
.govuk-tag--grey {
color: #383f43;
background: #eeefef
@@ -2938,10 +2968,7 @@
color: #003078
}
-.govuk-tabs__tab:active {
- color: #0b0c0c
-}
-
+.govuk-tabs__tab:active,
.govuk-tabs__tab:focus {
color: #0b0c0c
}
@@ -3276,7 +3303,7 @@
}
.govuk-select--error {
- border: 2px solid #d4351c
+ border-color: #d4351c
}
.govuk-select--error:focus {
@@ -3347,6 +3374,10 @@
background-color: #fd0
}
+.govuk-skip-link-focused-element:focus {
+ outline: none
+}
+
.govuk-table {
font-family: GDS Transport, arial, sans-serif;
-webkit-font-smoothing: antialiased;
@@ -3976,6 +4007,18 @@
padding-left: 60px !important
}
+.govuk-\!-text-align-left {
+ text-align: left !important
+}
+
+.govuk-\!-text-align-centre {
+ text-align: center !important
+}
+
+.govuk-\!-text-align-right {
+ text-align: right !important
+}
+
.govuk-\!-font-size-80 {
font-size: 53px !important;
font-size: 3.3125rem !important;
|
hannalaakso
approved these changes
Dec 15, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
4.0.0 (Breaking release)
Breaking changes
This release contains a lot of breaking changes, but we expect many of them will only affect a small number of users. However, to make sure your service still works after you upgrade, you should read the release notes and make any required changes.
Check your accordions still display as expected
We've changed the design of the accordion. You can see its new look and read the revised guidance, particularly about when and when not to use accordions.
You should check your accordions still display as expected if you have any:
You do not need to make changes to the content that accordions hide or show, as this release's changes do not affect it.
These changes were introduced in pull request #2257: Update accordion design. Thanks to Mia Allers, Owen Jones, Nikin Nagewadia and Chris Yoong for their contributions.
Only use the accordion’s summary line for ‘phrasing content’
The summary line is now inside the HTML
button
element, so you can only add 'phrasing content' to it. Do not use any non-phrasing content, as the resulting HTML will not be valid.This change was introduced in pull request #2257: Update accordion design.
Review and revise the accordion's summary line content
Only add a summary line if you need to, as it's likely to make the button text too long.
If you're already using the summary line, review your use of the summary line to make sure you actually need it.
If you need to keep the summary line, review the accordion guidance and make the summary line as short as possible.
Update the HTML for summary lists
We've updated the HTML for the summary list component to avoid nesting
<span>
elements within<dd>
elements, which is invalid HTML. This update only affects you if you have summary lists that include a mix of rows with and without actions. You can read more about adding actions to rows.If you're not using Nunjucks macros, do not include an empty
<span class="govuk-summary-list__actions"></span>
in rows without actions. Instead, add thegovuk-summary-list__row--no-actions
modifier class to the row.This change was introduced in pull request #2323: Avoid invalid nesting of
<span>
within a<dd>
in summary list. Thanks to Malcolm Hire for reporting this issue.Update the HTML for navigation in the header
We've updated the HTML for the header. This update only affects you if your header includes navigation.
Any additional classes passed using the
navigationClasses
Nunjucks option are now applied to the<nav>
rather than the<ul>
. Check the additional classes are still doing what you expect.If you're not using Nunjucks macros, then you should:
<button>
inside the<nav>
, immediately before the<ul>
aria-label
attribute from the<ul>
to the<nav>
govuk-header__navigation
class from the<ul>
to the<nav>
govuk-header__navigation-list
class to the<ul>
Check your changes against the header example in the Design System to make sure you have correctly implemented them.
This change was introduced in pull request #2427: Improve the screen reader experience for the header menu.
Style any custom HTML in your cookie banner
We've removed the default font styles from the cookie banner Sass. This change makes it more obvious when you have not added classes and styles to any custom HTML.
If you're passing custom HTML into the cookie banner component (for example, using the
html
Nunjucks parameter), you must make sure you're applying the appropriate classes and styles to that HTML. This could look like, for example, adding thegovuk-body
class to any paragraph tags. You must do this to prevent your cookie banner displaying with unstyled text.This change was introduced in pull request #2432: Remove default font styles from cookie banner Sass.
Update the HTML for hints
In GOV.UK Frontend v3.8.0, we updated the HTML for hints to use a
<div>
rather than a<span>
element, to allow the use of block elements. We've now removed the styles which made the hint<span>
display as block.If you’re not using Nunjucks macros, update your hint HTML to use a
<div>
rather than a<span>
. For example:<div id="input-hint" class="govuk-hint"></div>
instead of<span id="input-hint" class="govuk-hint"></span>
.This change was introduced in pull request #2437: Remove
display:block
on hint component.Include JavaScript for skip link to improve screen reader announcements
We've added JavaScript for the skip link component to set focus to the linked element, for example, the main content on the page. This helps screen readers read the linked content when users use the skip link component.
If you're importing JavaScript for individual components, import the skip link JavaScript.
If you're not using Nunjucks macros, add a
data-module="govuk-skip-link"
attribute to the component HTML. For example:Once you've made the changes, check the skip link JavaScript works. To do this, select the skip link and check the linked element (usually the
<main>
element) in the browser has atabindex
attribute.This change was introduced in pull request #2450: Set focus to skip link target to improve screen reader announcements.
Update the HTML for error messages
We’ve updated the HTML for the error message component to use a
<paragraph>
element instead of a<span>
element, as this is more semantically correct.If you’re not using Nunjucks macros, swap the
<span class="govuk-error-message">
for a<p class="govuk-error-message">
.This change was introduced in pull request #2452: Update error messages to use paragraph tags instead of spans.
Check components that conditionally reveal content still work
On radios and checkboxes, the JavaScript now looks within the whole page for conditionally-revealed content. Before, it only looked within the same set of radios or checkboxes.
If you see unexpected behaviour, make sure the revealed content's
id
is unique within the page the content is on. Reusing the sameid
within a page could cause a radio or checkbox to reveal or hide the wrong element, and also means your HTML is invalid.This change was introduced in pull request #2370: Prevent issues with conditionally revealed content when content
id
includes CSS syntax characters.Check the character count component still works as expected
On character counts, the JavaScript now looks within the whole page for the count message, which will be something similar to “You have 200 characters remaining”. Before, it only looked within the character count component.
If you see unexpected behaviour, make sure the
id
for the textarea component is unique within the page the content is on. Reusing the sameid
within a page could cause the wrong count message to update, and also means your HTML is invalid.This change was introduced in pull request #2408: Prevent issues with character count when textarea
id
includes CSS syntax characters.Check individually-imported JavaScript modules work as expected
You do not need to do anything if you have done at least one of the following:
all.js
We've changed the naming of our components' JavaScript modules so individual imports are now attached to
window.GOVUKFrontend.[ComponentName]
instead ofwindow.GOVUKFrontend
.You can now import multiple modules without overwriting the previous one, for example:
If you're importing JavaScript modules individually, you should check any references to
window.GOVUKFrontend
in your code and update them to point to the correct component,window.GOVUKFrontend.[ComponentName]
. You can now remove any workarounds you may have implemented.This change was introduced in pull request #2426: Rename exported JavaScript modules to include component name. Thanks to Alex Jurubita for reporting this issue.
Import 'base' before importing Sass files from
core
oroverrides
layersIf you import individual files from the
core
oroverrides
layers, you might see the errorUndefined mixin 'govuk-exports'
orno mixin named govuk-exports
when compiling your Sass.To fix the error, import
node_modules/govuk-frontend/govuk/base
first. For example:This change was introduced in pull request #2455: Remove 'base' import from files in
core
andoverrides
layers.Import 'template' Sass file from the
objects
layer instead of thecore
layerIf you import the 'template' Sass file from the
core
layer, you might see the errorFile to import not found or unreadable: template
when compiling your Sass.To fix this error, replace any imports of
node_modules/govuk-frontend/govuk/core/template
withnode_modules/govuk-frontend/govuk/objects/template
.This change was introduced in pull request #2463: Move template styles from
core
toobjects
layer.Check your footer displays as expected
We’ve made some fixes to the alignment of columns within the footer component, so they now align with our grid. We've also removed the logic that assumes a 2-section layout displays as a 'two-thirds and one-third' layout. Footer sections now display as full-width by default.
If you're using the Nunjucks macros, check your footer displays as expected and use the
width
macro option to set the width you want for each section.If you're not using the Nunjucks macros, check your footer displays as expected and use the standard Design System grid classes on the
govuk-footer__section
element to set the width. For example:This change was introduced in pull request #2462: Fix footer alignment with grid classes and add
width
macro option.Remove deprecated
$govuk-border-width-form-element-error
variableIn GOV.UK Frontend v3.8.0, we made the border width of form elements in their error state the same as for form elements in their normal state and deprecated the
$govuk-border-width-form-element-error
variable.Before, an element's border got thicker to show the element was in an error state. However, elements in their focused state also have a thicker border. As a result, when users focused an element in an error state, the only visible border-change was from red to black. Not all users could perceive this change. So, we reduced the element border's width, to make sure its thickness changes when users focus.
We've now removed
$govuk-border-width-form-element-error
completely.If you’re referencing
$govuk-border-width-form-element-error
in your own Sass, you must remove it. If you're also defining your own error state, you only need to change the border colour.You should avoid overriding the border width. For example, replace
border: $govuk-border-width-form-element-error solid $govuk-error-colour;
withborder-color: $govuk-error-colour;
.You should also remove any override of
$govuk-border-width-form-element-error
from your Sass. This override no longer does anything.This change was introduced in pull request #1963: Remove deprecated
$govuk-border-width-form-element-error
variable.Remove deprecated
govuk-main-wrapper
andgovuk-main-wrapper--l
mixinsWe've removed the
govuk-main-wrapper
andgovuk-main-wrapper--l
mixins we deprecated in GOV.UK Frontend v3.0.0.Remove any use of these mixins in your own Sass. You can replace these mixins with direct references to the spacing mixins.
This change was introduced in pull request #2385: Remove deprecated
govuk-main-wrapper
andgovuk-main-wrapper--l
mixins.Remove calls to deprecated
iff
Sass functionWe've removed the
iff
function we deprecated in GOV.UK Frontend version 3.6.0.If you’re calling
iff
from your own Sass, you should use Sass's nativeif
function instead.This change was introduced in pull request #2409: Remove deprecated
iff
Sass function.Remove deprecated
govuk-tag--inactive
classWe've removed the
govuk-tag--inactive
class we deprecated in GOV.UK Frontend v3.6.0.Replace any use of this class with the
govuk-tag--grey
class.This change was introduced in pull request #2417: Remove deprecated
govuk-tag--inactive class
.Recommended changes
We've recently made some other changes to GOV.UK Frontend. While these are not breaking changes, implementing them will make your service work better.
You do not need to do anything if you're using Nunjucks macros.
Change date input from
type="number"
toinputmode="numeric"
There are some known issues with inputs of
type="number"
. Read our research into the issues withtype="number"
.If you’re not using Nunjucks macros, remove the
type="number"
attribute from the date input component.Replace it with
type="text"
andinputmode="numeric"
. For example:This change was introduced in pull request #1704: Update date input to use
type=text
andinputmode=numeric
.Fix fallback logo so Chrome will not flag it to screen readers
If you’re not using Nunjucks macros, change the SVG markup within the header, footer and button components. We’ve added this fix so screen readers will not announce the fallback image to users.
For the header, footer and button, replace
role="presentation"
witharia-hidden="true"
. For example:This change was introduced in pull request #1724: Fix fallback logo so Chrome will not flag it to screen readers.
Add
data-nosnippet
attribute to cookie bannerApply a
data-nosnippet
attribute to the cookie banner component to stop it appearing in Google Search snippets.If you’re not using Nunjucks macros, add a new
data-nosnippet
attribute to the cookie banner.This change was introduced in pull request #2192: Add
data-nosnippet
to prevent cookie banner text appearing in Google Search snippets.Fixes
We’ve made fixes to GOV.UK Frontend in the following pull requests:
<span>
within a<dd>
in summary listid
includes CSS syntax charactersid
includes CSS syntax characters