@nationalarchives/frontend 0.32.0 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. package/nationalarchives/all+analytics.js +1 -1
  2. package/nationalarchives/all+analytics.js.map +1 -1
  3. package/nationalarchives/all.css +1 -1
  4. package/nationalarchives/all.css.map +1 -1
  5. package/nationalarchives/all.js +1 -1
  6. package/nationalarchives/all.js.map +1 -1
  7. package/nationalarchives/analytics.js.map +1 -1
  8. package/nationalarchives/components/accordion/accordion.css +1 -1
  9. package/nationalarchives/components/accordion/accordion.css.map +1 -1
  10. package/nationalarchives/components/accordion/accordion.js +1 -1
  11. package/nationalarchives/components/accordion/accordion.js.map +1 -1
  12. package/nationalarchives/components/back-link/back-link.css +1 -1
  13. package/nationalarchives/components/back-link/back-link.css.map +1 -1
  14. package/nationalarchives/components/breadcrumbs/breadcrumbs.css +1 -1
  15. package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
  16. package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -1
  17. package/nationalarchives/components/button/button.css +1 -1
  18. package/nationalarchives/components/button/button.css.map +1 -1
  19. package/nationalarchives/components/card/card.css +1 -1
  20. package/nationalarchives/components/card/card.css.map +1 -1
  21. package/nationalarchives/components/checkboxes/checkboxes.css +1 -1
  22. package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -1
  23. package/nationalarchives/components/compound-filters/compound-filters.css +1 -1
  24. package/nationalarchives/components/compound-filters/compound-filters.css.map +1 -1
  25. package/nationalarchives/components/cookie-banner/cookie-banner.css +1 -1
  26. package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -1
  27. package/nationalarchives/components/cookie-banner/macro-options.json +2 -1
  28. package/nationalarchives/components/date-input/date-input.css +1 -1
  29. package/nationalarchives/components/date-input/date-input.css.map +1 -1
  30. package/nationalarchives/components/date-input/date-input.js.map +1 -1
  31. package/nationalarchives/components/date-search/date-search.css +1 -1
  32. package/nationalarchives/components/date-search/date-search.css.map +1 -1
  33. package/nationalarchives/components/details/details.css +1 -1
  34. package/nationalarchives/components/details/details.css.map +1 -1
  35. package/nationalarchives/components/error-summary/error-summary.css +1 -1
  36. package/nationalarchives/components/error-summary/error-summary.css.map +1 -1
  37. package/nationalarchives/components/error-summary/error-summary.js.map +1 -1
  38. package/nationalarchives/components/fieldset/fieldset.css +1 -1
  39. package/nationalarchives/components/fieldset/fieldset.css.map +1 -1
  40. package/nationalarchives/components/file-input/file-input.css +1 -1
  41. package/nationalarchives/components/file-input/file-input.css.map +1 -1
  42. package/nationalarchives/components/file-input/file-input.js.map +1 -1
  43. package/nationalarchives/components/files-list/files-list.css +1 -1
  44. package/nationalarchives/components/files-list/files-list.css.map +1 -1
  45. package/nationalarchives/components/footer/fixtures.json +20 -2
  46. package/nationalarchives/components/footer/footer.css +1 -1
  47. package/nationalarchives/components/footer/footer.css.map +1 -1
  48. package/nationalarchives/components/footer/footer.js +1 -1
  49. package/nationalarchives/components/footer/footer.js.map +1 -1
  50. package/nationalarchives/components/footer/footer.mjs +44 -16
  51. package/nationalarchives/components/footer/footer.scss +34 -0
  52. package/nationalarchives/components/footer/macro-options.json +6 -0
  53. package/nationalarchives/components/footer/template.njk +13 -1
  54. package/nationalarchives/components/gallery/gallery.css +1 -1
  55. package/nationalarchives/components/gallery/gallery.css.map +1 -1
  56. package/nationalarchives/components/gallery/gallery.js.map +1 -1
  57. package/nationalarchives/components/global-header/global-header.css +1 -1
  58. package/nationalarchives/components/global-header/global-header.css.map +1 -1
  59. package/nationalarchives/components/global-header/global-header.js.map +1 -1
  60. package/nationalarchives/components/header/header.css +1 -1
  61. package/nationalarchives/components/header/header.css.map +1 -1
  62. package/nationalarchives/components/header/header.js.map +1 -1
  63. package/nationalarchives/components/hero/hero.css +1 -1
  64. package/nationalarchives/components/hero/hero.css.map +1 -1
  65. package/nationalarchives/components/index-grid/index-grid.css +1 -1
  66. package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
  67. package/nationalarchives/components/pagination/fixtures.json +27 -13
  68. package/nationalarchives/components/pagination/macro-options.json +12 -18
  69. package/nationalarchives/components/pagination/pagination.css +1 -1
  70. package/nationalarchives/components/pagination/pagination.css.map +1 -1
  71. package/nationalarchives/components/pagination/pagination.scss +79 -37
  72. package/nationalarchives/components/pagination/template.njk +9 -12
  73. package/nationalarchives/components/panel/panel.css +1 -1
  74. package/nationalarchives/components/panel/panel.css.map +1 -1
  75. package/nationalarchives/components/phase-banner/phase-banner.css +1 -1
  76. package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
  77. package/nationalarchives/components/picture/picture.css +1 -1
  78. package/nationalarchives/components/picture/picture.css.map +1 -1
  79. package/nationalarchives/components/picture/picture.js.map +1 -1
  80. package/nationalarchives/components/quick-filters/quick-filters.css +1 -1
  81. package/nationalarchives/components/quick-filters/quick-filters.css.map +1 -1
  82. package/nationalarchives/components/radios/radios.css +1 -1
  83. package/nationalarchives/components/radios/radios.css.map +1 -1
  84. package/nationalarchives/components/search-field/search-field.css +1 -1
  85. package/nationalarchives/components/search-field/search-field.css.map +1 -1
  86. package/nationalarchives/components/secondary-navigation/secondary-navigation.css +1 -1
  87. package/nationalarchives/components/secondary-navigation/secondary-navigation.css.map +1 -1
  88. package/nationalarchives/components/select/select.css +1 -1
  89. package/nationalarchives/components/select/select.css.map +1 -1
  90. package/nationalarchives/components/sidebar/fixtures.json +1 -1
  91. package/nationalarchives/components/sidebar/sidebar.css +1 -1
  92. package/nationalarchives/components/sidebar/sidebar.css.map +1 -1
  93. package/nationalarchives/components/sidebar/template.njk +1 -1
  94. package/nationalarchives/components/skip-link/skip-link.css +1 -1
  95. package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
  96. package/nationalarchives/components/skip-link/skip-link.js +1 -1
  97. package/nationalarchives/components/skip-link/skip-link.js.map +1 -1
  98. package/nationalarchives/components/skip-link/skip-link.mjs +1 -1
  99. package/nationalarchives/components/tabs/tabs.css +1 -1
  100. package/nationalarchives/components/tabs/tabs.css.map +1 -1
  101. package/nationalarchives/components/tabs/tabs.js.map +1 -1
  102. package/nationalarchives/components/text-input/text-input.css +1 -1
  103. package/nationalarchives/components/text-input/text-input.css.map +1 -1
  104. package/nationalarchives/components/text-input/text-input.js.map +1 -1
  105. package/nationalarchives/components/textarea/textarea.css +1 -1
  106. package/nationalarchives/components/textarea/textarea.css.map +1 -1
  107. package/nationalarchives/components/warning/warning.css +1 -1
  108. package/nationalarchives/components/warning/warning.css.map +1 -1
  109. package/nationalarchives/error-page.css +1 -1
  110. package/nationalarchives/error-page.css.map +1 -1
  111. package/nationalarchives/ie.css +1 -1
  112. package/nationalarchives/prototype-kit.css +1 -1
  113. package/nationalarchives/prototype-kit.css.map +1 -1
  114. package/nationalarchives/tools/_spacing.scss +21 -5
  115. package/nationalarchives/utilities/_reset.scss +5 -16
  116. package/nationalarchives/utilities/lists/_index.scss +100 -164
  117. package/nationalarchives/utilities/tables/_index.scss +5 -4
  118. package/package.json +1 -1
