@nationalarchives/frontend 0.1.14-prerelease → 0.1.16-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 (89) hide show
  1. package/LICENCE +21 -0
  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/all.mjs +7 -7
  7. package/nationalarchives/all.scss +2 -5
  8. package/nationalarchives/components/_index.scss +1 -0
  9. package/nationalarchives/components/breadcrumbs/_index.scss +54 -39
  10. package/nationalarchives/components/breadcrumbs/breadcrumbs.js +2 -0
  11. package/nationalarchives/components/breadcrumbs/breadcrumbs.js.map +1 -0
  12. package/nationalarchives/components/breadcrumbs/breadcrumbs.mjs +67 -0
  13. package/nationalarchives/components/breadcrumbs/breadcrumbs.stories.js +10 -3
  14. package/nationalarchives/components/breadcrumbs/fixtures.json +23 -1
  15. package/nationalarchives/components/breadcrumbs/macro-options.json +6 -0
  16. package/nationalarchives/components/breadcrumbs/template.njk +17 -12
  17. package/nationalarchives/components/button/_index.scss +1 -2
  18. package/nationalarchives/components/button/button.stories.js +2 -3
  19. package/nationalarchives/components/button/fixtures.json +5 -5
  20. package/nationalarchives/components/button/template.njk +1 -1
  21. package/nationalarchives/components/card/_index.scss +78 -34
  22. package/nationalarchives/components/card/card.stories.js +72 -5
  23. package/nationalarchives/components/card/fixtures.json +15 -2
  24. package/nationalarchives/components/card/macro-options.json +6 -12
  25. package/nationalarchives/components/card/template.njk +6 -6
  26. package/nationalarchives/components/filters/filters.stories.js +3 -4
  27. package/nationalarchives/components/footer/_index.scss +8 -14
  28. package/nationalarchives/components/footer/footer.stories.js +2 -3
  29. package/nationalarchives/components/footer/template.njk +1 -1
  30. package/nationalarchives/components/grid/_index.scss +2 -2
  31. package/nationalarchives/components/grid/grid.stories.js +2 -3
  32. package/nationalarchives/components/header/_index.scss +27 -26
  33. package/nationalarchives/components/header/header.stories.js +2 -3
  34. package/nationalarchives/components/header/template.njk +1 -1
  35. package/nationalarchives/components/hero/_index.scss +7 -20
  36. package/nationalarchives/components/hero/hero.stories.js +2 -3
  37. package/nationalarchives/components/index-grid/_index.scss +17 -1
  38. package/nationalarchives/components/index-grid/index-grid.stories.js +7 -5
  39. package/nationalarchives/components/index-grid/macro-options.json +22 -2
  40. package/nationalarchives/components/index-grid/template.njk +12 -6
  41. package/nationalarchives/components/message/_index.scss +4 -6
  42. package/nationalarchives/components/message/phase-banner.stories.js +2 -3
  43. package/nationalarchives/components/phase-banner/phase-banner.stories.js +2 -3
  44. package/nationalarchives/components/picture/_index.scss +12 -15
  45. package/nationalarchives/components/picture/picture.stories.js +2 -3
  46. package/nationalarchives/components/profile/profile.stories.js +2 -3
  47. package/nationalarchives/components/sensitive-image/sensitive-image.stories.js +3 -4
  48. package/nationalarchives/components/skip-link/_index.scss +63 -0
  49. package/nationalarchives/components/skip-link/fixtures.json +11 -0
  50. package/nationalarchives/components/skip-link/macro-options.json +26 -0
  51. package/nationalarchives/components/skip-link/macro.njk +3 -0
  52. package/nationalarchives/components/skip-link/skip-link.stories.js +31 -0
  53. package/nationalarchives/components/skip-link/template.njk +4 -0
  54. package/nationalarchives/components/tabs/_index.scss +7 -14
  55. package/nationalarchives/components/tabs/tabs.stories.js +2 -3
  56. package/nationalarchives/patterns/featured-collection/_index.scss +2 -2
  57. package/nationalarchives/patterns/featured-collection/featured-collection.stories.js +3 -4
  58. package/nationalarchives/patterns/featured-collection/template.njk +2 -2
  59. package/nationalarchives/stories/utilities/colour-schemes/colour-schemes.mdx +85 -0
  60. package/nationalarchives/stories/utilities/{colour.stories.js → colour-schemes/colour-schemes.stories.js} +142 -52
  61. package/nationalarchives/stories/utilities/overrides/overrides.mdx +66 -0
  62. package/nationalarchives/stories/utilities/overrides/overrides.stories.js +30 -0
  63. package/nationalarchives/stories/utilities/{headings.stories.js → typography/headings.stories.js} +2 -1
  64. package/nationalarchives/stories/utilities/typography/typography.stories.js +34 -0
  65. package/nationalarchives/templates/layouts/_generic.njk +10 -8
  66. package/nationalarchives/tools/_colour.scss +105 -16
  67. package/nationalarchives/tools/_index.scss +0 -1
  68. package/nationalarchives/tools/_typography.scss +13 -1
  69. package/nationalarchives/utilities/_debug.scss +41 -1
  70. package/nationalarchives/utilities/_global.scss +13 -4
  71. package/nationalarchives/utilities/_index.scss +1 -0
  72. package/nationalarchives/utilities/_overrides.scss +30 -0
  73. package/nationalarchives/utilities/_typography.scss +42 -34
  74. package/nationalarchives/variables/_colour.scss +103 -106
  75. package/nationalarchives/variables/_grid.scss +1 -1
  76. package/nationalarchives/variables/_index.scss +1 -1
  77. package/nationalarchives/variables/_media.scss +23 -23
  78. package/nationalarchives/variables/_spacing.scss +15 -0
  79. package/nationalarchives/variables/_typography.scss +2 -1
  80. package/package.json +2 -2
  81. package/nationalarchives/components/card/card.js +0 -2
  82. package/nationalarchives/components/card/card.js.map +0 -1
  83. package/nationalarchives/components/card/card.mjs +0 -45
  84. package/nationalarchives/stories/utilities/typography.stories.js +0 -29
  85. package/nationalarchives/tools/_assets.scss +0 -5
  86. package/nationalarchives/variables/_assets.scss +0 -1
  87. /package/nationalarchives/stories/utilities/{heading-groups.stories.js → typography/heading-groups.stories.js} +0 -0
  88. /package/nationalarchives/stories/utilities/{lists.stories.js → typography/lists.stories.js} +0 -0
  89. /package/nationalarchives/stories/utilities/{typography.mdx → typography/typography.mdx} +0 -0
