govuk_publishing_components 21.56.2 → 21.60.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -6
  3. data/app/assets/javascripts/component_guide/accessibility-test.js +21 -21
  4. data/app/assets/javascripts/component_guide/filter-components.js +19 -19
  5. data/app/assets/javascripts/component_guide/visual-regression.js +38 -37
  6. data/app/assets/javascripts/govuk_publishing_components/components/checkboxes.js +2 -2
  7. data/app/assets/javascripts/govuk_publishing_components/components/details.js +6 -4
  8. data/app/assets/javascripts/govuk_publishing_components/components/print-link.js +14 -0
  9. data/app/assets/javascripts/govuk_publishing_components/components/step-by-step-nav.js +4 -4
  10. data/app/assets/javascripts/govuk_publishing_components/lib/auto-track-event.js +31 -0
  11. data/app/assets/javascripts/govuk_publishing_components/lib/cookie-functions.js +24 -24
  12. data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +17 -17
  13. data/app/assets/stylesheets/component_guide/application.scss +15 -15
  14. data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
  15. data/app/assets/stylesheets/govuk_publishing_components/components/_action-link.scss +9 -11
  16. data/app/assets/stylesheets/govuk_publishing_components/components/_breadcrumbs.scss +1 -1
  17. data/app/assets/stylesheets/govuk_publishing_components/components/_checkboxes.scss +4 -0
  18. data/app/assets/stylesheets/govuk_publishing_components/components/_cookie-banner.scss +5 -8
  19. data/app/assets/stylesheets/govuk_publishing_components/components/_feedback.scss +0 -1
  20. data/app/assets/stylesheets/govuk_publishing_components/components/_govspeak-html-publication.scss +4 -5
  21. data/app/assets/stylesheets/govuk_publishing_components/components/_heading.scss +3 -8
  22. data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +1 -1
  23. data/app/assets/stylesheets/govuk_publishing_components/components/_input.scss +1 -1
  24. data/app/assets/stylesheets/govuk_publishing_components/components/_inverse-header.scss +5 -8
  25. data/app/assets/stylesheets/govuk_publishing_components/components/_list.scss +1 -0
  26. data/app/assets/stylesheets/govuk_publishing_components/components/_print-link.scss +52 -0
  27. data/app/assets/stylesheets/govuk_publishing_components/components/_radio.scss +4 -0
  28. data/app/assets/stylesheets/govuk_publishing_components/components/_related-navigation.scss +2 -2
  29. data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +7 -3
  30. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-header.scss +0 -5
  31. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav-related.scss +1 -4
  32. data/app/assets/stylesheets/govuk_publishing_components/components/_step-by-step-nav.scss +8 -12
  33. data/app/assets/stylesheets/govuk_publishing_components/components/_table.scss +21 -24
  34. data/app/assets/stylesheets/govuk_publishing_components/components/_tabs.scss +4 -8
  35. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_attachment.scss +2 -0
  36. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_button.scss +1 -4
  37. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +2 -4
  38. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_contact.scss +2 -0
  39. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_footnotes.scss +2 -0
  40. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_highlight-answer.scss +2 -0
  41. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_place.scss +1 -1
  42. data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_typography.scss +2 -0
  43. data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_markdown-typography.scss +1 -1
  44. data/app/assets/stylesheets/govuk_publishing_components/components/print/_govspeak.scss +7 -1
  45. data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav-header.scss +0 -4
  46. data/app/assets/stylesheets/govuk_publishing_components/components/print/_step-by-step-nav.scss +2 -10
  47. data/app/controllers/govuk_publishing_components/audit_controller.rb +52 -0
  48. data/app/controllers/govuk_publishing_components/component_guide_controller.rb +2 -1
  49. data/app/models/govuk_publishing_components/audit_applications.rb +105 -0
  50. data/app/models/govuk_publishing_components/audit_comparer.rb +185 -0
  51. data/app/models/govuk_publishing_components/audit_components.rb +158 -0
  52. data/app/views/govuk_publishing_components/audit/show.html.erb +229 -0
  53. data/app/views/govuk_publishing_components/component_guide/index.html.erb +9 -4
  54. data/app/views/govuk_publishing_components/components/_action_link.html.erb +2 -0
  55. data/app/views/govuk_publishing_components/components/_breadcrumbs.html.erb +1 -1
  56. data/app/views/govuk_publishing_components/components/_cookie_banner.html.erb +3 -1
  57. data/app/views/govuk_publishing_components/components/_list.html.erb +26 -0
  58. data/app/views/govuk_publishing_components/components/_machine_readable_metadata.html.erb +1 -1
  59. data/app/views/govuk_publishing_components/components/_print_link.html.erb +27 -0
  60. data/app/views/govuk_publishing_components/components/_radio.html.erb +13 -5
  61. data/app/views/govuk_publishing_components/components/_step_by_step_nav_header.html.erb +2 -2
  62. data/app/views/govuk_publishing_components/components/docs/action_link.yml +5 -0
  63. data/app/views/govuk_publishing_components/components/docs/checkboxes.yml +4 -0
  64. data/app/views/govuk_publishing_components/components/docs/heading.yml +6 -3
  65. data/app/views/govuk_publishing_components/components/docs/list.yml +64 -0
  66. data/app/views/govuk_publishing_components/components/docs/print_link.yml +24 -0
  67. data/app/views/govuk_publishing_components/components/docs/radio.yml +4 -0
  68. data/config/locales/en.yml +2 -0
  69. data/config/routes.rb +1 -0
  70. data/lib/govuk_publishing_components/presenters/checkboxes_helper.rb +15 -7
  71. data/lib/govuk_publishing_components/presenters/heading_helper.rb +21 -1
  72. data/lib/govuk_publishing_components/version.rb +1 -1
  73. data/node_modules/axe-core/package.json +145 -220
  74. data/node_modules/govuk-frontend/package.json +14 -81
  75. data/node_modules/jquery/package.json +44 -116
  76. metadata +50 -66
  77. data/Rakefile +0 -32
