+ {% endblock %}
+
+ {% block footer %}
+ {{ usaFooter({}) }}
+ {% endblock %}
+
+ {% block bodyEnd %}{% endblock %}
+
+
diff --git a/app/templates/new/components/footer/README.md b/app/templates/new/components/footer/README.md
new file mode 100644
index 000000000..49c5a7082
--- /dev/null
+++ b/app/templates/new/components/footer/README.md
@@ -0,0 +1,15 @@
+# Footer
+
+## Installation
+
+See the [main README quick start guide](https://github.com/alphagov/govuk-frontend#quick-start) for how to install this component.
+
+## Guidance and Examples
+
+Find out when to use the footer component in your service in the [GOV.UK Design System](https://design-system.service.gov.uk/components/footer).
+
+## Component options
+
+Use options to customize the appearance, content and behavior of a component when using a macro, for example, changing the text.
+
+See [options table](https://design-system.service.gov.uk/components/footer/#options-example-default) for details.
diff --git a/app/templates/new/components/footer/macro-options.json b/app/templates/new/components/footer/macro-options.json
new file mode 100644
index 000000000..f6e2967db
--- /dev/null
+++ b/app/templates/new/components/footer/macro-options.json
@@ -0,0 +1,115 @@
+[
+ {
+ "name": "meta",
+ "type": "object",
+ "required": false,
+ "description": "Object containing options for the meta navigation.",
+ "params": [
+ {
+ "name": "visuallyHiddenTitle",
+ "type": "string",
+ "description": "Title for a meta item section, which defaults to Support links"
+ },
+ {
+ "name": "html",
+ "type": "string",
+ "description": "HTML to add to the meta section of the footer, which will appear below any links specified using meta.items."
+ },
+ {
+ "name": "text",
+ "type": "string",
+ "description": "Text to add to the meta section of the footer, which will appear below any links specified using meta.items. If meta.html is specified, this option is ignored."
+ },
+ {
+ "name": "items",
+ "type": "array",
+ "required": false,
+ "description": "Array of items for use in the meta section of the footer.",
+ "params": [
+ {
+ "name": "text",
+ "type": "string",
+ "required": false,
+ "description": "List item text in the meta section of the footer."
+ },
+ {
+ "name": "href",
+ "type": "string",
+ "required": false,
+ "description": "List item href attribute in the meta section of the footer."
+ },
+ {
+ "name": "attributes",
+ "type": "object",
+ "required": false,
+ "description": "HTML attributes (for example data attributes) to add to the anchor in the footer meta section."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "navigation",
+ "type": "array",
+ "required": false,
+ "description": "Array of items for use in the navigation section of the footer.",
+ "params": [
+ {
+ "name": "title",
+ "type": "string",
+ "required": false,
+ "description": "Title for a section"
+ },
+ {
+ "name": "columns",
+ "type": "integer",
+ "required": false,
+ "description": "Amount of columns to display items in navigation section of the footer."
+ },
+ {
+ "name": "items",
+ "type": "array",
+ "required": false,
+ "description": "Array of items to display in the list in navigation section of the footer.",
+ "params": [
+ {
+ "name": "text",
+ "type": "string",
+ "required": false,
+ "description": "List item text in the navigation section of the footer."
+ },
+ {
+ "name": "href",
+ "type": "string",
+ "required": false,
+ "description": "List item href attribute in the navigation section of the footer. Both `text` and `href` attributes need to be present to create a link."
+ },
+ {
+ "name": "attributes",
+ "type": "object",
+ "required": false,
+ "description": "HTML attributes (for example data attributes) to add to the anchor in the footer navigation section."
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "containerClasses",
+ "type": "string",
+ "required": false,
+ "description": "Classes that can be added to the inner container, useful if you want to make the footer full width."
+ },
+ {
+ "name": "classes",
+ "type": "string",
+ "required": false,
+ "description": "Classes to add to the footer component container."
+ },
+ {
+ "name": "attributes",
+ "type": "object",
+ "required": false,
+ "description": "HTML attributes (for example data attributes) to add to the footer component container."
+ }
+]
diff --git a/app/templates/new/components/footer/macro.njk b/app/templates/new/components/footer/macro.njk
new file mode 100644
index 000000000..d0f92f065
--- /dev/null
+++ b/app/templates/new/components/footer/macro.njk
@@ -0,0 +1,3 @@
+{% macro usaFooter(params) %}
+ {%- include "./template.njk" -%}
+{% endmacro %}
diff --git a/app/templates/new/components/footer/template.njk b/app/templates/new/components/footer/template.njk
new file mode 100644
index 000000000..6864f718a
--- /dev/null
+++ b/app/templates/new/components/footer/template.njk
@@ -0,0 +1,117 @@
+
+
+
diff --git a/app/templates/new/components/header/README.md b/app/templates/new/components/header/README.md
new file mode 100644
index 000000000..a3ea34967
--- /dev/null
+++ b/app/templates/new/components/header/README.md
@@ -0,0 +1,15 @@
+# Header
+
+## Installation
+
+See the [main README quick start guide](https://github.com/alphagov/govuk-frontend#quick-start) for how to install this component.
+
+## Guidance and Examples
+
+Find out when to use the header component in your service in the [GOV.UK Design System](https://design-system.service.gov.uk/components/header).
+
+## Component options
+
+Use options to customize the appearance, content and behavior of a component when using a macro, for example, changing the text.
+
+See [options table](https://design-system.service.gov.uk/components/header/#options-example-default) for details.
diff --git a/app/templates/new/components/header/macro-options.json b/app/templates/new/components/header/macro-options.json
new file mode 100644
index 000000000..4411e8100
--- /dev/null
+++ b/app/templates/new/components/header/macro-options.json
@@ -0,0 +1,88 @@
+[
+ {
+ "name": "homepageUrl",
+ "type": "string",
+ "required": false,
+ "description": "The url of the homepage. Defaults to /"
+ },
+ {
+ "name": "assetsPath",
+ "type": "string",
+ "required": false,
+ "description": "The public path for the assets folder. If not provided it defaults to /assets/images"
+ },
+ {
+ "name": "productName",
+ "type": "string",
+ "required": false,
+ "description": "Header title that is placed next to GOV.UK. Used for product names (i.e. Pay, Verify)"
+ },
+ {
+ "name": "serviceName",
+ "type": "string",
+ "required": false,
+ "description": "Header title that is placed next to GOV.UK. Used for product names (i.e. Pay, Verify)"
+ },
+ {
+ "name": "serviceUrl",
+ "type": "string",
+ "required": false,
+ "description": "Url for the service name anchor."
+ },
+ {
+ "name": "navigation",
+ "type": "array",
+ "required": false,
+ "description": "An array of navigation item objects.",
+ "params": [
+ {
+ "name": "text",
+ "type": "string",
+ "required": false,
+ "description": "Text of the navigation item."
+ },
+ {
+ "name": "href",
+ "type": "string",
+ "required": false,
+ "description": "Url of the navigation item anchor. Both `href` and `text` attributes for navigation items need to be provided to create an item."
+ },
+ {
+ "name": "active",
+ "type": "boolean",
+ "required": false,
+ "description": "Flag to mark the navigation item as active or not."
+ },
+ {
+ "name": "attributes",
+ "type": "object",
+ "required": false,
+ "description": "HTML attributes (for example data attributes) to add to the navigation item anchor."
+ }
+ ]
+ },
+ {
+ "name": "navigationClasses",
+ "type": "string",
+ "required": false,
+ "description": "Classes for the navigation section of the header."
+ },
+ {
+ "name": "containerClasses",
+ "type": "string",
+ "required": false,
+ "description": "Classes for the container, useful if you want to make the header fixed width."
+ },
+ {
+ "name": "classes",
+ "type": "string",
+ "required": false,
+ "description": "Classes to add to the header container."
+ },
+ {
+ "name": "attributes",
+ "type": "object",
+ "required": false,
+ "description": "HTML attributes (for example data attributes) to add to the header container."
+ }
+]
diff --git a/app/templates/new/components/header/macro.njk b/app/templates/new/components/header/macro.njk
new file mode 100644
index 000000000..3f0101fc2
--- /dev/null
+++ b/app/templates/new/components/header/macro.njk
@@ -0,0 +1,3 @@
+{% macro usaHeader(params) %}
+ {%- include "./template.njk" -%}
+{% endmacro %}
diff --git a/app/templates/new/components/header/template.njk b/app/templates/new/components/header/template.njk
new file mode 100644
index 000000000..6cc8cabd8
--- /dev/null
+++ b/app/templates/new/components/header/template.njk
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
An official website of the United States government
+
Here’s how you know
+
+
+
+
+
+
+
+
+
+
+ Official websites use .gov
+
+ A .gov website belongs to an official government organization in the United States.
+
+
+
+
+
+
+
+ Secure .gov websites use HTTPS
+
+ A lock ( ) or https:// means you’ve safely connected to the .gov website. Share sensitive information only on official, secure websites.
+
+
+
diff --git a/app/templates/new/components/skip-link/README.md b/app/templates/new/components/skip-link/README.md
new file mode 100644
index 000000000..feb7c6614
--- /dev/null
+++ b/app/templates/new/components/skip-link/README.md
@@ -0,0 +1,15 @@
+# Skip link
+
+## Installation
+
+See the [main README quick start guide](https://github.com/alphagov/govuk-frontend#quick-start) for how to install this component.
+
+## Guidance and Examples
+
+Find out when to use the skip link component in your service in the [GOV.UK Design System](https://design-system.service.gov.uk/components/skip-link).
+
+## Component options
+
+Use options to customize the appearance, content and behavior of a component when using a macro, for example, changing the text.
+
+See [options table](https://design-system.service.gov.uk/components/skip-link/#options-example-default) for details.
diff --git a/app/templates/new/components/skip-link/macro-options.json b/app/templates/new/components/skip-link/macro-options.json
new file mode 100644
index 000000000..9a36a1267
--- /dev/null
+++ b/app/templates/new/components/skip-link/macro-options.json
@@ -0,0 +1,32 @@
+[
+ {
+ "name": "text",
+ "type": "string",
+ "required": true,
+ "description": "If `html` is set, this is not required. Text to use within the skip link component. If `html` is provided, the `text` argument will be ignored."
+ },
+ {
+ "name": "html",
+ "type": "string",
+ "required": true,
+ "description": "If `text` is set, this is not required. HTML to use within the skip link component. If `html` is provided, the `text` argument will be ignored."
+ },
+ {
+ "name": "href",
+ "type": "string",
+ "required": true,
+ "description": "The value of the skip link href attribute. Defaults to"
+ },
+ {
+ "name": "classes",
+ "type": "string",
+ "required": false,
+ "description": "Classes to add to the skip link."
+ },
+ {
+ "name": "attributes",
+ "type": "object",
+ "required": false,
+ "description": "HTML attributes (for example data attributes) to add to the skip link."
+ }
+]
diff --git a/app/templates/new/components/skip-link/macro.njk b/app/templates/new/components/skip-link/macro.njk
new file mode 100644
index 000000000..4b1d7ff9a
--- /dev/null
+++ b/app/templates/new/components/skip-link/macro.njk
@@ -0,0 +1,3 @@
+{% macro usaSkipLink(params) %}
+ {%- include "./template.njk" -%}
+{% endmacro %}
diff --git a/app/templates/new/components/skip-link/template.njk b/app/templates/new/components/skip-link/template.njk
new file mode 100644
index 000000000..e0dad15a8
--- /dev/null
+++ b/app/templates/new/components/skip-link/template.njk
@@ -0,0 +1,7 @@
+
+ {{- params.html | safe if params.html else params.text -}}
+
+
+
+ Skip to main content
+
diff --git a/app/templates/new/templates_glossary.md b/app/templates/new/templates_glossary.md
new file mode 100644
index 000000000..cdf824871
--- /dev/null
+++ b/app/templates/new/templates_glossary.md
@@ -0,0 +1,27 @@
+
+# New Templates Glossary
+
+This document serves as a glossary for the templates directory structure of the project.
+
+## Directory Structure
+
+- `/templates`
+ - **/layouts**: Contains base templates and shared layouts used across the site. Simply put, it defines the overall structure or skeleton of the application (less frequently revised).
+ - `base.html`: The main base template from which all other templates inherit.
+ - `/admin`
+ - `admin-base.html`: A specialized layout for admin pages. It extends `base.html` but can include additional styling, scripts, or components specific to admin interfaces to enhance security and organization.
+ - `withnav.html`: A variation of the base layout that includes a sidebar.
+ - `/error`: Templates for handling HTTP errors
+ - **/components**: Houses reusable UI components that can be included in multiple templates and can be tailored with different content or links depending on the context.(more frequently revised or customized)
+ - `header.html`: Template for the site's header, included in `base.html`.
+ - `footer.html`: Template for the site's footer, included in `base.html`.
+ - **/partials**: For smaller, reusable pieces of templates, like navigation breadcrumbs or pagination controls we could put this folder into components but if it's more specific to layouts, we can move it into that folder as a sub directory
+ - **/views** (or **/pages**): Individual page templates that use the base layouts, components, and partials to present content.
+
+### Best Practices
+
+- Use **inheritance** (`{% extends %}`) to build on base layouts.
+- Employ **components** (`{% include %}`) for reusable UI elements to keep the code DRY and facilitate easier updates.
+
+### Notes
+- Macro json files are just guides on how to structure a dict. It's not actually being used as data being passed to components