@ons/design-system 59.1.0 → 60.0.1

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 (138) hide show
  1. package/components/footer/_footer.scss +0 -15
  2. package/components/footer/_macro.njk +58 -106
  3. package/components/footer/_macro.spec.js +56 -186
  4. package/components/header/_header.scss +23 -25
  5. package/components/header/_macro.njk +133 -148
  6. package/components/header/_macro.spec.js +39 -73
  7. package/components/hero/_hero.scss +4 -0
  8. package/components/hero/_macro.njk +40 -93
  9. package/components/hero/_macro.spec.js +60 -189
  10. package/components/icons/_macro.njk +0 -499
  11. package/components/icons/_macro.spec.js +0 -14
  12. package/components/navigation/_macro.njk +14 -14
  13. package/components/navigation/_macro.spec.js +3 -5
  14. package/components/navigation/_navigation.scss +3 -3
  15. package/css/main.css +3 -3
  16. package/img/large/placeholder-card.png +0 -0
  17. package/img/large/placeholder-news-medium.png +0 -0
  18. package/img/large/placeholder-news.png +0 -0
  19. package/img/large/placeholder-portrait.png +0 -0
  20. package/img/small/placeholder-card.png +0 -0
  21. package/img/small/placeholder-news-medium.png +0 -0
  22. package/img/small/placeholder-news.png +0 -0
  23. package/img/small/placeholder-portrait.png +0 -0
  24. package/js/main.js +0 -1
  25. package/layout/_template.njk +51 -62
  26. package/package.json +1 -1
  27. package/scripts/main.es5.js +1 -1
  28. package/scripts/main.js +1 -1
  29. package/scss/main.scss +0 -2
  30. package/scss/vars/_colors.scss +9 -4
  31. package/components/find-a-support-centre/_find-a-support-centre.scss +0 -9
  32. package/components/promotional-banner/_macro.njk +0 -49
  33. package/components/promotional-banner/_macro.spec.js +0 -97
  34. package/components/promotional-banner/_promo-banner.scss +0 -72
  35. package/components/select/select.js +0 -19
  36. package/components/select/select.spec.js +0 -56
  37. package/css/census.css +0 -243
  38. package/css/ids.css +0 -243
  39. package/favicons/browserconfig.xml +0 -12
  40. package/favicons/census/cy/android-chrome-192x192.png +0 -0
  41. package/favicons/census/cy/android-chrome-512x512.png +0 -0
  42. package/favicons/census/cy/apple-touch-icon.png +0 -0
  43. package/favicons/census/cy/browserconfig.xml +0 -12
  44. package/favicons/census/cy/favicon-16x16.png +0 -0
  45. package/favicons/census/cy/favicon-32x32.png +0 -0
  46. package/favicons/census/cy/favicon.ico +0 -0
  47. package/favicons/census/cy/manifest.json +0 -20
  48. package/favicons/census/cy/mstitle-150x150.png +0 -0
  49. package/favicons/census/cy/mstitle-310x150.png +0 -0
  50. package/favicons/census/cy/mstitle-310x310.png +0 -0
  51. package/favicons/census/cy/mstitle-70x70.png +0 -0
  52. package/favicons/census/cy/opengraph.png +0 -0
  53. package/favicons/census/cy/safari-pinned-tab.svg +0 -3
  54. package/favicons/census/cy/site.webmanifest +0 -19
  55. package/favicons/census/cy/twitter.png +0 -0
  56. package/favicons/census/en/android-chrome-192x192.png +0 -0
  57. package/favicons/census/en/android-chrome-512x512.png +0 -0
  58. package/favicons/census/en/apple-touch-icon.png +0 -0
  59. package/favicons/census/en/browserconfig.xml +0 -12
  60. package/favicons/census/en/favicon-16x16.png +0 -0
  61. package/favicons/census/en/favicon-32x32.png +0 -0
  62. package/favicons/census/en/favicon.ico +0 -0
  63. package/favicons/census/en/manifest.json +0 -20
  64. package/favicons/census/en/mstitle-150x150.png +0 -0
  65. package/favicons/census/en/mstitle-310x150.png +0 -0
  66. package/favicons/census/en/mstitle-310x310.png +0 -0
  67. package/favicons/census/en/mstitle-70x70.png +0 -0
  68. package/favicons/census/en/opengraph.png +0 -0
  69. package/favicons/census/en/safari-pinned-tab.svg +0 -3
  70. package/favicons/census/en/site.webmanifest +0 -19
  71. package/favicons/census/en/twitter.png +0 -0
  72. package/favicons/census/ni/favicon.ico +0 -0
  73. package/favicons/ids/cy/android-chrome-192x192.png +0 -0
  74. package/favicons/ids/cy/android-chrome-512x512.png +0 -0
  75. package/favicons/ids/cy/apple-touch-icon.png +0 -0
  76. package/favicons/ids/cy/browserconfig.xml +0 -12
  77. package/favicons/ids/cy/favicon-16x16.png +0 -0
  78. package/favicons/ids/cy/favicon-32x32.png +0 -0
  79. package/favicons/ids/cy/favicon.ico +0 -0
  80. package/favicons/ids/cy/manifest.json +0 -20
  81. package/favicons/ids/cy/mstile-150x150.png +0 -0
  82. package/favicons/ids/cy/mstile-310x150.png +0 -0
  83. package/favicons/ids/cy/mstile-310x310.png +0 -0
  84. package/favicons/ids/cy/mstile-70x70.png +0 -0
  85. package/favicons/ids/cy/opengraph.png +0 -0
  86. package/favicons/ids/cy/safari-pinned-tab.svg +0 -27
  87. package/favicons/ids/cy/site.webmanifest +0 -54
  88. package/favicons/ids/cy/twitter.png +0 -0
  89. package/favicons/ids/en/android-chrome-192x192.png +0 -0
  90. package/favicons/ids/en/android-chrome-512x512.png +0 -0
  91. package/favicons/ids/en/apple-touch-icon.png +0 -0
  92. package/favicons/ids/en/browserconfig.xml +0 -12
  93. package/favicons/ids/en/favicon-16x16.png +0 -0
  94. package/favicons/ids/en/favicon-32x32.png +0 -0
  95. package/favicons/ids/en/favicon.ico +0 -0
  96. package/favicons/ids/en/manifest.json +0 -20
  97. package/favicons/ids/en/mstile-150x150.png +0 -0
  98. package/favicons/ids/en/mstile-310x150.png +0 -0
  99. package/favicons/ids/en/mstile-310x310.png +0 -0
  100. package/favicons/ids/en/mstile-70x70.png +0 -0
  101. package/favicons/ids/en/opengraph.png +0 -0
  102. package/favicons/ids/en/safari-pinned-tab.svg +0 -27
  103. package/favicons/ids/en/site.webmanifest +0 -54
  104. package/favicons/ids/en/twitter.png +0 -0
  105. package/favicons/mstitle-150x150.png +0 -0
  106. package/favicons/mstitle-310x150.png +0 -0
  107. package/favicons/mstitle-310x310.png +0 -0
  108. package/favicons/mstitle-70x70.png +0 -0
  109. package/img/UKOpenGovernmentLicence-grey.svg +0 -4
  110. package/img/UKOpenGovernmentLicence.svg +0 -13
  111. package/img/card-placeholder.svg +0 -14
  112. package/img/census-landscape.svg +0 -4514
  113. package/img/census-logo-stacked-pos-billingual.png +0 -0
  114. package/img/census-logo-stacked-pos-cy.png +0 -0
  115. package/img/census-logo-stacked-pos-en.png +0 -0
  116. package/img/census-promo-banner.svg +0 -489
  117. package/img/circle-lines.svg +0 -31
  118. package/img/dummy-brand-logo.svg +0 -6
  119. package/img/icons--check.svg +0 -3
  120. package/img/icons--chevron-down.svg +0 -3
  121. package/img/its-about-us--dark.svg +0 -4
  122. package/img/its-about-us--light.svg +0 -4
  123. package/img/large/hero-man.png +0 -0
  124. package/img/logo.svg +0 -77
  125. package/img/ni-syn-cyfrif--dark.svg +0 -3
  126. package/img/ni-syn-cyfrif--light.svg +0 -3
  127. package/img/nisra-logo-black-en.svg +0 -4
  128. package/img/ogl.svg +0 -10
  129. package/img/ons-logo-black-cy.svg +0 -4
  130. package/img/ons-logo-black-en.svg +0 -4
  131. package/img/people-mob.png +0 -0
  132. package/img/people.png +0 -0
  133. package/img/rehearsal-areas.svg +0 -11
  134. package/img/small/hero-man.png +0 -0
  135. package/scss/census.scss +0 -2
  136. package/scss/ids.scss +0 -2
  137. package/scss/settings/_census.scss +0 -159
  138. package/scss/settings/_ids.scss +0 -52
