govuk_publishing_components 24.9.4 → 24.11.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (180) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/govuk_publishing_components/analytics/pii.js +1 -1
  3. data/app/assets/javascripts/govuk_publishing_components/analytics/scroll-tracker.js +6 -248
  4. data/app/assets/javascripts/govuk_publishing_components/components/accordion.js +2 -3
  5. data/app/assets/javascripts/govuk_publishing_components/components/cookie-banner.js +1 -0
  6. data/app/assets/javascripts/govuk_publishing_components/components/feedback.js +142 -104
  7. data/app/assets/javascripts/govuk_publishing_components/components/reorderable-list.js +1 -1
  8. data/app/assets/javascripts/govuk_publishing_components/components/show-password.js +12 -0
  9. data/app/assets/javascripts/govuk_publishing_components/components/step-by-step-nav.js +2 -2
  10. data/app/assets/javascripts/govuk_publishing_components/lib/trigger-event.js +18 -0
  11. data/app/assets/stylesheets/govuk_publishing_components/_all_components_print.scss +0 -11
  12. data/app/assets/stylesheets/govuk_publishing_components/components/_accordion.scss +34 -34
  13. data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak.scss +1 -0
  14. data/app/assets/stylesheets/govuk_publishing_components/components/_metadata.scss +15 -18
  15. data/app/assets/stylesheets/govuk_publishing_components/components/_notice.scss +4 -2
  16. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +4 -4
  17. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +20 -20
  18. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_advisory.scss +27 -24
  19. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_attachment.scss +1 -1
  20. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +1 -0
  21. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_call-to-action.scss +1 -0
  22. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +1 -0
  23. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_contact.scss +1 -0
  24. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_example.scss +1 -0
  25. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_footnotes.scss +1 -0
  26. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_form-download.scss +19 -16
  27. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_fraction.scss +1 -0
  28. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_highlight-answer.scss +30 -27
  29. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_images.scss +1 -0
  30. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_information-callout.scss +1 -0
  31. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_legislative-list.scss +1 -0
  32. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_place.scss +26 -21
  33. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_stat-headline.scss +1 -0
  34. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_steps.scss +19 -16
  35. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_summary.scss +21 -18
  36. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_tables.scss +1 -0
  37. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +1 -0
  38. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_warning-callout.scss +1 -0
  39. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_px-to-em.scss +2 -0
  40. data/app/assets/stylesheets/govuk_publishing_components/components/print/_attachment.scss +2 -3
  41. data/app/assets/stylesheets/govuk_publishing_components/components/print/_back-link.scss +2 -3
  42. data/app/assets/stylesheets/govuk_publishing_components/components/print/_button.scss +0 -4
  43. data/app/assets/stylesheets/govuk_publishing_components/components/print/_feedback.scss +2 -3
  44. data/app/assets/stylesheets/govuk_publishing_components/components/print/_layout-footer.scss +2 -6
  45. data/app/assets/stylesheets/govuk_publishing_components/components/print/_layout-header.scss +2 -3
  46. data/app/assets/stylesheets/govuk_publishing_components/components/print/_metadata.scss +2 -6
  47. data/app/assets/stylesheets/govuk_publishing_components/components/print/_search.scss +2 -3
  48. data/app/assets/stylesheets/govuk_publishing_components/components/print/_share-links.scss +2 -3
  49. data/app/assets/stylesheets/govuk_publishing_components/components/print/_skip-link.scss +2 -3
  50. data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav-header.scss +0 -4
  51. data/app/assets/stylesheets/govuk_publishing_components/components/print/_subscription-links.scss +2 -3
  52. data/app/assets/stylesheets/govuk_publishing_components/components/print/_translation-nav.scss +2 -3
  53. data/app/views/govuk_publishing_components/components/_attachment.html.erb +1 -1
  54. data/app/views/govuk_publishing_components/components/_back_link.html.erb +1 -1
  55. data/app/views/govuk_publishing_components/components/_button.html.erb +1 -1
  56. data/app/views/govuk_publishing_components/components/_feedback.html.erb +1 -1
  57. data/app/views/govuk_publishing_components/components/_government_navigation.html.erb +7 -7
  58. data/app/views/govuk_publishing_components/components/_layout_footer.html.erb +2 -2
  59. data/app/views/govuk_publishing_components/components/_layout_header.html.erb +1 -1
  60. data/app/views/govuk_publishing_components/components/_machine_readable_metadata.html.erb +1 -1
  61. data/app/views/govuk_publishing_components/components/_metadata.html.erb +9 -8
  62. data/app/views/govuk_publishing_components/components/_notice.html.erb +1 -1
  63. data/app/views/govuk_publishing_components/components/_phase_banner.html.erb +1 -5
  64. data/app/views/govuk_publishing_components/components/_previous_and_next_navigation.html.erb +1 -1
  65. data/app/views/govuk_publishing_components/components/_print_link.html.erb +1 -1
  66. data/app/views/govuk_publishing_components/components/_radio.html.erb +6 -11
  67. data/app/views/govuk_publishing_components/components/_search.html.erb +1 -1
  68. data/app/views/govuk_publishing_components/components/_share_links.html.erb +1 -1
  69. data/app/views/govuk_publishing_components/components/_show_password.html.erb +2 -0
  70. data/app/views/govuk_publishing_components/components/_skip_link.html.erb +1 -1
  71. data/app/views/govuk_publishing_components/components/_step_by_step_nav.html.erb +6 -6
  72. data/app/views/govuk_publishing_components/components/_step_by_step_nav_related.html.erb +1 -1
  73. data/app/views/govuk_publishing_components/components/_subscription_links.html.erb +2 -2
  74. data/app/views/govuk_publishing_components/components/_success_alert.html.erb +1 -1
  75. data/app/views/govuk_publishing_components/components/_translation_nav.html.erb +1 -1
  76. data/app/views/govuk_publishing_components/components/docs/feedback.yml +2 -0
  77. data/app/views/govuk_publishing_components/components/docs/phase_banner.yml +2 -2
  78. data/app/views/govuk_publishing_components/components/docs/show_password.yml +10 -0
  79. data/app/views/govuk_publishing_components/components/layout_header/_navigation_items.html.erb +2 -2
  80. data/app/views/govuk_publishing_components/components/metadata/_sentence.html.erb +4 -4
  81. data/app/views/govuk_publishing_components/components/related_navigation/_section.html.erb +2 -2
  82. data/config/locales/ar.yml +123 -0
  83. data/config/locales/az.yml +123 -0
  84. data/config/locales/be.yml +123 -0
  85. data/config/locales/bg.yml +123 -0
  86. data/config/locales/bn.yml +123 -0
  87. data/config/locales/cs.yml +123 -0
  88. data/config/locales/cy.yml +115 -6
  89. data/config/locales/da.yml +123 -0
  90. data/config/locales/de.yml +123 -0
  91. data/config/locales/dr.yml +123 -0
  92. data/config/locales/el.yml +123 -0
  93. data/config/locales/en.yml +111 -103
  94. data/config/locales/es-419.yml +123 -0
  95. data/config/locales/es.yml +123 -0
  96. data/config/locales/et.yml +120 -0
  97. data/config/locales/fa.yml +123 -0
  98. data/config/locales/fi.yml +123 -0
  99. data/config/locales/fr.yml +120 -0
  100. data/config/locales/gd.yml +123 -0
  101. data/config/locales/gu.yml +123 -0
  102. data/config/locales/he.yml +123 -0
  103. data/config/locales/hi.yml +123 -0
  104. data/config/locales/hr.yml +123 -0
  105. data/config/locales/hu.yml +123 -0
  106. data/config/locales/hy.yml +123 -0
  107. data/config/locales/id.yml +123 -0
  108. data/config/locales/is.yml +123 -0
  109. data/config/locales/it.yml +123 -0
  110. data/config/locales/ja.yml +123 -0
  111. data/config/locales/ka.yml +123 -0
  112. data/config/locales/kk.yml +123 -0
  113. data/config/locales/ko.yml +123 -0
  114. data/config/locales/lt.yml +123 -0
  115. data/config/locales/lv.yml +123 -0
  116. data/config/locales/ms.yml +123 -0
  117. data/config/locales/mt.yml +123 -0
  118. data/config/locales/nl.yml +123 -0
  119. data/config/locales/no.yml +124 -1
  120. data/config/locales/pa-pk.yml +123 -0
  121. data/config/locales/pa.yml +123 -0
  122. data/config/locales/pl.yml +123 -0
  123. data/config/locales/ps.yml +123 -0
  124. data/config/locales/pt.yml +123 -0
  125. data/config/locales/ro.yml +123 -0
  126. data/config/locales/ru.yml +123 -0
  127. data/config/locales/si.yml +123 -0
  128. data/config/locales/sk.yml +123 -0
  129. data/config/locales/sl.yml +123 -0
  130. data/config/locales/so.yml +123 -0
  131. data/config/locales/sq.yml +123 -0
  132. data/config/locales/sr.yml +123 -0
  133. data/config/locales/sv.yml +123 -0
  134. data/config/locales/sw.yml +123 -0
  135. data/config/locales/ta.yml +123 -0
  136. data/config/locales/th.yml +123 -0
  137. data/config/locales/tk.yml +123 -0
  138. data/config/locales/tr.yml +123 -0
  139. data/config/locales/uk.yml +123 -0
  140. data/config/locales/ur.yml +123 -0
  141. data/config/locales/uz.yml +123 -0
  142. data/config/locales/vi.yml +123 -0
  143. data/config/locales/zh-hk.yml +123 -0
  144. data/config/locales/zh-tw.yml +123 -0
  145. data/config/locales/zh.yml +123 -0
  146. data/lib/govuk_publishing_components/presenters/breadcrumb_selector.rb +5 -0
  147. data/lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_taxons.rb +1 -2
  148. data/lib/govuk_publishing_components/presenters/content_item.rb +4 -0
  149. data/lib/govuk_publishing_components/presenters/contextual_navigation.rb +4 -0
  150. data/lib/govuk_publishing_components/presenters/machine_readable/page.rb +4 -0
  151. data/lib/govuk_publishing_components/version.rb +1 -1
  152. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +7 -16
  153. data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +4 -15
  154. data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +1 -1
  155. data/node_modules/govuk-frontend/govuk/components/checkboxes/macro-options.json +3 -3
  156. data/node_modules/govuk-frontend/govuk/components/cookie-banner/README.md +15 -0
  157. data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +40 -22
  158. data/node_modules/govuk-frontend/govuk/components/cookie-banner/macro-options.json +6 -6
  159. data/node_modules/govuk-frontend/govuk/components/cookie-banner/template.njk +15 -5
  160. data/node_modules/govuk-frontend/govuk/components/date-input/macro-options.json +2 -2
  161. data/node_modules/govuk-frontend/govuk/components/details/_index.scss +5 -1
  162. data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +13 -14
  163. data/node_modules/govuk-frontend/govuk/components/file-upload/macro-options.json +1 -1
  164. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +14 -19
  165. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +39 -21
  166. data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +1 -1
  167. data/node_modules/govuk-frontend/govuk/components/phase-banner/_index.scss +1 -1
  168. data/node_modules/govuk-frontend/govuk/components/radios/macro-options.json +3 -3
  169. data/node_modules/govuk-frontend/govuk/components/select/macro-options.json +1 -1
  170. data/node_modules/govuk-frontend/govuk/components/skip-link/_index.scss +1 -1
  171. data/node_modules/govuk-frontend/govuk/components/tabs/_index.scss +1 -6
  172. data/node_modules/govuk-frontend/govuk/components/textarea/macro-options.json +1 -1
  173. data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +10 -0
  174. data/node_modules/govuk-frontend/govuk/core/_links.scss +8 -0
  175. data/node_modules/govuk-frontend/govuk/helpers/_links.scss +153 -38
  176. data/node_modules/govuk-frontend/govuk/settings/_all.scss +2 -0
  177. data/node_modules/govuk-frontend/govuk/settings/_links.scss +62 -0
  178. data/node_modules/govuk-frontend/package.json +1 -1
  179. metadata +20 -4
  180. data/app/assets/javascripts/component_guide/visual-regression.js +0 -71
