govuk_tech_docs 6.3.0 → 6.4.0.beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/build-middleman-artifact.yaml +3 -3
  3. data/.github/workflows/check-documentation-updates.yaml +32 -0
  4. data/.github/workflows/check-gem-version.yaml +36 -0
  5. data/.github/workflows/dependency-review.yaml +2 -5
  6. data/.github/workflows/pipeline.yaml +50 -0
  7. data/.github/workflows/publish-gem.yaml +61 -0
  8. data/.github/workflows/{deploy-to-pages.yaml → publish-github-pages.yaml} +3 -4
  9. data/.github/workflows/test.yaml +9 -8
  10. data/.rspec +1 -0
  11. data/CHANGELOG.md +8 -0
  12. data/README.md +1 -1
  13. data/lib/govuk_tech_docs/version.rb +1 -1
  14. data/lib/source/layouts/_footer.erb +1 -1
  15. data/lib/source/layouts/_header.erb +1 -1
  16. data/lib/source/layouts/_service_navigation.erb +3 -1
  17. data/lib/source/layouts/core.erb +2 -4
  18. data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +2 -5
  19. data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +2 -5
  20. data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +1 -1
  21. data/node_modules/govuk-frontend/dist/govuk/components/_index.import.scss +1 -0
  22. data/node_modules/govuk-frontend/dist/govuk/components/_index.scss +1 -0
  23. data/node_modules/govuk-frontend/dist/govuk/components/breadcrumbs/_mixin.scss +1 -5
  24. data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/_mixin.scss +7 -1
  25. data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/_mixin.scss +5 -1
  26. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.bundle.js +1 -4
  27. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.bundle.mjs +1 -4
  28. data/node_modules/govuk-frontend/dist/govuk/components/file-upload/file-upload.mjs +1 -5
  29. data/node_modules/govuk-frontend/dist/govuk/components/generic-header/_generic-header.import.scss +6 -0
  30. data/node_modules/govuk-frontend/dist/govuk/components/generic-header/_index.import.scss +8 -0
  31. data/node_modules/govuk-frontend/dist/govuk/components/generic-header/_index.scss +5 -0
  32. data/node_modules/govuk-frontend/dist/govuk/components/generic-header/_mixin.scss +140 -0
  33. data/node_modules/govuk-frontend/dist/govuk/components/header/_mixin.scss +9 -65
  34. data/node_modules/govuk-frontend/dist/govuk/components/input/_mixin.scss +1 -0
  35. data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/_mixin.scss +8 -7
  36. data/node_modules/govuk-frontend/dist/govuk/components/panel/_mixin.scss +46 -12
  37. data/node_modules/govuk-frontend/dist/govuk/components/radios/_mixin.scss +7 -1
  38. data/node_modules/govuk-frontend/dist/govuk/components/select/_mixin.scss +0 -7
  39. data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/_mixin.scss +8 -7
  40. data/node_modules/govuk-frontend/dist/govuk/custom-properties/_frontend-version.mixin.scss +1 -1
  41. data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -1
  42. data/node_modules/govuk-frontend/dist/govuk/helpers/_links.scss +1 -1
  43. data/node_modules/govuk-frontend/dist/govuk/settings/_colours-functional.scss +3 -0
  44. data/node_modules/govuk-frontend/dist/govuk/tools/_exports.scss +1 -1
  45. data/package-lock.json +160 -559
  46. data/package.json +3 -3
  47. metadata +10 -3
  48. data/.github/workflows/publish.yaml +0 -83
