@nationalarchives/frontend 0.1.24-prerelease → 0.1.26-prerelease

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 (213) hide show
  1. package/README.md +22 -0
  2. package/govuk-prototype-kit.config.json +4 -12
  3. package/nationalarchives/all.css +2 -2
  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 +0 -11
  8. package/nationalarchives/components/_index.scss +8 -0
  9. package/nationalarchives/components/breadcrumbs/breadcrumbs.css +1 -1
  10. package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
  11. package/nationalarchives/components/breadcrumbs/breadcrumbs.js +1 -1
  12. package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -1
  13. package/nationalarchives/components/breadcrumbs/breadcrumbs.mjs +1 -1
  14. package/nationalarchives/components/breadcrumbs/breadcrumbs.scss +1 -1
  15. package/nationalarchives/components/breadcrumbs/breadcrumbs.stories.js +1 -1
  16. package/nationalarchives/components/button/_button-group.scss +4 -0
  17. package/nationalarchives/components/button/button.css +1 -1
  18. package/nationalarchives/components/button/button.css.map +1 -1
  19. package/nationalarchives/components/button/button.scss +89 -26
  20. package/nationalarchives/components/button/button.stories.js +52 -5
  21. package/nationalarchives/components/button/macro-options.json +18 -0
  22. package/nationalarchives/components/button/template.njk +15 -6
  23. package/nationalarchives/components/card/card.css +1 -1
  24. package/nationalarchives/components/card/card.css.map +1 -1
  25. package/nationalarchives/components/card/card.scss +7 -37
  26. package/nationalarchives/components/card/card.stories.js +6 -78
  27. package/nationalarchives/components/card/fixtures.json +17 -17
  28. package/nationalarchives/components/card/macro-options.json +41 -17
  29. package/nationalarchives/components/card/template.njk +51 -48
  30. package/nationalarchives/components/checkboxes/_index.scss +1 -0
  31. package/nationalarchives/components/checkboxes/checkboxes.css +1 -0
  32. package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -0
  33. package/nationalarchives/components/checkboxes/checkboxes.scss +143 -0
  34. package/nationalarchives/components/checkboxes/checkboxes.stories.js +238 -0
  35. package/nationalarchives/components/checkboxes/fixtures.json +4 -0
  36. package/nationalarchives/components/checkboxes/macro-options.json +102 -0
  37. package/nationalarchives/components/checkboxes/macro.njk +3 -0
  38. package/nationalarchives/components/checkboxes/template.njk +35 -0
  39. package/nationalarchives/components/cookie-banner/cookie-banner.css +1 -1
  40. package/nationalarchives/components/cookie-banner/cookie-banner.css.map +1 -1
  41. package/nationalarchives/components/cookie-banner/cookie-banner.js +1 -1
  42. package/nationalarchives/components/cookie-banner/cookie-banner.js.map +1 -1
  43. package/nationalarchives/components/cookie-banner/cookie-banner.mjs +19 -16
  44. package/nationalarchives/components/cookie-banner/cookie-banner.stories.js +103 -42
  45. package/nationalarchives/components/cookie-banner/fixtures.json +54 -8
  46. package/nationalarchives/components/cookie-banner/macro-options.json +19 -1
  47. package/nationalarchives/components/cookie-banner/template.njk +1 -1
  48. package/nationalarchives/components/date-input/_index.scss +1 -0
  49. package/nationalarchives/components/date-input/date-input.css +1 -0
  50. package/nationalarchives/components/date-input/date-input.css.map +1 -0
  51. package/nationalarchives/components/date-input/date-input.scss +48 -0
  52. package/nationalarchives/components/date-input/date-input.stories.js +116 -0
  53. package/nationalarchives/components/date-input/fixtures.json +4 -0
  54. package/nationalarchives/components/date-input/macro-options.json +96 -0
  55. package/nationalarchives/components/date-input/macro.njk +3 -0
  56. package/nationalarchives/components/date-input/template.njk +45 -0
  57. package/nationalarchives/components/date-search/_index.scss +1 -0
  58. package/nationalarchives/components/date-search/date-search.css +1 -0
  59. package/nationalarchives/components/date-search/date-search.css.map +1 -0
  60. package/nationalarchives/components/date-search/date-search.scss +27 -0
  61. package/nationalarchives/components/date-search/date-search.stories.js +121 -0
  62. package/nationalarchives/components/date-search/fixtures.json +4 -0
  63. package/nationalarchives/components/date-search/macro-options.json +94 -0
  64. package/nationalarchives/components/date-search/macro.njk +3 -0
  65. package/nationalarchives/components/date-search/template.njk +27 -0
  66. package/nationalarchives/components/featured-records/featured-records.css +1 -1
  67. package/nationalarchives/components/featured-records/featured-records.css.map +1 -1
  68. package/nationalarchives/components/filters/filters.css +1 -1
  69. package/nationalarchives/components/filters/filters.css.map +1 -1
  70. package/nationalarchives/components/filters/filters.scss +0 -8
  71. package/nationalarchives/components/filters/template.njk +2 -2
  72. package/nationalarchives/components/footer/footer.css +1 -1
  73. package/nationalarchives/components/footer/footer.css.map +1 -1
  74. package/nationalarchives/components/footer/footer.scss +3 -5
  75. package/nationalarchives/components/footer/footer.stories.js +1 -1
  76. package/nationalarchives/components/footer/template.njk +13 -9
  77. package/nationalarchives/components/gallery/gallery.css +1 -1
  78. package/nationalarchives/components/gallery/gallery.css.map +1 -1
  79. package/nationalarchives/components/gallery/gallery.scss +0 -11
  80. package/nationalarchives/components/gallery/gallery.stories.js +8 -10
  81. package/nationalarchives/components/gallery/template.njk +1 -1
  82. package/nationalarchives/components/grid/grid.css +1 -1
  83. package/nationalarchives/components/grid/grid.css.map +1 -1
  84. package/nationalarchives/components/grid/grid.scss +12 -0
  85. package/nationalarchives/components/grid/grid.stories.js +12 -0
  86. package/nationalarchives/components/header/header.css +1 -1
  87. package/nationalarchives/components/header/header.css.map +1 -1
  88. package/nationalarchives/components/header/header.scss +36 -41
  89. package/nationalarchives/components/header/header.stories.js +0 -41
  90. package/nationalarchives/components/header/template.njk +3 -3
  91. package/nationalarchives/components/hero/hero.css +1 -1
  92. package/nationalarchives/components/hero/hero.css.map +1 -1
  93. package/nationalarchives/components/hero/hero.scss +3 -7
  94. package/nationalarchives/components/hero/hero.stories.js +6 -0
  95. package/nationalarchives/components/index-grid/fixtures.json +324 -1
  96. package/nationalarchives/components/index-grid/index-grid.css +1 -1
  97. package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
  98. package/nationalarchives/components/index-grid/index-grid.scss +13 -10
  99. package/nationalarchives/components/index-grid/index-grid.stories.js +27 -14
  100. package/nationalarchives/components/index-grid/macro-options.json +34 -29
  101. package/nationalarchives/components/index-grid/template.njk +13 -8
  102. package/nationalarchives/components/message/message.css +1 -1
  103. package/nationalarchives/components/message/message.css.map +1 -1
  104. package/nationalarchives/components/message/message.scss +1 -6
  105. package/nationalarchives/components/message/template.njk +1 -1
  106. package/nationalarchives/components/pagination/macro-options.json +6 -0
  107. package/nationalarchives/components/pagination/pagination.css +1 -1
  108. package/nationalarchives/components/pagination/pagination.css.map +1 -1
  109. package/nationalarchives/components/pagination/pagination.scss +4 -0
  110. package/nationalarchives/components/pagination/pagination.stories.js +63 -2
  111. package/nationalarchives/components/pagination/template.njk +39 -17
  112. package/nationalarchives/components/phase-banner/phase-banner.css +1 -1
  113. package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
  114. package/nationalarchives/components/phase-banner/phase-banner.scss +2 -3
  115. package/nationalarchives/components/picture/picture.css +1 -1
  116. package/nationalarchives/components/picture/picture.css.map +1 -1
  117. package/nationalarchives/components/picture/picture.js.map +1 -1
  118. package/nationalarchives/components/picture/picture.mjs +0 -4
  119. package/nationalarchives/components/picture/picture.scss +1 -1
  120. package/nationalarchives/components/picture/template.njk +1 -1
  121. package/nationalarchives/components/radios/_index.scss +1 -0
  122. package/nationalarchives/components/radios/fixtures.json +4 -0
  123. package/nationalarchives/components/radios/macro-options.json +102 -0
  124. package/nationalarchives/components/radios/macro.njk +3 -0
  125. package/nationalarchives/components/radios/radios.css +1 -0
  126. package/nationalarchives/components/radios/radios.css.map +1 -0
  127. package/nationalarchives/components/radios/radios.scss +131 -0
  128. package/nationalarchives/components/radios/radios.stories.js +241 -0
  129. package/nationalarchives/components/radios/template.njk +35 -0
  130. package/nationalarchives/components/search-field/_index.scss +1 -0
  131. package/nationalarchives/components/search-field/fixtures.json +4 -0
  132. package/nationalarchives/components/search-field/macro-options.json +68 -0
  133. package/nationalarchives/components/search-field/macro.njk +3 -0
  134. package/nationalarchives/components/search-field/search-field.css +1 -0
  135. package/nationalarchives/components/search-field/search-field.css.map +1 -0
  136. package/nationalarchives/components/search-field/search-field.scss +32 -0
  137. package/nationalarchives/components/search-field/search-field.stories.js +88 -0
  138. package/nationalarchives/components/search-field/template.njk +32 -0
  139. package/nationalarchives/components/select/_index.scss +1 -0
  140. package/nationalarchives/components/select/fixtures.json +4 -0
  141. package/nationalarchives/components/select/macro-options.json +114 -0
  142. package/nationalarchives/components/select/macro.njk +3 -0
  143. package/nationalarchives/components/select/select.css +1 -0
  144. package/nationalarchives/components/select/select.css.map +1 -0
  145. package/nationalarchives/components/select/select.scss +51 -0
  146. package/nationalarchives/components/select/select.stories.js +194 -0
  147. package/nationalarchives/components/select/template.njk +29 -0
  148. package/nationalarchives/components/sensitive-image/sensitive-image.css +1 -1
  149. package/nationalarchives/components/sensitive-image/sensitive-image.css.map +1 -1
  150. package/nationalarchives/components/sensitive-image/sensitive-image.stories.js +3 -0
  151. package/nationalarchives/components/sensitive-image/template.njk +1 -1
  152. package/nationalarchives/components/skip-link/skip-link.css +1 -1
  153. package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
  154. package/nationalarchives/components/skip-link/skip-link.stories.js +4 -1
  155. package/nationalarchives/components/skip-link/template.njk +1 -1
  156. package/nationalarchives/components/tabs/tabs.css +1 -1
  157. package/nationalarchives/components/tabs/tabs.css.map +1 -1
  158. package/nationalarchives/components/tabs/tabs.js +1 -1
  159. package/nationalarchives/components/tabs/tabs.js.map +1 -1
  160. package/nationalarchives/components/tabs/tabs.mjs +1 -1
  161. package/nationalarchives/components/tabs/tabs.scss +11 -1
  162. package/nationalarchives/components/tabs/tabs.stories.js +6 -3
  163. package/nationalarchives/components/tabs/template.njk +1 -1
  164. package/nationalarchives/components/text-input/_index.scss +1 -0
  165. package/nationalarchives/components/text-input/fixtures.json +4 -0
  166. package/nationalarchives/components/text-input/macro-options.json +118 -0
  167. package/nationalarchives/components/text-input/macro.njk +3 -0
  168. package/nationalarchives/components/text-input/template.njk +30 -0
  169. package/nationalarchives/components/text-input/text-input.css +1 -0
  170. package/nationalarchives/components/text-input/text-input.css.map +1 -0
  171. package/nationalarchives/components/text-input/text-input.scss +44 -0
  172. package/nationalarchives/components/text-input/text-input.stories.js +188 -0
  173. package/nationalarchives/components/textarea/_index.scss +1 -0
  174. package/nationalarchives/components/textarea/fixtures.json +4 -0
  175. package/nationalarchives/components/textarea/macro-options.json +106 -0
  176. package/nationalarchives/components/textarea/macro.njk +3 -0
  177. package/nationalarchives/components/textarea/template.njk +27 -0
  178. package/nationalarchives/components/textarea/textarea.css +1 -0
  179. package/nationalarchives/components/textarea/textarea.css.map +1 -0
  180. package/nationalarchives/components/textarea/textarea.scss +45 -0
  181. package/nationalarchives/components/textarea/textarea.stories.js +127 -0
  182. package/nationalarchives/lib/cookies.mjs +172 -63
  183. package/nationalarchives/prototype-kit.css +2 -2
  184. package/nationalarchives/prototype-kit.css.map +1 -1
  185. package/nationalarchives/prototype-kit.scss +0 -8
  186. package/nationalarchives/stories/utilities/colour-schemes/colour-schemes.stories.js +449 -91
  187. package/nationalarchives/stories/utilities/forms/forms.mdx +117 -0
  188. package/nationalarchives/stories/utilities/overrides/overrides.stories.js +1 -0
  189. package/nationalarchives/stories/utilities/tables/tables.mdx +8 -0
  190. package/nationalarchives/stories/utilities/tables/tables.stories.js +45 -0
  191. package/nationalarchives/stories/utilities/typography/heading-groups.stories.js +59 -19
  192. package/nationalarchives/stories/utilities/typography/typography.stories.js +0 -6
  193. package/nationalarchives/templates/layouts/_generic.njk +1 -1
  194. package/nationalarchives/templates/layouts/_prototype-kit.njk +2 -0
  195. package/nationalarchives/tests/cookies.test.js +427 -0
  196. package/nationalarchives/tests/uuid.test.js +17 -0
  197. package/nationalarchives/tools/_colour.scss +50 -27
  198. package/nationalarchives/tools/_typography.scss +0 -1
  199. package/nationalarchives/utilities/_a11y.scss +6 -2
  200. package/nationalarchives/utilities/_colour.scss +10 -6
  201. package/nationalarchives/utilities/_debug.scss +3 -4
  202. package/nationalarchives/utilities/_forms.scss +93 -0
  203. package/nationalarchives/utilities/_index.scss +2 -0
  204. package/nationalarchives/utilities/_lists.scss +6 -1
  205. package/nationalarchives/utilities/_overrides.scss +1 -1
  206. package/nationalarchives/utilities/_tables.scss +86 -0
  207. package/nationalarchives/utilities/_typography.scss +71 -77
  208. package/nationalarchives/variables/_colour.scss +15 -10
  209. package/nationalarchives/variables/_forms.scss +2 -0
  210. package/nationalarchives/variables/_index.scss +1 -0
  211. package/nationalarchives/variables/_typography.scss +2 -2
  212. package/package.json +19 -19
  213. package/nationalarchives/stories/utilities/overrides/overrides.mdx +0 -53