@@ -6,11 +6,11 @@
6
6
  @use "../../tools/media";
7
7
 
8
8
  .tna-header {
9
- color: #fff;
9
+ @include colour.invert;
10
10
 
11
- background-color: colourVars.$tna-black;
11
+ color: colour.brand-colour("white");
12
12
 
13
- @include colour.invert;
13
+ background-color: colour.brand-colour("black");
14
14
 
15
15
  &__exit {
16
16
  padding-top: 0.5rem;
@@ -103,8 +103,8 @@
103
103
  }
104
104
 
105
105
  &__logo {
106
- padding-top: 1.25rem;
107
- padding-bottom: 1.25rem;
106
+ padding-top: 1.5rem;
107
+ padding-bottom: 1.5rem;
108
108
  }
109
109
 
110
110
  &__logo-link {
@@ -137,8 +137,8 @@
137
137
  }
138
138
 
139
139
  .tna-logo {
140
- width: 6.25rem;
141
- height: 6.25rem;
140
+ width: 6rem;
141
+ height: 6rem;
142
142
 
143
143
  display: inline-block;
144
144
  }
@@ -148,6 +148,11 @@
148
148
  outline-offset: 1px;
149
149
  }
150
150
 
151
+ &__logo-link--href:active .tna-logo,
152
+ &__logo-link--href:focus .tna-logo {
153
+ outline: none;
154
+ }
155
+
151
156
  .tna-logo__foreground {
152
157
  fill: #fff;
153
158
  }
@@ -259,7 +264,7 @@
259
264
  &--orange,