@@ -21,7 +21,7 @@
21
21
  for (var i = 0; i < $youtubeLinks.length; ++i) {
22
22
  var $link = $youtubeLinks[i]
23
23
  var href = $link.getAttribute('href')
24
- var hasTracking = $link.getAttribute('data-youtube-player-analytics') == "true"
24
+ var hasTracking = $link.hasAttribute('data-youtube-player-analytics')
25
25
  var options = {
26
26
  link: $link
27
27
  }
@@ -33,7 +33,7 @@
33
33
  }
34
34
  }
35
35
 
36
- if (href.includes("/live_stream")) {
36
+ if (href.includes('/live_stream')) {
37
37
  var channelId = YoutubeLinkEnhancement.parseLivestream(href)
38
38
 
39
39
  if (!this.hasDisabledEmbed($link) && channelId) {
@@ -67,19 +67,19 @@
67
67
  youtubeVideoContainer.className += 'gem-c-govspeak__youtube-video'
68
68
  youtubeVideoContainer.innerHTML = '<span id="' + elementId + '" data-video-id="' + id + '"></span>'
69
69
 
70
- options['title'] = $link.textContent
70
+ options.title = $link.textContent
71
71
 
72
72
  parentContainer.replaceChild(youtubeVideoContainer, parentPara)
73
73
  this.insertVideo(elementId, options)
74
74
  }
75
75
 
76
76
  YoutubeLinkEnhancement.prototype.insertVideo = function (elementId, options) {
77
- var channelId = ""
78
- var videoId = ""
77
+ var channelId = ''
78
+ var videoId = ''
79
79
 
80
80
  if (options.channel) {
81
81
  channelId = options.channel
82
- videoId = "live_stream"
82
+ videoId = 'live_stream'
83
83
  } else {
84
84
  videoId = options.videoId
85
85
  }
@@ -112,16 +112,17 @@
112
112
  var eventData = event.data
113
113
  var eventTarget = event.target
114
114
  var states = {
115
- "-1": "VideoUnstarted",
116
- "0": "VideoEnded",
117
- "1": "VideoPlaying",
118
- "2": "VideoPaused",
119
- "3": "VideoBuffering",
120
- "5": "VideoCued"
115
+ /* eslint-disable quote-props */
116
+ '-1': 'VideoUnstarted',
117
+ '0': 'VideoEnded',
118
+ '1': 'VideoPlaying',
119
+ '2': 'VideoPaused',
120
+ '3': 'VideoBuffering',
121
+ '5': 'VideoCued'
122
+ /* eslint-enable */
121
123
  }
122
- if (states[eventData] && options.tracking && options.tracking.hasTracking
123
- && window.GOVUK.analytics && window.GOVUK.analytics.trackEvent)
124
- {
124
+ if (states[eventData] && options.tracking && options.tracking.hasTracking &&
125
+ window.GOVUK.analytics && window.GOVUK.analytics.trackEvent) {
125
126
  var tracking = {
126
127
  category: options.tracking.category,
127
128
  action: states[eventData],
@@ -192,8 +193,7 @@
192
193
  params[part[0]] = part[1]
193
194
  }
194
195
  return params.v
195
- }
196
- else if (url.indexOf('youtu.be') > -1) {
196
+ } else if (url.indexOf('youtu.be') > -1) {
197
197
  parts = url.split('/')
198
198
  return parts.pop()
199
199
  }
@@ -214,10 +214,10 @@ $gem-guide-border-width: 1px;
214
214
  @include govuk-text-colour;
215
215
  @include govuk-font($size: 24, $weight: bold);
216
216
  margin: $govuk-gutter-half 0;
217
+ }
217
218
 
218
- small {
219
- @include govuk-font($size: 16, $weight: bold);
220
- }
219
+ .example-title small {
220
+ @include govuk-font($size: 16, $weight: bold);
221
221
  }
222
222
  }
223
223
  }
@@ -232,16 +232,14 @@ html {
232
232
  }
233
233
 
234
234
  .hide-header-and-footer {
235
- // scss-lint:disable IdSelector
236
- // sass-lint:disable no-ids
235
+ // stylelint-disable selector-max-id
237
236
  #global-header,
238
237
  #global-header-bar,
239
238
  #global-breadcrumb,
240
239
  #footer {
241
240
  display: none;
242
241
  }
243
- // sass-lint:enable no-ids
244
- // scss-lint:enable IdSelector
242
+ // stylelint-enable selector-max-id
245
243
  }
