@nationalarchives/frontend 0.1.11-prerelease → 0.1.13-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.
- package/README.md +1 -1
- package/nationalarchives/_features.scss +1 -1
- package/nationalarchives/all.css +1 -1
- package/nationalarchives/all.css.map +1 -1
- package/nationalarchives/components/_index.scss +2 -0
- package/nationalarchives/components/breadcrumbs/_index.scss +30 -26
- package/nationalarchives/components/breadcrumbs/breadcrumbs.stories.js +1 -1
- package/nationalarchives/components/breadcrumbs/fixtures.json +1 -1
- package/nationalarchives/components/breadcrumbs/template.njk +1 -1
- package/nationalarchives/components/button/button.stories.js +1 -1
- package/nationalarchives/components/card/_index.scss +2 -1
- package/nationalarchives/components/card/card.stories.js +1 -1
- package/nationalarchives/components/footer/_index.scss +3 -3
- package/nationalarchives/components/footer/fixtures.json +1 -1
- package/nationalarchives/components/footer/template.njk +1 -1
- package/nationalarchives/components/header/_index.scss +36 -7
- package/nationalarchives/components/header/header.stories.js +15 -15
- package/nationalarchives/components/index-grid/_index.scss +46 -0
- package/nationalarchives/components/index-grid/fixtures.json +4 -0
- package/nationalarchives/components/index-grid/index-grid.stories.js +77 -0
- package/nationalarchives/components/index-grid/macro-options.json +94 -0
- package/nationalarchives/components/index-grid/macro.njk +3 -0
- package/nationalarchives/components/index-grid/template.njk +56 -0
- package/nationalarchives/components/message/_index.scss +27 -0
- package/nationalarchives/components/message/fixtures.json +4 -0
- package/nationalarchives/components/message/macro-options.json +20 -0
- package/nationalarchives/components/message/macro.njk +3 -0
- package/nationalarchives/components/message/phase-banner.stories.js +36 -0
- package/nationalarchives/components/message/template.njk +9 -0
- package/nationalarchives/components/phase-banner/phase-banner.stories.js +1 -1
- package/nationalarchives/components/phase-banner/template.njk +1 -1
- package/nationalarchives/components/picture/_index.scss +5 -1
- package/nationalarchives/components/picture/picture.stories.js +1 -1
- package/nationalarchives/components/profile/profile.stories.js +1 -1
- package/nationalarchives/components/profile/template.njk +1 -1
- package/nationalarchives/components/tabs/tabs.stories.js +1 -1
- package/nationalarchives/stories/development/publishing.mdx +1 -12
- package/nationalarchives/stories/utilities/heading-groups.stories.js +1 -0
- package/nationalarchives/stories/utilities/headings.stories.js +8 -22
- package/nationalarchives/stories/utilities/typography.mdx +1 -3
- package/nationalarchives/templates/layouts/_generic.njk +42 -50
- package/nationalarchives/utilities/_global.scss +9 -2
- package/nationalarchives/utilities/_typography.scss +2 -2
- package/nationalarchives/variables/_colour.scss +11 -9
- package/nationalarchives/variables/_typography.scss +4 -2
- package/package.json +22 -22
@@ -0,0 +1,46 @@
|
|
1
|
+
@use "../../utilities/global"; // To get %tna-invert
|
2
|
+
@use "../../tools/colour";
|
3
|
+
|
4
|
+
.tna-index-grid {
|
5
|
+
&__item-wrapper {
|
6
|
+
margin-bottom: 2rem;
|
7
|
+
}
|
8
|
+
|
9
|
+
&__item {
|
10
|
+
height: 100%;
|
11
|
+
|
12
|
+
display: flex;
|
13
|
+
flex-direction: column;
|
14
|
+
|
15
|
+
// @include colour.invert;
|
16
|
+
@extend %tna-invert;
|
17
|
+
text-decoration: none;
|
18
|
+
}
|
19
|
+
|
20
|
+
&__item-image {
|
21
|
+
width: 100%;
|
22
|
+
height: auto;
|
23
|
+
}
|
24
|
+
|
25
|
+
&__item-content {
|
26
|
+
padding: 1rem;
|
27
|
+
|
28
|
+
flex: 1;
|
29
|
+
}
|
30
|
+
|
31
|
+
&__item-title {
|
32
|
+
text-decoration: underline;
|
33
|
+
|
34
|
+
.tna-index-grid__item:hover & {
|
35
|
+
&,
|
36
|
+
&:link,
|
37
|
+
&:visited {
|
38
|
+
text-decoration-thickness: 3px;
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
&__item-subtitle {
|
44
|
+
@include colour.colour-font("font-light", true);
|
45
|
+
}
|
46
|
+
}
|
@@ -0,0 +1,77 @@
|
|
1
|
+
import IndexGrid from "./template.njk";
|
2
|
+
import macroOptions from "./macro-options.json";
|
3
|
+
|
4
|
+
const argTypes = {
|
5
|
+
heading: { control: "text" },
|
6
|
+
items: { control: "object" },
|
7
|
+
columns: { control: "number" },
|
8
|
+
columnsMedium: { control: "number" },
|
9
|
+
columnsSmall: { control: "number" },
|
10
|
+
columnsTiny: { control: "number" },
|
11
|
+
classes: { control: "text" },
|
12
|
+
attributes: { control: "object" },
|
13
|
+
};
|
14
|
+
|
15
|
+
Object.keys(argTypes).forEach((argType) => {
|
16
|
+
argTypes[argType].description = macroOptions.find(
|
17
|
+
(option) => option.name === argType,
|
18
|
+
)?.description;
|
19
|
+
});
|
20
|
+
|
21
|
+
export default {
|
22
|
+
title: "Components/Index grid",
|
23
|
+
argTypes,
|
24
|
+
};
|
25
|
+
|
26
|
+
const Template = ({
|
27
|
+
heading,
|
28
|
+
items,
|
29
|
+
columns,
|
30
|
+
columnsMedium,
|
31
|
+
columnsSmall,
|
32
|
+
columnsTiny,
|
33
|
+
classes,
|
34
|
+
attributes,
|
35
|
+
}) => {
|
36
|
+
return IndexGrid({
|
37
|
+
params: {
|
38
|
+
heading,
|
39
|
+
items,
|
40
|
+
columns,
|
41
|
+
columnsMedium,
|
42
|
+
columnsSmall,
|
43
|
+
columnsTiny,
|
44
|
+
classes,
|
45
|
+
attributes,
|
46
|
+
},
|
47
|
+
});
|
48
|
+
};
|
49
|
+
|
50
|
+
const exampleItem = {
|
51
|
+
href: "#",
|
52
|
+
src: "https://picsum.photos/id/237/800/600",
|
53
|
+
alt: "Photo of a puppy",
|
54
|
+
width: "800",
|
55
|
+
height: "600",
|
56
|
+
title: "Cat",
|
57
|
+
subtitle: "4 photos",
|
58
|
+
};
|
59
|
+
export const Standard = Template.bind({});
|
60
|
+
Standard.args = {
|
61
|
+
heading: "My dogs",
|
62
|
+
items: Array(12)
|
63
|
+
.fill({ ...exampleItem })
|
64
|
+
.map((item, index) => {
|
65
|
+
const pseudoRandom = ((index * 29) % 8) + 1;
|
66
|
+
return {
|
67
|
+
...item,
|
68
|
+
title: `Category #${index + 101}`,
|
69
|
+
subtitle: `${pseudoRandom} photos`,
|
70
|
+
};
|
71
|
+
}),
|
72
|
+
columns: 4,
|
73
|
+
columnsMedium: 3,
|
74
|
+
columnsSmall: 2,
|
75
|
+
columnsTiny: 1,
|
76
|
+
classes: "tna-index-grid--demo",
|
77
|
+
};
|
@@ -0,0 +1,94 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"name": "heading",
|
4
|
+
"type": "string",
|
5
|
+
"required": true,
|
6
|
+
"description": ""
|
7
|
+
},
|
8
|
+
{
|
9
|
+
"name": "items",
|
10
|
+
"type": "array",
|
11
|
+
"required": true,
|
12
|
+
"description": "",
|
13
|
+
"params": [
|
14
|
+
{
|
15
|
+
"name": "href",
|
16
|
+
"type": "string",
|
17
|
+
"required": true,
|
18
|
+
"description": ""
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"name": "src",
|
22
|
+
"type": "string",
|
23
|
+
"required": true,
|
24
|
+
"description": ""
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"name": "alt",
|
28
|
+
"type": "string",
|
29
|
+
"required": true,
|
30
|
+
"description": ""
|
31
|
+
},
|
32
|
+
{
|
33
|
+
"name": "width",
|
34
|
+
"type": "number",
|
35
|
+
"required": true,
|
36
|
+
"description": ""
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"name": "height",
|
40
|
+
"type": "number",
|
41
|
+
"required": true,
|
42
|
+
"description": ""
|
43
|
+
},
|
44
|
+
{
|
45
|
+
"name": "title",
|
46
|
+
"type": "string",
|
47
|
+
"required": true,
|
48
|
+
"description": ""
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"name": "subtitle",
|
52
|
+
"type": "string",
|
53
|
+
"required": false,
|
54
|
+
"description": ""
|
55
|
+
}
|
56
|
+
]
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"name": "columns",
|
60
|
+
"type": "string",
|
61
|
+
"required": true,
|
62
|
+
"description": ""
|
63
|
+
},
|
64
|
+
{
|
65
|
+
"name": "columnsMedium",
|
66
|
+
"type": "string",
|
67
|
+
"required": false,
|
68
|
+
"description": ""
|
69
|
+
},
|
70
|
+
{
|
71
|
+
"name": "columnsSmall",
|
72
|
+
"type": "string",
|
73
|
+
"required": false,
|
74
|
+
"description": ""
|
75
|
+
},
|
76
|
+
{
|
77
|
+
"name": "columnsTiny",
|
78
|
+
"type": "string",
|
79
|
+
"required": false,
|
80
|
+
"description": ""
|
81
|
+
},
|
82
|
+
{
|
83
|
+
"name": "classes",
|
84
|
+
"type": "string",
|
85
|
+
"required": false,
|
86
|
+
"description": "Classes to add to the container."
|
87
|
+
},
|
88
|
+
{
|
89
|
+
"name": "attributes",
|
90
|
+
"type": "object",
|
91
|
+
"required": false,
|
92
|
+
"description": "HTML attributes (for example data attributes) to add to the container."
|
93
|
+
}
|
94
|
+
]
|
@@ -0,0 +1,56 @@
|
|
1
|
+
{%- set containerClasses = [params.classes] if params.classes else [] -%}
|
2
|
+
<nav class="tna-index-grid {{ containerClasses | join(' ') }}" aria-label="{{ params.heading }}" {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
|
3
|
+
<div class="tna-container">
|
4
|
+
<div class="tna-column tna-column--full">
|
5
|
+
<h1>
|
6
|
+
{{ params.heading }}
|
7
|
+
</h1>
|
8
|
+
</div>
|
9
|
+
{%- set itemClasses = ['tna-index-grid__item-wrapper', 'tna-column'] -%}
|
10
|
+
|
11
|
+
{%- if params.columns == 1 -%}
|
12
|
+
{%- set itemClasses = itemClasses.concat('tna-column--full') -%}
|
13
|
+
{%- else -%}
|
14
|
+
{%- set itemClasses = itemClasses.concat('tna-column--width-1-' + params.columns) -%}
|
15
|
+
{%- endif -%}
|
16
|
+
|
17
|
+
{%- if params.columnsMedium -%}
|
18
|
+
{%- if params.columnsMedium == 1 -%}
|
19
|
+
{%- set itemClasses = itemClasses.concat('tna-column--full-medium') -%}
|
20
|
+
{%- else -%}
|
21
|
+
{%- set itemClasses = itemClasses.concat('tna-column--width-1-' + params.columnsMedium + '-medium') -%}
|
22
|
+
{%- endif -%}
|
23
|
+
{%- endif -%}
|
24
|
+
|
25
|
+
{%- if params.columnsSmall -%}
|
26
|
+
{%- if params.columnsSmall == 1 -%}
|
27
|
+
{%- set itemClasses = itemClasses.concat('tna-column--full-small') -%}
|
28
|
+
{%- else -%}
|
29
|
+
{%- set itemClasses = itemClasses.concat('tna-column--width-1-' + params.columnsSmall + '-small') -%}
|
30
|
+
{%- endif -%}
|
31
|
+
{%- endif -%}
|
32
|
+
|
33
|
+
{%- if params.columnsTiny -%}
|
34
|
+
{%- if params.columnsTiny == 1 -%}
|
35
|
+
{%- set itemClasses = itemClasses.concat('tna-column--full-tiny') -%}
|
36
|
+
{%- else -%}
|
37
|
+
{%- set itemClasses = itemClasses.concat('tna-column--width-1-' + params.columnsTiny + '-tiny') -%}
|
38
|
+
{%- endif -%}
|
39
|
+
{%- endif -%}
|
40
|
+
|
41
|
+
{%- for item in params.items -%}
|
42
|
+
<div class="{{ itemClasses | join(' ') }}">
|
43
|
+
<a href="{{ item.href }}" class="tna-index-grid__item" title="{{ item.title }}">
|
44
|
+
<img src="{{ item.src }}" class="tna-index-grid__item-image" width="{{ item.width }}" height="{{ item.height }}" alt="{{ item.alt }}" />
|
45
|
+
<span class="tna-index-grid__item-content">
|
46
|
+
<span class="tna-index-grid__item-title">{{ item.title }}</span>
|
47
|
+
{%- if item.subtitle -%}
|
48
|
+
<br>
|
49
|
+
<span class="tna-index-grid__item-subtitle">{{ item.subtitle }}</span>
|
50
|
+
{%- endif -%}
|
51
|
+
</span>
|
52
|
+
</a>
|
53
|
+
</div>
|
54
|
+
{%- endfor -%}
|
55
|
+
</div>
|
56
|
+
<nav>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
@use "../../variables/colour" as colourVars;
|
2
|
+
@use "../../tools/colour";
|
3
|
+
|
4
|
+
.tna-message {
|
5
|
+
padding: 1rem;
|
6
|
+
|
7
|
+
display: flex;
|
8
|
+
align-items: center;
|
9
|
+
|
10
|
+
@include colour.colour-background("keyline");
|
11
|
+
|
12
|
+
border-left: 0.5rem transparent solid;
|
13
|
+
@include colour.colour-border("keyline-dark");
|
14
|
+
|
15
|
+
// &--yellow {
|
16
|
+
background-color: colourVars.$tna-cream;
|
17
|
+
|
18
|
+
border-left-color: colourVars.$tna-yellow;
|
19
|
+
// }
|
20
|
+
|
21
|
+
&__icon {
|
22
|
+
margin-right: 1rem;
|
23
|
+
}
|
24
|
+
|
25
|
+
&__message {
|
26
|
+
}
|
27
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"name": "message",
|
4
|
+
"type": "string",
|
5
|
+
"required": true,
|
6
|
+
"description": ""
|
7
|
+
},
|
8
|
+
{
|
9
|
+
"name": "classes",
|
10
|
+
"type": "string",
|
11
|
+
"required": false,
|
12
|
+
"description": "Classes to add to the message."
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"name": "attributes",
|
16
|
+
"type": "object",
|
17
|
+
"required": false,
|
18
|
+
"description": "HTML attributes (for example data attributes) to add to the message."
|
19
|
+
}
|
20
|
+
]
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import Message from "./template.njk";
|
2
|
+
import macroOptions from "./macro-options.json";
|
3
|
+
|
4
|
+
const argTypes = {
|
5
|
+
message: { control: "text" },
|
6
|
+
classes: { control: "text" },
|
7
|
+
attributes: { control: "object" },
|
8
|
+
};
|
9
|
+
|
10
|
+
Object.keys(argTypes).forEach((argType) => {
|
11
|
+
argTypes[argType].description = macroOptions.find(
|
12
|
+
(option) => option.name === argType,
|
13
|
+
)?.description;
|
14
|
+
});
|
15
|
+
|
16
|
+
export default {
|
17
|
+
title: "Components/Message",
|
18
|
+
argTypes,
|
19
|
+
};
|
20
|
+
|
21
|
+
const Template = ({ message, classes, attributes }) => {
|
22
|
+
return Message({
|
23
|
+
params: {
|
24
|
+
message,
|
25
|
+
classes,
|
26
|
+
attributes,
|
27
|
+
},
|
28
|
+
});
|
29
|
+
};
|
30
|
+
|
31
|
+
export const Standard = Template.bind({});
|
32
|
+
Standard.args = {
|
33
|
+
message:
|
34
|
+
"Please note this page references hunger strikes and force feeding, which some people may find upsetting.",
|
35
|
+
classes: "tna-messaage--demo",
|
36
|
+
};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
{%- set containerClasses = [params.classes] if params.classes else [] -%}
|
2
|
+
<div class="tna-message {{ containerClasses | join(' ') }}" {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
|
3
|
+
<svg class="tna-message__icon" xmlns="http://www.w3.org/2000/svg" focusable="false" aria-hidden="true" viewBox="0 0 34 34" width="40" height="40">
|
4
|
+
<path fill="currentColor" d="M15.33 8.67h3.34V12h-3.34V8.67Zm0 6.66h3.34v10h-3.34v-10ZM17 .33a16.67 16.67 0 1 0 .01 33.35A16.67 16.67 0 0 0 17 .33Zm0 30A13.35 13.35 0 0 1 3.67 17C3.67 9.65 9.65 3.67 17 3.67S30.33 9.65 30.33 17 24.35 30.33 17 30.33Z"></path>
|
5
|
+
</svg>
|
6
|
+
<p class="tna-message__message">
|
7
|
+
{{ params.message | safe }}
|
8
|
+
</p>
|
9
|
+
</div>
|
@@ -28,12 +28,16 @@
|
|
28
28
|
// @include colour.invert;
|
29
29
|
@extend %tna-invert;
|
30
30
|
|
31
|
-
padding: 1rem 1.5rem
|
31
|
+
padding: 1rem 1.5rem;
|
32
32
|
|
33
33
|
.tna-template--clicked &:focus {
|
34
34
|
outline: none;
|
35
35
|
}
|
36
36
|
|
37
|
+
.tna-tabs {
|
38
|
+
margin-bottom: 0.5rem;
|
39
|
+
}
|
40
|
+
|
37
41
|
.tna-tabs__list-item-link {
|
38
42
|
@include colour.colour-font("font-dark", true);
|
39
43
|
|
@@ -1,7 +1,7 @@
|
|
1
1
|
{%- set containerClasses = [params.classes] if params.classes else [] -%}
|
2
2
|
<div class="tna-profile tna-container {{ containerClasses | join(' ') }}" {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
|
3
3
|
<div class="tna-column tna-column--order-2">
|
4
|
-
<img src="https://avatar.iran.liara.run/public" width="200" height="200" />
|
4
|
+
<img src="https://avatar.iran.liara.run/public/68" width="200" height="200" alt="Photo of Max Smith" />
|
5
5
|
</div>
|
6
6
|
<div class="tna-column tna-column--flex-1 tna-column--full-small tna-column--full-tiny tna-column--order-1 tna-column--order-3-small tna-column--order-3-tiny">
|
7
7
|
<hgroup class="tna-hgroup tna-hgroup--xl">
|
@@ -10,17 +10,6 @@ import { Meta } from "@storybook/blocks";
|
|
10
10
|
1. Run `npm install` to update the `package-lock.json`
|
11
11
|
1. Merge all changes to `main` via a pull request
|
12
12
|
1. Wait for the CI to pass
|
13
|
-
1.
|
14
|
-
1. Push the new tag with `git push origin --tags`
|
15
|
-
1. Create a [new release on GitHub](https://github.com/nationalarchives/tna-frontend/releases/new) using the tag you just created
|
13
|
+
1. Create a [new release on GitHub](https://github.com/nationalarchives/tna-frontend/releases/new) and add a new tag in the format `v1.0.0` (ensure leading `v` and change version number as necessary)
|
16
14
|
|
17
15
|
Once a release is created, the [publish pipeline](https://github.com/nationalarchives/tna-frontend/blob/main/.github/workflows/npm-publish.yml) will be triggered.
|
18
|
-
|
19
|
-
## Oops!
|
20
|
-
|
21
|
-
To delete a tag:
|
22
|
-
|
23
|
-
```sh
|
24
|
-
git tag -d v0.1.0
|
25
|
-
git push --delete origin v0.1.0
|
26
|
-
```
|
@@ -11,30 +11,16 @@ export default {
|
|
11
11
|
const HeadingTemplate = ({ params }, level) => `<h${level} class="tna-heading${
|
12
12
|
params.size ? ` tna-heading--${params.size}` : ""
|
13
13
|
}">
|
14
|
-
${params.text} (
|
14
|
+
${params.text} (${params.size.toUpperCase()})
|
15
15
|
</h${level}>`;
|
16
16
|
|
17
|
-
const
|
18
|
-
HeadingTemplate({ params: { text, size } }, 1)
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
HeadingTemplate({ params: { text, size } }, 3);
|
17
|
+
const HeadingsTemplate = ({ text }) =>
|
18
|
+
`${HeadingTemplate({ params: { text, size: "xl" } }, 1)}${HeadingTemplate(
|
19
|
+
{ params: { text, size: "l" } },
|
20
|
+
2,
|
21
|
+
)}${HeadingTemplate({ params: { text, size: "m" } }, 3)}`;
|
23
22
|
|
24
|
-
export const
|
25
|
-
|
23
|
+
export const Headings = HeadingsTemplate.bind({});
|
24
|
+
Headings.args = {
|
26
25
|
text: "This is a heading",
|
27
|
-
size: "xl",
|
28
|
-
};
|
29
|
-
|
30
|
-
export const Heading2 = Heading2Template.bind({});
|
31
|
-
Heading2.args = {
|
32
|
-
text: "This is a heading",
|
33
|
-
size: "l",
|
34
|
-
};
|
35
|
-
|
36
|
-
export const Heading3 = Heading3Template.bind({});
|
37
|
-
Heading3.args = {
|
38
|
-
text: "This is a heading",
|
39
|
-
size: "m",
|
40
26
|
};
|
@@ -1,57 +1,49 @@
|
|
1
1
|
{# Based on https://github.com/alphagov/govuk-frontend/blob/8b6bf304b9fc891f64459c25a08f3d623f3fea72/packages/govuk-frontend/src/govuk/template.njk #}
|
2
2
|
{#% from "./components/skip-link/macro.njk" import tnaSkipLink -%#}
|
3
3
|
<!DOCTYPE html>
|
4
|
-
<html lang="{{ htmlLang | default('en') }}" class="tna-template {{ htmlClasses }}">
|
4
|
+
<html lang="{{ htmlLang | default('en-GB') }}" class="tna-template {{ htmlClasses }}">
|
5
5
|
<head>
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
{# OpenGraph images needs to be absolute, so we need either a URL for the image or for assetUrl to be set #}
|
26
|
-
{% if opengraphImageUrl or assetUrl %}
|
27
|
-
<meta property="og:image" content="{{ opengraphImageUrl | default(assetUrl + '/images/govuk-opengraph-image.png') }}">
|
28
|
-
{% endif %}
|
6
|
+
<meta charset="utf-8">
|
7
|
+
<title>{% block pageTitle %}The National Archives{% endblock %}</title>
|
8
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
|
9
|
+
<meta name="theme-color" content="{{ themeColor | default('#000000') }}">
|
10
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
11
|
+
|
12
|
+
{% block headIcons %}
|
13
|
+
<link rel="shortcut icon" sizes="16x16 32x32 48x48" href="{{ assetPath | default('/assets') }}/images/favicon.ico" type="image/x-icon">
|
14
|
+
<link rel="mask-icon" href="{{ assetPath | default('/assets') }}/images/govuk-mask-icon.svg" color="{{ themeColor | default('#0b0c0c') }}"> {# Hardcoded value of $govuk-black #}
|
15
|
+
<link rel="apple-touch-icon" sizes="180x180" href="{{ assetPath | default('/assets') }}/images/govuk-apple-touch-icon-180x180.png">
|
16
|
+
<link rel="apple-touch-icon" sizes="167x167" href="{{ assetPath | default('/assets') }}/images/govuk-apple-touch-icon-167x167.png">
|
17
|
+
<link rel="apple-touch-icon" sizes="152x152" href="{{ assetPath | default('/assets') }}/images/govuk-apple-touch-icon-152x152.png">
|
18
|
+
<link rel="apple-touch-icon" href="{{ assetPath | default('/assets') }}/images/govuk-apple-touch-icon.png">
|
19
|
+
{% endblock %}
|
20
|
+
|
21
|
+
{% block head %}{% endblock %}
|
22
|
+
|
23
|
+
{% block stylesheets %}{% endblock %}
|
29
24
|
</head>
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
{% endblock %}
|
54
|
-
|
55
|
-
{% block bodyEnd %}{% endblock %}
|
25
|
+
<body class="tna-template__body {{ bodyClasses }}" {%- for attribute, value in bodyAttributes %} {{attribute}}="{{value}}"{% endfor %}>
|
26
|
+
{% block skipLink %}
|
27
|
+
{#{ govukSkipLink({
|
28
|
+
href: '#main-content',
|
29
|
+
text: 'Skip to main content'
|
30
|
+
}) }#}
|
31
|
+
{% endblock %}
|
32
|
+
|
33
|
+
{% block bodyStart %}{% endblock %}
|
34
|
+
|
35
|
+
{% block header %}{% endblock %}
|
36
|
+
|
37
|
+
{% block main %}
|
38
|
+
{% block beforeContent %}{% endblock %}
|
39
|
+
<main class="tna-main-wrapper {{ mainClasses }}" id="main-content" role="main">
|
40
|
+
{% block content %}{% endblock %}
|
41
|
+
</main>
|
42
|
+
{% block afterContent %}{% endblock %}
|
43
|
+
{% endblock %}
|
44
|
+
|
45
|
+
{% block footer %}{% endblock %}
|
46
|
+
|
47
|
+
{% block bodyEnd %}{% endblock %}
|
56
48
|
</body>
|
57
49
|
</html>
|