@@ -2,7 +2,7 @@
2
2
  /// @group helpers/links
3
3
  ////
4
4
 
5
- /// Common link mixin
5
+ /// Common link styles
6
6
  ///
7
7
  /// Provides the typography and focus state, regardless of link style.
8
8
  ///
@@ -10,18 +10,57 @@
10
10
 
11
11
  @mixin govuk-link-common {
12
12
  @include govuk-typography-common;
13
+ @include govuk-link-decoration;
14
+
15
+ &:hover {
16
+ @include govuk-link-hover-decoration;
17
+ }
13
18
 
14
19
  &:focus {
15
20
  @include govuk-focused-text;
16
21
  }
17
22
  }
18
23
 
19
- /// Default link style mixin
24
+ /// Link decoration
25
+ ///
26
+ /// Provides the text decoration for links, including thickness and underline
27
+ /// offset. Use this mixin only if you cannot use the `govuk-link-common` mixin.
28
+ ///
29
+ /// @access public
30
+ @mixin govuk-link-decoration {
31
+ text-decoration: underline;
32
+
33
+ @if ($govuk-new-link-styles) {
34
+ @if ($govuk-link-underline-thickness) {
35
+ text-decoration-thickness: $govuk-link-underline-thickness;
36
+ }
37
+
38
+ @if ($govuk-link-underline-offset) {
39
+ text-underline-offset: $govuk-link-underline-offset;
40
+ }
41
+ }
42
+ }
43
+
44
+ /// Link hover decoration
45
+ ///
46
+ /// Provides the text decoration for links in their hover state, for you to use
47
+ /// within a `:hover` pseudo-selector. Use this mixin only if you cannot use the
48
+ /// `govuk-link-common` mixin.
49
+ ///
50
+ /// @access public
51
+
52
+ @mixin govuk-link-hover-decoration {
53
+ @if ($govuk-new-link-styles and $govuk-link-hover-underline-thickness) {
54
+ text-decoration-thickness: $govuk-link-hover-underline-thickness;
55
+ }
56
+ }
57
+
58
+ /// Default link styles
20
59
  ///
