@nationalarchives/frontend 0.1.42 → 0.1.44

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 (135) hide show
  1. package/govuk-prototype-kit.config.json +10 -7
  2. package/nationalarchives/all.css +1 -1
  3. package/nationalarchives/all.css.map +1 -1
  4. package/nationalarchives/all.js +1 -1
  5. package/nationalarchives/all.js.map +1 -1
  6. package/nationalarchives/analytics.js +1 -1
  7. package/nationalarchives/analytics.js.map +1 -1
  8. package/nationalarchives/analytics.mjs +168 -73
  9. package/nationalarchives/components/breadcrumbs/breadcrumbs.css.map +1 -1
  10. package/nationalarchives/components/breadcrumbs/template.njk +2 -1
  11. package/nationalarchives/components/button/button-group.stories.js +122 -0
  12. package/nationalarchives/components/button/button.css +1 -1
  13. package/nationalarchives/components/button/button.css.map +1 -1
  14. package/nationalarchives/components/button/button.scss +4 -8
  15. package/nationalarchives/components/button/button.stories.js +36 -38
  16. package/nationalarchives/components/button/fixtures.json +3 -3
  17. package/nationalarchives/components/button/template.njk +9 -8
  18. package/nationalarchives/components/card/card.css +1 -1
  19. package/nationalarchives/components/card/card.css.map +1 -1
  20. package/nationalarchives/components/card/card.scss +10 -5
  21. package/nationalarchives/components/card/card.stories.js +39 -23
  22. package/nationalarchives/components/card/fixtures.json +16 -2
  23. package/nationalarchives/components/card/macro-options.json +0 -6
  24. package/nationalarchives/components/card/template.njk +1 -4
  25. package/nationalarchives/components/checkboxes/checkboxes.css.map +1 -1
  26. package/nationalarchives/components/compound-filters/compound-filters.css.map +1 -1
  27. package/nationalarchives/components/cookie-banner/cookie-banner.css.map +1 -1
  28. package/nationalarchives/components/cookie-banner/fixtures.json +10 -10
  29. package/nationalarchives/components/date-input/date-input.css.map +1 -1
  30. package/nationalarchives/components/date-search/date-search.css.map +1 -1
  31. package/nationalarchives/components/error-summary/error-summary.css +1 -1
  32. package/nationalarchives/components/error-summary/error-summary.css.map +1 -1
  33. package/nationalarchives/components/error-summary/error-summary.scss +1 -1
  34. package/nationalarchives/components/featured-records/featured-records.css +1 -1
  35. package/nationalarchives/components/featured-records/featured-records.css.map +1 -1
  36. package/nationalarchives/components/featured-records/featured-records.scss +1 -1
  37. package/nationalarchives/components/footer/analytics.js +95 -0
  38. package/nationalarchives/components/footer/fixtures.json +10 -10
  39. package/nationalarchives/components/footer/footer.css +1 -1
  40. package/nationalarchives/components/footer/footer.css.map +1 -1
  41. package/nationalarchives/components/footer/footer.scss +4 -3
  42. package/nationalarchives/components/footer/footer.stories.js +12 -9
  43. package/nationalarchives/components/footer/template.njk +17 -12
  44. package/nationalarchives/components/gallery/gallery.css.map +1 -1
  45. package/nationalarchives/components/gallery/template.njk +1 -1
  46. package/nationalarchives/components/global-header/README.md +1 -1
  47. package/nationalarchives/components/global-header/analytics.js +49 -3
  48. package/nationalarchives/components/global-header/fixtures.json +1 -1
  49. package/nationalarchives/components/global-header/global-header.css +1 -1
  50. package/nationalarchives/components/global-header/global-header.css.map +1 -1
  51. package/nationalarchives/components/global-header/global-header.js +1 -1
  52. package/nationalarchives/components/global-header/global-header.js.map +1 -1
  53. package/nationalarchives/components/global-header/global-header.mjs +40 -79
  54. package/nationalarchives/components/global-header/global-header.scss +9 -6
  55. package/nationalarchives/components/global-header/macro-options.json +12 -0
  56. package/nationalarchives/components/global-header/template.njk +7 -7
  57. package/nationalarchives/components/grid/grid.css +1 -1
  58. package/nationalarchives/components/grid/grid.css.map +1 -1
  59. package/nationalarchives/components/grid/grid.scss +0 -1
  60. package/nationalarchives/components/header/analytics.js +3 -8
  61. package/nationalarchives/components/header/fixtures.json +1 -1
  62. package/nationalarchives/components/header/header.css +1 -1
  63. package/nationalarchives/components/header/header.css.map +1 -1
  64. package/nationalarchives/components/header/header.js +1 -1
  65. package/nationalarchives/components/header/header.js.map +1 -1
  66. package/nationalarchives/components/header/header.mjs +32 -41
  67. package/nationalarchives/components/header/header.scss +3 -2
  68. package/nationalarchives/components/header/macro-options.json +6 -0
  69. package/nationalarchives/components/header/template.njk +6 -6
  70. package/nationalarchives/components/hero/hero.css +1 -1
  71. package/nationalarchives/components/hero/hero.css.map +1 -1
  72. package/nationalarchives/components/hero/hero.scss +1 -1
  73. package/nationalarchives/components/index-grid/fixtures.json +8 -8
  74. package/nationalarchives/components/index-grid/index-grid.css.map +1 -1
  75. package/nationalarchives/components/index-grid/macro-options.json +1 -1
  76. package/nationalarchives/components/index-grid/template.njk +41 -38
  77. package/nationalarchives/components/message/message.css +1 -1
  78. package/nationalarchives/components/message/message.css.map +1 -1
  79. package/nationalarchives/components/message/message.scss +2 -3
  80. package/nationalarchives/components/pagination/fixtures.json +1 -1
  81. package/nationalarchives/components/pagination/macro-options.json +6 -0
  82. package/nationalarchives/components/pagination/pagination.css.map +1 -1
  83. package/nationalarchives/components/pagination/pagination.stories.js +44 -0
  84. package/nationalarchives/components/pagination/template.njk +5 -2
  85. package/nationalarchives/components/phase-banner/phase-banner.css.map +1 -1
  86. package/nationalarchives/components/picture/analytics.js +5 -9
  87. package/nationalarchives/components/picture/picture.css.map +1 -1
  88. package/nationalarchives/components/quick-filters/quick-filters.css.map +1 -1
  89. package/nationalarchives/components/radios/radios.css.map +1 -1
  90. package/nationalarchives/components/search-field/search-field.css.map +1 -1
  91. package/nationalarchives/components/search-filters/search-filters.css.map +1 -1
  92. package/nationalarchives/components/select/select.css.map +1 -1
  93. package/nationalarchives/components/sensitive-image/fixtures.json +3 -3
  94. package/nationalarchives/components/sensitive-image/template.njk +1 -1
  95. package/nationalarchives/components/skip-link/skip-link.css +1 -1
  96. package/nationalarchives/components/skip-link/skip-link.css.map +1 -1
  97. package/nationalarchives/components/skip-link/skip-link.scss +1 -1
  98. package/nationalarchives/components/skip-link/skip-link.stories.js +1 -1
  99. package/nationalarchives/components/tabs/tabs.css.map +1 -1
  100. package/nationalarchives/components/text-input/text-input.css.map +1 -1
  101. package/nationalarchives/components/textarea/textarea.css.map +1 -1
  102. package/nationalarchives/global-header-package.css +1 -1
  103. package/nationalarchives/global-header-package.css.map +1 -1
  104. package/nationalarchives/global-header-package.scss +4 -6
  105. package/nationalarchives/lib/analytics-helpers.mjs +13 -8
  106. package/nationalarchives/prototype-kit.css +1 -1
  107. package/nationalarchives/prototype-kit.css.map +1 -1
  108. package/nationalarchives/stories/utilities/colour-schemes/colour-themes.stories.js +29 -15
  109. package/nationalarchives/stories/utilities/tables/tables.stories.js +30 -28
  110. package/nationalarchives/templates/fixtures.json +28 -0
  111. package/nationalarchives/templates/index-grid.njk +149 -0
  112. package/nationalarchives/templates/layouts/_generic.njk +11 -25
  113. package/nationalarchives/templates/layouts/_prototype-kit.njk +4 -4
  114. package/nationalarchives/templates/list.njk +55 -0
  115. package/nationalarchives/templates/plain.njk +94 -0
  116. package/nationalarchives/tools/_a11y.scss +11 -2
  117. package/nationalarchives/tools/_colour.scss +24 -0
  118. package/nationalarchives/tools/_spacing.scss +14 -2
  119. package/nationalarchives/utilities/_a11y.scss +4 -0
  120. package/nationalarchives/utilities/_forms.scss +1 -1
  121. package/nationalarchives/utilities/_global.scss +5 -5
  122. package/nationalarchives/utilities/_lists.scss +1 -1
  123. package/nationalarchives/utilities/_reset.scss +5 -2
  124. package/nationalarchives/utilities/_tables.scss +23 -6
  125. package/nationalarchives/utilities/_typography.scss +3 -21
  126. package/nationalarchives/variables/_a11y.scss +2 -0
  127. package/nationalarchives/variables/_grid.scss +1 -1
  128. package/nationalarchives/variables/_index.scss +1 -0
  129. package/package.json +5 -2
  130. package/nationalarchives/templates/homepage.njk +0 -17
  131. package/nationalarchives/templates/search-results.njk +0 -34
  132. package/nationalarchives/templates/topics.njk +0 -38
  133. package/nationalarchives/tests/analytics.test.js +0 -11
  134. package/nationalarchives/tests/cookies.test.js +0 -487
  135. package/nationalarchives/tests/uuid.test.js +0 -11
