govuk_publishing_components 21.54.0 → 21.55.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) 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/assets/stylesheets/govuk_publishing_components/components/_feedback.scss +1 -4
  11. data/app/controllers/govuk_publishing_components/component_guide_controller.rb +47 -25
  12. data/app/views/govuk_publishing_components/components/_action_link.html.erb +23 -3
  13. data/app/views/govuk_publishing_components/components/docs/action_link.yml +43 -15
  14. data/lib/govuk_publishing_components/presenters/breadcrumb_selector.rb +7 -7
  15. data/lib/govuk_publishing_components/presenters/contextual_navigation.rb +1 -1
  16. data/lib/govuk_publishing_components/presenters/machine_readable/faq_page_schema.rb +7 -6
  17. data/lib/govuk_publishing_components/presenters/machine_readable/html_publication_schema.rb +77 -0
  18. data/lib/govuk_publishing_components/presenters/schema_org.rb +24 -16
  19. data/lib/govuk_publishing_components/version.rb +1 -1
  20. data/node_modules/govuk-frontend/README.md +6 -6
  21. data/node_modules/govuk-frontend/govuk/_base.scss +3 -0
  22. data/node_modules/govuk-frontend/govuk/all.js +1 -1
  23. data/node_modules/govuk-frontend/govuk/all.scss +1 -3
  24. data/node_modules/govuk-frontend/govuk/components/_all.scss +31 -29
  25. data/node_modules/govuk-frontend/govuk/components/accordion/_accordion.scss +2 -208
  26. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +207 -0
  27. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +1 -1
  28. data/node_modules/govuk-frontend/govuk/components/back-link/_back-link.scss +2 -65
  29. data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +112 -0
  30. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_breadcrumbs.scss +2 -118
  31. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +138 -0
  32. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/macro-options.json +6 -0
  33. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/template.njk +12 -1
  34. data/node_modules/govuk-frontend/govuk/components/button/_button.scss +2 -284
  35. data/node_modules/govuk-frontend/govuk/components/button/_index.scss +280 -0
  36. data/node_modules/govuk-frontend/govuk/components/character-count/_character-count.scss +2 -31
  37. data/node_modules/govuk-frontend/govuk/components/character-count/_index.scss +28 -0
  38. data/node_modules/govuk-frontend/govuk/components/checkboxes/_checkboxes.scss +2 -308
  39. data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +304 -0
  40. data/node_modules/govuk-frontend/govuk/components/date-input/_date-input.scss +2 -30
  41. data/node_modules/govuk-frontend/govuk/components/date-input/_index.scss +26 -0
  42. data/node_modules/govuk-frontend/govuk/components/details/_details.scss +2 -88
  43. data/node_modules/govuk-frontend/govuk/components/details/_index.scss +84 -0
  44. data/node_modules/govuk-frontend/govuk/components/error-message/_error-message.scss +2 -15
  45. data/node_modules/govuk-frontend/govuk/components/error-message/_index.scss +11 -0
  46. data/node_modules/govuk-frontend/govuk/components/error-summary/_error-summary.scss +2 -59
  47. data/node_modules/govuk-frontend/govuk/components/error-summary/_index.scss +55 -0
  48. data/node_modules/govuk-frontend/govuk/components/fieldset/_fieldset.scss +2 -68
  49. data/node_modules/govuk-frontend/govuk/components/fieldset/_index.scss +64 -0
  50. data/node_modules/govuk-frontend/govuk/components/file-upload/_file-upload.scss +2 -81
  51. data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +77 -0
  52. data/node_modules/govuk-frontend/govuk/components/footer/_footer.scss +2 -244
  53. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +238 -0
  54. data/node_modules/govuk-frontend/govuk/components/header/_header.scss +2 -318
  55. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +312 -0
  56. data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +7 -1
  57. data/node_modules/govuk-frontend/govuk/components/header/template.njk +2 -2
  58. data/node_modules/govuk-frontend/govuk/components/hint/_hint.scss +2 -50
  59. data/node_modules/govuk-frontend/govuk/components/hint/_index.scss +46 -0
  60. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +99 -0
  61. data/node_modules/govuk-frontend/govuk/components/input/_input.scss +2 -103
  62. data/node_modules/govuk-frontend/govuk/components/inset-text/_index.scss +24 -0
  63. data/node_modules/govuk-frontend/govuk/components/inset-text/_inset-text.scss +2 -28
  64. data/node_modules/govuk-frontend/govuk/components/label/_index.scss +41 -0
  65. data/node_modules/govuk-frontend/govuk/components/label/_label.scss +2 -45
  66. data/node_modules/govuk-frontend/govuk/components/panel/_index.scss +40 -0
  67. data/node_modules/govuk-frontend/govuk/components/panel/_panel.scss +2 -44
  68. data/node_modules/govuk-frontend/govuk/components/phase-banner/_index.scss +27 -0
  69. data/node_modules/govuk-frontend/govuk/components/phase-banner/_phase-banner.scss +2 -31
  70. data/node_modules/govuk-frontend/govuk/components/radios/_index.scss +342 -0
  71. data/node_modules/govuk-frontend/govuk/components/radios/_radios.scss +2 -346
  72. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +53 -0
  73. data/node_modules/govuk-frontend/govuk/components/select/_select.scss +2 -57
  74. data/node_modules/govuk-frontend/govuk/components/skip-link/_index.scss +33 -0
  75. data/node_modules/govuk-frontend/govuk/components/skip-link/_skip-link.scss +2 -37
  76. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +153 -0
  77. data/node_modules/govuk-frontend/govuk/components/summary-list/_summary-list.scss +2 -157
  78. data/node_modules/govuk-frontend/govuk/components/table/_index.scss +50 -0
  79. data/node_modules/govuk-frontend/govuk/components/table/_table.scss +2 -54
  80. data/node_modules/govuk-frontend/govuk/components/tabs/_index.scss +138 -0
  81. data/node_modules/govuk-frontend/govuk/components/tabs/_tabs.scss +2 -142
  82. data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +87 -0
  83. data/node_modules/govuk-frontend/govuk/components/tag/_tag.scss +2 -91
  84. data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +51 -0
  85. data/node_modules/govuk-frontend/govuk/components/textarea/_textarea.scss +2 -55
  86. data/node_modules/govuk-frontend/govuk/components/warning-text/_index.scss +56 -0
  87. data/node_modules/govuk-frontend/govuk/components/warning-text/_warning-text.scss +2 -60
  88. data/node_modules/govuk-frontend/govuk/core/_global-styles.scss +5 -3
  89. data/node_modules/govuk-frontend/govuk/core/_links.scss +5 -3
  90. data/node_modules/govuk-frontend/govuk/core/_lists.scss +17 -3
  91. data/node_modules/govuk-frontend/govuk/core/_section-break.scss +5 -3
  92. data/node_modules/govuk-frontend/govuk/core/_template.scss +5 -3
  93. data/node_modules/govuk-frontend/govuk/core/_typography.scss +5 -3
  94. data/node_modules/govuk-frontend/govuk/helpers/_clearfix.scss +1 -1
  95. data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +1 -1
  96. data/node_modules/govuk-frontend/govuk/helpers/_grid.scss +2 -1
  97. data/node_modules/govuk-frontend/govuk/helpers/_links.scss +1 -1
  98. data/node_modules/govuk-frontend/govuk/helpers/_media-queries.scss +1 -1
  99. data/node_modules/govuk-frontend/govuk/helpers/_shape-arrow.scss +1 -1
  100. data/node_modules/govuk-frontend/govuk/helpers/_spacing.scss +1 -1
  101. data/node_modules/govuk-frontend/govuk/helpers/_typography.scss +1 -1
  102. data/node_modules/govuk-frontend/govuk/helpers/_visually-hidden.scss +1 -1
  103. data/node_modules/govuk-frontend/govuk/objects/_form-group.scss +1 -3
  104. data/node_modules/govuk-frontend/govuk/objects/_grid.scss +1 -3
  105. data/node_modules/govuk-frontend/govuk/objects/_main-wrapper.scss +5 -3
  106. data/node_modules/govuk-frontend/govuk/objects/_width-container.scss +2 -4
  107. data/node_modules/govuk-frontend/govuk/overrides/_display.scss +5 -3
  108. data/node_modules/govuk-frontend/govuk/overrides/_spacing.scss +5 -3
  109. data/node_modules/govuk-frontend/govuk/overrides/_typography.scss +5 -3
  110. data/node_modules/govuk-frontend/govuk/overrides/_width.scss +5 -3
  111. data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +1 -1
  112. data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +1 -1
  113. data/node_modules/govuk-frontend/govuk/tools/_font-url.scss +1 -1
  114. data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +1 -1
  115. data/node_modules/govuk-frontend/govuk/tools/_image-url.scss +1 -1
  116. data/node_modules/govuk-frontend/govuk/tools/_px-to-em.scss +1 -1
  117. data/node_modules/govuk-frontend/govuk/tools/_px-to-rem.scss +1 -1
  118. data/node_modules/govuk-frontend/package.json +21 -21
  119. metadata +49 -2