21
- /// Provides the default unvisited, visited, hover and active states for links.
60
+ /// Makes links use the default unvisited, visited, hover and active colours.
22
61
  ///
23
- /// If you use this mixin in a component you must also include the
24
- /// govuk-link-common mixin in order to get the focus state.
62
+ /// If you use this mixin in a component, you must also include the
63
+ /// `govuk-link-common` mixin to get the correct focus and hover states.
25
64
  ///
26
65
  /// @example scss
27
66
  /// .govuk-component__link {
@@ -66,12 +105,13 @@
66
105
  }
67
106
  }
68
107
 
69
- /// Error link style mixin
108
+ /// Error link styles
70
109
  ///
71
- /// Provides the error unvisited, visited, hover and active states for links.
110
+ /// Makes links use the error colour. The link will darken if it's active or a
111
+ /// user hovers their cursor over it.
72
112
  ///
73
- /// If you use this mixin in a component you must also include the
74
- /// govuk-link-common mixin in order to get the focus state.
113
+ /// If you use this mixin in a component, you must also include the
114
+ /// `govuk-link-common` mixin to get the correct focus and hover states.
75
115
  ///
76
116
  /// @example scss
77
117
  /// .govuk-component__link {
@@ -113,12 +153,13 @@
113
153
  }
114
154
  }