@@ -0,0 +1,93 @@
1
+ @use "../utilities/typography" as typographyUtilities;
2
+ @use "../tools/colour";
3
+ @use "../tools/media";
4
+ @use "../tools/spacing";
5
+ @use "../tools/typography";
6
+
7
+ .tna-form {
8
+ &__group {
9
+ @include spacing.space-above;
10
+
11
+ &--error {
12
+ padding-left: 1rem;
13
+
14
+ @include colour.colour-border("form-error", 0.25rem, solid, left);
15
+ }
16
+ }
17
+
18
+ &__fieldset {
19
+ flex: 1;
20
+
21
+ border: none;
22
+ }
23
+
24
+ &__group,
25
+ &__fieldset {
26
+ display: flex;
27
+ flex-direction: column;
28
+ align-items: flex-start;
29
+ gap: 0.5rem;
30
+ }
31
+
32
+ &__group--inline,
33
+ &__group--inline &__fieldset {
34
+ flex-direction: row;
35
+ align-items: flex-start;
36
+
37
+ @include media.on-mobile {
38
+ flex-direction: column;
39
+ }
40
+ }
41
+
42
+ &__group-contents {
43
+ flex: 0 0 39%;
44
+ }
45
+
46
+ &__legend {
47
+ }
48
+
49
+ &__heading {
50
+ margin: 0;
51
+
52
+ @extend %heading;
53
+
54
+ &--xl {
55
+ @extend %heading-xl;
56
+ }
57
+
58
+ &--l {
59
+ @extend %heading-l;
60
+ }
61
+
62
+ &--m {
63
+ @extend %heading-m;
64
+ }
65
+
66
+ &--s {
67
+ @extend %heading-s;
68
+ }
69
+
70
+ &--xs {
71
+ font-size: 1em;
72
+ @include typography.main-font;
73
+ // @include typography.main-font-weight-bold;
74
+ }
75
+ }
76
+
77
+ &__label {
78
+ }
79
+
80
+ &__hint {
81
+ margin-top: 0;
82
+
83
+ @include typography.relative-font-size(16);
84
+ @include colour.colour-font("font-light");
85
+ }
86
+
87
+ &__error-message {
88
+ margin-top: 0;
89
+
90
+ @include colour.colour-font("form-error");
91
+ @include typography.main-font-weight-bold;
92
+ }
93
+ }
@@ -2,7 +2,9 @@
2
2
  @use "colour";