246
244
 
247
245
  .component-guide-preview-page {
@@ -261,14 +259,12 @@ html {
261
259
  }
262
260
 
263
261
  // Hide survey banner
264
- // scss-lint:disable IdSelector
265
- // sass-lint:disable no-ids
262
+ // stylelint-disable selector-max-id
266
263
  #user-satisfaction-survey-container,
267
264
  #global-cookie-message {
268
265
  display: none;
269
266
  }
270
- // sass-lint:enable no-ids
271
- // scss-lint:enable IdSelector
267
+ // stylelint-enable selector-max-id
272
268
 
273
269
  // Rouge syntax highlighting
274
270
  // Based on https://github.com/alphagov/tech-docs-template/blob/master/template/source/stylesheets/palette/_syntax-highlighting.scss
@@ -294,7 +290,6 @@ $code-0f: #c92424; // Deprecated, Opening/Closing Embedded Language Tags e.g.
294
290
  $code-insert-bg: #def8ca;
295
291
  $code-delete-bg: #fadddd;
296
292
 
297
- // sass-lint:disable no-empty-rulesets
298
293
  .component-highlight {
299
294
 
300
295
  // Map Rouge / Pygments Tokens to work with 'Base 16' themes
@@ -391,7 +386,7 @@ $code-delete-bg: #fadddd;
391
386
  // Literals
392
387
  //
393
388
 
394
- .l { // Literal
389
+ .l { // Literal
395
390
  color: $code-09;
396
391
  }
397
392
 
@@ -491,10 +486,9 @@ $code-delete-bg: #fadddd;
491
486
  font-weight: bold;
492
487
  }
493
488
  }
494
- // sass-lint:enable no-empty-rulesets
495
489
 
496
490
  // Specific for this Gem, optimized for erb render statements