115
155
 
116
- /// Success link style mixin
156
+ /// Success link styles
117
157
  ///
118
- /// Provides the success unvisited, visited, hover and active states for links.
158
+ /// Makes links use the success colour. The link will darken if it's active or a
159
+ /// user hovers their cursor over it.
119
160
  ///
120
- /// If you use this mixin in a component you must also include the
121
- /// govuk-link-common mixin in order to get the focus state.
161
+ /// If you use this mixin in a component, you must also include the
162
+ /// `govuk-link-common` mixin to get the correct focus and hover states.
122
163
  ///
123
164
  /// @example scss
124
165
  /// .govuk-component__link {
@@ -160,13 +201,13 @@
160
201
  }
161
202
  }
162
203
 
163
- /// Muted style link mixin
204
+ /// Muted link styles
164
205
  ///
165
- /// Used for secondary links on a page - the link will appear in muted colours
166
- /// regardless of visited state.
206
+ /// Makes links use the secondary text colour. The link will darken if it's
207
+ /// active or a user hovers their cursor over it.
167
208
  ///
168
- /// If you use this mixin in a component you must also include the
169
- /// govuk-link-common mixin in order to get the focus state.
209
+ /// If you use this mixin in a component, you must also include the
210
+ /// `govuk-link-common` mixin to get the correct focus and hover states.
170
211
  ///