package/scss/main.scss CHANGED
@@ -23,7 +23,6 @@
23
23
  @import '../components/field/field-group';
24
24
  @import '../components/field/field';
25
25
  @import '../components/fieldset/fieldset';
26
- @import '../components/find-a-support-centre/find-a-support-centre';
27
26
  @import '../components/footer/footer';
28
27
  @import '../components/header/header';
29
28
  @import '../components/hero/hero';
@@ -42,7 +41,6 @@
42
41
  @import '../components/pagination/pagination';
43
42
  @import '../components/panel/panel';
44
43
  @import '../components/phase-banner/phase-banner';
45
- @import '../components/promotional-banner/promo-banner';
46
44
  @import '../components/question/question';
47
45
  @import '../components/quote/quote';
48
46
  @import '../components/radios/radio';
@@ -55,18 +55,24 @@
55
55
  // Assignment
56
56
  // =============================================================================
57
57
 
58
- // Headers, footers, banners, page
58
+ // Header
59
59
  --ons-color-header: var(--ons-color-branded);
60
- --ons-color-header-light: var(--ons-color-white);
60
+ --ons-color-header-neutral: var(--ons-color-white);
61
61
  --ons-color-header-masthead: var(--ons-color-white);
62
- --ons-color-header-masthead-dark: var(--ons-color-black);
63
62
  --ons-color-header-masthead-internal: var(--ons-color-branded-secondary);
