govuk_publishing_components 21.53.0 → 21.55.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/govuk_publishing_components/action-link--nhs.png +0 -0
  3. data/app/assets/images/govuk_publishing_components/action-link--nhs.svg +1 -0
  4. data/app/assets/images/govuk_publishing_components/action-link-arrow--dark.png +0 -0
  5. data/app/assets/images/govuk_publishing_components/action-link-arrow--simple.png +0 -0
  6. data/app/assets/images/govuk_publishing_components/action-link-arrow.png +0 -0
  7. data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +5 -4
  8. data/app/assets/stylesheets/govuk_publishing_components/components/_action-link.scss +38 -7
  9. data/app/assets/stylesheets/govuk_publishing_components/components/_back-link.scss +0 -38
  10. data/app/controllers/govuk_publishing_components/component_guide_controller.rb +34 -22
  11. data/app/views/govuk_publishing_components/components/_action_link.html.erb +23 -3
  12. data/app/views/govuk_publishing_components/components/_step_by_step_nav_header.html.erb +28 -8
  13. data/app/views/govuk_publishing_components/components/docs/action_link.yml +43 -15
  14. data/app/views/govuk_publishing_components/components/docs/step_by_step_nav_header.yml +23 -0
  15. data/lib/govuk_publishing_components/presenters/breadcrumb_selector.rb +11 -9
  16. data/lib/govuk_publishing_components/presenters/content_breadcrumbs_based_on_priority.rb +8 -1
  17. data/lib/govuk_publishing_components/presenters/contextual_navigation.rb +1 -1
  18. data/lib/govuk_publishing_components/presenters/machine_readable/faq_page_schema.rb +7 -6
  19. data/lib/govuk_publishing_components/presenters/machine_readable/html_publication_schema.rb +77 -0
  20. data/lib/govuk_publishing_components/presenters/schema_org.rb +24 -16
  21. data/lib/govuk_publishing_components/version.rb +1 -1
  22. data/node_modules/axe-core/CHANGELOG.md +6 -0
  23. data/node_modules/axe-core/axe.js +19 -3
  24. data/node_modules/axe-core/axe.min.js +2 -2
  25. data/node_modules/axe-core/bower.json +1 -1
  26. data/node_modules/axe-core/lib/commons/dom/get-element-stack.js +27 -1
  27. data/node_modules/axe-core/package.json +21 -21
  28. data/node_modules/axe-core/sri-history.json +4 -0
  29. data/node_modules/govuk-frontend/README.md +6 -6
  30. data/node_modules/govuk-frontend/govuk/_base.scss +3 -0
  31. data/node_modules/govuk-frontend/govuk/all.js +1 -1
  32. data/node_modules/govuk-frontend/govuk/all.scss +1 -3
  33. data/node_modules/govuk-frontend/govuk/components/_all.scss +31 -29
  34. data/node_modules/govuk-frontend/govuk/components/accordion/_accordion.scss +2 -208
  35. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +207 -0
  36. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +1 -1
  37. data/node_modules/govuk-frontend/govuk/components/back-link/_back-link.scss +2 -65
  38. data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +112 -0
  39. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_breadcrumbs.scss +2 -118
  40. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +138 -0
  41. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/macro-options.json +6 -0
  42. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/template.njk +12 -1
  43. data/node_modules/govuk-frontend/govuk/components/button/_button.scss +2 -284
  44. data/node_modules/govuk-frontend/govuk/components/button/_index.scss +280 -0
  45. data/node_modules/govuk-frontend/govuk/components/character-count/_character-count.scss +2 -31
  46. data/node_modules/govuk-frontend/govuk/components/character-count/_index.scss +28 -0
  47. data/node_modules/govuk-frontend/govuk/components/checkboxes/_checkboxes.scss +2 -308
  48. data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +304 -0
  49. data/node_modules/govuk-frontend/govuk/components/date-input/_date-input.scss +2 -30
  50. data/node_modules/govuk-frontend/govuk/components/date-input/_index.scss +26 -0
  51. data/node_modules/govuk-frontend/govuk/components/details/_details.scss +2 -88
  52. data/node_modules/govuk-frontend/govuk/components/details/_index.scss +84 -0
  53. data/node_modules/govuk-frontend/govuk/components/error-message/_error-message.scss +2 -15
  54. data/node_modules/govuk-frontend/govuk/components/error-message/_index.scss +11 -0
  55. data/node_modules/govuk-frontend/govuk/components/error-summary/_error-summary.scss +2 -59
  56. data/node_modules/govuk-frontend/govuk/components/error-summary/_index.scss +55 -0
  57. data/node_modules/govuk-frontend/govuk/components/fieldset/_fieldset.scss +2 -68
  58. data/node_modules/govuk-frontend/govuk/components/fieldset/_index.scss +64 -0
  59. data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +2 -81
  60. data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +77 -0
  61. data/node_modules/govuk-frontend/govuk/components/footer/_footer.scss +2 -244
  62. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +238 -0
  63. data/node_modules/govuk-frontend/govuk/components/header/_header.scss +2 -318
  64. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +312 -0
  65. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +7 -1
  66. data/node_modules/govuk-frontend/govuk/components/header/template.njk +2 -2
  67. data/node_modules/govuk-frontend/govuk/components/hint/_hint.scss +2 -50
  68. data/node_modules/govuk-frontend/govuk/components/hint/_index.scss +46 -0
  69. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +99 -0
  70. data/node_modules/govuk-frontend/govuk/components/input/_input.scss +2 -103
  71. data/node_modules/govuk-frontend/govuk/components/inset-text/_index.scss +24 -0
  72. data/node_modules/govuk-frontend/govuk/components/inset-text/_inset-text.scss +2 -28
  73. data/node_modules/govuk-frontend/govuk/components/label/_index.scss +41 -0
  74. data/node_modules/govuk-frontend/govuk/components/label/_label.scss +2 -45
  75. data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +40 -0
  76. data/node_modules/govuk-frontend/govuk/components/panel/_panel.scss +2 -44
  77. data/node_modules/govuk-frontend/govuk/components/phase-banner/_index.scss +27 -0
  78. data/node_modules/govuk-frontend/govuk/components/phase-banner/_phase-banner.scss +2 -31
  79. data/node_modules/govuk-frontend/govuk/components/radios/_index.scss +342 -0
  80. data/node_modules/govuk-frontend/govuk/components/radios/_radios.scss +2 -346
  81. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +53 -0
  82. data/node_modules/govuk-frontend/govuk/components/select/_select.scss +2 -57
  83. data/node_modules/govuk-frontend/govuk/components/skip-link/_index.scss +33 -0
  84. data/node_modules/govuk-frontend/govuk/components/skip-link/_skip-link.scss +2 -37
  85. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +153 -0
  86. data/node_modules/govuk-frontend/govuk/components/summary-list/_summary-list.scss +2 -157
  87. data/node_modules/govuk-frontend/govuk/components/table/_index.scss +50 -0
  88. data/node_modules/govuk-frontend/govuk/components/table/_table.scss +2 -54
  89. data/node_modules/govuk-frontend/govuk/components/tabs/_index.scss +138 -0
  90. data/node_modules/govuk-frontend/govuk/components/tabs/_tabs.scss +2 -142
  91. data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +87 -0
  92. data/node_modules/govuk-frontend/govuk/components/tag/_tag.scss +2 -91
  93. data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +51 -0
  94. data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +2 -55
  95. data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +56 -0
  96. data/node_modules/govuk-frontend/govuk/components/warning-text/_warning-text.scss +2 -60
  97. data/node_modules/govuk-frontend/govuk/core/_global-styles.scss +5 -3
  98. data/node_modules/govuk-frontend/govuk/core/_links.scss +5 -3
  99. data/node_modules/govuk-frontend/govuk/core/_lists.scss +17 -3
  100. data/node_modules/govuk-frontend/govuk/core/_section-break.scss +5 -3
  101. data/node_modules/govuk-frontend/govuk/core/_template.scss +5 -3
  102. data/node_modules/govuk-frontend/govuk/core/_typography.scss +5 -3
  103. data/node_modules/govuk-frontend/govuk/helpers/_clearfix.scss +1 -1
  104. data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +1 -1
  105. data/node_modules/govuk-frontend/govuk/helpers/_grid.scss +2 -1
  106. data/node_modules/govuk-frontend/govuk/helpers/_links.scss +1 -1
  107. data/node_modules/govuk-frontend/govuk/helpers/_media-queries.scss +1 -1
  108. data/node_modules/govuk-frontend/govuk/helpers/_shape-arrow.scss +1 -1
  109. data/node_modules/govuk-frontend/govuk/helpers/_spacing.scss +1 -1
  110. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +1 -1
  111. data/node_modules/govuk-frontend/govuk/helpers/_visually-hidden.scss +1 -1
  112. data/node_modules/govuk-frontend/govuk/objects/_form-group.scss +1 -3
  113. data/node_modules/govuk-frontend/govuk/objects/_grid.scss +1 -3
  114. data/node_modules/govuk-frontend/govuk/objects/_main-wrapper.scss +5 -3
  115. data/node_modules/govuk-frontend/govuk/objects/_width-container.scss +2 -4
  116. data/node_modules/govuk-frontend/govuk/overrides/_display.scss +5 -3
  117. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +5 -3
  118. data/node_modules/govuk-frontend/govuk/overrides/_typography.scss +5 -3
  119. data/node_modules/govuk-frontend/govuk/overrides/_width.scss +5 -3
  120. data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +1 -1
  121. data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +1 -1
  122. data/node_modules/govuk-frontend/govuk/tools/_font-url.scss +1 -1
  123. data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +1 -1
  124. data/node_modules/govuk-frontend/govuk/tools/_image-url.scss +1 -1
  125. data/node_modules/govuk-frontend/govuk/tools/_px-to-em.scss +1 -1
  126. data/node_modules/govuk-frontend/govuk/tools/_px-to-rem.scss +1 -1
  127. data/node_modules/govuk-frontend/package.json +21 -21
  128. metadata +49 -2