171
212
  /// @example scss
172
213
  /// .govuk-component__link {
@@ -178,10 +219,13 @@
178
219
 
179
220
  @mixin govuk-link-style-muted {
180
221
  &:link,
181
- &:visited,
222
+ &:visited {
223
+ color: $govuk-secondary-text-colour;
224
+ }
225
+
182
226
  &:hover,
183
227
  &:active {
184
- color: $govuk-secondary-text-colour;
228
+ color: $govuk-text-colour;
185
229
  }
186
230
 
187
231
  // When focussed, the text colour needs to be darker to ensure that colour
@@ -200,13 +244,13 @@
200
244
  }
201
245
  }
202
246
 
203
- /// Text style link mixin
247
+ /// Text link styles
204
248
  ///
205
- /// Overrides the colour of links to match the text colour. Generally used by
249
+ /// Makes links use the primary text colour, in all states. Use this mixin for
206
250
  /// navigation components, such as breadcrumbs or the back link.
207
251
  ///
208
- /// If you use this mixin in a component you must also include the
209
- /// govuk-link-common mixin in order to get the focus state.
252
+ /// If you use this mixin in a component, you must also include the
253
+ /// `govuk-link-common` mixin to get the correct focus and hover states.
210
254
  ///
211
255
  /// @example scss
212
256
  /// .govuk-component__link {
@@ -217,10 +261,17 @@
217
261
  /// @access public
218
262
 
219
263
  @mixin govuk-link-style-text {
220
- // Override link colour to use text colour
221
264
  &:link,
222
- &:visited,
223
- &:hover,
265
+ &:visited {
266
+ @include govuk-text-colour;
267
+ }
268
+
269
+ // Force a colour change on hover to work around a bug in Safari
270
+ // https://bugs.webkit.org/show_bug.cgi?id=224483
271
+ &:hover {
272
+ color: rgba($govuk-text-colour, .99);
273
+ }
274
+
224
275
  &:active,
225
276
  &:focus {
226
277
  @include govuk-text-colour;
@@ -236,17 +287,60 @@
236
287
  }
237
288
  }
238
289
 
239
- /// No visited state link mixin
290
+ /// Inverse link styles
291
+ ///
292
+ /// Makes links white, in all states. Use this mixin if you're displaying links
293
+ /// against a dark background.
294
+ ///
295
+ /// If you use this mixin in a component, you must also include the
296
+ /// `govuk-link-common` mixin to get the correct focus and hover states.
297
+ ///
298
+ /// @example scss
299
+ /// .govuk-component__link {
300
+ /// @include govuk-link-common;
301
+ /// @include govuk-link-style-inverse;
302
+ /// }
303
+ ///
304
+ /// @access public
305
+
306
+ @mixin govuk-link-style-inverse {
307
+ &:link,
308
+ &:visited {
309
+ color: govuk-colour("white");
310
+ }
311
+
312
+ // Force a colour change on hover to work around a bug in Safari
313
+ // https://bugs.webkit.org/show_bug.cgi?id=224483
314
+ &:hover,
315
+ &:active {
316
+ color: rgba(govuk-colour("white"), .99);
317
+ }
318
+
319
+ &:focus {
320
+ color: $govuk-focus-text-colour;
321
+ }
322
+
323
+ // alphagov/govuk_template includes a specific a:link:focus selector designed
324
+ // to make unvisited links a slightly darker blue when focussed, so we need to
325
+ // override the text colour for that combination of selectors.
326
+ @include govuk-compatibility(govuk_template) {
327
+ &:link:focus {
328
+ color: $govuk-focus-text-colour;
329
+ }
330
+ }
331
+ }
332
+
333
+ /// Default link styles, without a visited state
240
334
  ///