@@ -4,21 +4,37 @@
4
4
  @use "../variables/typography";
5
5
  @use "../tools/media";
6
6
 
7
+ /*
8
+ * ------------------------------------------
9
+ * Spacing is created with rem rather than px
10
+ * units as when users use a custom font size
11
+ * some browsers handle the resize of rem and
12
+ * em separately from px which causes spacing
13
+ * and layout issues, so to ensure everything
14
+ * remaians consistent we use rem for spacing
15
+ * and typography. The original intention was
16
+ * separation so that we could scale the type
17
+ * without affecting spacing, but in practice
18
+ * there are too many ways to change the font
19
+ * size in various browsers and devices
20
+ * ------------------------------------------
21
+ */
7
22
  @function space($size) {
8
- @return #{$size * spacing.$spacing-unit-px}px;
23
+ // @return #{$size * spacing.$spacing-unit-px}px;
24
+ @return #{$size}rem;
9
25
  }
10
26
 
11
27
  %space-above {
12
28
  margin-top: space(2);
13
-
14
- &:first-child {
15
- margin-top: 0;
16
- }
29
+ @extend %no-space-above-for-first-children;
17
30
  }
18
31
 
19
32
  %space-only-above {
20
33
  margin: #{space(2)} 0 0;
34
+ @extend %no-space-above-for-first-children;
35
+ }
21
36
 