@@ -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
+ }
@@ -1,31 +1,2 @@
1
- @import "../../settings/all";
2
- @import "../../tools/all";
3
- @import "../../helpers/all";
4
-
5
- @import "../error-message/error-message";
6
- @import "../hint/hint";
7
- @import "../label/label";
8
-
9
- @include govuk-exports("govuk/component/character-count") {
10
- .govuk-character-count {
11
- @include govuk-responsive-margin(6, "bottom");
12
-
13
- .govuk-form-group,
14
- .govuk-textarea {
15
- margin-bottom: govuk-spacing(1);
16
- }
17
-
18
- .govuk-textarea--error {
19
- padding: govuk-spacing(1) - 2; // Stop a "jump" when width of border changes
20
- }
21
- }
22
-
23
- .govuk-character-count__message {
24
- margin-top: 0;
25
- margin-bottom: 0;
26
- }
27
-
28
- .govuk-character-count__message--disabled {
29
- visibility: hidden;
30
- }
31
- }
1
+ @import "../../base";
2
+ @import "./index";
@@ -0,0 +1,28 @@
1
+ @import "../error-message/index";
2
+ @import "../hint/index";
3
+ @import "../label/index";
4
+ @import "../textarea/index";
5
+
6
+ @include govuk-exports("govuk/component/character-count") {
7
+ .govuk-character-count {
8
+ @include govuk-responsive-margin(6, "bottom");
9
+
10
+ .govuk-form-group,
11
+ .govuk-textarea {
12
+ margin-bottom: govuk-spacing(1);
13
+ }
14
+
15
+ .govuk-textarea--error {
16
+ padding: govuk-spacing(1) - 2; // Stop a "jump" when width of border changes
17
+ }
18
+ }
19
+
20
+ .govuk-character-count__message {
21
+ margin-top: 0;
22
+ margin-bottom: 0;
23
+ }
24
+
25
+ .govuk-character-count__message--disabled {
26
+ visibility: hidden;
27
+ }
28
+ }
@@ -1,308 +1,2 @@
1
- @import "../../settings/all";
2
- @import "../../tools/all";
3
- @import "../../helpers/all";
4
-
5
- @import "../error-message/error-message";
6
- @import "../fieldset/fieldset";
7
- @import "../hint/hint";
8
- @import "../label/label";
9
-
10
- @include govuk-exports("govuk/component/checkboxes") {
11
-
12
- $govuk-touch-target-size: 44px;
13
- $govuk-checkboxes-size: 40px;
14
- $govuk-small-checkboxes-size: 24px;
15
- $govuk-checkboxes-label-padding-left-right: govuk-spacing(3);
16
-
17
- .govuk-checkboxes__item {
18
- @include govuk-font($size: 19);
19
-
20
- display: block;
21
- position: relative;
22
-
23
- min-height: $govuk-checkboxes-size;
24
-
25
- margin-bottom: govuk-spacing(2);
26
- padding-left: $govuk-checkboxes-size;
27
-
28
- clear: left;
29
- }
30
-
31
- .govuk-checkboxes__item:last-child,
32
- .govuk-checkboxes__item:last-of-type {
33
- margin-bottom: 0;
34
- }
35
-
36
- .govuk-checkboxes__input {
37
- $input-offset: ($govuk-touch-target-size - $govuk-checkboxes-size) / 2;
38
-
39
- cursor: pointer;
40
-
41
- // IE8 doesn’t support pseudo-elements, so we don’t want to hide native
42
- // elements there.
43
- @include govuk-not-ie8 {
44
- position: absolute;
45
-
46
- z-index: 1;
47
- top: $input-offset * -1;
48
- left: $input-offset * -1;
49
-
50
- width: $govuk-touch-target-size;
51
- height: $govuk-touch-target-size;
52
- margin: 0;
53
-
54
- opacity: 0;
55
- }
56
-
57
- @include govuk-if-ie8 {
58
- margin-top: 10px;
59
- margin-right: $govuk-checkboxes-size / -2;
60
- margin-left: $govuk-checkboxes-size / -2;
61
- float: left;
62
-
63
- // add focus outline to input
64
- &:focus {
65
- outline: $govuk-focus-width solid $govuk-focus-colour;
66
- }
67
- }
68
- }
69
-
70
- .govuk-checkboxes__label {
71
- display: inline-block;
72
- margin-bottom: 0;
73
- padding: 8px $govuk-checkboxes-label-padding-left-right govuk-spacing(1);
74
- cursor: pointer;
75
- // remove 300ms pause on mobile
76
- -ms-touch-action: manipulation;
77
- touch-action: manipulation;
78
- }
79
-
80
- // [ ] Check box
81
- .govuk-checkboxes__label::before {
82
- content: "";
83
- box-sizing: border-box;
84
- position: absolute;
85
- top: 0;
86
- left: 0;
87
- width: $govuk-checkboxes-size;
88
- height: $govuk-checkboxes-size;
89
- border: $govuk-border-width-form-element solid currentColor;
90
- background: transparent;
91
- }
92
-
93
- // ✔ Check mark
94
- //
95
- // The check mark is a box with a border on the left and bottom side (└──),
96
- // rotated 45 degrees
97
- .govuk-checkboxes__label::after {
98
- content: "";
99
-
100
- position: absolute;
101
- top: 11px;
102
- left: 9px;
103
- width: 18px;
104
- height: 7px;
105
-
106
- -webkit-transform: rotate(-45deg);
107
-
108
- -ms-transform: rotate(-45deg);
109
-
110
- transform: rotate(-45deg);
111
- border: solid;
112
- border-width: 0 0 $govuk-border-width $govuk-border-width;
113
- // Fix bug in IE11 caused by transform rotate (-45deg).
114
- // See: alphagov/govuk_elements/issues/518
115
- border-top-color: transparent;
116
-
117
- opacity: 0;
118
-
119
- background: transparent;
120
- }
121
-
122
- .govuk-checkboxes__hint {
123
- display: block;
124
- padding-right: $govuk-checkboxes-label-padding-left-right;
125
- padding-left: $govuk-checkboxes-label-padding-left-right;
126
- }
127
-
128
- // Focused state
129
- .govuk-checkboxes__input:focus + .govuk-checkboxes__label::before {
130
- border-width: 4px;
131
- box-shadow: 0 0 0 $govuk-focus-width $govuk-focus-colour;
132
- }
133
-
134
- // Selected state
135
- .govuk-checkboxes__input:checked + .govuk-checkboxes__label::after {
136
- opacity: 1;
137
- }
138
-
139
- // Disabled state
140
- .govuk-checkboxes__input:disabled,
141
- .govuk-checkboxes__input:disabled + .govuk-checkboxes__label {
142
- cursor: default;
143
- }
144
-
145
- .govuk-checkboxes__input:disabled + .govuk-checkboxes__label {
146
- opacity: .5;
147
- }
148
-
149
- // =========================================================
150
- // Conditional reveals
151
- // =========================================================
152
-
153
- // The narrow border is used in the conditional reveals because the border has
154
- // to be an even number in order to be centred under the 40px checkbox or radio.
155
- $conditional-border-width: $govuk-border-width-narrow;
156
- // Calculate the amount of padding needed to keep the border centered against the checkbox.
157
- $conditional-border-padding: ($govuk-checkboxes-size / 2) - ($conditional-border-width / 2);
158
- // Move the border centered with the checkbox
159
- $conditional-margin-left: $conditional-border-padding;
160
- // Move the contents of the conditional inline with the label
161
- $conditional-padding-left: $conditional-border-padding + $govuk-checkboxes-label-padding-left-right;
162
-
163
- .govuk-checkboxes__conditional {
164
- @include govuk-responsive-margin(4, "bottom");
165
- margin-left: $conditional-margin-left;
166
- padding-left: $conditional-padding-left;
167
- border-left: $conditional-border-width solid $govuk-border-colour;
168
-
169
- .js-enabled &--hidden {
170
- display: none;
171
- }
172
-
173
- & > :last-child {
174
- margin-bottom: 0;
175
- }
176
- }
177
-
178
- // =========================================================
179
- // Small checkboxes
180
- // =========================================================
181
-
182
- .govuk-checkboxes--small {
183
-
184
- $input-offset: ($govuk-touch-target-size - $govuk-small-checkboxes-size) / 2;
185
- $label-offset: $govuk-touch-target-size - $input-offset;
186
-
187
- .govuk-checkboxes__item {
188
- @include govuk-clearfix;
189
- min-height: 0;
190
- margin-bottom: 0;
191
- padding-left: $label-offset;
192
- float: left;
193
- }
194
-
195
- // Shift the touch target into the left margin so that the visible edge of
196
- // the control is aligned
197
- //
198
- // ┆What colours do you like?
199
- // ┌┆───┐
200
- // │┆[] │ Purple
201
- // └┆▲──┘
202
- // ▲┆└─ Check box pseudo element, aligned with margin
203
- // └─── Touch target (invisible input), shifted into the margin
204
- .govuk-checkboxes__input {
205
- @include govuk-not-ie8 {
206
- left: $input-offset * -1;
207
- }
208
-
209
- @include govuk-if-ie8 {
210
- margin-left: $govuk-small-checkboxes-size * -1;
211
- }
212
- }
213
-
214
- // Adjust the size and position of the label.
215
- //
216
- // Unlike larger checkboxes, we also have to float the label in order to
217
- // 'shrink' it, preventing the hover state from kicking in across the full
218
- // width of the parent element.
219
- .govuk-checkboxes__label {
220
- margin-top: -2px;
221
- padding: 13px govuk-spacing(3) 13px 1px;
222
- float: left;
223
-
224
- @include govuk-media-query($from: tablet) {
225
- padding: 11px govuk-spacing(3) 10px 1px;
226
- }
227
- }
228
-
229
- // [ ] Check box
230
- //
231
- // Reduce the size of the check box [1], vertically center it within the
232
- // touch target [2]
233
- .govuk-checkboxes__label::before {
234
- top: $input-offset - $govuk-border-width-form-element; // 2
235
- width: $govuk-small-checkboxes-size; // 1
236
- height: $govuk-small-checkboxes-size; // 1
237
- }
238
-
239
- // ✔ Check mark
240
- //
241
- // Reduce the size of the check mark and re-align within the checkbox
242
- .govuk-checkboxes__label::after {
243
- top: 15px;
244
- left: 6px;
245
- width: 9px;
246
- height: 3.5px;
247
- border-width: 0 0 3px 3px;
248
- }
249
-
250
- // Fix position of hint with small checkboxes
251
- //
252
- // Do not use hints with small checkboxes – because they're within the input
253
- // wrapper they trigger the hover state, but clicking them doesn't actually
254
- // activate the control.
255
- //
256
- // (If you do use them, they won't look completely broken... but seriously,
257
- // don't use them)
258
- .govuk-checkboxes__hint {
259
- padding: 0;
260
- clear: both;
261
- }
262
-
263
- // Align conditional reveals with small checkboxes
264
- .govuk-checkboxes__conditional {
265
- $margin-left: ($govuk-small-checkboxes-size / 2) - ($conditional-border-width / 2);
266
- margin-left: $margin-left;
267
- padding-left: $label-offset - ($margin-left + $conditional-border-width);
268
- clear: both;
269
- }
270
-
271
- // Hover state for small checkboxes.
272
- //
273
- // We use a hover state for small checkboxes because the touch target size
274
- // is so much larger than their visible size, and so we need to provide
275
- // feedback to the user as to which checkbox they will select when their
276
- // cursor is outside of the visible area.
277
- .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label::before {
278
- box-shadow: 0 0 0 $govuk-hover-width $govuk-hover-colour;
279
- }
280
-
281
- // Because we've overridden the border-shadow provided by the focus state,
282
- // we need to redefine that too.
283
- //
284
- // We use two box shadows, one that restores the original focus state [1]
285
- // and another that then applies the hover state [2].
286
- .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label::before {
287
- // sass-lint:disable indentation
288
- box-shadow: 0 0 0 $govuk-focus-width $govuk-focus-colour, // 1
289
- 0 0 0 $govuk-hover-width $govuk-hover-colour; // 2
290
- }
291
-
292
- // For devices that explicitly don't support hover, don't provide a hover
293
- // state (e.g. on touch devices like iOS).
294
- //
295
- // We can't use `@media (hover: hover)` because we wouldn't get the hover
296
- // state in browsers that don't support `@media (hover)` (like Internet
297
- // Explorer) – so we have to 'undo' the hover state instead.
298
- @media (hover: none), (pointer: coarse) {
299
- .govuk-checkboxes__item:hover .govuk-checkboxes__input:not(:disabled) + .govuk-checkboxes__label::before {
300
- box-shadow: initial;
301
- }
302
-
303
- .govuk-checkboxes__item:hover .govuk-checkboxes__input:focus + .govuk-checkboxes__label::before {
304
- box-shadow: 0 0 0 $govuk-focus-width $govuk-focus-colour;
305
- }
306
- }
307
- }
308
- }
1
+ @import "../../base";
2
+ @import "./index";