241
- /// Used in cases where it is not helpful to distinguish between visited and
242
- /// non-visited links.
335
+ /// Makes links use the default unvisited, hover and active colours, with no
336
+ /// distinct visited state.
243
337
  ///
244
- /// For example, navigation links to pages with dynamic content like admin
245
- /// dashboards. The content on the page is changing all the time, so the fact
246
- /// that you’ve visited it before is not important.
338
+ /// Use this mixin when it's not helpful to distinguish between visited and
339
+ /// non-visited links. For example, when you link to pages with
340
+ /// frequently-changing content, such as the dashboard for an admin interface.
247
341
  ///
248
- /// If you use this mixin in a component you must also include the
249
- /// govuk-link-common mixin in order to get the focus state.
342
+ /// If you use this mixin in a component, you must also include the
343
+ /// `govuk-link-common` mixin to get the correct focus and hover states.
250
344
  ///
251
345
  /// @example scss
252
346
  /// .govuk-component__link {
@@ -280,10 +374,31 @@
280
374
  }
281
375
  }
282
376
 
283
- /// Print friendly link mixin
377
+ /// Remove underline from links
378
+ ///
379
+ /// Remove underlines from links unless the link is active or a user hovers
380
+ /// their cursor over it. This has no effect in Internet Explorer 8 (IE8),
381
+ /// because IE8 does not support `:not`.
382
+ ///
383
+ /// @example scss
384
+ /// .govuk-component__link {
385
+ /// @include govuk-link-common;
386
+ /// @include govuk-link-style-default;
387
+ /// @include govuk-link-style-no-underline;
388
+ /// }
389
+ ///
390
+ /// @access public
391
+
392
+ @mixin govuk-link-style-no-underline {
393
+ &:not(:hover):not(:active) {
394
+ text-decoration: none;
395
+ }
396
+ }
397
+
398
+ /// Include link destination when printing the page
284
399
  ///
285
- /// When printing, append the the destination URL to the link text, as long
286
- /// as the URL starts with either `/`, `http://` or `https://`.
400
+ /// If the user prints the page, add the destination URL after the link text, if
401
+ /// the URL starts with `/`, `http://` or `https://`.
287
402
  ///
288
403
  /// @access public
289
404
 
@@ -19,3 +19,5 @@
19
19
  @import "typography-font-families";
20
20
  @import "typography-font";
21
21
  @import "typography-responsive";