37
+ %no-space-above-for-first-children {
22
38
  &:first-child {
23
39
  margin-top: 0;
24
40
  }
@@ -25,30 +25,19 @@
25
25
  * If the browser supports -apple-system-body
26
26
  * which at the moment is just iOS then using
27
27
  * the system body font we can respond to the
28
- * Dynamic Type setting in iOS
28
+ * Dynamic Type setting in iOS, however we do
29
+ * disable it for any non-touch Apple devices
30
+ * such as Mac OS, because the default system
31
+ * font size is set to 13px rather than 16px
29
32
  * ------------------------------------------
30
33
  */
31
- @supports (font: -apple-system-body) {
34
+ @supports (font: -apple-system-body) and (-webkit-touch-callout: default) {
32
35
  html {
33
36
  /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */
34
37
  font: -apple-system-body;
35
38
  }
36
39
  }
37
40
 
38
- /*
39
- * ------------------------------------------
40
- * Disable Apple's Dynamic Type for non-touch
41
- * devices (like Mac OS), because the default
42
- * system body size is defined as 13px rather
43
- * than 16px like on other devices
44
- * ------------------------------------------
45
- */
46
- @supports (font: -apple-system-body) and (not (-webkit-touch-callout: default)) {
47
- html {
48
- @include typography.font-size(16);
49
- }
50
- }
51
-
52
41
  img,
53
42
  svg,
54
43
  picture,
@@ -4,14 +4,36 @@
4
4
  @use "../../tools/typography";
5
5
  @use "../../utilities/typography" as typographyUtils;
6
6
 
7
- ul,
8
- ol {
9
- margin: 0;
10
- padding: 0;
7
+ ul {
8
+ list-style-type: disc;
9
+
10
+ & & {
11
+ list-style-type: circle;
12
+ }
13
+
14
+ & & & {
15
+ list-style-type: square;
16
+ }
17
+
18
+ & & & & {
19
+ list-style-type: disc;
20
+ }
11
21
  }
12
22
 
13
- .tna-ul {
14
- list-style-type: disc;
23
+ ol {
24
+ list-style-type: decimal;
25
+
26
+ & & {
27
+ list-style-type: lower-alpha;
28
+ }
29
+
30
+ & & & {
31
+ list-style-type: lower-roman;
32
+ }
33
+
34
+ & & & & {
35
+ list-style-type: decimal;
36
+ }
15
37
  }
16
38
 
17
39
  .tna-ul,
@@ -25,16 +47,12 @@ ol {
25
47
 
26
48
  &--plain {
27
49
  padding-left: 0;
28
- }
29
50
 
30
- &--plain,
31
- &--no-list-style {
32
- list-style: none;
33
- }
51
+ list-style: none !important;
34
52
 
35
- & > li > & {
36
- margin-top: 0;
37
- padding-left: spacing.space(1.25);
53
+ > li::marker {
54
+ content: "";
55
+ }
38
56
  }
39
57
 
40
58
  > li {
@@ -43,21 +61,20 @@ ol {
43
61
  }
44
62
  }
45
63
 
46
- &--spaced > li + li {
47
- margin-top: spacing.space(0.5);
48
- }
49
-
50
- &--spaced > li > & {
51
- margin-top: spacing.space(1);
52
- margin-bottom: spacing.space(1);
53
- }
54
-
55
64
  &--dashed {
56
65
  > li::marker {
57
66
  content: "— ";
58
67
  @include typography.main-font-weight;
59
68
  }
60
69
  }
70
+
71
+ &--spaced > li + li {
72
+ margin-top: spacing.space(0.5);
73
+ }
74
+
75
+ &:not(&--plain) > li > & {
76
+ padding-left: spacing.space(1.25);
77
+ }
61
78
  }
62
79
 
63
80
  .tna-dl-chips {
@@ -105,211 +122,130 @@ ol {
105
122
  }
106
123
 
107
124
  @mixin stacked-dl {
108
- > dt,
109
- > dd {
110
- width: 100%;
111
- margin-left: 0;
112
- }
125
+ display: block;
113
126
 
114
- > dd {
115
- padding-left: spacing.space(1);
116
- }
117
-
118
- &.tna-dl--plain {
119
- > dt {
120
- padding-top: 0;
121
- padding-bottom: 0;
122
-
123
- .fa-solid {
124
- margin-top: 0;
125
- }
126
- }
127
+ &--lined {
128
+ padding-bottom: 0;
127
129
 
128
130
  > dd {
129
- margin-left: 0;
131
+ border-top: none;
132
+
130
133
  padding-top: 0;
134
+ padding-bottom: spacing.space(0.5);
131
135
  }
132
136
  }
133
137
 
134
- &:not(.tna-dl--plain) {
138
+ &--zebra {
135
139
  > dt {
136
- @include colour.colour-background("background-tint");
140
+ --background: var(--background-tint);
137
141
 
138
- @include colour.colour-font("font-base");
142
+ @include colour.colour-background("background");
139
143
  }
140
144
 
141
- > dd {
142
- margin-left: 0;
143
-
144
- background: transparent !important;
145
- }
146
- }
147
-
148
- @include colour.on-high-contrast-and-forced-colours {
149
- > dd {
150
- border-top: none !important;
151
- }
152
-
153
- &.tna-dl--plain {
154
- > dt {
155
- padding-top: spacing.space(0.5) !important;
156
- }
157
- }
158
-
159
- &.tna-dl--icon-padding.tna-dl--plain {
160
- > dt {
161
- .fa-solid {
162
- margin-top: spacing.space(0.5) !important;
163
- }
164
- }
165
- }
166
-
167
- &.tna-dl--stacked:not(.tna-dl--plain) {
168
- > dt {
169
- padding-bottom: 0 !important;
170
- }
145
+ > dd:nth-child(1n) {
146
+ background: none;
171
147
  }
172
148
  }
173
149
  }
174
150
 
175
151
  .tna-dl {
176
- @include spacing.space-above(true);
152
+ @include spacing.space-above;
177
153
 
178
- display: flex;
179
- flex-wrap: wrap;
180
-
181
- &:first-child {
182
- margin-top: 0;
183
- }
154
+ display: grid;
155
+ grid-template-columns: max-content;
156
+ gap: spacing.space(0.5) 0;
184
157
 
185
158
  > dt,
186
159
  > dd {
187
160
  margin: 0;
188
- padding: spacing.space(0.5) spacing.space(1);
189
161
 
190
- box-sizing: border-box;
162
+ overflow-wrap: break-word;
163
+ }
191
164
 
165
+ > dt {
166
+ @include typography.main-font-weight-bold;
192
167
  position: relative;
193
168
 
194
- overflow-wrap: break-word;
195
- }
169
+ .fa-solid,
170
+ .fa-brands {
171
+ display: block;
196
172
 
197
- &--plain {
198
- > dt {
199
- padding-top: 0;
200
- padding-left: 0;
201
- }
173
+ position: absolute;
174
+ top: 0;
175
+ left: 0;
202
176
 
203
- > dd {
204
- padding-top: 0;
205
- padding-right: 0;
177
+ line-height: inherit;
178
+ @include colour.colour-font("icon-light");
206
179
  }
207
180
  }
208
181
 
209
- &--plain#{&}--spaced {
210
- > dt,
211
- > dd {
212
- padding-bottom: spacing.space(1.25);
182
+ &:has(> dt > .fa-solid, > dt > .fa-brands) {
183
+ > dt {
184
+ padding-left: spacing.space(2);
213
185
  }
214
186
  }
215
187
 
216
- > dt {
217
- width: 30%;
218
-
219
- @include typography.main-font-weight-bold;
220
- }
221
-
222
188
  > dd {
223
- width: 70%;
189
+ padding-left: spacing.space(2);
224
190
 
225
- + dd {
226
- margin-left: 30%;
227
- }
191
+ grid-column-start: 2;
228
192
  }
229
193
 
230
- &--icon-padding {
231
- > dt {
232
- padding-left: 3rem !important;
233
-
234
- position: relative;
194
+ &--lined {
195
+ padding-bottom: spacing.space(0.5);
196
+ @include colour.colour-border("keyline", 1px, solid, bottom);
235
197
 
236
- .fa-solid {
237
- overflow: visible;
198
+ /* stylelint-disable-next-line no-descending-specificity */
199
+ > dt,
200
+ > dd {
201
+ padding-top: spacing.space(0.5);
202
+ @include colour.colour-border("keyline", 1px, solid, top);
238
203
 
239
- position: absolute;
204
+ .fa-solid,
205
+ .fa-brands {
240
206
  top: spacing.space(0.5);
241
- left: spacing.space(1);
242
-
243
- line-height: inherit;
244
-
245
- @include colour.colour-font("icon-light");
246
207
  }
247
208
  }
248
209
  }
249
210
 
250
- &--icon-padding#{&}--plain {
251
- > dt {
252
- padding-left: spacing.space(2) !important;
211
+ &--zebra {
212
+ gap: 0;
253
213
 
254
- .fa-solid {
255
- top: 0;
256
- left: 0;
257
- }
214
+ /* stylelint-disable-next-line no-descending-specificity */
215
+ > dt,
216
+ > dd {
217
+ padding: spacing.space(0.5) spacing.space(1) spacing.space(0.5)
218
+ spacing.space(1);
258
219
  }
259
220
 
260
- > dd {
261
- padding-left: spacing.space(2);
221
+ > dt {
222
+ .fa-solid,
223
+ .fa-brands {
224
+ top: spacing.space(0.5);
225
+ left: spacing.space(1);
226
+ }
262
227
  }
263
- }
264
228
 
265
- &:not(&--plain) {
266
229
  > dt:first-child,
267
230
  > dd:nth-of-type(2n) + dt,
268
231
  > dd:nth-of-type(2n + 1) {
269
232
  @include colour.tint;
270
233
  }
271
- }
272
-
273
- @include media.on-small {
274
- > dt {
275
- width: 35%;
276
- }
277
-
278
- > dd {
279
- width: 65%;
280
234
 
281
- + dd {
282
- margin-left: 35%;
235
+ &:has(> dt > .fa-solid, > dt > .fa-brands) {
236
+ > dt {
237
+ padding-left: spacing.space(3);
283
238
  }
284
239
  }
285
240
  }
286
241
 
287
- &--stacked {
242
+ &--stacked#{&} {
288
243
  @include stacked-dl;
289
244
  }
290
245
 
291
- @include media.on-tiny {
246
+ @include media.on-mobile {
292
247
  @include stacked-dl;
293
248
  }
294
-
295
- @include colour.on-high-contrast-and-forced-colours {
296
- @include colour.colour-border("keyline-dark", 1px, solid, bottom);
297
-
298
- > dt,
299
- > dd {
300
- background: transparent !important;
301
-
302
- @include colour.colour-border("keyline-dark", 1px, solid, top);
303
- }
304
-
305
- &--plain {
306
- > dt,
307
- > dt .fa-solid,
308
- > dd {
309
- padding-top: spacing.space(0.5);
310
- }
311
- }
312
- }
313
249
  }
314
250
 
315
251
  li,
@@ -30,11 +30,11 @@ $table-overflow-shadow-colour-hidden: rgb(0 0 0 / 0%);
30
30
  --overflow-shadow-end: #{$table-overflow-shadow-colour};
31
31
  }
32
32
 
33
- 10% {
33
+ 5% {
34
34
  --overflow-shadow-start: #{$table-overflow-shadow-colour};
35
35
  }
36
36
 
37
- 90% {
37
+ 95% {
38
38
  --overflow-shadow-end: #{$table-overflow-shadow-colour};
39
39
  }
40
40
 
@@ -193,8 +193,6 @@ $table-overflow-shadow-colour-hidden: rgb(0 0 0 / 0%);
193
193
  100% 100%,
194
194
  100% 100%;
195
195
  background-repeat: no-repeat;
196
-
197
- border-radius: 0.1px;
198
196
  background-position:
199
197
  0 0,
200
198
  100%,
@@ -202,6 +200,8 @@ $table-overflow-shadow-colour-hidden: rgb(0 0 0 / 0%);
202
200
  100%;
203
201
  background-attachment: local, local, scroll, scroll;
204
202
 
203
+ border-radius: 0.1px;
204
+
205
205
  container-type: inline-size;
206
206
 
207
207
  contain: paint;
@@ -230,6 +230,7 @@ $table-overflow-shadow-colour-hidden: rgb(0 0 0 / 0%);
230
230
  #{$table-overflow-shadow-colour-hidden}
231
231
  )
232
232
  transparent;
233
+ background-position: 0;
233
234
 
234
235
  animation: overflow-shadows 1ms linear;
235
236
  animation-timeline: --overflow-shadows;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nationalarchives/frontend",
3
- "version": "0.32.0",
3
+ "version": "0.33.0",
4
4
  "description": "The National Archives frontend styles",
5
5
  "scripts": {
6
6
  "start": "storybook dev -p 6006",