260
265
  &--green,
261
266
  &--blue {
262
- color: colourVars.$tna-black;
267
+ color: colour.brand-colour("black");
263
268
 
264
269
  .tna-header__logo-link {
265
270
  &:hover {
@@ -274,28 +279,28 @@
274
279
  }
275
280
 
276
281
  .tna-header__hamburger {
277
- background-color: colourVars.$tna-black;
282
+ background-color: colour.brand-colour("black");
278
283
  }
279
284
  }
280
285
 
281
286
  &--yellow {
282
- background-color: colourVars.$tna-yellow;
287
+ background-color: colour.brand-colour("yellow");
283
288
  }
284
289
 
285
290
  &--pink {
286
- background-color: colourVars.$tna-pink;
291
+ background-color: colour.brand-colour("pink");
287
292
  }
288
293
 
289
294
  &--orange {
290
- background-color: colourVars.$tna-orange;
295
+ background-color: colour.brand-colour("orange");
291
296
  }
292
297
 
293
298
  &--green {
294
- background-color: colourVars.$tna-green;
299
+ background-color: colour.brand-colour("green");
295
300
  }
296
301
 
297
302
  &--blue {
298
- background-color: colourVars.$tna-blue;
303
+ background-color: colour.brand-colour("blue");
299
304
  }
300
305
 
301
306
  &__navigation {
@@ -403,8 +408,6 @@
403
408
  }
404
409
 
405
410
  @include media.on-mobile {
406
- $compensated-container-padding: grid.$gutter-width-mobile + 0.75rem;
407
-
408
411
  &__contents {
409
412
  &.tna-container {
410
413
  padding-right: 0;
@@ -417,8 +420,8 @@
417
420
  padding-bottom: 1rem;
418
421
 
419
422
  &.tna-column {
420
- padding-right: $compensated-container-padding;
421
- padding-left: $compensated-container-padding;
423
+ padding-right: grid.$gutter-width-mobile;
424
+ padding-left: grid.$gutter-width-mobile;
422
425
  }
423
426
  }
424
427
 
@@ -433,7 +436,7 @@
433
436
 
434
437
  &__navigation-toggle {
435
438
  &.tna-column {
436
- padding-right: $compensated-container-padding;
439
+ padding-right: grid.$gutter-width-mobile;
437
440
  padding-left: 0;
438
441
  }
439
442
  }
@@ -467,8 +470,7 @@
467
470
 
468
471
  @include colour.colour-background("page-background");
469
472
 
470
- border-bottom: 1px solid;
471
- @include colour.colour-border("keyline");
473
+ @include colour.colour-border("keyline", 1px, solid, bottom);
472
474
  }
473
475
 
474
476
  &__top-navigation-item {
@@ -490,19 +492,18 @@
490
492
 
491
493
  display: block;
492
494
 
493
- border-bottom: 1px solid;
494
- @include colour.colour-border("keyline");
495
+ @include colour.colour-border("keyline", 1px, solid, bottom);
495
496
  }
496
497
 
497
498
  &__navigation-item-link {
498
- padding-right: $compensated-container-padding;
499
- padding-left: $compensated-container-padding;
499
+ padding-right: grid.$gutter-width-mobile;
500
+ padding-left: grid.$gutter-width-mobile + 1rem;
500
501
 
501
502
  display: block;
502
503
 
503
504
  position: relative;
504
505
 
505
- line-height: 1.6;
506
+ line-height: #{math.div(1, 1.125) * 2};
506
507
 
507
508
  &::after {
508
509
  width: 0;
@@ -39,8 +39,8 @@ const Template = ({
39
39
  exit,
40
40
  classes,
41
41
  attributes,
42
- }) => {
43
- return Header({
42
+ }) =>
43
+ Header({
44
44
  params: {
45
45
  logo,
46
46
  topNavigation,
@@ -51,7 +51,6 @@ const Template = ({
51
51
  attributes,
52
52
  },
53
53
  });
54
- };
55
54
 
56
55
  export const Standard = Template.bind({});
57
56
  Standard.args = {
@@ -20,7 +20,7 @@
20
20
  <div class="tna-container tna-header__contents">
21
21
  <div class="tna-column tna-header__logo">
22
22
  <{%- if params.logo.href -%}a href="{{ params.logo.href }}" class="tna-header__logo-link tna-header__logo-link--href" title="{%- if params.logo.title -%}{{ params.logo.title }}{%- else -%}The National Archives{%- if params.logo.strapline %} - {{ params.logo.strapline }}{%- endif -%}{%- endif -%}"{%- else -%}span class="tna-header__logo-link"{%- endif -%}>
23
- <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" class="tna-logo" style="enable-background:new 0 0 160 160" viewBox="0 0 160 160" width="100" height="100">
23
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" class="tna-logo" style="enable-background:new 0 0 160 160" viewBox="0 0 160 160" width="96" height="96">
24
24
  <path fill="#fff" d="M0 0h160v160H0z" class="tna-logo__background"/>
25
25
  <g class="tna-logo__foreground" fill="#000">
26
26
  <path d="M1.9 107.2h156.3V158H1.9v-50.8zm0-52.7h156.3v50.8H1.9V54.5zm0-52.6h77.2v50.8H1.9V1.9zm79 0h77.2v50.8H80.9V1.9zm0-1.9H0v160h160V0H80.9z"/>
@@ -3,14 +3,17 @@
3
3
 
4
4
  .tna-hero {
5
5
  min-height: min(35vw, 480px);
6
- padding-top: 5.25rem;
7
- padding-bottom: 3.25rem;
6
+ margin-bottom: 2rem;
7
+ padding-top: 5rem;
8
+ padding-bottom: 3rem;
8
9
 
9
10
  display: flex;
10
11
  align-items: flex-end;
11
12
 
12
13
  position: relative;
13
14
 
15
+ @include colour.invert-on-mobile;
16
+
14
17
  &__image {
15
18
  width: 100%;
16
19
  height: 100%;
@@ -104,8 +107,6 @@
104
107
 
105
108
  display: block;
106
109
 
107
- @include colour.invert;
108
-
109
110
  &__image {
110
111
  height: 320px;
111
112
 
@@ -141,13 +142,10 @@
141
142
  }
142
143
 
143
144
  &__heading {
144
- color: inherit;
145
145
  }
146
146
 
147
147
  &__body {
148
148
  margin-top: 1rem;
149
-
150
- color: inherit;
151
149
  }
152
150
  }
153
151
 
@@ -157,24 +155,13 @@
157
155
  }
158
156
  }
159
157
 
160
- @mixin high-contrast {
158
+ @include colour.on-high-contrast {
161
159
  &__content-inner {
162
- border: 1px transparent solid;
163
- @include colour.colour-border("keyline-dark");
160
+ @include colour.colour-border("keyline-dark", 1px);
164
161
 
165
162
  @include media.on-mobile {
166
163
  border: none;
167
164
  }
168
165
  }
169
166
  }
170
-
171
- .tna-template--high-contrast-theme & {
172
- @include high-contrast;
173
- }
174
-
175
- @media (prefers-contrast: more) {
176
- .tna-template--system-theme & {
177
- @include high-contrast;
178
- }
179
- }
180
167
  }
@@ -23,8 +23,8 @@ export default {
23
23
  argTypes,
24
24
  };
25
25
 
26
- const Template = ({ heading, body, text, image, classes, attributes }) => {
27
- return Hero({
26
+ const Template = ({ heading, body, text, image, classes, attributes }) =>
27
+ Hero({
28
28
  params: {
29
29
  heading,
30
30
  body,
@@ -34,7 +34,6 @@ const Template = ({ heading, body, text, image, classes, attributes }) => {
34
34
  attributes,
35
35
  },
36
36
  });
37
- };
38
37
 
39
38
  export const Standard = Template.bind({});
40
39
  Standard.args = {
@@ -1,6 +1,16 @@
1
+ @use "sass:math";
1
2
  @use "../../tools/colour";
2
3
 
3
4
  .tna-index-grid {
5
+ &__heading {
6
+ }
7
+
8
+ &__items {
9
+ margin-top: 1rem;
10
+
11
+ list-style: none;
12
+ }
13
+
4
14
  &__item-wrapper {
5
15
  margin-bottom: 2rem;
6
16
  }
@@ -13,11 +23,17 @@
13
23
 
14
24
  @include colour.invert;
15
25
  text-decoration: none;
26
+
27
+ @include colour.on-high-contrast {
28
+ @include colour.colour-border("keyline-dark", 1px);
29
+ }
16
30
  }
17
31
 
18
32
  &__item-image {
19
33
  width: 100%;
20
- height: auto;
34
+ height: #{math.div(2, 3) * 100%};
35
+
36
+ object-fit: cover;
21
37
  }
22
38
 
23
39
  &__item-content {
@@ -2,7 +2,7 @@ import IndexGrid from "./template.njk";
2
2
  import macroOptions from "./macro-options.json";
3
3
 
4
4
  const argTypes = {
5
- heading: { control: "text" },
5
+ heading: { control: "object" },
6
6
  items: { control: "object" },
7
7
  columns: { control: "number" },
8
8
  columnsMedium: { control: "number" },
@@ -32,8 +32,8 @@ const Template = ({
32
32
  columnsTiny,
33
33
  classes,
34
34
  attributes,
35
- }) => {
36
- return IndexGrid({
35
+ }) =>
36
+ IndexGrid({
37
37
  params: {
38
38
  heading,
39
39
  items,
@@ -45,7 +45,6 @@ const Template = ({
45
45
  attributes,
46
46
  },
47
47
  });
48
- };
49
48
 
50
49
  const exampleItem = {
51
50
  href: "#",
@@ -58,7 +57,10 @@ const exampleItem = {
58
57
  };
59
58
  export const Standard = Template.bind({});
60
59
  Standard.args = {
61
- heading: "My dogs",
60
+ heading: {
61
+ title: "My dogs",
62
+ level: 2,
63
+ },
62
64
  items: Array(12)
63
65
  .fill({ ...exampleItem })
64
66
  .map((item, index) => {
@@ -1,9 +1,29 @@
1
1
  [
2
2
  {
3
3
  "name": "heading",
4
- "type": "string",
4
+ "type": "object",
5
5
  "required": true,
6
- "description": ""
6
+ "description": "",
7
+ "params": [
8
+ {
9
+ "name": "title",
10
+ "type": "string",
11
+ "required": true,
12
+ "description": ""
13
+ },
14
+ {
15
+ "name": "level",
16
+ "type": "number",
17
+ "required": true,
18
+ "description": ""
19
+ },
20
+ {
21
+ "name": "size",
22
+ "type": "text",
23
+ "required": false,
24
+ "description": ""
25
+ }
26
+ ]
7
27
  },
8
28
  {
9
29
  "name": "items",
@@ -2,10 +2,16 @@
2
2
  <nav class="tna-index-grid {{ containerClasses | join(' ') }}" aria-label="{{ params.heading }}" {%- for attribute, value in params.attributes %} {{ attribute }}="{{ value }}"{% endfor %}>
3
3
  <div class="tna-container">
4
4
  <div class="tna-column tna-column--full">
5
- <h1>
6
- {{ params.heading }}
7
- </h1>
5
+ {%- set headingSize = 'l' -%}
6
+ {%- if params.heading.size -%}
7
+ {%- set headingSize = params.heading.size -%}
8
+ {%- endif -%}
9
+ <h{{ params.heading.level }} class="tna-heading tna-heading--{{ headingSize }} tna-index-grid__heading">
10
+ {{ params.heading.title }}
11
+ </h{{ params.heading.level }}>
8
12
  </div>
13
+ </div>
14
+ <ul class="tna-index-grid__items tna-container">
9
15
  {%- set itemClasses = ['tna-index-grid__item-wrapper', 'tna-column'] -%}
10
16
 
11
17
  {%- if params.columns == 1 -%}
@@ -39,7 +45,7 @@
39
45
  {%- endif -%}
40
46
 
41
47
  {%- for item in params.items -%}
42
- <div class="{{ itemClasses | join(' ') }}">
48
+ <li class="{{ itemClasses | join(' ') }}">
43
49
  <a href="{{ item.href }}" class="tna-index-grid__item" title="{{ item.title }}">
44
50
  <img src="{{ item.src }}" class="tna-index-grid__item-image" width="{{ item.width }}" height="{{ item.height }}" alt="{{ item.alt }}" />
45
51
  <span class="tna-index-grid__item-content">
@@ -50,7 +56,7 @@
50
56
  {%- endif -%}
51
57
  </span>
52
58
  </a>
53
- </div>
59
+ </li>
54
60
  {%- endfor -%}
55
- </div>
61
+ </ul>
56
62
  <nav>
@@ -1,4 +1,3 @@
1
- @use "../../variables/colour" as colourVars;
2
1
  @use "../../tools/colour";
3
2
 
4
3
  .tna-message {
@@ -7,17 +6,16 @@
7
6
  display: flex;
8
7
  align-items: center;
9
8
 
10
- color: colourVars.$tna-black;
9
+ color: colour.brand-colour("black");
11
10
 
12
11
  @include colour.colour-background("keyline");
13
12
 
14
- border-left: 0.5rem transparent solid;
15
- @include colour.colour-border("keyline-dark");
13
+ @include colour.colour-border("keyline-dark", 0.5rem, solid, left);
16
14
 
17
15
  // &--yellow {
18
- background-color: colourVars.$tna-cream;
16
+ background-color: colour.brand-colour("cream");
19
17
 
20
- border-left-color: colourVars.$tna-yellow;
18
+ border-left-color: colour.brand-colour("yellow");
21
19
  // }
22
20
 
23
21
  &__icon {
@@ -18,15 +18,14 @@ export default {
18
18
  argTypes,
19
19
  };
20
20
 
21
- const Template = ({ message, classes, attributes }) => {
22
- return Message({
21
+ const Template = ({ message, classes, attributes }) =>
22
+ Message({
23
23
  params: {
24
24
  message,
25
25
  classes,
26
26
  attributes,
27
27
  },
28
28
  });
29
- };
30
29
 
31
30
  export const Standard = Template.bind({});
32
31
  Standard.args = {
@@ -22,8 +22,8 @@ export default {
22
22
  argTypes,
23
23
  };
24
24
 
25
- const Template = ({ phase, message, classes, attributes }) => {
26
- return PhaseBanner({
25
+ const Template = ({ phase, message, classes, attributes }) =>
26
+ PhaseBanner({
27
27
  params: {
28
28
  phase,
29
29
  message,
@@ -31,7 +31,6 @@ const Template = ({ phase, message, classes, attributes }) => {
31
31
  attributes,
32
32
  },
33
33
  });
34
- };
35
34
 
36
35
  export const Discovery = Template.bind({});
37
36
  Discovery.args = {
@@ -1,9 +1,13 @@
1
1
  @use "../../tools/colour";
2
2
 
3
3
  .tna-picture {
4
- margin: 0 0 1rem;
4
+ margin: 0 0 2rem;
5
5
  padding: 0;
6
6
 
7
+ &:last-child {
8
+ margin-bottom: 0;
9
+ }
10
+
7
11
  &__image-wrapper {
8
12
  // padding: 1rem 0;
9
13
 
@@ -21,6 +25,8 @@
21
25
  position: absolute;
22
26
  right: 1rem;
23
27
  bottom: 1rem;
28
+
29
+ font-size: 1rem;
24
30
  }
25
31
 
26
32
  &__transcript {
@@ -44,20 +50,11 @@
44
50
 
45
51
  text-align: center;
46
52
 
47
- border-bottom: 1px solid;
48
- @include colour.colour-border("keyline");
49
-
50
- // &::after {
51
- // height: 1px;
52
-
53
- // position: absolute;
54
- // right: 20%;
55
- // bottom: 0;
56
- // left: 20%;
57
-
58
- // @include colour.colour-background("keyline");
53
+ @include colour.colour-border("keyline", 1px, solid, bottom);
54
+ }
59
55
 
60
- // content: "";
61
- // }
56
+ @include colour.on-high-contrast {
57
+ @include colour.colour-border("keyline-dark", 1px);
58
+ border-bottom-width: 0;
62
59
  }
63
60
  }
@@ -34,8 +34,8 @@ const Template = ({
34
34
  translation,
35
35
  classes,
36
36
  attributes,
37
- }) => {
38
- return Picture({
37
+ }) =>
38
+ Picture({
39
39
  params: {
40
40
  src,
41
41
  width,
@@ -48,7 +48,6 @@ const Template = ({
48
48
  attributes,
49
49
  },
50
50
  });
51
- };
52
51
 
53
52
  export const Standard = Template.bind({});
54
53
  Standard.args = {
@@ -17,14 +17,13 @@ export default {
17
17
  argTypes,
18
18
  };
19
19
 
20
- const Template = ({ classes, attributes }) => {
21
- return Profile({
20
+ const Template = ({ classes, attributes }) =>
21
+ Profile({
22
22
  params: {
23
23
  classes,
24
24
  attributes,
25
25
  },
26
26
  });
27
- };
28
27
 
29
28
  export const Standard = Template.bind({});
30
29
  Standard.args = {
@@ -19,12 +19,12 @@ Object.keys(argTypes).forEach((argType) => {
19
19
  });
20
20
 
21
21
  export default {
22
- title: "Experimental/Components/Sensitive image",
22
+ title: "Components/Sensitive image",
23
23
  argTypes,
24
24
  };
25
25
 
26
- const Template = ({ image, warning, action, classes, attributes }) => {
27
- return SensitiveImage({
26
+ const Template = ({ image, warning, action, classes, attributes }) =>
27
+ SensitiveImage({
28
28
  params: {
29
29
  image,
30
30
  warning,
@@ -33,7 +33,6 @@ const Template = ({ image, warning, action, classes, attributes }) => {
33
33
  attributes,
34
34
  },
35
35
  });
36
- };
37
36
 
38
37
  export const Standard = Template.bind({});
39
38
  Standard.args = {
@@ -0,0 +1,63 @@
1
+ @use "../../tools/colour";
2
+
3
+ .tna-skip-link {
4
+ width: 1px !important;
5
+ height: 1px !important;
6
+ margin: 0 !important;
7
+ padding: 1rem !important;
8
+
9
+ display: block !important;
10
+
11
+ position: absolute !important;
12
+
13
+ overflow: hidden !important;
14
+
15
+ white-space: nowrap !important;
16
+
17
+ clip: rect(0 0 0 0) !important;
18
+ -webkit-clip-path: inset(50%) !important;
19
+ clip-path: inset(50%) !important;
20
+
21
+ &,
22
+ &:link,
23
+ &:visited {
24
+ @include colour.colour-font("button-primary-text", $important: true);
25
+ }
26
+
27
+ &:active,
28
+ &:focus {
29
+ width: auto !important;
30
+ height: auto !important;
31
+ margin: inherit !important;
32
+
33
+ position: static !important;
34
+
35
+ overflow: visible !important;
36
+
37
+ white-space: inherit !important;
38
+
39
+ clip: auto !important;
40
+ -webkit-clip-path: none !important;
41
+ clip-path: none !important;
42
+ }
43
+
44
+ &:focus {
45
+ @include colour.colour-background(
46
+ "button-primary-background",
47
+ $important: true
48
+ );
49
+
50
+ @include colour.colour-border("focus-outline", 0.3125rem, $important: true);
51
+
52
+ outline: none !important;
53
+ }
54
+
55
+ &:hover {
56
+ @include colour.colour-font("button-primary-hover-text", $important: true);
57
+
58
+ @include colour.colour-background(
59
+ "button-primary-hover-background",
60
+ $important: true
61
+ );
62
+ }
63
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "component": "skip link",
3
+ "fixtures": [
4
+ {
5
+ "name": "minimal",
6
+ "options": {},
7
+ "html": "<a href=\"#main-content\" class=\"tna-skip-link \">Skip to main content</a>",
8
+ "hidden": false
9
+ }
10
+ ]
11
+ }