63
+ --ons-color-header-masthead-neutral: var(--ons-color-black);
64
+ --ons-color-header-title: var(--ons-color-text);
65
+ --ons-color-header-navigation-links: var(--ons-color-text);
66
+ --ons-color-service-links: var(--ons-color-white);
67
+
68
+ // Banners, page
64
69
  --ons-color-cta-bg: var(--ons-color-branded-tint);
65
70
  --ons-color-banner-bg: var(--ons-color-grey-5);
66
71
  --ons-color-banner-bg-dark: var(--ons-color-grey-15);
67
72
  --ons-color-page-light: var(--ons-color-white);
68
73
  --ons-color-banner-browser-bg: var(--ons-color-black);
69
74
  --ons-color-hero-bg: var(--ons-color-branded-tint);
75
+ --ons-color-hero-bg-dark: var(--ons-color-branded);
70
76
 
71
77
  // Typography
72
78
  --ons-color-text: var(--ons-color-black);
@@ -124,7 +130,6 @@
124
130
  --ons-color-dead: var(--ons-color-grey-75);
125
131
  --ons-color-instruction: var(--ons-color-jaffa-orange);
126
132
  --ons-color-instruction-tint: var(--ons-color-jaffa-orange-tint);
127
- --ons-color-tag-bg: var(--ons-color-leaf-green-tint);
128
133
  --ons-color-text-disabled: var(--ons-color-grey-35);