@@ -1,18 +1,17 @@
1
1
  {# Based on https://github.com/alphagov/govuk-frontend/blob/8b6bf304b9fc891f64459c25a08f3d623f3fea72/packages/govuk-frontend/src/govuk/template.njk #}
2
2
 
3
- {% from "nationalarchives/components/cookie-banner/macro.njk" import tnaCookieBanner -%}
4
- {% from "nationalarchives/components/footer/macro.njk" import tnaFooter -%}
5
- {% from "nationalarchives/components/header/macro.njk" import tnaHeader -%}
6
- {% from "nationalarchives/components/skip-link/macro.njk" import tnaSkipLink -%}
3
+ {% from 'nationalarchives/components/cookie-banner/macro.njk' import tnaCookieBanner -%}
4
+ {% from 'nationalarchives/components/footer/macro.njk' import tnaFooter -%}
5
+ {% from 'nationalarchives/components/header/macro.njk' import tnaHeader -%}
6
+ {% from 'nationalarchives/components/skip-link/macro.njk' import tnaSkipLink -%}
7
7
 
8
- {% set siteTitle = 'The National Archives' %}
9
- {% set pageTitle = '' %}
8
+ {% set defaultSiteTitle = 'The National Archives' %}
10
9
 
11
10
  <!DOCTYPE html>
12
11
  <html lang="{{ htmlLang | default('en') }}" class="tna-template tna-template--{{ theme | default('system') }}-theme tna-template--{{ themeAccent | default('black') }}-accent {{ htmlClasses }}"{% for attribute, value in htmlAttributes %} {{attribute}}="{{value}}"{% endfor %}>
13
12
  <head>
14
13
  <meta charset="utf-8">
15
- <title>{% block pageTitle %}{% if pageTitle %}{{ pageTitle }} - {{ siteTitle }}{% else %}{{ siteTitle }}{% endif %}{% endblock %}</title>
14
+ <title>{% block pageTitle %}{% if pageTitle %}{{ pageTitle }} - {{ siteTitle or defaultSiteTitle }}{% else %}{{ siteTitle or defaultSiteTitle }}{% endif %}{% endblock %}</title>
16
15
  <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
17
16
  <meta name="theme-color" content="{{ themeColor | default('#000000') }}">
18
17
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
@@ -36,17 +35,13 @@
36
35
 
37
36
  {% block head %}{% endblock %}
38
37
 
39
- {% block stylesheets %}
40
- <link rel="stylesheet" type="text/css" href="{{ tnaFrontendCssPath | default('/static/tna-frontend') }}/all.css">
41
- <link rel="stylesheet" type="text/css" href="https://use.typekit.net/hkj3kuz.css">
42
- {% endblock %}
38
+ {% block stylesheets %}{% endblock %}
43
39
  </head>
44
- <body class="tna-template__body {{ bodyClasses }}"{% for attribute, value in bodyAttributes %} {{attribute}}="{{value}}"{% endfor %}>
40
+ <body class="tna-template__body {{ bodyClasses }}"{% for attribute, value in bodyAttributes %} {{ attribute }}="{{ value }}"{% endfor %}>
45
41
  {% block bodyStart %}
46
42
  {% block cookies %}
47
43
  {{ tnaCookieBanner({
48
- cookiesUrl: '#',
49
- cookiesPath: "/tna-frontend/"
44
+ cookiesUrl: '#/cookies'
50
45
  }) }}
51
46
  {% endblock %}
52
47
 
@@ -64,7 +59,7 @@
64
59
 
65
60
  {% block main %}
66
61
  {% block beforeContent %}{% endblock %}
67
- <main class="tna-main-wrapper {{ mainClasses }}" id="main-content" role="main">
62
+ <main class="tna-main {{ mainClasses }}" id="main-content">
68
63
  {% block content %}{% endblock %}
69
64
  </main>
70
65
  {% block afterContent %}{% endblock %}
@@ -74,15 +69,6 @@
74
69
  {{ tnaFooter({}) }}
75
70
  {% endblock %}
76
71
 
77
- {% block bodyEnd %}
78
- <script src="{{ tnaFrontendJsPath | default('/static/tna-frontend') }}/all.js"></script>
79
- <script>
80
- if (window.TNAFrontend && window.TNAFrontend.initAll) {
81
- document.addEventListener("DOMContentLoaded", function() {
82
- window.TNAFrontend.initAll();
83
- });
84
- }
85
- </script>
86
- {% endblock %}
72
+ {% block bodyEnd %}{% endblock %}
87
73
  </body>
88
74
  </html>
@@ -1,14 +1,14 @@
1
- {% extends "./_generic.njk" %}
1
+ {% extends './_generic.njk' %}
2
2
 
3
- {% set assetPath = "/plugin-assets/%40nationalarchives%2Ffrontend/nationalarchives/assets" %}
3
+ {% set assetPath = '/plugin-assets/%40nationalarchives%2Ffrontend/nationalarchives/assets' %}
4
4
 
5
5
  {% block stylesheets %}
6
- {% include "govuk-prototype-kit/includes/stylesheets-plugins.njk" %}
6
+ {% include 'govuk-prototype-kit/includes/stylesheets-plugins.njk' ignore missing %}
7
7
  <link rel="stylesheet" type="text/css" href="https://use.typekit.net/hkj3kuz.css">
8
8
  {% endblock %}
9
9
 
10
10
  {% block bodyEnd %}
11
- {% include "govuk-prototype-kit/includes/scripts.njk" %}
11
+ {% include 'govuk-prototype-kit/includes/scripts.njk' ignore missing %}
12
12
  <script>
13
13
  if (window.TNAFrontend && window.TNAFrontend.initAll) {
14
14
  document.addEventListener("DOMContentLoaded", function() {
@@ -0,0 +1,55 @@
1
+ {% extends 'nationalarchives/templates/layouts/_prototype-kit.njk' %}
2
+
3
+ {% from 'nationalarchives/components/breadcrumbs/macro.njk' import tnaBreadcrumbs %}
4
+ {% from 'nationalarchives/components/card/macro.njk' import tnaCard %}
5
+
6
+ {% set pageTitle = 'List page' %}
7
+ {% set theme = 'light' %}
8
+ {% set themeAccent = 'blue' %}
9
+
10
+ {% block beforeContent %}
11
+ <div class="tna-background-accent">
12
+ <div class="tna-container">
13
+ <div class="tna-column tna-column--full">
14
+ {{ tnaBreadcrumbs({
15
+ items: [
16
+ {
17
+ text: 'Home',
18
+ href: '/'
19
+ }
20
+ ]
21
+ }) }}
22
+ </div>
23
+ </div>
24
+ </div>
25
+ {% endblock %}
26
+
27
+ {% block content %}
28
+ <main class="tna-main">
29
+ <div class="tna-section tna-background-accent tna-!--padding-bottom-xl">
30
+ <div class="tna-container">
31
+ <div class="tna-column tna-column--width-2-3 tna-column--width-5-6-medium tna-column--full-small tna-column--full-tiny">
32
+ <h1 class="tna-heading-xl">
33
+ {{ pageTitle }}
34
+ </h1>
35
+ <p class="tna-large-paragraph">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet luctus libero. Cras nec mauris ex. Fusce nisl erat, efficitur sed auctor ornare, varius fermentum arcu.</p>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ <nav class="tna-section" aria-label="Child pages">
40
+ <menu class="tna-container tna-ul tna-ul--plain">
41
+ {%- for item in range(0, 12) %}
42
+ <li class="tna-column tna-column--width-1-3 tna-column--width-1-3-medium tna-column--width-1-2-small tna-column--full-tiny tna-!--margin-bottom-l">
43
+ {{ tnaCard({
44
+ title: "Item " + (item + 1),
45
+ headingLevel: 2,
46
+ headingSize: "m",
47
+ href: "#",
48
+ text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam sit amet luctus libero. Cras nec mauris ex. Fusce nisl erat, efficitur sed auctor ornare, varius fermentum arcu."
49
+ }) }}
50
+ </li>
51
+ {%- endfor %}
52
+ </menu>
53
+ </nav>
54
+ </main>
55
+ {% endblock %}
@@ -0,0 +1,94 @@
1
+ {% extends 'nationalarchives/templates/layouts/_prototype-kit.njk' %}
2
+
3
+ {% from 'nationalarchives/components/breadcrumbs/macro.njk' import tnaBreadcrumbs %}
4
+
5
+ {% set pageTitle = 'Plain page' %}
6
+ {% set theme = 'light' %}
7
+ {% set themeAccent = 'blue' %}
8
+
9
+ {% block beforeContent %}
10
+ <div class="tna-container">
11
+ <div class="tna-column tna-column--full">
12
+ {{ tnaBreadcrumbs({
13
+ items: [
14
+ {
15
+ text: 'Home',
16
+ href: '/'
17
+ }
18
+ ]
19
+ }) }}
20
+ </div>
21
+ </div>
22
+ {% endblock %}
23
+
24
+ {% block content %}
25
+ <div class="tna-section">
26
+ <div class="tna-container">
27
+ <div class="tna-column tna-column--width-2-3 tna-column--width-5-6-medium tna-column--full-small tna-column--full-tiny">
28
+ <h1 class="tna-heading-xl">
29
+ {{ pageTitle }}
30
+ </h1>
31
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mauris at magna est. Sed vel fermentum arcu. Suspendisse viverra est nec interdum tincidunt. Phasellus dictum, turpis eget iaculis tincidunt, ex metus porttitor turpis, ut pulvinar risus erat quis dui. Nam semper sapien a ipsum congue pharetra.</p>
32
+ <p>Donec cursus, eros eu egestas aliquam, ipsum ligula suscipit metus, eget maximus turpis nisl vitae ex. Etiam ornare convallis quam a consequat. Etiam sodales aliquet nulla, id rutrum justo accumsan sed.</p>
33
+ <ul class="tna-ul">
34
+ <li>Alpha</li>
35
+ <li>Beta</li>
36
+ <li>Gamma</li>
37
+ </ul>
38
+ <ol class="tna-ol">
39
+ <li>Alpha</li>
40
+ <li>Beta</li>
41
+ <li>Gamma</li>
42
+ </ol>
43
+ <dl class="tna-dl">
44
+ <dt>Alpha</dt>
45
+ <dd>Lorem ipsum</dd>
46
+ <dt>Beta</dt>
47
+ <dd>Lorem ipsum</dd>
48
+ <dt>Gamma</dt>
49
+ <dd>Lorem ipsum</dd>
50
+ <dt>Delta</dt>
51
+ <dd>Lorem ipsum</dd>
52
+ <dt>Epsilon</dt>
53
+ <dd>Lorem ipsum</dd>
54
+ </dl>
55
+ <table class="tna-table">
56
+ <caption class="tna-table__caption">
57
+ Records added and removed between 2020 and 2022
58
+ </caption>
59
+ <thead class="tna-table__head">
60
+ <tr class="tna-table__row">
61
+ <th class="tna-table__header">Year</th>
62
+ <th class="tna-table__header tna-table__header--numeric">Records added</th>
63
+ <th class="tna-table__header tna-table__header--numeric">Records removed</th>
64
+ </tr>
65
+ </thead>
66
+ <tbody class="tna-table__body">
67
+ <tr>
68
+ <th class="tna-table__header">2020</th>
69
+ <td class="tna-table__cell tna-table__cell--numeric">123,456</td>
70
+ <td class="tna-table__cell tna-table__cell--numeric">789</td>
71
+ </tr>
72
+ <tr>
73
+ <th class="tna-table__header">2021</th>
74
+ <td class="tna-table__cell tna-table__cell--numeric">456,789</td>
75
+ <td class="tna-table__cell tna-table__cell--numeric">123</td>
76
+ </tr>
77
+ <tr>
78
+ <th class="tna-table__header">2022</th>
79
+ <td class="tna-table__cell tna-table__cell--numeric">42,424</td>
80
+ <td class="tna-table__cell tna-table__cell--numeric">1,337</td>
81
+ </tr>
82
+ </tbody>
83
+ <tfoot class="tna-table__foot">
84
+ <tr>
85
+ <th class="tna-table__header">Total</th>
86
+ <td class="tna-table__cell tna-table__cell--numeric">622,669</td>
87
+ <td class="tna-table__cell tna-table__cell--numeric">2,249</td>
88
+ </tr>
89
+ </tfoot>
90
+ </table>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ {% endblock %}
@@ -1,6 +1,15 @@
1
+ @use "../variables/a11y";
1
2
  @use "colour";
2
3
 
3
4
  @mixin focus-outline {
4
- @include colour.colour-outline("focus-outline", 5px, solid);
5
- outline-offset: 2px;
5
+ @include colour.colour-outline(
6
+ "focus-outline",
7
+ a11y.$focus-outline-width,
8
+ solid
9
+ );
10
+ outline-offset: a11y.$focus-outline-offset;
11
+ }
12
+
13
+ @mixin active-outline {
14
+ outline-offset: 0;
6
15
  }
@@ -97,6 +97,10 @@
97
97
  background-color: var(--#{$colour}) if($important, !important, null);
98
98
  }
99
99
 
100
+ @mixin colour-background-brand($brandColour, $important: false) {
101
+ background-color: #{brand-colour($brandColour)} if($important, !important, null);
102
+ }
103
+
100
104
  @mixin colour-border(
101
105
  $colour,
102
106
  $width: "",
@@ -159,6 +163,26 @@
159
163
  fill: var(--#{$colour}) if($important, !important, null);
160
164
  }
161
165
 
166
+ @mixin thick-keyline($direction) {
167
+ @include colour-border("keyline", 5px, solid, $direction);
168
+ }
169
+
170
+ @mixin thick-keyline-dark($direction) {
171
+ @include colour-border("keyline-dark", 5px, solid, $direction);
172
+ }
173
+
174
+ @mixin thick-keyline-accent($direction) {
175
+ @include colour-border("accent-background", 5px, solid, $direction);
176
+ }
177
+
178
+ @mixin thick-keyline-error($direction) {
179
+ @include colour-border("form-error", 5px, solid, $direction);
180
+ }
181
+
182
+ @mixin thick-keyline-brand($direction, $brandColour) {
183
+ border-#{$direction}: 5px #{brand-colour($brandColour)} solid;
184
+ }
185
+
162
186
  %light {
163
187
  @include colour-css-vars("form-error");
164
188
 
@@ -10,8 +10,20 @@
10
10
  }
11
11
  }
12
12
 
13
- @mixin space-above {
14
- @extend %space-above;
13
+ %space-only-above {
14
+ margin: 2rem 0 0;
15
+
16
+ &:first-child {
17
+ margin-top: 0;
18
+ }
19
+ }
20
+
21
+ @mixin space-above($zero-other-margins: false) {
22
+ @if $zero-other-margins {
23
+ @extend %space-only-above;
24
+ } @else {
25
+ @extend %space-above;
26
+ }
15
27
  }
16
28
 
17
29
  @function space($size) {
@@ -32,6 +32,10 @@
32
32
  @include a11y.focus-outline;
33
33
  }
34
34
 
35
+ *:active {
36
+ @include a11y.active-outline;
37
+ }
38
+
35
39
  .tna-\!--no-focus-style {
36
40
  &:focus {
37
41
  outline: none;
@@ -17,7 +17,7 @@ select {
17
17
  &--error {
18
18
  padding-left: 1rem;
19
19
 
20
- @include colour.colour-border("form-error", 0.25rem, solid, left);
20
+ @include colour.thick-keyline-error(left);
21
21
  }
22
22
  }
23
23
 
@@ -19,12 +19,12 @@
19
19
  margin: 0;
20
20
  padding: 0;
21
21
 
22
- &:has(.tna-header):has(#main-content[role="main"]):has(.tna-footer) {
22
+ &:has(:is(.tna-global-header, .tna-header)):has(.tna-main):has(.tna-footer) {
23
23
  display: flex;
24
24
  flex-direction: column;
25
-
26
- #main-content {
27
- flex: 1;
28
- }
29
25
  }
30
26
  }
27
+
28
+ .tna-main {
29
+ flex: 1;
30
+ }
@@ -70,7 +70,7 @@
70
70
  }
71
71
 
72
72
  .tna-dl {
73
- margin: 1rem 0 0;
73
+ @include spacing.space-above(true);
74
74
 
75
75
  display: flex;
76
76
  flex-wrap: wrap;
@@ -1,5 +1,10 @@
1
1
  @use "../tools/colour";
2
2
 
3
+ * {
4
+ margin: 0;
5
+ padding: 0;
6
+ }
7
+
3
8
  img,
4
9
  svg,
5
10
  picture,
@@ -21,8 +26,6 @@ canvas {
21
26
  }
22
27
 
23
28
  hr {
24
- margin: 0;
25
-
26
29
  border-width: 1px 0 0;
27
30
  @include colour.colour-border("keyline");
28
31
  border-style: solid;
@@ -4,7 +4,6 @@
4
4
  @use "../tools/media";
5
5
  @use "../tools/spacing";
6
6
  @use "../tools/typography";
7
- @use "../variables/assets";
8
7
  @use "../variables/grid";
9
8
 
10
9
  .tna-table {
@@ -20,23 +19,32 @@
20
19
  }
21
20
 
22
21
  &__caption {
23
- text-align: left;
22
+ padding: 1rem 0;
24
23
 
25
- @include typography.main-font-weight-bold;
24
+ caption-side: bottom;
25
+
26
+ @include typography.relative-font-size(16);
26
27
  }
27
28
 
28
29
  &__head {
30
+ vertical-align: bottom;
29
31
  }
30
32
 
31
- &__header {
33
+ &__body {
34
+ vertical-align: top;
32
35
  }
33
36
 
34
- &__body {
37
+ &__foot {
38
+ @include typography.main-font-weight-bold;
39
+ vertical-align: top;
35
40
  }
36
41
 
37
42
  &__row {
38
43
  }
39
44
 
45
+ &__header {
46
+ }
47
+
40
48
  &__cell {
41
49
  }
42
50
 
@@ -53,10 +61,19 @@
53
61
  &:last-child {
54
62
  padding-right: 0;
55
63
  }
64
+
65
+ &--numeric {
66
+ text-align: right;
67
+ }
56
68
  }
57
69
 
58
70
  &__head &__header {
59
- @include colour.colour-border("keyline-dark", 0.25rem, solid, bottom);
71
+ @include colour.colour-border("keyline-dark", 4px, solid, bottom);
72
+ }
73
+
74
+ &__foot &__header,
75
+ &__foot &__cell {
76
+ @include colour.colour-border("keyline-dark", 4px, solid, top);
60
77
  }
61
78
 
62
79
  p {
@@ -68,11 +68,6 @@
68
68
  }
69
69
  }
70
70
 
71
- * {
72
- margin: 0;
73
- padding: 0;
74
- }
75
-
76
71
  strong {
77
72
  @include typography.main-font-weight-bold;
78
73
  }
@@ -80,16 +75,9 @@ strong {
80
75
  p {
81
76
  @include spacing.space-above;
82
77
 
83
- + p/*,
84
- + .tna-ul,
85
- + .tna-ol,
86
- + .tna-blockquote*/ {
78
+ + p {
87
79
  margin-top: 1rem;
88
80
  }
89
-
90
- // + :is(p, .tna-ul, .tna-ol, .tna-blockquote) {
91
- // margin-top: 1rem;
92
- // }
93
81
  }
94
82
 
95
83
  a {
@@ -116,12 +104,6 @@ a {
116
104
  @include colour.colour-font("link");
117
105
  }
118
106
  }
119
-
120
- // &[target="_blank"]:not([title*="opens in a new"]) {
121
- // &::after {
122
- // content: "" / " (opens in a new window)"
123
- // }
124
- // }
125
107
  }
126
108
 
127
109
  small {
@@ -154,7 +136,7 @@ small {
154
136
  %chip-accent {
155
137
  @include colour.accent;
156
138
 
157
- @include colour.colour-border("accent-background", 0.125rem);
139
+ @include colour.colour-border("accent-background", 2px);
158
140
 
159
141
  .tna-background-accent & {
160
142
  @include colour.contrast;
@@ -381,7 +363,7 @@ small {
381
363
  margin-left: 0;
382
364
  padding: 1rem 1rem 1rem 2rem;
383
365
 
384
- @include colour.colour-border("accent-background", 0.375rem, solid, left);
366
+ @include colour.thick-keyline-accent(left);
385
367
 
386
368
  &__quote {
387
369
  font-weight: 700;
@@ -0,0 +1,2 @@
1
+ $focus-outline-width: 5px !default;
2
+ $focus-outline-offset: 2px !default;
@@ -1,4 +1,4 @@
1
- $largest-container-width: 75.25rem !default;
1
+ $largest-container-width: 80rem !default;
2
2
 
3
3
  $gutter-width: 2rem !default;
4
4
  $gutter-width-tiny: 1rem !default;
@@ -1,3 +1,4 @@
1
+ @use "a11y";
1
2
  @use "assets";
2
3
  @use "colour";
3
4
  @use "features";
package/package.json CHANGED
@@ -1,11 +1,14 @@
1
1
  {
2
2
  "name": "@nationalarchives/frontend",
3
- "version": "0.1.42",
3
+ "version": "0.1.44",
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 && jest && test-storybook --maxWorkers=1",
8
+ "test": "npm run test:fixtures && npm run test:unit && npm run test:storybook",
9
+ "test:fixtures": "node tasks/test-fixtures.js",
10
+ "test:unit": "jest --verbose",
11
+ "test:storybook": "test-storybook --maxWorkers=1",
9
12
  "lint": "prettier --check '{src,.storybook,tasks,.}/**/*.{js,mjs,scss,json,html}' && stylelint 'src/**/*.scss' && eslint 'src/**/*.{js,mjs}'",
10
13
  "lint:fix": "prettier --write '{src,.storybook,tasks,.}/**/*.{js,mjs,scss,json,html}' && stylelint --fix 'src/**/*.scss' && eslint --fix 'src/**/*.{js,mjs}'",
11
14
  "package:sass": "sass --style=compressed --embed-sources src/nationalarchives:package/nationalarchives",
@@ -1,17 +0,0 @@
1
- {% from "nationalarchives/components/card/macro.njk" import tnaCard %}
2
-
3
- {% extends "nationalarchives/templates/layouts/_prototype-kit.njk" %}
4
-
5
- {% block pageTitle %}Welcome - The National Archives{% endblock %}
6
-
7
- {% block content %}
8
- <div class="tna-section">
9
- <div class="tna-container">
10
- <div class="tna-column tna-column--full">
11
- <h1 class="tna-heading-xl">
12
- Welcome
13
- </h1>
14
- </div>
15
- </div>
16
- </div>
17
- {% endblock %}
@@ -1,34 +0,0 @@
1
- {% from "nationalarchives/components/card/macro.njk" import tnaCard %}
2
-
3
- {% extends "nationalarchives/templates/layouts/_prototype-kit.njk" %}
4
-
5
- {% block pageTitle %}Search - The National Archives{% endblock %}
6
-
7
- {% block main %}
8
- <div class="tna-container">
9
- <div class="tna-column tna-column--1-4 tna-column--width-1-3-medium tna-column--full-small tna-column--full-tiny">
10
- <h2>Search filters...</h2>
11
- </div>
12
- <main class="tna-main-wrapper tna-column tna-column--container tna-column--3-4 tna-column--width-2-3-medium tna-column--full-small tna-column--full-tiny {{ mainClasses }}" id="main-content" role="main"{% if mainLang %} lang="{{ mainLang }}"{% endif %}>
13
- {% block beforeContent %}{% endblock %}
14
- <div class="tna-column tna-column--full">
15
- <h1 class="tna-heading-xl">
16
- Search results for "foobar"
17
- </h1>
18
- </div>
19
- {% for item in range(0, 6) -%}
20
- <div class="tna-column tna-column--width-1-2 tna-column--width-full-small tna-column--width-full-tiny">
21
- {{ tnaCard({
22
- supertitle: "Card supertitle",
23
- title: "Card title",
24
- headingLevel: 2,
25
- href: "#",
26
- imageSrc: "https://loremflickr.com/640/360",
27
- imageAlt: "A placeholder image",
28
- body: "<p>Card body</p>"
29
- }) }}
30
- </div>
31
- {%- endfor %}
32
- </main>
33
- </div>
34
- {% endblock %}
@@ -1,38 +0,0 @@
1
- {% from "nationalarchives/components/card/macro.njk" import tnaCard %}
2
- {% from "nationalarchives/components/hero/macro.njk" import tnaHero %}
3
-
4
- {% extends "nationalarchives/templates/layouts/_prototype-kit.njk" %}
5
-
6
- {% block pageTitle %}Topics - The National Archives{% endblock %}
7
-
8
- {% block main %}
9
- <main class="tna-main-wrapper">
10
- {{ tnaHero({
11
- heading: "Title",
12
- body: "<p>Body</p>",
13
- image: {
14
- src: "https://picsum.photos/id/29/640/360",
15
- alt: "A placeholder image",
16
- information: "Photo of some mountains by a famous photographer, ©2012"
17
- }
18
- }) }}
19
- <div class="tna-container">
20
- <div class="tna-column tna-column--full">
21
- <h2>Topic title</h2>
22
- </div>
23
- {% for item in range(0, 6) -%}
24
- <div class="tna-column tna-column--width-1-3 tna-column--width-1-2-medium tna-column--width-full-small tna-column--width-full-tiny">
25
- {{ tnaCard({
26
- supertitle: "Card supertitle",
27
- title: "Card title",
28
- headingLevel: 2,
29
- href: "#",
30
- imageSrc: "https://loremflickr.com/640/360",
31
- imageAlt: "A placeholder image",
32
- body: "<p>Card body</p>"
33
- }) }}
34
- </div>
35
- {%- endfor %}
36
- </div>
37
- </main>
38
- {% endblock %}
@@ -1,11 +0,0 @@
1
- import { describe, expect, test } from "@jest/globals";
2
- import { GA4 } from "../analytics.mjs";
3
-
4
- describe("Analytics", () => {
5
- test("Initialisation", async () => {
6
- const id = "example-id";
7
- const ga4 = new GA4(id);
8
-
9
- expect(ga4.gTagId).toEqual(id);
10
- });
11
- });