@nationalarchives/frontend 0.1.8-prerelease → 0.1.10-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 (94) hide show
  1. package/README.md +2 -2
  2. package/nationalarchives/_features.scss +1 -0
  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 +53 -6
  8. package/nationalarchives/assets/images/footer/facebook.svg +11 -0
  9. package/nationalarchives/assets/images/footer/flickr.svg +11 -0
  10. package/nationalarchives/assets/images/footer/instagram.svg +17 -0
  11. package/nationalarchives/assets/images/footer/rss.svg +13 -0
  12. package/nationalarchives/assets/images/footer/twitter.svg +14 -0
  13. package/nationalarchives/assets/images/footer/youtube.svg +12 -0
  14. package/nationalarchives/assets/images/tna-square-logo.svg +24 -45
  15. package/nationalarchives/components/_all.scss +4 -0
  16. package/nationalarchives/components/breadcrumbs/_index.scss +4 -3
  17. package/nationalarchives/components/breadcrumbs/breadcrumbs.stories.js +2 -3
  18. package/nationalarchives/components/breadcrumbs/fixtures.json +1 -1
  19. package/nationalarchives/components/breadcrumbs/macro-options.json +2 -2
  20. package/nationalarchives/components/breadcrumbs/template.njk +9 -9
  21. package/nationalarchives/components/button/_index.scss +25 -5
  22. package/nationalarchives/components/button/button.stories.js +2 -3
  23. package/nationalarchives/components/button/fixtures.json +5 -5
  24. package/nationalarchives/components/button/template.njk +3 -3
  25. package/nationalarchives/components/card/_index.scss +7 -3
  26. package/nationalarchives/components/card/card.stories.js +2 -3
  27. package/nationalarchives/components/card/fixtures.json +11 -11
  28. package/nationalarchives/components/card/template.njk +44 -44
  29. package/nationalarchives/components/filters/_index.scss +49 -0
  30. package/nationalarchives/components/filters/filters.stories.js +75 -0
  31. package/nationalarchives/components/filters/fixtures.json +4 -0
  32. package/nationalarchives/components/filters/macro-options.json +52 -0
  33. package/nationalarchives/components/filters/macro.njk +3 -0
  34. package/nationalarchives/components/filters/template.njk +8 -0
  35. package/nationalarchives/components/footer/_index.scss +49 -4
  36. package/nationalarchives/components/footer/fixtures.json +1 -1
  37. package/nationalarchives/components/footer/footer.stories.js +23 -26
  38. package/nationalarchives/components/footer/macro-options.json +12 -6
  39. package/nationalarchives/components/footer/template.njk +61 -51
  40. package/nationalarchives/components/grid/_index.scss +3 -78
  41. package/nationalarchives/components/grid/fixtures.json +12 -12
  42. package/nationalarchives/components/grid/grid.stories.js +3 -4
  43. package/nationalarchives/components/grid/template.njk +35 -35
  44. package/nationalarchives/components/header/_index.scss +452 -0
  45. package/nationalarchives/components/header/fixtures.json +4 -0
  46. package/nationalarchives/components/header/header.js +2 -0
  47. package/nationalarchives/components/header/header.js.map +1 -0
  48. package/nationalarchives/components/header/header.mjs +108 -0
  49. package/nationalarchives/components/header/header.stories.js +68 -0
  50. package/nationalarchives/components/header/macro-options.json +104 -0
  51. package/nationalarchives/components/header/macro.njk +3 -0
  52. package/nationalarchives/components/header/template.njk +66 -0
  53. package/nationalarchives/components/hero/_index.scss +4 -1
  54. package/nationalarchives/components/hero/hero.stories.js +17 -15
  55. package/nationalarchives/components/hero/macro-options.json +3 -3
  56. package/nationalarchives/components/hero/template.njk +27 -27
  57. package/nationalarchives/components/phase-banner/_index.scss +43 -0
  58. package/nationalarchives/components/phase-banner/fixtures.json +14 -0
  59. package/nationalarchives/components/phase-banner/macro-options.json +26 -0
  60. package/nationalarchives/components/phase-banner/macro.njk +3 -0
  61. package/nationalarchives/components/phase-banner/phase-banner.stories.js +38 -0
  62. package/nationalarchives/components/phase-banner/template.njk +16 -0
  63. package/nationalarchives/components/sensitive-image/fixtures.json +3 -3
  64. package/nationalarchives/components/sensitive-image/macro-options.json +2 -2
  65. package/nationalarchives/components/sensitive-image/sensitive-image.js +1 -1
  66. package/nationalarchives/components/sensitive-image/sensitive-image.js.map +1 -1
  67. package/nationalarchives/components/sensitive-image/sensitive-image.mjs +21 -22
  68. package/nationalarchives/components/sensitive-image/sensitive-image.stories.js +2 -3
  69. package/nationalarchives/components/sensitive-image/template.njk +7 -7
  70. package/nationalarchives/lib/uuid.mjs +9 -0
  71. package/nationalarchives/stories/development/contributing.mdx +38 -0
  72. package/nationalarchives/stories/development/dependencies.mdx +2 -0
  73. package/nationalarchives/stories/development/publishing.mdx +9 -0
  74. package/nationalarchives/stories/development/technologies.mdx +65 -0
  75. package/nationalarchives/stories/utilities/lists.stories.js +2 -2
  76. package/nationalarchives/stories/utilities/typography.mdx +15 -0
  77. package/nationalarchives/templates/homepage.njk +46 -46
  78. package/nationalarchives/templates/layouts/_generic.njk +49 -52
  79. package/nationalarchives/templates/layouts/_prototype-kit.njk +5 -0
  80. package/nationalarchives/templates/search-results.njk +31 -31
  81. package/nationalarchives/templates/topics.njk +33 -33
  82. package/nationalarchives/tools/_all.scss +1 -0
  83. package/nationalarchives/tools/_assets.scss +5 -0
  84. package/nationalarchives/tools/_grid.scss +52 -27
  85. package/nationalarchives/tools/_media.scss +12 -11
  86. package/nationalarchives/utilities/_global.scss +103 -3
  87. package/nationalarchives/utilities/_typography.scss +112 -92
  88. package/nationalarchives/variables/_all.scss +1 -0
  89. package/nationalarchives/variables/_assets.scss +1 -0
  90. package/nationalarchives/variables/_colour.scss +95 -1
  91. package/nationalarchives/variables/_media.scss +39 -11
  92. package/package.json +18 -16
  93. package/nationalarchives/assets/images/tna-square-logo-inverted.svg +0 -47
  94. package/nationalarchives/stories/development/structure.mdx +0 -7
