@nationalarchives/frontend 0.31.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 (133) 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/all.mjs +1 -3
  8. package/nationalarchives/analytics.js.map +1 -1
  9. package/nationalarchives/components/accordion/accordion.css +1 -1
  10. package/nationalarchives/components/accordion/accordion.css.map +1 -1
  11. package/nationalarchives/components/accordion/accordion.js +1 -1
  12. package/nationalarchives/components/accordion/accordion.js.map +1 -1
  13. package/nationalarchives/components/accordion/accordion.mjs +1 -1
  14. package/nationalarchives/components/accordion/accordion.scss +0 -5
  15. package/nationalarchives/components/back-link/back-link.css +1 -1
  16. package/nationalarchives/components/back-link/back-link.css.map +1 -1
  17. package/nationalarchives/components/breadcrumbs/breadcrumbs.css +1 -1
  18. package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
  19. package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -1
  20. package/nationalarchives/components/button/button.css +1 -1
  21. package/nationalarchives/components/button/button.css.map +1 -1
  22. package/nationalarchives/components/card/card.css +1 -1
  23. package/nationalarchives/components/card/card.css.map +1 -1
  24. package/nationalarchives/components/checkboxes/checkboxes.css +1 -1
  25. package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -1
  26. package/nationalarchives/components/checkboxes/checkboxes.scss +14 -6
  27. package/nationalarchives/components/checkboxes/fixtures.json +27 -0
  28. package/nationalarchives/components/checkboxes/macro-options.json +2 -2
  29. package/nationalarchives/components/checkboxes/template.njk +4 -1
  30. package/nationalarchives/components/compound-filters/compound-filters.css +1 -1
  31. package/nationalarchives/components/compound-filters/compound-filters.css.map +1 -1
  32. package/nationalarchives/components/cookie-banner/cookie-banner.css +1 -1
  33. package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -1
  34. package/nationalarchives/components/cookie-banner/macro-options.json +2 -1
  35. package/nationalarchives/components/date-input/date-input.css +1 -1
  36. package/nationalarchives/components/date-input/date-input.css.map +1 -1
  37. package/nationalarchives/components/date-input/date-input.js.map +1 -1
  38. package/nationalarchives/components/date-search/date-search.css +1 -1
  39. package/nationalarchives/components/date-search/date-search.css.map +1 -1
  40. package/nationalarchives/components/details/details.css +1 -1
  41. package/nationalarchives/components/details/details.css.map +1 -1
  42. package/nationalarchives/components/details/details.scss +2 -1
  43. package/nationalarchives/components/error-summary/error-summary.css +1 -1
  44. package/nationalarchives/components/error-summary/error-summary.css.map +1 -1
  45. package/nationalarchives/components/error-summary/error-summary.js.map +1 -1
  46. package/nationalarchives/components/fieldset/fieldset.css +1 -1
  47. package/nationalarchives/components/fieldset/fieldset.css.map +1 -1
  48. package/nationalarchives/components/file-input/file-input.css +1 -1
  49. package/nationalarchives/components/file-input/file-input.css.map +1 -1
  50. package/nationalarchives/components/file-input/file-input.js.map +1 -1
  51. package/nationalarchives/components/files-list/files-list.css +1 -1
  52. package/nationalarchives/components/files-list/files-list.css.map +1 -1
  53. package/nationalarchives/components/footer/fixtures.json +20 -2
  54. package/nationalarchives/components/footer/footer.css +1 -1
  55. package/nationalarchives/components/footer/footer.css.map +1 -1
  56. package/nationalarchives/components/footer/footer.js +1 -1
  57. package/nationalarchives/components/footer/footer.js.map +1 -1
  58. package/nationalarchives/components/footer/footer.mjs +44 -16
  59. package/nationalarchives/components/footer/footer.scss +34 -0
  60. package/nationalarchives/components/footer/macro-options.json +6 -0
  61. package/nationalarchives/components/footer/template.njk +13 -1
  62. package/nationalarchives/components/gallery/gallery.css +1 -1
  63. package/nationalarchives/components/gallery/gallery.css.map +1 -1
  64. package/nationalarchives/components/gallery/gallery.js.map +1 -1
  65. package/nationalarchives/components/global-header/global-header.css +1 -1
  66. package/nationalarchives/components/global-header/global-header.css.map +1 -1
  67. package/nationalarchives/components/global-header/global-header.js.map +1 -1
  68. package/nationalarchives/components/header/header.css +1 -1
  69. package/nationalarchives/components/header/header.css.map +1 -1
  70. package/nationalarchives/components/header/header.js.map +1 -1
  71. package/nationalarchives/components/hero/hero.css +1 -1
  72. package/nationalarchives/components/hero/hero.css.map +1 -1
  73. package/nationalarchives/components/index-grid/index-grid.css +1 -1
  74. package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
  75. package/nationalarchives/components/pagination/fixtures.json +27 -13
  76. package/nationalarchives/components/pagination/macro-options.json +12 -18
  77. package/nationalarchives/components/pagination/pagination.css +1 -1
  78. package/nationalarchives/components/pagination/pagination.css.map +1 -1
  79. package/nationalarchives/components/pagination/pagination.scss +79 -37
  80. package/nationalarchives/components/pagination/template.njk +9 -12
  81. package/nationalarchives/components/panel/panel.css +1 -1
  82. package/nationalarchives/components/panel/panel.css.map +1 -1
  83. package/nationalarchives/components/phase-banner/phase-banner.css +1 -1
  84. package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
  85. package/nationalarchives/components/picture/picture.css +1 -1
  86. package/nationalarchives/components/picture/picture.css.map +1 -1
  87. package/nationalarchives/components/picture/picture.js.map +1 -1
  88. package/nationalarchives/components/quick-filters/quick-filters.css +1 -1
  89. package/nationalarchives/components/quick-filters/quick-filters.css.map +1 -1
  90. package/nationalarchives/components/radios/fixtures.json +27 -0
  91. package/nationalarchives/components/radios/macro-options.json +6 -0
  92. package/nationalarchives/components/radios/radios.css +1 -1
  93. package/nationalarchives/components/radios/radios.css.map +1 -1
  94. package/nationalarchives/components/radios/radios.scss +14 -6
  95. package/nationalarchives/components/radios/template.njk +3 -0
  96. package/nationalarchives/components/search-field/search-field.css +1 -1
  97. package/nationalarchives/components/search-field/search-field.css.map +1 -1
  98. package/nationalarchives/components/secondary-navigation/secondary-navigation.css +1 -1
  99. package/nationalarchives/components/secondary-navigation/secondary-navigation.css.map +1 -1
  100. package/nationalarchives/components/select/select.css +1 -1
  101. package/nationalarchives/components/select/select.css.map +1 -1
  102. package/nationalarchives/components/sidebar/fixtures.json +1 -1
  103. package/nationalarchives/components/sidebar/sidebar.css +1 -1
  104. package/nationalarchives/components/sidebar/sidebar.css.map +1 -1
  105. package/nationalarchives/components/sidebar/template.njk +1 -1
  106. package/nationalarchives/components/skip-link/skip-link.css +1 -1
  107. package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
  108. package/nationalarchives/components/skip-link/skip-link.js +1 -1
  109. package/nationalarchives/components/skip-link/skip-link.js.map +1 -1
  110. package/nationalarchives/components/skip-link/skip-link.mjs +1 -1
  111. package/nationalarchives/components/tabs/tabs.css +1 -1
  112. package/nationalarchives/components/tabs/tabs.css.map +1 -1
  113. package/nationalarchives/components/tabs/tabs.js.map +1 -1
  114. package/nationalarchives/components/text-input/text-input.css +1 -1
  115. package/nationalarchives/components/text-input/text-input.css.map +1 -1
  116. package/nationalarchives/components/text-input/text-input.js.map +1 -1
  117. package/nationalarchives/components/textarea/textarea.css +1 -1
  118. package/nationalarchives/components/textarea/textarea.css.map +1 -1
  119. package/nationalarchives/components/warning/warning.css +1 -1
  120. package/nationalarchives/components/warning/warning.css.map +1 -1
  121. package/nationalarchives/error-page.css +1 -1
  122. package/nationalarchives/error-page.css.map +1 -1
  123. package/nationalarchives/ie.css +1 -1
  124. package/nationalarchives/lib/tables.mjs +7 -27
  125. package/nationalarchives/print.css.map +1 -1
  126. package/nationalarchives/prototype-kit.css +1 -1
  127. package/nationalarchives/prototype-kit.css.map +1 -1
  128. package/nationalarchives/tools/_colour.scss +34 -20
  129. package/nationalarchives/tools/_spacing.scss +21 -5
  130. package/nationalarchives/utilities/_reset.scss +5 -25
  131. package/nationalarchives/utilities/lists/_index.scss +100 -164
  132. package/nationalarchives/utilities/tables/_index.scss +140 -35
  133. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  @use "sass:list";