3
3
  @use "columns";
4
4
  @use "debug";
5
+ @use "forms";
5
6
  @use "global";
6
7
  @use "lists";
7
8
  @use "overrides";
9
+ @use "tables";
8
10
  @use "typography";
@@ -22,6 +22,11 @@
22
22
 
23
23
  list-style: none;
24
24
  }
25
+
26
+ .tna-ul,
27
+ .tna-ol {
28
+ margin-top: 0;
29
+ }
25
30
  }
26
31
 
27
32
  .tna-dl {
@@ -159,7 +164,7 @@
159
164
  }
160
165
  }
161
166
 
162
- @include colour.on-high-contrast {
167
+ @include colour.on-high-contrast-and-forced-colours {
163
168
  @include colour.colour-border("keyline-dark", 1px, solid, bottom);
164
169
 
165
170
  dt,
@@ -4,7 +4,7 @@
4
4
 
5
5
  @mixin hide-on($suffix) {
6
6
  .tna-\!--hide-on-#{$suffix} {
7
- display: none;
7
+ display: none !important;
8
8
  }
9
9
  }
10
10
 
@@ -0,0 +1,86 @@
1
+ @use "sass:math";
2
+ @use "sass:selector";
3
+ @use "../tools/colour";
4
+ @use "../tools/media";
5
+ @use "../tools/spacing";
6
+ @use "../tools/typography";
7
+ @use "../variables/assets";
8
+ @use "../variables/grid";
9
+
10
+ .tna-table {
11
+ width: 100%;
12
+ @include spacing.space-above;
13
+
14
+ border-collapse: collapse;
15
+
16
+ text-align: left;
17
+
18
+ &:first-child {
19
+ margin-top: 0;
20
+ }
21
+
22
+ &__caption {
23
+ text-align: left;
24
+
25
+ @include typography.main-font-weight-bold;
26
+ }
27
+
28
+ &__head {
29
+ }
30
+
31
+ &__header {
32
+ }
33
+
34
+ &__body {
35
+ }
36
+
37
+ &__row {
38
+ }
39
+
40
+ &__cell {
41
+ }
42
+
43
+ &__header,
44
+ &__cell {
45
+ padding: 0.25rem 1rem;
46
+
47
+ @include colour.colour-border("keyline", 1px, solid, bottom);
48
+
49
+ &:first-child {
50
+ padding-left: 0;
51
+ }
52
+
53
+ &:last-child {
54
+ padding-right: 0;
55
+ }
56
+ }
57
+
58
+ &__head &__header {
59
+ @include colour.colour-border("keyline-dark", 0.25rem, solid, bottom);
60
+ }
61
+
62
+ p {
63
+ + p {
64
+ margin-top: 0.25rem;
65
+ }
66
+ }
67
+ }
68
+
69
+ .tna-table-wrapper {
70
+ width: 100%;
71
+ @include spacing.space-above;
72
+ padding-left: grid.$gutter-width;
73
+ padding-right: grid.$gutter-width;
74
+
75
+ position: relative;
76
+ left: -#{grid.$gutter-width};
77
+
78
+ overflow: auto;
79
+
80
+ @include media.on-tiny {
81
+ padding-left: grid.$gutter-width-tiny;
82
+ padding-right: grid.$gutter-width-tiny;
83
+
84
+ left: -#{grid.$gutter-width-tiny};
85
+ }
86
+ }
@@ -67,15 +67,9 @@
67
67
  }