@@ -36,6 +36,12 @@
36
36
  "required": false,
37
37
  "description": "Classes to add to the breadcrumbs container."
38
38
  },
39
+ {
40
+ "name": "collapseOnMobile",
41
+ "type": "boolean",
42
+ "required": false,
43
+ "description": "When true, the breadcrumbs will collapse to the first and last item only on tablet breakpoint and below."
44
+ },
39
45
  {
40
46
  "name": "attributes",
41
47
  "type": "object",
@@ -1,4 +1,15 @@
1
- <div class="govuk-breadcrumbs{%- if params.classes %} {{ params.classes }}{% endif %}"{% for attribute, value in params.attributes %} {{attribute}}="{{value}}"{% endfor %}>
1
+ {# Set classes for this component #}
2
+ {%- set classNames = "govuk-breadcrumbs " -%}
3
+
4
+ {% if params.classes %}
5
+ {% set classNames = classNames + params.classes %}
6
+ {% endif -%}
7
+
8
+ {% if params.collapseOnMobile %}
9
+ {% set classNames = classNames + " govuk-breadcrumbs--collapse-on-mobile" %}
10
+ {% endif -%}
11
+
12
+ <div class="{{classNames}}"{% for attribute, value in params.attributes %} {{attribute}}="{{value}}"{% endfor %}>
2
13
  <ol class="govuk-breadcrumbs__list">
3
14
  {% for item in params.items %}
4
15
  {% if item.href %}
@@ -1,284 +1,2 @@
1
- @import "../../settings/all";
2
- @import "../../tools/all";
3
- @import "../../helpers/all";
4
-
5
- @include govuk-exports("govuk/component/button") {
6
- $govuk-button-colour: govuk-colour("green", $legacy: #00823b); // sass-lint:disable no-color-literals
7
- $govuk-button-hover-colour: govuk-shade($govuk-button-colour, 20%);
8
- $govuk-button-shadow-colour: govuk-shade($govuk-button-colour, 60%);
9
- $govuk-button-text-colour: govuk-colour("white");
10
-
11
- // Secondary button variables
12
- $govuk-secondary-button-colour: govuk-colour("light-grey", $legacy: "grey-3");
13
- $govuk-secondary-button-hover-colour: govuk-shade($govuk-secondary-button-colour, 10%);
14
- $govuk-secondary-button-shadow-colour: govuk-shade($govuk-secondary-button-colour, 40%);
15
- $govuk-secondary-button-text-colour: govuk-colour("black");
16
-
17
- // Warning button variables
18
- $govuk-warning-button-colour: govuk-colour("red");
19
- $govuk-warning-button-hover-colour: govuk-shade($govuk-warning-button-colour, 20%);
20
- $govuk-warning-button-shadow-colour: govuk-shade($govuk-warning-button-colour, 60%);
21
- $govuk-warning-button-text-colour: govuk-colour("white");
22
-
23
- // Because the shadow (s0) is visually 'part of' the button, we need to reduce
24
- // the height of the button to compensate by adjusting its padding (s1) and
25
- // increase the bottom margin to include it (s2).
26
- $button-shadow-size: $govuk-border-width-form-element;
27
-
28
- .govuk-button {
29
- @include govuk-font($size: 19, $line-height: 19px);
30
-
31
- box-sizing: border-box;
32
- display: inline-block;
33
- position: relative;
34
- width: 100%;
35
- margin-top: 0;
36
- @include govuk-responsive-margin(6, "bottom", $adjustment: $button-shadow-size); // s2
37
- padding: (govuk-spacing(2) - $govuk-border-width-form-element) govuk-spacing(2) (govuk-spacing(2) - $govuk-border-width-form-element - ($button-shadow-size / 2)); // s1
38
- border: $govuk-border-width-form-element solid transparent;
39
- border-radius: 0;
40
- color: $govuk-button-text-colour;
41
- background-color: $govuk-button-colour;
42
- box-shadow: 0 $button-shadow-size 0 $govuk-button-shadow-colour; // s0
43
- text-align: center;
44
- vertical-align: top;
45
- cursor: pointer;
46
- -webkit-appearance: none;
47
-
48
- @include govuk-if-ie8 {
49
- border-bottom: $button-shadow-size solid $govuk-button-shadow-colour;
50
- }
51
-
52
- @include govuk-media-query($from: tablet) {
53
- width: auto;
54
- }
55
-
56
- // Ensure that any global link styles are overridden
57
- &:link,
58
- &:visited,
59
- &:active,
60
- &:hover {
61
- color: $govuk-button-text-colour;
62
- text-decoration: none;
63
- }
64
-
65
- // Fix unwanted button padding in Firefox
66
- &::-moz-focus-inner {
67
- padding: 0;
68
- border: 0;
69
- }
70
-
71
- &:hover {
72
- background-color: $govuk-button-hover-colour;
73
- }
74
-
75
- &:active {
76
- // Bump the button down so it looks like its being pressed in
77
- top: $button-shadow-size;
78
-
79
- @include govuk-if-ie8 {
80
- border-bottom-width: 0;
81
- }
82
- }
83
-
84
- &:focus {
85
- border-color: $govuk-focus-colour;
86
- // When colours are overridden, for example when users have a dark mode,
87
- // backgrounds and box-shadows disappear, so we need to ensure there's a
88
- // transparent outline which will be set to a visible colour.
89
- // Since Internet Explorer 8 does not support box-shadow, we want to force the user-agent outlines
90
- @include govuk-not-ie8 {
91
- outline: $govuk-focus-width solid transparent;
92
- }
93
- // Since Internet Explorer does not support `:not()` we set a clearer focus style to match user-agent outlines.
94
- @include govuk-if-ie8 {
95
- color: $govuk-focus-text-colour;
96
- background-color: $govuk-focus-colour;
97
- }
98
- box-shadow: inset 0 0 0 1px $govuk-focus-colour;
99
- }
100
-
101
- // alphagov/govuk_template includes a specific a:link:focus selector
102
- // designed to make unvisited links a slightly darker blue when focussed, so
103
- // we need to override the text colour for that combination of selectors so
104
- // so that unvisited links styled as buttons do not end up with dark blue
105
- // text when focussed.
106
- @include govuk-compatibility(govuk_template) {
107
- &:link:focus {
108
- color: $govuk-button-text-colour;
109
- }
110
- }
111
-
112
- &:focus:not(:active):not(:hover) {
113
- border-color: $govuk-focus-colour;
114
- color: $govuk-focus-text-colour;
115
- background-color: $govuk-focus-colour;
116
- box-shadow: 0 2px 0 $govuk-focus-text-colour;
117
- }
118
-
119
- // The following adjustments do not work for <input type="button"> as
120
- // non-container elements cannot include pseudo elements (i.e. ::before).
121
-
122
- // Use a pseudo element to expand the click target area to include the
123
- // button's shadow as well, in case users try to click it.
124
- &::before {
125
- content: "";
126
- display: block;
127
-
128
- position: absolute;
129
-
130
- top: -$govuk-border-width-form-element;
131
- right: -$govuk-border-width-form-element;
132
- bottom: -($govuk-border-width-form-element + $button-shadow-size);
133
- left: -$govuk-border-width-form-element;
134
-
135
- background: transparent;
136
- }
137
-
138
- // When the button is active it is shifted down by $button-shadow-size to
139
- // denote a 'pressed' state. If the user happened to click at the very top
140
- // of the button, their mouse is no longer over the button (because it has
141
- // 'moved beneath them') and so the click event is not fired.
142
- //
143
- // This corrects that by shifting the top of the pseudo element so that it
144
- // continues to cover the area that the user originally clicked, which means
145
- // the click event is still fired.
146
- //
147
- // 🎉
148
- &:active::before {
149
- top: -($govuk-border-width-form-element + $button-shadow-size);
150
- }
151
- }
152
-
153
- .govuk-button--disabled,
154
- .govuk-button[disabled="disabled"],
155
- .govuk-button[disabled] {
156
- opacity: (.5);
157
-
158
- &:hover {
159
- background-color: $govuk-button-colour;
160
- cursor: default;
161
- }
162
-
163
- &:focus {
164
- outline: none;
165
- }
166
-
167
- &:active {
168
- top: 0;
169
- box-shadow: 0 $button-shadow-size 0 $govuk-button-shadow-colour; // s0
170
- @include govuk-if-ie8 {
171
- border-bottom: $button-shadow-size solid $govuk-button-shadow-colour; // s0
172
- }
173
- }
174
- }
175
-
176
- .govuk-button--secondary {
177
- background-color: $govuk-secondary-button-colour;
178
- box-shadow: 0 $button-shadow-size 0 $govuk-secondary-button-shadow-colour;
179
-
180
- &,
181
- &:link,
182
- &:visited,
183
- &:active,
184
- &:hover {
185
- color: $govuk-secondary-button-text-colour;
186
- }
187
-
188
- // alphagov/govuk_template includes a specific a:link:focus selector
189
- // designed to make unvisited links a slightly darker blue when focussed, so
190
- // we need to override the text colour for that combination of selectors so
191
- // so that unvisited links styled as buttons do not end up with dark blue
192
- // text when focussed.
193
- @include govuk-compatibility(govuk_template) {
194
- &:link:focus {
195
- color: $govuk-secondary-button-text-colour;
196
- }
197
- }
198
-
199
- &:hover {
200
- background-color: $govuk-secondary-button-hover-colour;
201
-
202
- &[disabled] {
203
- background-color: $govuk-secondary-button-colour;
204
- }
205
- }
206
- }
207
-
208
- .govuk-button--warning {
209
- background-color: $govuk-warning-button-colour;
210
- box-shadow: 0 $button-shadow-size 0 $govuk-warning-button-shadow-colour;
211
-
212
- &,
213
- &:link,
214
- &:visited,
215
- &:active,
216
- &:hover {
217
- color: $govuk-warning-button-text-colour;
218
- }
219
-
220
- // alphagov/govuk_template includes a specific a:link:focus selector
221
- // designed to make unvisited links a slightly darker blue when focussed, so
222
- // we need to override the text colour for that combination of selectors so
223
- // so that unvisited links styled as buttons do not end up with dark blue
224
- // text when focussed.
225
- @include govuk-compatibility(govuk_template) {
226
- &:link:focus {
227
- color: $govuk-warning-button-text-colour;
228
- }
229
- }
230
-
231
- &:hover {
232
- background-color: $govuk-warning-button-hover-colour;
233
-
234
- &[disabled] {
235
- background-color: $govuk-warning-button-colour;
236
- }
237
- }
238
- }
239
-
240
- .govuk-button--start {
241
- @include govuk-typography-weight-bold;
242
- @include govuk-typography-responsive($size: 24, $override-line-height: 1);
243
-
244
- display: -webkit-inline-box;
245
-
246
- display: -ms-inline-flexbox;
247
-
248
- display: inline-flex;
249
- min-height: auto;
250
-
251
- -webkit-box-pack: center;
252
-
253
- -ms-flex-pack: center;
254
-
255
- justify-content: center;
256
- }
257
-
258
- .govuk-button__start-icon {
259
- margin-left: govuk-spacing(1);
260
-
261
- @include govuk-media-query($from: desktop) {
262
- margin-left: govuk-spacing(2);
263
- }
264
- vertical-align: middle;
265
- -ms-flex-negative: 0;
266
- flex-shrink: 0;
267
- -ms-flex-item-align: center;
268
- align-self: center;
269
- }
270
-
271
- @if $govuk-use-legacy-font {
272
- // Begin adjustments for font baseline offset when using v1 of nta
273
- $offset: 2;
274
-
275
- .govuk-button {
276
- padding-top: (govuk-spacing(2) - $govuk-border-width-form-element - ($button-shadow-size / 2) + $offset); // s1
277
- padding-bottom: (govuk-spacing(2) - $govuk-border-width-form-element - ($button-shadow-size / 2) - $offset + 1); // s1
278
- }
279
-
280
- .govuk-button__start-icon {
281
- margin-top: -3px;
282
- }
283
- }
284
- }
1
+ @import "../../base";
2
+ @import "./index";
@@ -0,0 +1,280 @@
1
+ @include govuk-exports("govuk/component/button") {
2
+ $govuk-button-colour: govuk-colour("green", $legacy: #00823b); // sass-lint:disable no-color-literals
3
+ $govuk-button-hover-colour: govuk-shade($govuk-button-colour, 20%);
4
+ $govuk-button-shadow-colour: govuk-shade($govuk-button-colour, 60%);
5
+ $govuk-button-text-colour: govuk-colour("white");
6
+
7
+ // Secondary button variables
8
+ $govuk-secondary-button-colour: govuk-colour("light-grey", $legacy: "grey-3");
9
+ $govuk-secondary-button-hover-colour: govuk-shade($govuk-secondary-button-colour, 10%);
10
+ $govuk-secondary-button-shadow-colour: govuk-shade($govuk-secondary-button-colour, 40%);
11
+ $govuk-secondary-button-text-colour: govuk-colour("black");
12
+
13
+ // Warning button variables
14
+ $govuk-warning-button-colour: govuk-colour("red");
15
+ $govuk-warning-button-hover-colour: govuk-shade($govuk-warning-button-colour, 20%);
16
+ $govuk-warning-button-shadow-colour: govuk-shade($govuk-warning-button-colour, 60%);
17
+ $govuk-warning-button-text-colour: govuk-colour("white");
18
+
19
+ // Because the shadow (s0) is visually 'part of' the button, we need to reduce
20
+ // the height of the button to compensate by adjusting its padding (s1) and
21
+ // increase the bottom margin to include it (s2).
22
+ $button-shadow-size: $govuk-border-width-form-element;
23
+
24
+ .govuk-button {
25
+ @include govuk-font($size: 19, $line-height: 19px);
26
+
27
+ box-sizing: border-box;
28
+ display: inline-block;
29
+ position: relative;
30
+ width: 100%;
31
+ margin-top: 0;
32
+ @include govuk-responsive-margin(6, "bottom", $adjustment: $button-shadow-size); // s2
33
+ padding: (govuk-spacing(2) - $govuk-border-width-form-element) govuk-spacing(2) (govuk-spacing(2) - $govuk-border-width-form-element - ($button-shadow-size / 2)); // s1
34
+ border: $govuk-border-width-form-element solid transparent;
35
+ border-radius: 0;
36
+ color: $govuk-button-text-colour;
37
+ background-color: $govuk-button-colour;
38
+ box-shadow: 0 $button-shadow-size 0 $govuk-button-shadow-colour; // s0
39
+ text-align: center;
40
+ vertical-align: top;
41
+ cursor: pointer;
42
+ -webkit-appearance: none;
43
+
44
+ @include govuk-if-ie8 {
45
+ border-bottom: $button-shadow-size solid $govuk-button-shadow-colour;
46
+ }
47
+
48
+ @include govuk-media-query($from: tablet) {
49
+ width: auto;
50
+ }
51
+
52
+ // Ensure that any global link styles are overridden
53
+ &:link,
54
+ &:visited,
55
+ &:active,
56
+ &:hover {
57
+ color: $govuk-button-text-colour;
58
+ text-decoration: none;
59
+ }
60
+
61
+ // Fix unwanted button padding in Firefox
62
+ &::-moz-focus-inner {
63
+ padding: 0;
64
+ border: 0;
65
+ }
66
+
67
+ &:hover {
68
+ background-color: $govuk-button-hover-colour;
69
+ }
70
+
71
+ &:active {
72
+ // Bump the button down so it looks like its being pressed in
73
+ top: $button-shadow-size;
74
+
75
+ @include govuk-if-ie8 {
76
+ border-bottom-width: 0;
77
+ }
78
+ }
79
+
80
+ &:focus {
81
+ border-color: $govuk-focus-colour;
82
+ // When colours are overridden, for example when users have a dark mode,
83
+ // backgrounds and box-shadows disappear, so we need to ensure there's a
84
+ // transparent outline which will be set to a visible colour.
85
+ // Since Internet Explorer 8 does not support box-shadow, we want to force the user-agent outlines
86
+ @include govuk-not-ie8 {
87
+ outline: $govuk-focus-width solid transparent;
88
+ }
89
+ // Since Internet Explorer does not support `:not()` we set a clearer focus style to match user-agent outlines.
90
+ @include govuk-if-ie8 {
91
+ color: $govuk-focus-text-colour;
92
+ background-color: $govuk-focus-colour;
93
+ }
94
+ box-shadow: inset 0 0 0 1px $govuk-focus-colour;
95
+ }
96
+
97
+ // alphagov/govuk_template includes a specific a:link:focus selector
98
+ // designed to make unvisited links a slightly darker blue when focussed, so
99
+ // we need to override the text colour for that combination of selectors so
100
+ // so that unvisited links styled as buttons do not end up with dark blue
101
+ // text when focussed.
102
+ @include govuk-compatibility(govuk_template) {
103
+ &:link:focus {
104
+ color: $govuk-button-text-colour;
105
+ }
106
+ }
107
+
108
+ &:focus:not(:active):not(:hover) {
109
+ border-color: $govuk-focus-colour;
110
+ color: $govuk-focus-text-colour;
111
+ background-color: $govuk-focus-colour;
112
+ box-shadow: 0 2px 0 $govuk-focus-text-colour;
113
+ }
114
+
115
+ // The following adjustments do not work for <input type="button"> as
116
+ // non-container elements cannot include pseudo elements (i.e. ::before).
117
+
118
+ // Use a pseudo element to expand the click target area to include the
119
+ // button's shadow as well, in case users try to click it.
120
+ &::before {
121
+ content: "";
122
+ display: block;
123
+
124
+ position: absolute;
125
+
126
+ top: -$govuk-border-width-form-element;
127
+ right: -$govuk-border-width-form-element;
128
+ bottom: -($govuk-border-width-form-element + $button-shadow-size);
129
+ left: -$govuk-border-width-form-element;
130
+
131
+ background: transparent;
132
+ }
133
+
134
+ // When the button is active it is shifted down by $button-shadow-size to
135
+ // denote a 'pressed' state. If the user happened to click at the very top
136
+ // of the button, their mouse is no longer over the button (because it has
137
+ // 'moved beneath them') and so the click event is not fired.
138
+ //
139
+ // This corrects that by shifting the top of the pseudo element so that it
140
+ // continues to cover the area that the user originally clicked, which means
141
+ // the click event is still fired.
142
+ //
143
+ // 🎉
144
+ &:active::before {
145
+ top: -($govuk-border-width-form-element + $button-shadow-size);
146
+ }
147
+ }
148
+
149
+ .govuk-button--disabled,
150
+ .govuk-button[disabled="disabled"],
151
+ .govuk-button[disabled] {
152
+ opacity: (.5);
153
+
154
+ &:hover {
155
+ background-color: $govuk-button-colour;
156
+ cursor: default;
157
+ }
158
+
159
+ &:focus {
160
+ outline: none;
161
+ }
162
+
163
+ &:active {
164
+ top: 0;
165
+ box-shadow: 0 $button-shadow-size 0 $govuk-button-shadow-colour; // s0
166
+ @include govuk-if-ie8 {
167
+ border-bottom: $button-shadow-size solid $govuk-button-shadow-colour; // s0
168
+ }
169
+ }
170
+ }
171
+
172
+ .govuk-button--secondary {
173
+ background-color: $govuk-secondary-button-colour;
174
+ box-shadow: 0 $button-shadow-size 0 $govuk-secondary-button-shadow-colour;
175
+
176
+ &,
177
+ &:link,
178
+ &:visited,
179
+ &:active,
180
+ &:hover {
181
+ color: $govuk-secondary-button-text-colour;
182
+ }
183
+
184
+ // alphagov/govuk_template includes a specific a:link:focus selector
185
+ // designed to make unvisited links a slightly darker blue when focussed, so
186
+ // we need to override the text colour for that combination of selectors so
187
+ // so that unvisited links styled as buttons do not end up with dark blue
188
+ // text when focussed.
189
+ @include govuk-compatibility(govuk_template) {
190
+ &:link:focus {
191
+ color: $govuk-secondary-button-text-colour;
192
+ }
193
+ }
194
+
195
+ &:hover {
196
+ background-color: $govuk-secondary-button-hover-colour;
197
+
198
+ &[disabled] {
199
+ background-color: $govuk-secondary-button-colour;
200
+ }
201
+ }
202
+ }
203
+
204
+ .govuk-button--warning {
205
+ background-color: $govuk-warning-button-colour;
206
+ box-shadow: 0 $button-shadow-size 0 $govuk-warning-button-shadow-colour;
207
+
208
+ &,
209
+ &:link,
210
+ &:visited,
211
+ &:active,
212
+ &:hover {
213
+ color: $govuk-warning-button-text-colour;
214
+ }
215
+
216
+ // alphagov/govuk_template includes a specific a:link:focus selector
217
+ // designed to make unvisited links a slightly darker blue when focussed, so
218
+ // we need to override the text colour for that combination of selectors so
219
+ // so that unvisited links styled as buttons do not end up with dark blue
220
+ // text when focussed.
221
+ @include govuk-compatibility(govuk_template) {
222
+ &:link:focus {
223
+ color: $govuk-warning-button-text-colour;
224
+ }
225
+ }
226
+
227
+ &:hover {
228
+ background-color: $govuk-warning-button-hover-colour;
229
+
230
+ &[disabled] {
231
+ background-color: $govuk-warning-button-colour;
232
+ }
233
+ }
234
+ }
235
+
236
+ .govuk-button--start {
237
+ @include govuk-typography-weight-bold;
238
+ @include govuk-typography-responsive($size: 24, $override-line-height: 1);
239
+
240
+ display: -webkit-inline-box;
241
+
242
+ display: -ms-inline-flexbox;
243
+
244
+ display: inline-flex;
245
+ min-height: auto;
246
+
247
+ -webkit-box-pack: center;
248
+
249
+ -ms-flex-pack: center;
250
+
251
+ justify-content: center;
252
+ }
253
+
254
+ .govuk-button__start-icon {
255
+ margin-left: govuk-spacing(1);
256
+
257
+ @include govuk-media-query($from: desktop) {
258
+ margin-left: govuk-spacing(2);
259
+ }
260
+ vertical-align: middle;
261
+ -ms-flex-negative: 0;
262
+ flex-shrink: 0;
263
+ -ms-flex-item-align: center;
264
+ align-self: center;
265
+ }
266
+
267
+ @if $govuk-use-legacy-font {
268
+ // Begin adjustments for font baseline offset when using v1 of nta
269
+ $offset: 2;
270
+
271
+ .govuk-button {
272
+ padding-top: (govuk-spacing(2) - $govuk-border-width-form-element - ($button-shadow-size / 2) + $offset); // s1
273
+ padding-bottom: (govuk-spacing(2) - $govuk-border-width-form-element - ($button-shadow-size / 2) - $offset + 1); // s1
274
+ }
275
+
276
+ .govuk-button__start-icon {
277
+ margin-top: -3px;
278
+ }
279
+ }
280
+ }