497
- .component-highlight {
491
+ .component-highlight { // stylelint-disable-line no-duplicate-selectors
498
492
  .s2 {
499
493
  color: $code-08;
500
494
  }
@@ -503,3 +497,9 @@ $code-delete-bg: #fadddd;
503
497
  color: $code-09;
504
498
  }
505
499
  }
500
+
501
+ .sticky-table-header {
502
+ position: sticky;
503
+ top: 0;
504
+ background: govuk-colour("white");
505
+ }
@@ -53,6 +53,7 @@
53
53
  @import "components/panel";
54
54
  @import "components/phase-banner";
55
55
  @import "components/previous-and-next-navigation";
56
+ @import "components/print-link";
56
57
  @import "components/radio";
57
58
  @import "components/related-navigation";
58
59
  @import "components/search";
@@ -6,10 +6,8 @@
6
6
  display: table-cell;
7
7
  width: 50px;
8
8
  height: 45px;
9
- // sass-lint:disable no-duplicate-properties
10
9
  background: image-url("govuk_publishing_components/action-link-arrow.png");
11
10
  background: image-url("govuk_publishing_components/action-link-arrow.svg"), linear-gradient(transparent, transparent);
12
- // sass-lint:enable no-duplicate-properties
13
11
  background-repeat: no-repeat;
14
12
  background-position: 0 50%;
15
13
  background-size: 37px auto;
@@ -103,10 +101,8 @@
103
101
  &:before {
104
102
  width: 30px;
105
103
  height: 30px;
106
- // sass-lint:disable no-duplicate-properties
107
104
  background: image-url("govuk_publishing_components/action-link-arrow--simple.png");
108
105
  background: image-url("govuk_publishing_components/action-link-arrow--simple.svg"), linear-gradient(transparent, transparent);
109
- // sass-lint:enable no-duplicate-properties
110
106
  background-repeat: no-repeat;
111
107
  background-size: 25px auto;
112
108
  background-position: 0 2px;
@@ -118,6 +114,14 @@
118
114
  }
119
115
 
120
116
  .gem-c-action-link--dark-icon {
117
+ &:before {
118
+ background: image-url("govuk_publishing_components/action-link-arrow--dark.png");
119
+ background: image-url("govuk_publishing_components/action-link-arrow--dark.svg"), linear-gradient(transparent, transparent);
120
+ }
121
+ }
122
+
123
+ .gem-c-action-link--dark-icon,
124
+ .gem-c-action-link--small-icon {
121
125
  max-width: none;
122
126
 
123
127
  @include govuk-media-query($until: tablet) {
@@ -125,12 +129,8 @@
125
129
  }
126
130
 
127
131
  &:before {
128
- width: 30px;
129
132
  height: 30px;
130
- // sass-lint:disable no-duplicate-properties
131
- background: image-url("govuk_publishing_components/action-link-arrow--dark.png");
132
- background: image-url("govuk_publishing_components/action-link-arrow--dark.svg"), linear-gradient(transparent, transparent);
133
- // sass-lint:enable no-duplicate-properties
133
+ width: 35px;
134
134
  background-repeat: no-repeat;
135
135
  background-size: 25px auto;
136
136
  background-position: 0 2px;
@@ -145,10 +145,8 @@
145
145
  &:before {
146
146
  width: 80px;
147
147
  height: 70px;
148
- // sass-lint:disable no-duplicate-properties
149
148
  background: image-url("govuk_publishing_components/action-link--nhs.png");
150
149
  background: image-url("govuk_publishing_components/action-link--nhs.svg"), linear-gradient(transparent, transparent);
151
- // sass-lint:enable no-duplicate-properties
152
150
  background-repeat: no-repeat;
153
151
  background-size: 85% auto;
154
152
  background-position: 0 50%;
@@ -45,7 +45,7 @@
45
45
  position: relative;
46
46
  }
47
47
 
48
- .govuk-breadcrumbs__link::after {
48
+ .govuk-breadcrumbs__link:after {
49
49
  content: "";
50
50
  position: absolute;
51
51
  top: -14px;
@@ -46,3 +46,7 @@
46
46
  @include govuk-visually-hidden;
47
47
  }
48
48
  }
49
+
50
+ .gem-c-checkboxes__heading-text {
51
+ margin: 0;
52
+ }
@@ -12,6 +12,10 @@ $govuk-cookie-banner-background: govuk-colour("light-grey", "grey-4");
12
12
  background-color: $govuk-cookie-banner-background;
13
13
  }
14
14
 
15
+ .gem-c-cookie-banner--services {
16
+ display: none;
17
+ }
18
+
15
19
  .gem-c-cookie-banner__message {
16
20
  display: inline-block;
17
21
  padding-bottom: govuk-spacing(2);
@@ -23,7 +27,6 @@ $govuk-cookie-banner-background: govuk-colour("light-grey", "grey-4");
23
27
  }
24
28
 
25
29
  .gem-c-cookie-banner__button {
26
-
27
30
  &.govuk-grid-column-one-half-from-desktop {
28
31
  padding: 0;
29
32
  }
@@ -36,7 +39,6 @@ $govuk-cookie-banner-background: govuk-colour("light-grey", "grey-4");
36
39
  @include govuk-media-query($until: desktop) {
37
40
  margin-bottom: govuk-spacing(4);
38
41
  }
39
-
40
42
  }
41
43
  }