22
+
23
+ @import "links";
@@ -0,0 +1,62 @@
1
+ ////
2
+ /// @group settings/links
3
+ ////
4
+
5
+ /// Enable new link styles
6
+ ///
7
+ /// If enabled, the link styles will change. Underlines will:
8
+ ///
9
+ /// - be consistently thinner and a bit further away from the link text
10
+ /// - have a clearer hover state, where the underline gets thicker to make the
11
+ /// link stand out to users
12
+ ///
13
+ /// You should only enable the new link styles if both:
14
+ ///
15
+ /// - you've made sure your whole service will use the new style consistently
16
+ /// - you do not have links in a multi-column CSS layout - there's [a Chromium
17
+ /// bug that affects links](https://github.com/alphagov/govuk-frontend/issues/2204)
18
+ ///
19
+ /// @type Boolean
20
+ /// @access public
21
+
22
+ $govuk-new-link-styles: false !default;
23
+
24
+ /// Thickness of link underlines
25
+ ///
26
+ /// The default will be either:
27
+ ///
28
+ /// - 1px
29
+ /// - 0.0625rem, if it's thicker than 1px because the user has changed the text
30
+ /// size in their browser
31
+ ///
32
+ /// Set this variable to `false` to avoid setting a thickness.
33
+ ///
34
+ /// @type Number
35
+ /// @access public
36
+
37
+ $govuk-link-underline-thickness: unquote("max(1px, .0625rem)") !default;
38
+
39
+ /// Offset of link underlines from text baseline
40
+ ///
41
+ /// Set this variable to `false` to avoid setting an offset.
42
+ ///
43
+ /// @type Number
44
+ /// @access public
45
+
46
+ $govuk-link-underline-offset: .1em !default;
47
+
48
+ /// Thickness of link underlines in hover state
49
+ ///
50
+ /// The default for each link will be the thickest of the following:
51
+ ///
52
+ /// - 3px
53
+ /// - 0.1875rem, if it's thicker than 3px because the user has changed the text
54
+ /// size in their browser
55
+ /// - 0.12em (relative to the link's text size)
56
+ ///
57
+ /// Set this variable to `false` to avoid setting a thickness.
58
+ ///
59
+ /// @type Number
60
+ /// @access public
61
+
62
+ $govuk-link-hover-underline-thickness: unquote("max(3px, .1875rem, .12em)") !default;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "govuk-frontend",
3
3
  "description": "GOV.UK Frontend contains the code you need to start building a user interface for government platforms and services.",
4
- "version": "3.11.0",
4
+ "version": "3.12.0",
5
5
  "main": "govuk/all.js",
6
6
  "sass": "govuk/all.scss",