2
2
  @use "sass:map";
3
+ @use "sass:meta";
3
4
  @use "../variables/borders";
4
5
  @use "../variables/forms";
5
6
  @use "../variables/colour";
@@ -85,16 +86,17 @@ $base-colours: (
85
86
  }
86
87
 
87
88
  @mixin colour-font($colour, $important: false) {
88
- color: colour-var($colour) if($important, !important, null);
89
+ color: colour-var($colour) if(sass($important): !important; else: null);
89
90
  }
90
91
 
91
92
  @mixin colour-background($colour, $important: false) {
92
- background-color: colour-var($colour) if($important, !important, null);
93
+ background-color: colour-var($colour)
94
+ if(sass($important): !important; else: null);
93
95
  }
94
96
 
95
97
  @mixin colour-background-brand($brandColour, $important: false) {
96
98
  background-color: #{brand-colour($brandColour)}
97
- if($important, !important, null);
99
+ if(sass($important): !important; else: null);
98
100
  }
99
101
 
100
102
  @mixin colour-border(
@@ -109,37 +111,41 @@ $base-colours: (
109
111
  border-#{$direction}: $width
110
112
  colour-var($colour)
111
113
  $style
112
- if($important, !important, null);
114
+ if(sass($important): !important; else: null);
113
115
  } @else {
114
116
  border-#{$direction}-color: colour-var($colour)
115
- if($important, !important, null);
117
+ if(sass($important): !important; else: null);
116
118
  }
117
119
  } @else {
118
120
  @if $width != "" {
119
121
  border: $width
120
122
  colour-var($colour)
121
123
  $style
122
- if($important, !important, null);
124
+ if(sass($important): !important; else: null);
123
125
  } @else {
124
126
  border-color: var(
125
127
  --#{$colour},
126
128
  #{map.get(colour.$colour-palette-default, $colour)}
127
129
  )
128
- if($important, !important, null);
130
+ if(sass($important): !important; else: null);
129
131
  }
130
132
  }