42
44
 
@@ -49,13 +51,11 @@ $govuk-cookie-banner-background: govuk-colour("light-grey", "grey-4");
49
51
  display: inline-block;
50
52
  }
51
53
 
52
-
53
54
  .gem-c-cookie-banner__confirmation {
54
55
  display: none;
55
56
  position: relative;
56
57
  padding: govuk-spacing(1);
57
58
 
58
-
59
59
  // This element is focused using JavaScript so that it's being read out by screen readers
60
60
  // for this reason we don't want to show the default outline or emphasise it visually using `govuk-focused-text`
61
61
  &:focus {
@@ -122,8 +122,7 @@ $govuk-cookie-banner-background: govuk-colour("light-grey", "grey-4");
122
122
  }
123
123
 
124
124
  // Override the styles from govuk_template
125
- // scss-lint:disable IdSelector
126
- // sass-lint:disable no-ids
125
+ // stylelint-disable selector-max-id
127
126
  .gem-c-cookie-banner#global-cookie-message {
128
127
  background-color: $govuk-cookie-banner-background;
129
128
  padding: govuk-spacing(4) 0;
@@ -151,5 +150,3 @@ $govuk-cookie-banner-background: govuk-colour("light-grey", "grey-4");
151
150
  }
152
151
  }
153
152
  }
154
- // sass-lint:enable no-ids
155
- // scss-lint:enable IdSelector
@@ -136,7 +136,6 @@
136
136
  margin-right: govuk-spacing(7);
137
137
  }
138
138
 
139
-
140
139
  // Feedback form styles
141
140
  .gem-c-feedback__error-summary {
142
141
  margin-bottom: govuk-spacing(3);
@@ -1,3 +1,5 @@
1
+ // stylelint-disable max-nesting-depth
2
+
1
3
  // Override govspeak styles with HTML publication specific ones
2
4
  .gem-c-govspeak-html-publication {
3
5
  margin-bottom: govuk-spacing(6) * 1.5;
@@ -59,12 +61,10 @@
59
61
  }
60
62
  }
61
63
 
62
- // scss-lint:disable QualifyingElement
63
- // sass-lint:disable no-qualifying-elements
64
+ // stylelint-disable selector-no-qualifying-type
64
65
  // this class will only be for tables and is to distinguish from a bare `table`
65
66
  // the row classes below should not be applied to anything else but `tr`s
66
67
  table.financial-data {
67
-
68
68
  .numeric {
69
69
  text-align: right;
70
70
  @include govuk-font(14, $weight: regular, $tabular: true);
@@ -134,7 +134,6 @@
134
134
  background-color: govuk-colour("light-grey", $legacy: "grey-3");
135
135
  }
136
136
  }
137
- // sass-lint:enable no-qualifying-elements
138
- // scss-lint:enable QualifyingElement
137
+ // stylelint-enable selector-no-qualifying-type
139
138
  }
140
139
  }