@@ -0,0 +1,140 @@
1
+ ////
2
+ /// @group components/generic-header
3
+ ////
4
+
5
+ @use "../../base";
6
+
7
+ /// Width of transparent bottom border of header.
8
+ /// Set to provide a visual border in forced colour modes
9
+ ///
10
+ /// @type Number
11
+ /// @access private
12
+ $header-forced-colour-border-width: 1px;
13
+
14
+ /// Shared block header styles, with automatic background setting
15
+ ///
16
+ /// @param {String} $background-colour - background colour of the header
17
+ /// @param {String} $text-colour - text colour of the header
18
+ /// @access private
19
+ @mixin block-styles($background-colour: base.govuk-colour("black"), $text-colour: base.govuk-colour("white")) {
20
+ @include base.govuk-font($size: 16, $line-height: 1);
21
+
22
+ // Add a transparent bottom border for forced-colour modes
23
+ border-bottom: $header-forced-colour-border-width solid transparent;
24
+
25
+ --govuk-text-colour: #{$text-colour};
26
+ color: base.govuk-functional-colour(text);
27
+ background: $background-colour;
28
+
29
+ @media print {
30
+ border-bottom-width: 0;
31
+
32
+ --govuk-text-colour: inherit;
33
+ background: transparent;
34
+ }
35
+ }
36
+
37
+ /// Shared header full width container styles
38
+ ///
39
+ /// @access private
40
+ @mixin full-width-container-styles() {
41
+ padding: 0 base.$govuk-gutter-half;
42
+ }
43
+
44
+ /// Shared header logo container element styles, with automating padding setting
45
+ ///
46
+ /// @param {String} $padding-top - top padding of logo container
47
+ /// @param {String} $padding-bottom - bottom padding of logo container
48
+ /// @access private
49
+ @mixin logo-styles(
50
+ $padding-top: (
51
+ base.govuk-spacing(3)
52
+ ),
53
+ $padding-bottom: (
54
+ base.govuk-spacing(3)
55
+ )
56
+ ) {
57
+ padding-top: $padding-top;
58
+ padding-bottom: $padding-bottom;
59
+ }
60
+
61
+ /// Shared header logo link element styles
62
+ ///
63
+ /// @access private
64
+ @mixin link-styles {
65
+ // Avoid using the `base.govuk-link-common` mixin because the links in the
66
+ // header get a special treatment, because:
67
+ //
68
+ // - underlines are only visible on hover
69
+ // - all links get a 3px underline regardless of text size, as there are
70
+ // multiple grouped elements close to one another and having slightly
71
+ // different underline widths looks unbalanced
72
+ //
73
+ // Font size needs to be set on the link so that the box sizing is correct
74
+ // in Firefox
75
+ display: inline;
76
+ margin-right: base.govuk-spacing(2);
77
+ font-size: 30px; // We don't have a mixin that produces 30px font size
78
+ text-decoration: none;
79
+
80
+ @include base.govuk-link-style-text;
81
+
82
+ &:link,
83
+ &:visited {
84
+ text-decoration: none;
85
+ }
86
+
87
+ &:hover,
88
+ &:active {
89
+ // Negate the added border
90
+ $link-underline-thickness: 3px;
91
+ margin-bottom: $link-underline-thickness * -1;
92
+ border-bottom: $link-underline-thickness solid;
93
+ }
94
+
95
+ &:focus {
96
+ // Remove any borders that show when focused and hovered.
97
+ margin-bottom: 0;
98
+ border-bottom: 0;
99
+
100
+ @include base.govuk-focused-text;
101
+ }
102
+
103
+ @media print {
104
+ &:link,
105
+ &:visited {
106
+ color: base.govuk-functional-colour(text);
107
+ }
108
+
109
+ // Do not append link href to GOV.UK link when printing (e.g. '(/)')
110
+ &::after {
111
+ content: "";
112
+ }
113
+ }
114
+ }
115
+
116
+ /// @access private
117
+ @mixin styles {
118
+ .govuk-generic-header {
119
+ @include block-styles;
120
+ }
121
+
122
+ .govuk-generic-header__container--full-width {
123
+ @include full-width-container-styles;
124
+ }
125
+
126
+ .govuk-generic-header__logo {
127
+ @include logo-styles;
128
+ }
129
+
130
+ .govuk-generic-header__homepage-link {
131
+ @include link-styles;
132
+
133
+ // Automatically centre align direct child elements to help users with
134
+ // positioning their logo assets eg: as `svg`s or `img`s
135
+ > * {
136
+ vertical-align: top;
137
+ }
138
+ }
139
+ }
140
+
@@ -1,45 +1,29 @@
1
1
  @use "../../base";
2
+ @use "../generic-header/mixin" as genericHeader;
2
3
 
3
4
  /// @access private