68
68
  }
69
69
 
70
- h1,
71
- h2,
72
- h3,
73
- h4,
74
- h5,
75
- h6,
76
- ul,
77
- ol {
78
- margin-top: 0;
70
+ * {
71
+ margin: 0;
72
+ padding: 0;
79
73
  }
80
74
 
81
75
  strong {
@@ -83,15 +77,11 @@ strong {
83
77
  }
84
78
 
85
79
  p {
86
- margin: 2rem 0 0;
80
+ @include spacing.space-above;
87
81
 
88
82
  + p {
89
83
  margin-top: 1rem;
90
84
  }
91
-
92
- &:first-child {
93
- margin-top: 0;
94
- }
95
85
  }
96
86
 
97
87
  a {
@@ -123,7 +113,7 @@ a {
123
113
  }
124
114
 
125
115
  &:hover:not(:focus) {
126
- box-shadow: 0 0 0 0.3125rem var(--link);
116
+ box-shadow: 0 0 0 0.3125rem var(--focus-outline);
127
117
  }
128
118
  }
129
119
 
@@ -140,62 +130,6 @@ small {
140
130
  );
141
131
  }
142
132
 
143
- // .tna-detail[title][data-type] {
144
- // padding: 0 0.375rem;
145
-
146
- // display: inline-flex;
147
- // flex-flow: row nowrap;
148
- // align-items: baseline;
149
- // gap: 0.5rem;
150
-
151
- // vertical-align: baseline;
152
-
153
- // background-color: #ccc;
154
-
155
- // &::after {
156
- // @include colour.colour-font("font-base");
157
- // @include typography.detail-font-small;
158
- // vertical-align: baseline;
159
-
160
- // content: attr(data-type) / "";
161
- // }
162
-
163
- // &[data-type="misc"] {
164
- // background-color: #f28482;
165
- // }
166
-
167
- // &[data-type="loc"] {
168
- // background-color: #edae49;
169
- // }
170
-
171
- // &[data-type="per"] {
172
- // background-color: #b5e2fa;
173
- // }
174
-
175
- // @at-root #{selector.unify("a", &)} {
176
- // @include colour.colour-font("font-base");
177
-
178
- // &::after {
179
- // text-decoration: none;
180
- // }
181
- // }
182
- // }
183
-
184
- .tna-chip-list {
185
- @include spacing.space-above;
186
- margin-bottom: 0;
187
- padding-left: 0;
188
-
189
- display: flex;
190
- flex-wrap: wrap;
191
- gap: 1rem;
192
-
193
- list-style: none;
194
-
195
- &__item {
196
- }
197
- }
198
-
199
133
  %chip {
200
134
  max-width: max-content;
201
135
  padding: 0.125em 0.25rem;
@@ -209,6 +143,12 @@ small {
209
143
  @include colour.accent;
210
144
 
211
145
  @include colour.colour-border("accent-background", 0.125rem);
146
+
147
+ .tna-background-accent &:not(#{&}--plain) {
148
+ @include colour.plain;
149
+
150
+ @include colour.colour-border("background");
151
+ }
212
152
  }
213
153
 
214
154
  .tna-chip {
@@ -247,6 +187,65 @@ small {
247
187
  }
248
188
  }
249
189
 
190
+ .tna-chip-list {
191
+ @include spacing.space-above;
192
+
193
+ display: flex;
194
+ flex-wrap: wrap;
195
+ gap: 0.5rem 1.5rem;
196
+
197
+ list-style: none;
198
+
199
+ &__item {
200
+ display: flex;
201
+ align-items: center;
202
+
203
+ .tna-chip {
204
+ display: flex;
205
+ align-items: center;
206
+ gap: 0.5rem;
207
+ }
208
+
209
+ .fa-solid,
210
+ .fa-brand {
211
+ @include colour.colour-font("icon-light");
212
+ }
213
+
214
+ @include colour.on-high-contrast {
215
+ @include colour.colour-border("keyline-dark", 1px, solid);
216
+
217
+ .fa-solid,
218
+ .fa-brand {
219
+ padding: 0.375rem 0.25rem;
220
+
221
+ @include colour.colour-font("contrast-font-base");
222
+
223
+ @include colour.colour-background("contrast-background");
224
+
225
+ @include colour.colour-border("keyline-dark", 1px, solid, right);
226
+ }
227
+
228
+ .tna-chip {
229
+ &:has(.fa-solid, .fa-brand) {
230
+ padding-left: 0;
231
+
232
+ .fa-solid,
233
+ .fa-brand {
234
+ margin-right: 0.5rem;
235
+ }
236
+ }
237
+ }
238
+ }
239
+ }
240
+
241
+ &--accent {
242
+ .fa-solid,
243
+ .fa-brand {
244
+ @include colour.colour-font("accent-background");
245
+ }
246
+ }
247
+ }
248
+
250
249
  %heading {
251
250
  @include colour.colour-font("font-dark");
252
251
 
@@ -333,17 +332,12 @@ small {
333
332
  %headings-and-heading-groups {
334
333
  @include spacing.space-above;
335
334
  margin-bottom: 0;
336
- padding-top: 1rem;
335
+ padding: 1rem 0 0;
337
336
 
338
337
  &:first-child {
339
338
  padding-top: 0;
340
339
  }
341
340
 
342
- &:last-child {
343
- margin-bottom: 0;
344
- padding-bottom: 0;
345
- }
346
-
347
341
  + p {
348
342
  margin-top: 1rem;
349
343
  }
@@ -39,7 +39,7 @@ $colour-palette-brand: (
39
39
 
40
40
  $dark-grey: #26262a;
41
41
  $base-font: #343338 !default;
42
- $link-colour: brand-colour("navy") !default;
42
+ $link-colour: #0062a8 !default;
43
43
  $link-colour-visited: #4c2c92 !default;
44
44
 
45
45
  /*
@@ -49,7 +49,7 @@ LIGHT THEME (DEFAULT)
49
49
  */
50
50
  $colour-palette-default: (
51
51
  "page-background": #f4f4f4,
52
- "background-tint": #e2e2e2,
52
+ "background-tint": #ededed,
53
53
  "font-base": $base-font,
54
54
  "font-dark": brand-colour("black"),
55
55
  "font-light": hex-to-rgb($base-font, 0.7),
@@ -59,6 +59,10 @@ $colour-palette-default: (
59
59
  "focus-outline": brand-colour("blue"),
60
60
  "keyline": hex-to-rgb($dark-grey, 0.25),
61
61
  "keyline-dark": $dark-grey,
62
+ "input-foreground": brand-colour("black"),
63
+ "input-background": brand-colour("white"),
64
+ "input-border": brand-colour("black"),
65
+ "form-error": #c00,
62
66
  "button-text": brand-colour("white"),
63
67
  "button-background": brand-colour("black"),
64
68
  "button-hover-text": brand-colour("black"),
@@ -66,7 +70,6 @@ $colour-palette-default: (
66
70
  "contrast-background": #1e1e1e,
67
71
  "contrast-font-base": brand-colour("white"),
68
72
  "contrast-font-dark": brand-colour("white"),
69
- // "contrast-font-light": brand-colour("white", 0.7),
70
73
  "contrast-font-light": brand-colour("white", 0.7),
71
74
  "contrast-icon-light": brand-colour("white", 0.45),
72
75
  "contrast-link": brand-colour("white"),
@@ -77,9 +80,8 @@ $colour-palette-default: (
77
80
  "contrast-button-background": brand-colour("white"),
78
81
  "contrast-button-hover-text": brand-colour("white"),
79
82
  "contrast-button-hover-background": brand-colour("black"),
80
- "accent": map.get($colour-palette-brand, "light-grey"),
81
83
  "accent-background": #111,
82
- "accent-background-light": map.get($colour-palette-brand, "light-grey"),
84
+ "accent-background-light": #ededed,
83
85
  "accent-font-base": brand-colour("white"),
84
86
  "accent-font-dark": brand-colour("white"),
85
87
  "accent-font-light": brand-colour("white", 0.7),
@@ -108,8 +110,12 @@ $colour-palette-dark: map.merge(
108
110
  "icon-light": brand-colour("white", 0.35),
109
111
  "link": brand-colour("blue"),
110
112
  "link-visited": #a8f,
113
+ "focus-outline": brand-colour("orange"),
111
114
  "keyline": brand-colour("white", 0.25),
112
115
  "keyline-dark": brand-colour("white"),
116
+ "input-foreground": brand-colour("white"),
117
+ "input-background": brand-colour("black"),
118
+ "input-border": brand-colour("white"),
113
119
  "button-text": brand-colour("black"),
114
120
  "button-background": brand-colour("white"),
115
121
  "button-hover-text": brand-colour("white"),
@@ -117,8 +123,7 @@ $colour-palette-dark: map.merge(
117
123
  "contrast-background": #111,
118
124
  "contrast-link-visited":
119
125
  map.get($colour-palette-default, "contrast-link-visited"),
120
- // --accent-background-light is the same as --contrast-background on dark themes
121
- "accent-background-light": brand-colour("grey"),
126
+ // "accent-background-light": brand-colour("light-grey"),
122
127
  )
123
128
  ) !default;
124
129
 
@@ -143,8 +148,8 @@ $colour-palette-high-contrast: map.merge(
143
148
  "contrast-font-base": brand-colour("black"),
144
149
  "contrast-font-dark": brand-colour("black"),
145
150
  "contrast-font-light": brand-colour("black"),
146
- "contrast-link": brand-colour("navy"),
147
- "contrast-link-visited": brand-colour("black"),
151
+ "contrast-link": #34d,
152
+ "contrast-link-visited": #848,
148
153
  "contrast-keyline": brand-colour("black"),
149
154
  "contrast-keyline-dark": brand-colour("black"),
150
155
  "contrast-button-text": brand-colour("white"),
@@ -167,7 +172,7 @@ $colour-palette-high-contrast-dark: map.merge(
167
172
  "font-light": brand-colour("white"),
168
173
  "icon-light": brand-colour("white", 0.75),
169
174
  "link": #69f,
170
- "link-visited": #a6c,
175
+ "link-visited": #b9f,
171
176
  "keyline": brand-colour("white"),
172
177
  "contrast-background": brand-colour("black"),
173
178
  )
@@ -0,0 +1,2 @@
1
+ $form-field-border-width: 1px !default;
2
+ $checkbox-checkmark-width: 0.1875rem !default;
@@ -1,6 +1,7 @@
1
1
  @use "assets";
2
2
  @use "colour";
3
3
  @use "features";
4
+ @use "forms";
4
5
  @use "grid";
5
6
  @use "media";
6
7
  @use "spacing";
@@ -2,11 +2,11 @@
2
2
 
3
3
  $use-local-fonts: false !default;
4
4
 
5
- $relative-1rem-px: 16;
5
+ $relative-1rem-px: 16; // 16px is always 1rem
6
6
 
7
7
  $body-font-size-px: 18 !default;
8
8
  $body-font-size-px-mobile: 17 !default;
9
- $body-line-height: #{math.div(16, 18) * 2} !default; // 1.77777
9
+ $body-line-height: #{math.div($relative-1rem-px, $body-font-size-px) * 2} !default; // 1.77777
10
10
 
11
11
  $interactive-text-decoration-thickness: 3.5px !default;
12
12
 
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@nationalarchives/frontend",
3
- "version": "0.1.24-prerelease",
3
+ "version": "0.1.26-prerelease",
4
4
  "description": "The National Archives frontend styles",
5
5
  "scripts": {
6
6
  "start": "storybook dev -p 6006",
7
7
  "build": "storybook build -o storybook --webpack-stats-json",
8
- "test": "node tasks/test-fixtures.js && test-storybook --verbose --stories-json",
9
- "lint": "prettier --check '{src,.storybook,tasks}/**/*.{js,mjs,scss,json,html}' && stylelint 'src/**/*.scss' && eslint 'src/**/*.mjs'",
10
- "lint:fix": "prettier --write '{src,.storybook,tasks}/**/*.{js,mjs,scss,json,html}' && stylelint --fix 'src/**/*.scss' && eslint --fix 'src/**/*.mjs'",
8
+ "test": "node tasks/test-fixtures.js && jest && test-storybook",
9
+ "lint": "prettier --check '{src,.storybook,tasks,.}/**/*.{js,mjs,scss,json,html}' && stylelint 'src/**/*.scss' && eslint 'src/**/*.{js,mjs}'",
10
+ "lint:fix": "prettier --write '{src,.storybook,tasks,.}/**/*.{js,mjs,scss,json,html}' && stylelint --fix 'src/**/*.scss' && eslint --fix 'src/**/*.{js,mjs}'",
11
11
  "package:sass": "sass --style=compressed --embed-sources src/nationalarchives:package/nationalarchives",
12
12
  "package:scripts": "webpack"
13
13
  },
@@ -41,30 +41,30 @@
41
41
  "devDependencies": {
42
42
  "@babel/core": "^7.23.2",
43
43
  "@babel/preset-env": "^7.23.2",
44
- "@chromaui/addon-visual-tests": "^0.0.109",
45
- "@mdx-js/react": "^2.1.3",
46
- "@storybook/addon-a11y": "^7.5.1",
47
- "@storybook/addon-docs": "^7.5.1",
48
- "@storybook/addon-essentials": "^7.5.1",
49
- "@storybook/addon-interactions": "^7.5.1",
50
- "@storybook/addon-links": "^7.5.1",
51
- "@storybook/addon-mdx-gfm": "^7.5.1",
52
- "@storybook/html": "^7.5.1",
53
- "@storybook/html-webpack5": "^7.5.1",
44
+ "@chromaui/addon-visual-tests": "^0.0.119",
45
+ "@mdx-js/react": "^3.0.0",
46
+ "@storybook/addon-a11y": "^7.5.3",
47
+ "@storybook/addon-docs": "^7.5.3",
48
+ "@storybook/addon-essentials": "^7.5.3",
49
+ "@storybook/addon-interactions": "^7.5.3",
50
+ "@storybook/addon-links": "^7.5.3",
51
+ "@storybook/addon-mdx-gfm": "^7.5.3",
52
+ "@storybook/html": "^7.5.3",
53
+ "@storybook/html-webpack5": "^7.5.3",
54
54
  "@storybook/jest": "^0.2.3",
55
- "@storybook/test-runner": "^0.13.0",
55
+ "@storybook/test-runner": "^0.15.2",
56
56
  "@storybook/testing-library": "^0.2.2",
57
57
  "axe-playwright": "^1.2.3",
58
+ "babel-jest": "^29.7.0",
58
59
  "babel-loader": "^9.0.1",
59
- "chromatic": "^7.5.0",
60
+ "chromatic": "^9.1.0",
60
61
  "copy-webpack-plugin": "^11.0.0",
61
62
  "css-loader": "^6.7.1",
62
63
  "diff": "^5.1.0",
63
64
  "eslint": "^8.52.0",
64
65
  "eslint-plugin-storybook": "^0.6.15",
65
66
  "glob": "^10.3.10",
66
- "jest-image-snapshot": "^6.2.0",
67
- "jsdom": "^22.1.0",
67
+ "jest-environment-jsdom": "^29.7.0",
68
68
  "mdx-mermaid": "^2.0.0",
69
69
  "node-self": "^1.0.2",
70
70
  "nunjucks": "^3.2.3",
@@ -74,7 +74,7 @@
74
74
  "sass": "^1.69.4",
75
75
  "sass-loader": "^13.0.2",
76
76
  "simple-nunjucks-loader": "^3.2.0",
77
- "storybook": "^7.5.1",
77
+ "storybook": "^7.5.3",
78
78
  "style-loader": "^3.3.1",
79
79
  "stylelint": "^15.11.0",
80
80
  "stylelint-config-standard-scss": "^11.0.0",
@@ -1,53 +0,0 @@
1
- import { Meta, Canvas } from "@storybook/blocks";
2
- import * as OverrideStories from './overrides.stories';
3
-
4
- <Meta of={OverrideStories} />
5
-
6
- # Overrides
7
-
8
- ## Options
9
-
10
- `property`:
11
-
12
- - `margin`
13
- - `padding`
14
-
15
- `direction`:
16
-
17
- - `top`
18
- - `bottom`
19
- - `vertical` - `top` and `bottom`
20
-
21
- ## Removing space
22
-
23
- ```
24
- // For all devices
25
- tna-!--no-[property]-[direction]
26
- ```
27
-
28
- `device` options (optional):
29
-
30
- - `large`
31
- - `medium`
32
- - `small`
33
- - `tiny`
34
-
35
- ```
36
- // For a specific device size
37
- tna-!--no-[property]-[direction]-[device]
38
- ```
39
-
40
- ## Adding space
41
-
42
- `size` options:
43
-
44
- - `xs`
45
- - `s`
46
- - `m`
47
- - `l`
48
- - `xl`
49
- - `xxl`
50
-
51
- ```css
52
- tna-!--[property]-[direction]-[size]
53
- ```