@@ -1,15 +1,10 @@
1
1
  .gem-c-heading {
2
- @include govuk-text-colour;
3
- @include govuk-font(27, $weight: bold);
4
2
  margin: 0;
5
3
  }
6
4
 
7
- .gem-c-heading--font-size-24 {
8
- @include govuk-font(24, $weight: bold);
9
- }
10
-
11
- .gem-c-heading--font-size-19 {
12
- @include govuk-font(19, $weight: bold);
5
+ .gem-c-heading--font-size-27 {
6
+ @include govuk-text-colour;
7
+ @include govuk-font(27, $weight: bold);
13
8
  }
14
9
 
15
10
  // special case for publications and consultations pages
@@ -125,7 +125,7 @@
125
125
  .gem-c-image-card__list-item {
126
126
  position: relative;
127
127
 
128
- &:before {
128
+ &:before { // stylelint-disable-line max-nesting-depth
129
129
  content: "-";
130
130
  position: absolute;
131
131
  left: (- govuk-spacing(3));
@@ -20,7 +20,7 @@
20
20
 
21
21
  .gem-c-input__wrapper {
22
22
  display: flex;
23
- display: -ms-flexbox; // sass-lint:disable-line no-duplicate-properties
23
+ display: -ms-flexbox;
24
24
 
25
25
  .gem-c-input {
26
26
  display: inline-block;
@@ -11,16 +11,13 @@
11
11
  color: govuk-colour("white");
12
12
  }
13
13
 
14
-
15
- .gem-c-inverse-header {
14
+ .gem-c-inverse-header .gem-c-inverse-header__supplement,
15
+ .gem-c-inverse-header .publication-header__last-changed {
16
16
  // This publication-header class is injected on publication pages, really
17
17
  // it should be a component class or be a component in it's own right.
18
- .gem-c-inverse-header__supplement,
19
- .publication-header__last-changed {
20
- @include govuk-font($size: 16, $line-height: 1.5);
21
- color: govuk-colour("white");
22
- margin: 0;
23
- }
18
+ @include govuk-font($size: 16, $line-height: 1.5);
19
+ color: govuk-colour("white");
20
+ margin: 0;
24
21
  }
25
22
 
26
23
  .gem-c-inverse-header--full-width {
@@ -0,0 +1 @@
1
+ @import "govuk/components/list/list";
@@ -0,0 +1,52 @@
1
+ .gem-c-print-link {
2
+ display: none;
3
+ margin-bottom: 2em;
4
+ margin-top: 2em;
5
+ }
6
+
7
+ .gem-c-print-link.gem-c-print-link--show-without-js {
8
+ display: block;
9
+ }
10
+
11
+ .js-enabled {
12
+ .gem-c-print-link {
13
+ display: block;
14
+ }
15
+ }
16
+
17
+ .gem-c-print-link__link {
18
+ background: image-url("govuk_publishing_components/icon-print.png") no-repeat 10px 50%;
19
+
20
+ margin-left: -10px;
21
+ padding: .5em .5em .5em 38px;
22
+
23
+ @include govuk-device-pixel-ratio($ratio: 2) {
24
+ background-image: image-url("govuk_publishing_components/icon-print-2x.png");
25
+ background-size: 16px 18px;
26
+ }
27
+
28
+ &:focus {
29
+ @include govuk-focused-text;
30
+ }
31
+ }
32
+
33
+ .gem-c-print-link__button {
34
+ @extend %govuk-body-s;
35
+ background: image-url("govuk_publishing_components/icon-print.png") no-repeat 10px 50%;
36
+ border: 0;
37
+ color: $govuk-link-colour;
38
+ cursor: pointer;
39
+ margin: 0;
40
+ margin-left: -10px;
41
+ padding: .5em .5em .5em 38px;
42
+ text-decoration: underline;
43
+
44
+ @include govuk-device-pixel-ratio($ratio: 2) {
45
+ background-image: image-url("govuk_publishing_components/icon-print-2x.png");
46
+ background-size: 16px 18px;
47
+ }
48
+
49
+ &:focus {
50
+ @include govuk-focused-text;
51
+ }
52
+ }