@@ -1,38 +1,38 @@
1
- {% from "nationalarchives/components/card/macro.njk" import tnaCard %}
1
+ {% from "../components/card/macro.njk" import tnaCard %}
2
2
 
3
- {% extends "nationalarchives/templates/layouts/_generic.njk" %}
3
+ {% extends "./layouts/_prototype-kit.njk" %}
4
4
 
5
5
  {% block pageTitle %}The National Archives | Results{% endblock %}
6
6
 
7
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 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
- "heading": {
23
- "supertitle": "Card supertitle",
24
- "title": "Card title",
25
- "level": 2
26
- },
27
- "href": "#",
28
- "image": {
29
- "src": "https://loremflickr.com/640/360",
30
- "alt": "A placeholder image"
31
- },
32
- "body": "<p>Card body</p>",
33
- }) }}
34
- </div>
35
- {%- endfor %}
36
- </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>
37
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 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
+ "heading": {
23
+ "supertitle": "Card supertitle",
24
+ "title": "Card title",
25
+ "level": 2
26
+ },
27
+ "href": "#",
28
+ "image": {
29
+ "src": "https://loremflickr.com/640/360",
30
+ "alt": "A placeholder image"
31
+ },
32
+ "body": "<p>Card body</p>",
33
+ }) }}
34
+ </div>
35
+ {%- endfor %}
36
+ </main>
37
+ </div>
38
38
  {% endblock %}
@@ -1,42 +1,42 @@
1
- {% from "nationalarchives/components/card/macro.njk" import tnaCard %}
2
- {% from "nationalarchives/components/hero/macro.njk" import tnaHero %}
1
+ {% from "../components/card/macro.njk" import tnaCard %}
2
+ {% from "../components/hero/macro.njk" import tnaHero %}
3
3
 
4
- {% extends "nationalarchives/templates/layouts/_generic.njk" %}
4
+ {% extends "./layouts/_prototype-kit.njk" %}
5
5
 
6
6
  {% block pageTitle %}The National Archives | Topics{% endblock %}
7
7
 
8
8
  {% block main %}
9
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
- "heading": {
27
- "supertitle": "Card supertitle",
28
- "title": "Card title",
29
- "level": 3
30
- },
31
- "href": "#",
32
- "image": {
33
- "src": "https://loremflickr.com/640/360",
34
- "alt": "A placeholder image"
35
- },
36
- "body": "<p>Card body</p>",
37
- }) }}
38
- </div>
39
- {%- endfor %}
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>
40
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
+ "heading": {
27
+ "supertitle": "Card supertitle",
28
+ "title": "Card title",
29
+ "level": 3
30
+ },
31
+ "href": "#",
32
+ "image": {
33
+ "src": "https://loremflickr.com/640/360",
34
+ "alt": "A placeholder image"
35
+ },
36
+ "body": "<p>Card body</p>",
37
+ }) }}
38
+ </div>
39
+ {%- endfor %}
40
+ </div>
41
41
  </main>