7
7
  "engines": {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_publishing_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 24.9.4
4
+ version: 24.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-22 00:00:00.000000000 Z
11
+ date: 2021-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_app_config
@@ -164,6 +164,20 @@ dependencies:
164
164
  - - "~>"
165
165
  - !ruby/object:Gem::Version
166
166
  version: '2'
167
+ - !ruby/object:Gem::Dependency
168
+ name: i18n-coverage
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: jasmine
169
183
  requirement: !ruby/object:Gem::Requirement
@@ -416,7 +430,6 @@ files:
416
430
  - app/assets/javascripts/component_guide/filter-components.js
417
431
  - app/assets/javascripts/component_guide/vendor/bind-polyfill.js
418
432
  - app/assets/javascripts/component_guide/vendor/matches-polyfill.min.js
419
- - app/assets/javascripts/component_guide/visual-regression.js
420
433
  - app/assets/javascripts/govuk_publishing_components/all_components.js
421
434
  - app/assets/javascripts/govuk_publishing_components/analytics.js
422
435
  - app/assets/javascripts/govuk_publishing_components/analytics/analytics.js
@@ -469,6 +482,7 @@ files:
469
482
  - app/assets/javascripts/govuk_publishing_components/lib/toggle-input-class-on-focus.js
470
483
  - app/assets/javascripts/govuk_publishing_components/lib/toggle.js
471
484
  - app/assets/javascripts/govuk_publishing_components/lib/track-click.js
485
+ - app/assets/javascripts/govuk_publishing_components/lib/trigger-event.js
472
486
  - app/assets/javascripts/govuk_publishing_components/modules.js
473
487
  - app/assets/javascripts/govuk_publishing_components/vendor/html5shiv-printshiv.js
474
488
  - app/assets/javascripts/govuk_publishing_components/vendor/json2.js
@@ -1574,6 +1588,7 @@ files:
1574
1588
  - node_modules/govuk-frontend/govuk/components/checkboxes/macro-options.json
1575
1589
  - node_modules/govuk-frontend/govuk/components/checkboxes/macro.njk
1576
1590
  - node_modules/govuk-frontend/govuk/components/checkboxes/template.njk
1591
+ - node_modules/govuk-frontend/govuk/components/cookie-banner/README.md
1577
1592
  - node_modules/govuk-frontend/govuk/components/cookie-banner/_cookie-banner.scss
1578
1593
  - node_modules/govuk-frontend/govuk/components/cookie-banner/_index.scss
1579
1594
  - node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json
@@ -1794,6 +1809,7 @@ files:
1794
1809
  - node_modules/govuk-frontend/govuk/settings/_compatibility.scss
1795
1810
  - node_modules/govuk-frontend/govuk/settings/_global-styles.scss
1796
1811
  - node_modules/govuk-frontend/govuk/settings/_ie8.scss
1812
+ - node_modules/govuk-frontend/govuk/settings/_links.scss
1797
1813
  - node_modules/govuk-frontend/govuk/settings/_measurements.scss
1798
1814
  - node_modules/govuk-frontend/govuk/settings/_media-queries.scss
1799
1815
  - node_modules/govuk-frontend/govuk/settings/_spacing.scss
@@ -1961,7 +1977,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1961
1977
  - !ruby/object:Gem::Version
1962
1978
  version: '0'
1963
1979
  requirements: []
1964
- rubygems_version: 3.1.4
1980
+ rubygems_version: 3.1.6
1965
1981
  signing_key:
1966
1982
  specification_version: 4
1967
1983
  summary: A gem to document components in GOV.UK frontend applications
@@ -1,71 +0,0 @@
1
- (function (window, document) {
2
- window.GOVUK = window.GOVUK || {}
3
-
4
- window.GOVUK.VisualDiffTool = function (currentWindowLocation) {
5
- var visualDiffSelector = 'visual-diff'
6
- var existingIframe = document.getElementById(visualDiffSelector)
7
- var windowLocation = currentWindowLocation || window.location
8
-
9
- if (existingIframe) {
10
- existingIframe.parentNode.removeChild(existingIframe)
11
- document.body.style.filter = null
12
- } else {
13
- var iframe = document.createElement('iframe')
14
- iframe.id = visualDiffSelector
15
- iframe.setAttribute('scrolling', 'no')
16
- _setElementStyles(iframe, {
17
- width: '100%',
18
- height: document.body.scrollHeight + 'px',
19
- position: 'absolute',
20
- top: '0',
21
- 'pointer-events': 'none',
22
- border: '0'
23
- })
24
- iframe.style.setProperty('z-index', '999', 'important')
25
-
26
- // For browsers that support it, do mix-blend-mode diff
27
- if ('mix-blend-mode' in document.body.style) {
28
- _setElementStyles(iframe, { 'mix-blend-mode': 'difference' })
29
- document.body.style.filter = 'invert(100%)'
30
- } else {
31
- // Else do a simple overlay of the live page for comparison (IE and Edge)
32
- _setElementStyles(iframe, { opacity: '0.7' })
33
- }
34
-
35
- iframe.src = _processComparisonURL(windowLocation)
36
-
37
- if (iframe.src) {
38
- document.body.appendChild(iframe)
39
- console.log('comparing to ' + iframe.src)
40
- }
41
- }
42
- }
43
-
44
- var _processComparisonURL = function (url) {
45
- var appName
46
- var href = url.href
47
- var host = url.host
48
-
49
- if (href.includes('dev.gov.uk/component-guide')) {
50
- appName = host.split('.')[0]
51
- return _forceHTTPS(href.replace(host, appName + '.herokuapp.com'))
52
- } else if (href.includes('dev.gov.uk')) {
53
- return _forceHTTPS(href.replace(host, 'www.gov.uk'))
54
- } else if (href.includes('-pr-')) {
55
- appName = host.split('-pr')[0]
56
- return _forceHTTPS(href.replace(host, appName + '.herokuapp.com'))
57
- } else {
58
- throw new Error('Visual Diff Tool: You need to run this tool against a page running on your local dev environment')
59
- }
60
- }
61
-
62
- var _forceHTTPS = function (href) {
63
- return href.replace('http://', 'https://')
64
- }
65
-
66
- var _setElementStyles = function (element, styles) {
67
- for (var style in styles) {
68
- element.style[style] = styles[style]
69
- }
70
- }
71
- })(window, document)