129
134
  --ons-color-border-disabled: var(--ons-color-grey-35);
130
135
  }
@@ -1,9 +0,0 @@
1
- .ons-distance {
2
- @extend .ons-u-fs-r;
3
-
4
- background-color: var(--ons-color-tag-bg);
5
- border: 1px solid transparent; // high contrast mode
6
- display: inline-block;
7
- padding: 0.3rem 0.5rem;
8
- text-decoration: none;
9
- }
@@ -1,49 +0,0 @@
1
- {% macro onsPromoBanner(params) %}
2
-
3
- <section class="ons-promo-banner{{ ' ' + 'ons-promo-banner--dark-theme' if params.darkTheme }}{{ ' ' + 'ons-promo-banner--has-image' if params.image }}">
4
-
5
- <div class="ons-container">
6
-
7
- <div class="ons-grid ons-grid--gutterless">
8
-
9
- {% if params.image %}
10
-
11
- <div class="ons-grid__col ons-col-7@s">
12
-
13
- <div class="ons-promo-banner__content">
14
- {{ params.content | safe }}{{ caller() if caller }}
15
- </div>
16
-
17
- </div>
18
-
19
- <div class="ons-grid__col ons-col-4@s ons-push-1@s ons-u-d-no@xxs@s">
20
-
21
- <div class="ons-promo-banner__image">
22
- {% if params.image.smallSrc %}
23
- <img srcset="{{ params.image.smallSrc }} 1x, {{ params.image.largeSrc }} 2x" src="{{ params.image.smallSrc }}" alt="{{ params.image.alt }}">
24
- {% else %}
25
- <img src="{{ params.image.src }}" alt="{{ params.image.alt }}">
26
- {% endif %}
27
- </div>
28
-
29
- </div>
30
-
31
- {% else %}
32
-
33
- <div class="ons-grid__col ons-col-7@m">
34
-
35
- <div class="ons-promo-banner__content">
36
- {{ params.content | safe }}{{ caller() if caller }}
37
- </div>
38
-
39
- </div>
40
-
41
- {% endif %}
42
-
43
- </div>
44
-
45
- </div>
46
-
47
- </section>
48
-
49
- {% endmacro %}
@@ -1,97 +0,0 @@
1
- /** @jest-environment jsdom */
2
-
3
- import * as cheerio from 'cheerio';
4
-
5
- import axe from '../../tests/helpers/axe';
6
- import { renderComponent } from '../../tests/helpers/rendering';
7
-
8
- const EXAMPLE_PROMOTIONAL_BANNER_MINIMAL = {
9
- content: 'Example content with a <a href="#">link</a>',
10
- };
11
-
12
- const EXAMPLE_PROMOTIONAL_BANNER_WITH_IMAGE_URL = {
13
- content: 'Example content with a <a href="#">link</a>',
14
- image: {
15
- src: 'example.png',
16
- alt: 'Example image',
17
- },
18
- };
19
-
20
- const EXAMPLE_PROMOTIONAL_BANNER_WITH_IMAGE_IMAGE = {
21
- content: 'Example content with a <a href="#">link</a>',
22
- image: {
23
- smallSrc: 'example-small.png',
24
- largeSrc: 'example-large.png',
25
- alt: 'Example image',
26
- },
27
- };
28
-
29
- describe('macro: promotional-banner', () => {
30
- describe.each([
31
- ['without image', EXAMPLE_PROMOTIONAL_BANNER_MINIMAL],
32
- ['with image url', EXAMPLE_PROMOTIONAL_BANNER_WITH_IMAGE_URL],
33
- ['with image small/large source', EXAMPLE_PROMOTIONAL_BANNER_WITH_IMAGE_IMAGE],
34
- ])('mode: %s', (_, params) => {
35
- it('passes jest-axe checks with', async () => {
36
- const $ = cheerio.load(renderComponent('promotional-banner', params));
37
-
38
- const results = await axe($.html());
39
- expect(results).toHaveNoViolations();
40
- });
41
-
42
- it('has expected html content', () => {
43
- const $ = cheerio.load(renderComponent('promotional-banner', params));
44
-
45
- const htmlContent = $('.ons-promo-banner__content')
46
- .html()
47
- .trim();
48
- expect(htmlContent).toBe('Example content with a <a href="#">link</a>');
49
- });
50
-
51
- it('has expected html content when called', () => {
52
- const $ = cheerio.load(renderComponent('promotional-banner', params, ['<p>Nested content</p>']));
53
-
54
- const htmlContent = $('.ons-promo-banner__content').html();
55
- expect(htmlContent).toContain('<p>Nested content</p>');
56
- });
57
- });
58
-
59
- describe('mode: with image url', () => {
60
- it('has expected `src` attribute', () => {
61
- const $ = cheerio.load(renderComponent('promotional-banner', EXAMPLE_PROMOTIONAL_BANNER_WITH_IMAGE_URL));
62
-
63
- const src = $('.ons-promo-banner__image img').attr('src');
64
- expect(src).toBe('example.png');
65
- });
66
-
67
- it('has expected `alt` attribute', () => {
68
- const $ = cheerio.load(renderComponent('promotional-banner', EXAMPLE_PROMOTIONAL_BANNER_WITH_IMAGE_URL));
69
-
70
- const alt = $('.ons-promo-banner__image img').attr('alt');
71
- expect(alt).toBe('Example image');
72
- });
73
- });
74
-
75
- describe('mode: with image small/large source', () => {
76
- it('has expected `srcset` attribute', () => {
77
- const $ = cheerio.load(renderComponent('promotional-banner', EXAMPLE_PROMOTIONAL_BANNER_WITH_IMAGE_IMAGE));
78
-
79
- const srcset = $('.ons-promo-banner__image img').attr('srcset');
80
- expect(srcset).toBe('example-small.png 1x, example-large.png 2x');
81
- });
82
-
83
- it('has expected `src` attribute', () => {
84
- const $ = cheerio.load(renderComponent('promotional-banner', EXAMPLE_PROMOTIONAL_BANNER_WITH_IMAGE_IMAGE));
85
-
86
- const src = $('.ons-promo-banner__image img').attr('src');
87
- expect(src).toBe('example-small.png');
88
- });
89
-
90
- it('has expected `alt` attribute', () => {
91
- const $ = cheerio.load(renderComponent('promotional-banner', EXAMPLE_PROMOTIONAL_BANNER_WITH_IMAGE_IMAGE));
92
-
93
- const alt = $('.ons-promo-banner__image img').attr('alt');
94
- expect(alt).toBe('Example image');
95
- });
96
- });
97
- });
@@ -1,72 +0,0 @@
1
- .ons-promo-banner {
2
- background-color: var(--ons-color-branded);
3
- background-image: linear-gradient(46deg, var(--ons-color-branded-tertiary) 0%, var(--ons-color-branded) 100%);
4
- overflow: hidden;
5
- padding-bottom: 5em;
6
- padding-top: 3em;
7
- position: relative;
8
-
9
- &::after {
10
- background-image: url(#{$static}/img/census-promo-banner.svg);
11
- background-position: 50% 0;
12
- background-repeat: no-repeat;
13
- bottom: 0;
14
- content: '';
15
- height: 244px;
16
- left: 50%;
17
- max-width: none;
18
- position: absolute;
19
- transform: translate(-50%, 50%);
20
- width: 100%;
21
- }
22
-
23
- &__content {
24
- position: relative;
25
- z-index: 1;
26
- :last-child {
27
- margin-bottom: 0;
28
- }
29
- }
30
-
31
- &__image {
32
- text-align: center;
33
-
34
- img {
35
- height: auto;
36
- width: 100%;
37
- }
38
- }
39
-
40
- &--dark-theme {
41
- h1,
42
- h2,
43
- h3,
44
- h4,
45
- h5,
46
- li,
47
- p,
48
- a {
49
- color: var(--ons-color-white);
50
- }
51
-
52
- a {
53
- &:hover {
54
- text-decoration: underline solid var(--ons-color-white) 2px;
55
- }
56
- }
57
-
58
- h3 {
59
- a:hover {
60
- text-decoration: underline solid var(--ons-color-white) 3px;
61
- }
62
- }
63
- }
64
-
65
- &--has-image {
66
- padding-bottom: 3em;
67
-
68
- &::after {
69
- content: none;
70
- }
71
- }
72
- }
@@ -1,19 +0,0 @@
1
- (function() {
2
- function installLanguageSelect(element) {
3
- const languageSelect = element.getElementsByClassName('ons-js-language-filter__select')[0];
4
- const languageContentElements = element.getElementsByClassName('ons-js-language-filter__content');
5
-
6
- languageSelect.addEventListener('change', function(event) {
7
- for (let languageContentElement of languageContentElements) {
8
- if (languageContentElement.id === this.value) {
9
- languageContentElement.classList.remove('ons-u-hidden');
10
- } else {
11
- languageContentElement.classList.add('ons-u-hidden');
12
- }
13
- }
14
- });
15
- }
16
-
17
- let languageFilterElements = document.getElementsByClassName('ons-js-language-filter');
18
- Array.from(languageFilterElements).forEach(installLanguageSelect);
19
- })();
@@ -1,56 +0,0 @@
1
- import { renderComponent, setTestPage } from '../../tests/helpers/rendering';
2
-
3
- const EXAMPLE_LANGUAGE_FILTER_PAGE = `
4
- <div class="ons-js-language-filter">
5
- ${renderComponent('select', {
6
- classes: 'ons-js-language-filter__select',
7
- id: 'language-filter-select',
8
- options: [
9
- {
10
- text: 'Native language',
11
- value: 'language-native',
12
- },
13
- {
14
- text: 'English',
15
- value: 'language-english',
16
- },
17
- ],
18
- })}
19
- <div class="ons-js-language-filter__content" id="language-native"></div>
20
- <div class="ons-js-language-filter__content ons-u-hidden" id="language-english"></div>
21
- </div>
22
- `;
23
-
24
- describe('script: select', () => {
25
- beforeEach(async () => {
26
- await setTestPage('/test', EXAMPLE_LANGUAGE_FILTER_PAGE);
27
- });
28
-
29
- describe('language filter page with multiple views', () => {
30
- it('shows first view by default', async () => {
31
- const isFirstHidden = await page.$eval('#language-native', node => node.classList.contains('ons-u-hidden'));
32
- expect(isFirstHidden).toBe(false);
33
- const isSecondHidden = await page.$eval('#language-english', node => node.classList.contains('ons-u-hidden'));
34
- expect(isSecondHidden).toBe(true);
35
- });
36
-
37
- it('shows second view when selection is changed to the second item', async () => {
38
- await page.select('#language-filter-select', 'language-english');
39
-
40
- const isFirstHidden = await page.$eval('#language-native', node => node.classList.contains('ons-u-hidden'));
41
- expect(isFirstHidden).toBe(true);
42
- const isSecondHidden = await page.$eval('#language-english', node => node.classList.contains('ons-u-hidden'));
43
- expect(isSecondHidden).toBe(false);
44
- });
45
-
46
- it('shows first view when selection is changed back to the first item', async () => {
47
- await page.select('#language-filter-select', 'language-english');
48
- await page.select('#language-filter-select', 'language-native');
49
-
50
- const isFirstHidden = await page.$eval('#language-native', node => node.classList.contains('ons-u-hidden'));
51
- expect(isFirstHidden).toBe(false);
52
- const isSecondHidden = await page.$eval('#language-english', node => node.classList.contains('ons-u-hidden'));
53
- expect(isSecondHidden).toBe(true);
54
- });
55
- });
56
- });