42
42
  {% endblock %}
@@ -1,3 +1,4 @@
1
+ @use "assets";
1
2
  @use "grid";
2
3
  @use "media";
3
4
  @use "typography";
@@ -0,0 +1,5 @@
1
+ @use "../variables/assets";
2
+
3
+ @function tna-asset-url($asset) {
4
+ @return #{assets.$tna-assets-path}/#{$asset};
5
+ }
@@ -2,43 +2,68 @@
2
2
  @use "../variables/grid";
3
3
 
4
4
  @mixin columns-generator($count, $suffix: "") {
5
- @for $i from 1 through $count - 1 {
6
- $simplest-fraction-found: false;
7
-
8
- @for $j from math.div($count, 2) through 1 {
9
- @if (
10
- $count % $j == 0 and $i % $j == 0 and $simplest-fraction-found != true
11
- ) {
12
- .tna-column--width-#{math.div($i, $j)}-#{math.div($count, $j)}#{$suffix} {
5
+ @if $suffix != "" {
6
+ $suffix: "-" + $suffix;
7
+ }
8
+
9
+ .tna-column {
10
+ &--full#{$suffix} {
11
+ width: 100%;
12
+ flex: none;
13
+ }
14
+
15
+ @for $i from 1 through $count - 1 {
16
+ $simplest-fraction-found: false;
17
+
18
+ @for $j from math.div($count, 2) through 1 {
19
+ @if (
20
+ $count % $j == 0 and $i % $j == 0 and $simplest-fraction-found != true
21
+ ) {
22
+ &--width-#{math.div($i, $j)}-#{math.div($count, $j)}#{$suffix} {
23
+ width: math.div(100%, $count) * $i;
24
+ flex: none;
25
+ }
26
+
27
+ // .column--margin-right-#{math.div($i, $j)}-#{math.div($count, $j)}#{$suffix} {
28
+ // margin-right: math.div(100%, $count) * $i;
29
+ // }
30
+
31
+ // .column--margin-left-#{math.div($i, $j)}-#{math.div($count, $j)}#{$suffix} {
32
+ // margin-left: math.div(100%, $count) * $i;
33
+ // }
34
+
35
+ $simplest-fraction-found: true;
36
+ }
37
+ }
38
+
39
+ @if $simplest-fraction-found != true {
40
+ &--width-#{$i}-#{$count}#{$suffix} {
13
41
  width: math.div(100%, $count) * $i;
14
42
  flex: none;
15
43
  }
16
44
 
17
- // .column--margin-right-#{math.div($i, $j)}-#{math.div($count, $j)}#{$suffix} {
18
- // margin-right: math.div(100%, $count) * $i;
19
- // }
20
-
21
- // .column--margin-left-#{math.div($i, $j)}-#{math.div($count, $j)}#{$suffix} {
22
- // margin-left: math.div(100%, $count) * $i;
23
- // }
45
+ // .column--margin-right-#{$i}-#{$count}#{$suffix} {
46
+ // margin-right: math.div(100%, $count) * $i;
47
+ // }
24
48
 
25
- $simplest-fraction-found: true;
49
+ // .column--margin-left-#{$i}-#{$count}#{$suffix} {
50
+ // margin-left: math.div(100%, $count) * $i;
51
+ // }
26
52
  }
27
53
  }
28
54
 
29
- @if $simplest-fraction-found != true {
30
- .tna-column--width-#{$i}-#{$count}#{$suffix} {
31
- width: math.div(100%, $count) * $i;
32
- flex: none;
33
- }
55
+ @for $i from 1 through 2 {
56
+ &--flex-#{$i}#{$suffix} {
57
+ width: auto;
34
58
 
35
- // .column--margin-right-#{$i}-#{$count}#{$suffix} {
36
- // margin-right: math.div(100%, $count) * $i;
37
- // }
59
+ flex: $i 0;
60
+ }
61
+ }
38
62
 
39
- // .column--margin-left-#{$i}-#{$count}#{$suffix} {
40
- // margin-left: math.div(100%, $count) * $i;
41
- // }
63
+ @for $i from 1 through 3 {
64
+ &--order-#{$i}#{$suffix} {
65
+ order: $i;
66
+ }
42
67
  }
43
68
  }
44
69
  }
@@ -1,17 +1,18 @@
1
1
  @use "../variables/media";
2
2
 
3
- // 0 ============= 480 ===== 768 == 1024 ==========================
4
- // | | | |
5
- // | TINY | SMALL | MED | LARGE
6
- // | | | |
7
- // |<------------->| . . on-tiny
8
- // |<----------------------->| . on-mobile
3
+ // 0 ======= 320 = 480 ===== 768 == 1024 ========================== min-width/max-width (px)
4
+ // | . | | |
5
+ // |-TINY----------|-SMALL---|-MED--|-LARGE------------------------
6
+ // | . | | |
7
+ // |<------------->| | | on-tiny
8
+ // |<----------------------->| | on-mobile
9
9
  // |<------------------------------>| on-smaller-than-large