4
5
  @mixin styles {
5
6
  $logo-bottom-margin: 2px;
6
7
 
7
8
  .govuk-header {
8
- @include base.govuk-font($size: 16, $line-height: 1);
9
-
10
- // Add a transparent bottom border for forced-colour modes
11
- border-bottom: 1px solid transparent;
12
- color: base.govuk-colour("white");
13
- background: base.govuk-functional-colour(brand);
9
+ @include genericHeader.block-styles(
10
+ $background-colour: base.govuk-functional-colour("brand"),
11
+ $text-colour: base.govuk-functional-colour("inverse-text")
12
+ );
14
13
  }
15
14
 
16
15
  .govuk-header__container--full-width {
17
- padding: 0 base.govuk-spacing(3);
16
+ @include genericHeader.full-width-container-styles;
18
17
  }
19
18
 
20
19
  .govuk-header__logo {
21
- box-sizing: border-box;
22
-
23
20
  // Magic numbers, set padding to vertically centre align the logo
24
- padding-top: 16px;
25
- padding-bottom: 14px - $logo-bottom-margin;
21
+ @include genericHeader.logo-styles($padding-top: 16px, $padding-bottom: 14px - $logo-bottom-margin);
26
22
  }
27
23
 
28
24
  .govuk-header__homepage-link {
29
- // Avoid using the `base.govuk-link-common` mixin because the links in the
30
- // header get a special treatment, because:
31
- //
32
- // - underlines are only visible on hover
33
- // - all links get a 3px underline regardless of text size, as there are
34
- // multiple grouped elements close to one another and having slightly
35
- // different underline widths looks unbalanced
36
- //
37
- // Font size needs to be set on the link so that the box sizing is correct
38
- // in Firefox
39
- display: inline;
40
- margin-right: base.govuk-spacing(2);
41
- font-size: 30px; // We don't have a mixin that produces 30px font size
42
- text-decoration: none;
25
+ @include genericHeader.link-styles;
26
+
43
27
  // Remove word-spacing from within the logo so we can ignore
44
28
  // whitespace characters in the HTML
45
29
  word-spacing: base.govuk-px-to-rem(-6px);
@@ -47,28 +31,6 @@
47
31
  > * {
48
32
  word-spacing: 0;
49
33
  }
50
- @include base.govuk-link-style-inverse;
51
-
52
- &:link,
53
- &:visited {
54
- text-decoration: none;
55
- }
56
-
57
- &:hover,
58
- &:active {
59
- // Negate the added border
60
- $link-underline-thickness: 3px;
61
- margin-bottom: $link-underline-thickness * -1;
62
- border-bottom: $link-underline-thickness solid;
63
- }
64
-
65
- &:focus {
66
- // Remove any borders that show when focused and hovered.
67
- margin-bottom: 0;
68
- border-bottom: 0;
69
-
70
- @include base.govuk-focused-text;
71
- }
72
34
  }
73
35
 
74
36
  .govuk-header__logotype {
@@ -146,24 +108,6 @@
146
108
  }
147
109
 
148
110
  @media print {
149
- .govuk-header {
150
- border-bottom-width: 0;
151
- color: base.govuk-colour("black");
152
- background: transparent;
153
- }
154
-
155
- .govuk-header__homepage-link {
156
- &:link,
157
- &:visited {
158
- color: base.govuk-colour("black");
159
- }
160
-
161
- // Do not append link href to GOV.UK link when printing (e.g. '(/)')
162
- &::after {
163
- display: none;
164
- }
165
- }
166
-
167
111
  .govuk-header__product-name {
168
112
  // Fix product name alignment in Firefox when printing
169
113
  @-moz-document url-prefix() {
@@ -125,6 +125,7 @@
125
125
  padding: base.govuk-spacing(1);
126
126
  border: base.$govuk-border-width-form-element solid;
127
127
  border-color: base.govuk-functional-colour(input-border);
128
+ color: base.govuk-functional-colour(text);
128
129
  background-color: base.govuk-colour("black", $variant: "tint-95");
129
130
  text-align: center;
130
131
  white-space: nowrap;
@@ -5,13 +5,14 @@
5
5
  /// @access private
6
6
  @mixin styles {
7
7
  .govuk-notification-banner {
8
+ --_govuk-notification-banner-colour: #{base.govuk-functional-colour(brand)};
9
+ --_govuk-notification-banner-title-text-colour: #{base.govuk-functional-colour(inverse-text)};
10
+
8
11
  @include base.govuk-font($size: 19);
9
12
  @include base.govuk-responsive-margin(8, "bottom");
10
13
 
11
14
  border: base.$govuk-border-width solid;
12
- border-color: base.govuk-functional-colour(brand);
13
-
14
- background-color: base.govuk-functional-colour(brand);
15
+ border-color: var(--_govuk-notification-banner-colour);
15
16
 
16
17
  &:focus {
17
18
  outline: base.$govuk-focus-width solid;
@@ -26,6 +27,9 @@
26
27
  // text in high contrast mode
27
28
  border-bottom: 1px solid transparent;
28
29
 
30
+ color: var(--_govuk-notification-banner-title-text-colour);
31
+ background-color: var(--_govuk-notification-banner-colour);
32
+
29
33
  @media #{base.govuk-from-breakpoint(tablet)} {
30
34
  padding: 2px base.govuk-spacing(4) base.govuk-spacing(1);
31
35
  }
@@ -38,7 +42,6 @@
38
42
  @include base.govuk-typography-weight-bold;
39
43
  margin: 0;
40
44
  padding: 0;
41
- color: base.govuk-colour("white");
42
45
  }
43
46
 
44
47
  .govuk-notification-banner__content {
@@ -87,9 +90,7 @@
87
90
  }
88
91
 
89
92
  .govuk-notification-banner--success {
90
- border-color: base.govuk-functional-colour(success);
91
-
92
- background-color: base.govuk-functional-colour(success);
93
+ --_govuk-notification-banner-colour: #{base.govuk-functional-colour(success)};
93
94
 
94
95
  .govuk-notification-banner__link {
95
96
  @include base.govuk-link-style-success;
@@ -11,6 +11,7 @@
11
11
  padding: base.govuk-spacing(7) - base.$govuk-border-width;
12
12
 
13
13
  border: base.$govuk-border-width solid transparent;
14
+ color: base.govuk-functional-colour(text);
14
15
 
15
16
  text-align: center;
16
17
 
@@ -35,17 +36,6 @@
35
36
  }
36
37
  }
37
38
 
38
- .govuk-panel--confirmation {
39
- color: base.govuk-colour("white");
40
- background: base.govuk-colour("green");
41
-
42
- @media print {
43
- border-color: currentcolor;
44
- color: base.govuk-functional-colour(text);
45
- background: none;
46
- }
47
- }
48
-
49
39
  .govuk-panel__title {
50
40
  @include base.govuk-font-size($size: 48);
51
41
  @include base.govuk-typography-weight-bold;
@@ -53,8 +43,52 @@
53
43
  margin-bottom: base.govuk-spacing(6);
54
44
  }
55
45
 
56
- .govuk-panel__title:last-child {
46
+ // Remove bottom spacing from anything at the end of the Panel's content
47
+ // to stop the Panel's padding spacing from becoming too large.
48
+ .govuk-panel__title:last-child,
49
+ .govuk-panel__body > :last-child,
50
+ .govuk-panel__actions > :last-child {
57
51
  margin-bottom: 0;
58
52
  }
53
+
54
+ // On larger screens if the Panel actions have a button group,
55
+ // then we want to adjust the spacing a bit to avoid the button group
56
+ // making the Panel's padding spacing being too large.
57
+ @media #{base.govuk-from-breakpoint(tablet)} {
58
+ .govuk-panel__actions > .govuk-button-group:last-child {
59
+ margin-bottom: -1 * base.govuk-spacing(2);
60
+ }
61
+ }
62
+
63
+ // When the panel shows some actions, make sure they have some spacing
64
+ // from the panel's content
65
+ .govuk-panel__body:not(:last-child) {
66
+ margin-bottom: base.govuk-spacing(7);
67
+ }
68
+
69
+ .govuk-panel--confirmation {
70
+ --govuk-text-colour: #{base.govuk-functional-colour(inverse-text)};
71
+ background: base.govuk-functional-colour(success);
72
+ }
73
+
74
+ .govuk-panel--interruption {
75
+ --govuk-text-colour: #{base.govuk-functional-colour(inverse-text)};
76
+ background: base.govuk-functional-colour(brand);
77
+ text-align: left;
78
+
79
+ // Smaller title to go alongside smaller body text.
80
+ .govuk-panel__title {
81
+ @include base.govuk-font-size($size: 36);
82
+ margin-bottom: base.govuk-spacing(3);
83
+ }
84
+ }
85
+
86
+ @media print {
87
+ .govuk-panel {
88
+ --govuk-text-colour: inherit;
89
+ border-color: currentcolor;
90
+ background: none;
91
+ }
92
+ }
59
93
  }
60
94
 
@@ -46,7 +46,7 @@
46
46
  100% - #{($govuk-radios-label-padding-left-right + $govuk-touch-target-size + base.govuk-spacing(3))}
47
47
  );
48
48
  margin-bottom: 0;
49
- padding: (base.govuk-spacing(1) + base.$govuk-border-width-form-element) base.govuk-spacing(3);
49
+ padding: (base.govuk-spacing(1) + base.$govuk-border-width-form-element) $govuk-radios-label-padding-left-right;
50
50
  cursor: pointer;
51
51
  // remove 300ms pause on mobile
52
52
  touch-action: manipulation;
@@ -227,6 +227,12 @@
227
227
  }
228
228
 
229
229
  .govuk-radios__label {
230
+ // Recalculate max-width to account for the smaller radio size
231
+ // 1px comes from padding-left (defined below)
232
+ max-width: calc(
233
+ 100% - #{($govuk-touch-target-size - $input-offset) + $govuk-radios-label-padding-left-right + 1px}
234
+ );
235
+
230
236
  // Create a tiny space between the small radio hover state so that it
231
237
  // doesn't clash with the label
232
238
  padding-left: 1px;
@@ -34,13 +34,6 @@
34
34
  }
35
35
  }
36
36
 
37
- .govuk-select option:active,
38
- .govuk-select option:checked,
39
- .govuk-select:focus::-ms-value {
40
- color: base.govuk-colour("white");
41
- background-color: base.govuk-colour("blue");
42
- }
43
-
44
37
  .govuk-select--error {
45
38
  border-color: base.govuk-functional-colour(error);
46
39
 
@@ -14,7 +14,11 @@
14
14
  border-bottom-width: 1px;
15
15
  border-bottom-style: solid;
16
16
  border-bottom-color: $govuk-service-navigation-border-colour;
17
- color: $govuk-service-navigation-text-colour;
17
+ // Ensure that both raw content and content with typography classes
18
+ // will pick up the correct colour by setting both `--govuk-text-colour`
19
+ // and `color`.
20
+ --govuk-text-colour: #{$govuk-service-navigation-text-colour};
21
+ color: base.govuk-functional-colour(text);
18
22
  background-color: $govuk-service-navigation-background;
19
23
  }
20
24
 
@@ -200,10 +204,7 @@
200
204
  // Remove bottom border to add width-container ones
201
205
  border-bottom: none;
202
206
 
203
- // Set colour here so non-link text (service name, slot content) can
204
- // use it too.
205
- color: base.govuk-colour("white");
206
-
207
+ --govuk-text-colour: #{base.govuk-functional-colour(inverse-text)};
207
208
  background-color: base.govuk-functional-colour(brand);
208
209
 
209
210
  .govuk-width-container {
@@ -220,12 +221,12 @@
220
221
  // Override the 'active' border colour
221
222
  .govuk-service-navigation__item,
222
223
  .govuk-service-navigation__service-name {
223
- border-color: base.govuk-colour("white");
224
+ border-color: currentcolor;
224
225
  }
225
226
 
226
227
  // Override link styles
227
228
  .govuk-service-navigation__link {
228
- @include base.govuk-link-style-inverse;
229
+ @include base.govuk-link-style-text;
229
230
  }
230
231
 
231
232
  // Override mobile menu toggle colour when not focused
@@ -7,7 +7,7 @@
7
7
  // `$govuk-output-custom-properties` is true or not to help with checking if
8
8
  // multiple stylesheets are outputting the same version
9
9
  :root {
10
- --govuk-frontend-version: "6.2.0";
10
+ --govuk-frontend-version: "6.4.0";
11
11
  }
12
12
  }
13
13