131
133
  }
132
134
 
133
135
  @mixin colour-outline($colour, $width: "", $style: solid, $important: false) {
134
136
  @if $width != "" {
135
- outline: $width colour-var($colour) $style if($important, !important, null);
137
+ outline: $width
138
+ colour-var($colour)
139
+ $style
140
+ if(sass($important): !important; else: null);
136
141
  } @else {
137
- outline-color: colour-var($colour) if($important, !important, null);
142
+ outline-color: colour-var($colour)
143
+ if(sass($important): !important; else: null);
138
144
  }
139
145
  }
140
146
 
141
147
  @mixin colour-fill($colour, $important: false) {
142
- fill: colour-var($colour) if($important, !important, null);
148
+ fill: colour-var($colour) if(sass($important): !important; else: null);
143
149
  }
144
150
 
145
151
  %colour-input {
@@ -534,17 +540,25 @@ $base-colours: (
534
540
  }
535
541
  }
536
542
 
543
+ %image-loader-background {
544
+ background: linear-gradient(
545
+ -45deg,
546
+ rgb(0 0 0 / 25%),
547
+ rgb(255 255 255 / 25%),
548
+ rgb(0 0 0 / 25%)
549
+ );
550
+ background-size: 500% 500%;
551
+ background-position: 0 50%;
552
+
553
+ animation: image-loader-background ease-in-out 1.2s infinite;
554
+
555
+ @media (prefers-reduced-motion) {
556
+ animation: none !important;
557
+ }
558
+ }
559
+
537
560
  @mixin image-loader-background {
538
561
  @if features.$image-loader-animations {
539
- background: linear-gradient(
540
- -45deg,
541
- rgb(0 0 0 / 25%),
542
- rgb(255 255 255 / 25%),
543
- rgb(0 0 0 / 25%)
544
- );
545
- background-size: 500% 500%;
546
- background-position: 0 50%;
547
-
548
- animation: image-loader-background ease-in-out 1.2s infinite;
562
+ @extend %image-loader-background;
549
563
  }
550
564
  }
@@ -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
  }
@@ -5,15 +5,6 @@
5
5
  margin: 0;
6
6
  padding: 0;
7
7
 
8
- @media (prefers-reduced-motion) {
9
- &,
10
- &::before,
11
- &::after {
12
- animation: none !important;
13
- transition: none !important;
14
- }
15
- }
16
-
17
8
  @media (prefers-contrast: more) {
18
9
  background-image: none;
19
10
  }
@@ -34,30 +25,19 @@
34
25
  * If the browser supports -apple-system-body
35
26
  * which at the moment is just iOS then using
36
27
  * the system body font we can respond to the
37
- * 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
38
32
  * ------------------------------------------
39
33
  */
40
- @supports (font: -apple-system-body) {
34
+ @supports (font: -apple-system-body) and (-webkit-touch-callout: default) {
41
35
  html {
42
36
  /* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */
43
37
  font: -apple-system-body;
44
38
  }
45
39
  }
46
40
 
47
- /*
48
- * ------------------------------------------
49
- * Disable Apple's Dynamic Type for non-touch
50
- * devices (like Mac OS), because the default
51
- * system body size is defined as 13px rather
52
- * than 16px like on other devices
53
- * ------------------------------------------
54
- */
55
- @supports (font: -apple-system-body) and (not (-webkit-touch-callout: default)) {
56
- html {
57
- @include typography.font-size(16);
58
- }
59
- }
60
-
61
41
  img,
62
42
  svg,
63
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,