10
- // . |<------->| . on-small
11
- // . |<------------------------- on-larger-than-tiny
12
- // . . |<---->| on-medium
13
- // . . |<--------------- on-larger-than-mobile
14
- // . . . |<-------- on-large
10
+ // | . |<------->| | on-small
11
+ // | . |<------------------------- on-larger-than-tiny
12
+ // | . | |<---->| on-medium
13
+ // | . | |<--------------- on-larger-than-mobile
14
+ // | . | | |<-------- on-large
15
+ // |<------->. | | | Smallest device
15
16
 
16
17
  @mixin on-large() {
17
18
  @media #{media.$media-large} {
@@ -1,5 +1,29 @@
1
+ @use "../features";
2
+ @use "../variables/colour";
1
3
  @use "../variables/typography";
2
4
 
5
+ :root {
6
+ @include colour.colour-css-vars;
7
+
8
+ @if features.$support-colour-schemes {
9
+ @media (prefers-color-scheme: dark) {
10
+ @include colour.colour-css-vars-dark;
11
+ }
12
+
13
+ @media (prefers-contrast: more) {
14
+ @include colour.colour-css-vars-high-contrast;
15
+
16
+ * {
17
+ background-image: none !important;
18
+ }
19
+ }
20
+
21
+ @media (prefers-contrast: more) and (prefers-color-scheme: dark) {
22
+ @include colour.colour-css-vars-high-contrast-dark;
23
+ }
24
+ }
25
+ }
26
+
3
27
  .tna-template {
4
28
  min-width: 320px;
5
29
  width: 100%;
@@ -9,7 +33,55 @@
9
33
  overflow-y: auto;
10
34
  -webkit-overflow-scrolling: touch;
11
35
 
12
- font-size: typography.$base-font-size-px;
36
+ font-size: #{typography.$base-font-size-px}px;
37
+
38
+ @include colour.colour-background("page-background");
39
+
40
+ &--back-accent {
41
+ accent-color: colour.$tna-black;
42
+ }
43
+
44
+ &--yellow-accent {
45
+ accent-color: colour.$tna-yellow;
46
+ }
47
+
48
+ &--pink-accent {
49
+ accent-color: colour.$tna-pink;
50
+ }
51
+
52
+ &--orange-accent {
53
+ accent-color: colour.$tna-orange;
54
+ }
55
+
56
+ &--green-accent {
57
+ accent-color: colour.$tna-green;
58
+ }
59
+
60
+ &--blue-accent {
61
+ accent-color: colour.$tna-blue;
62
+ }
63
+
64
+ @if features.$support-colour-schemes {
65
+ &--light-theme {
66
+ @include colour.colour-css-vars;
67
+ }
68
+
69
+ &--dark-theme {
70
+ @include colour.colour-css-vars-dark;
71
+ }
72
+
73
+ &--high-contrast-theme {
74
+ @include colour.colour-css-vars-high-contrast;
75
+
76
+ * {
77
+ background-image: none !important;
78
+ }
79
+
80
+ &.tna-template--dark-theme {
81
+ @include colour.colour-css-vars-high-contrast-dark;
82
+ }
83
+ }
84
+ }
13
85
 
14
86
  @media (prefers-reduced-motion) {
15
87
  * {
@@ -20,10 +92,11 @@
20
92
  }
21
93
 
22
94
  .tna-template__body {
95
+ min-height: 100%;
23
96
  margin: 0;
24
97
  padding: 0;
25
98
 
26
- background-color: #fff;
99
+ // background-color: #fff;
27
100
 
28
101
  overflow: auto;
29
102
  }
@@ -42,6 +115,33 @@ canvas {
42
115
  width: 100%;
43
116
  }
44
117
 
118
+ [hidden] {
119
+ display: none;
120
+ }
121
+
45
122
  *:focus {
46
- outline: 3px #f0a solid;
123
+ // outline: 0.3125rem colour.$focus-colour solid;
124
+ outline: 0.3125rem solid;
125
+ @include colour.colour-outline("focus-outline");
126
+ outline-offset: 0.125rem;
127
+ }
128
+
129
+ .tna-visually-hidden {
130
+ width: 1px !important;
131
+ height: 1px !important;
132
+ margin: 0 !important;
133
+ padding: 0 !important;
134
+
135
+ position: absolute !important;
136
+ top: -9999px !important;
137
+ left: -9999px !important;
138
+ z-index: -1 !important;
139
+
140
+ overflow: hidden !important;
141
+
142
+ clip: rect(0, 0, 0, 0) !important;
143
+
144
+ border: 0 !important;
145
+
146
+ background-color: transparent !important;
47
147
  }