mp-design-system 1.2.28 → 1.2.34

Sign up to get free protection for your applications and to get access to all the features.
Files changed (63) hide show
  1. package/dist/build/js/app.js +1 -1
  2. package/dist/build/js/app.js.map +1 -1
  3. package/dist/build/scss/library.css +1 -1
  4. package/dist/build/scss/library.css.map +1 -1
  5. package/dist/build/scss/main.css +1 -1
  6. package/dist/build/scss/main.css.map +1 -1
  7. package/package.json +1 -1
  8. package/src/_includes/components/button/button.scss +1 -1
  9. package/src/_includes/components/card/card.njk +1 -1
  10. package/src/_includes/components/card/existing-customer-card.config.js +2 -2
  11. package/src/_includes/components/card/existing-customer-card.njk +7 -3
  12. package/src/_includes/components/card/industry-card.config.js +26 -3
  13. package/src/_includes/components/card/industry-card.njk +32 -6
  14. package/src/_includes/components/card/industry-card.scss +76 -6
  15. package/src/_includes/components/card/macro.njk +10 -2
  16. package/src/_includes/components/card/measurement-type-card.config.js +35 -0
  17. package/src/_includes/components/card/measurement-type-card.njk +35 -0
  18. package/src/_includes/components/card/measurement-type-card.scss +56 -0
  19. package/src/_includes/components/card/{product-comparison-card.config.js → product-card.config.js} +28 -27
  20. package/src/_includes/components/card/product-card.njk +50 -0
  21. package/src/_includes/components/card/product-card.scss +88 -0
  22. package/src/_includes/components/card/search-result-card.config.js +2 -2
  23. package/src/_includes/components/card/search-result-card.njk +9 -5
  24. package/src/_includes/components/card/search-result-card.scss +5 -1
  25. package/src/_includes/components/card/technology-card.config.js +35 -0
  26. package/src/_includes/components/card/technology-card.njk +35 -0
  27. package/src/_includes/components/card/technology-card.scss +56 -0
  28. package/src/_includes/components/eyebrow/eyebrow.scss +1 -1
  29. package/src/_includes/components/hero/hero.njk +18 -1
  30. package/src/_includes/components/hero/hero.scss +29 -1
  31. package/src/_includes/components/input/input.njk +1 -1
  32. package/src/_includes/components/internal-nav/internal-nav.scss +5 -4
  33. package/src/_includes/components/scroll-spy/scroll-spy.scss +1 -1
  34. package/src/_includes/components/signpost/signpost.config.js +21 -1
  35. package/src/_includes/components/signpost/signpost.njk +13 -3
  36. package/src/_includes/components/signpost/signpost.scss +39 -0
  37. package/src/_includes/components/tabs/tabs.scss +4 -0
  38. package/src/_includes/components/twi/twi.scss +5 -0
  39. package/src/_includes/navigation/corporate.njk +0 -3
  40. package/src/assets/js/imports/internal-nav.js +19 -1
  41. package/src/assets/js/imports/scroll-spy.js +10 -2
  42. package/src/assets/scss/components/index.scss +3 -1
  43. package/src/assets/scss/components/product-finder.scss +1 -1
  44. package/src/assets/scss/objects/grid.scss +12 -1
  45. package/src/assets/scss/tools/cutoff.scss +5 -1
  46. package/src/assets/scss/utilities/space.scss +6 -0
  47. package/src/brand/resources.njk +28 -23
  48. package/src/index.njk +1 -1
  49. package/src/prototype/events-hub.njk +524 -0
  50. package/src/prototype/index.njk +264 -180
  51. package/src/prototype/range.njk +5 -5
  52. package/src/prototype/sections.njk +6 -1
  53. package/src/static/pdf/Power of one Content guidance.pdf +0 -0
  54. package/src/static/svg/icon-globe-alt--white.svg +4 -0
  55. package/src/static/svg/icon-globe-alt.svg +4 -0
  56. package/src/static/svg/icon-live-webinars--white.svg +6 -0
  57. package/src/static/svg/icon-live-webinars.svg +6 -0
  58. package/src/static/svg/icon-recorded-webinars--white.svg +4 -0
  59. package/src/static/svg/icon-recorded-webinars.svg +4 -0
  60. package/src/static/svg/icon-user-training--white.svg +5 -0
  61. package/src/static/svg/icon-user-training.svg +5 -0
  62. package/src/_includes/components/card/product-comparison-card.njk +0 -37
  63. package/src/_includes/components/card/product-comparison-card.scss +0 -79
@@ -8,7 +8,7 @@
8
8
  outline: 2px solid color('petrol');
9
9
  }
10
10
 
11
- &:where(:hover, :focus-within) .c-search-result-card__title {
11
+ &:where(:hover) .c-search-result-card__title {
12
12
  text-decoration: underline;
13
13
  text-underline-offset: 0.1em;
14
14
  }
@@ -40,5 +40,9 @@
40
40
 
41
41
  &__url {
42
42
  color: color('utility-blue');
43
+ overflow: hidden;
44
+ display: -webkit-box;
45
+ -webkit-line-clamp: 1;
46
+ -webkit-box-orient: vertical;
43
47
  }
44
48
  }
@@ -0,0 +1,35 @@
1
+ const categories = require('../component/categories');
2
+
3
+ module.exports = {
4
+ title: 'Technology card',
5
+ category: categories.card,
6
+ component: {
7
+ name: 'technology-card',
8
+ folder: 'card'
9
+ },
10
+ preview: 'cards-three',
11
+ context: {
12
+ title: 'X-ray Diffraction (XRD)',
13
+ link: '#',
14
+ description: 'XRD is the only laboratory technique that non-destructively and accurately obtains information such as chemical composition.',
15
+ image: {
16
+ src: '/static/img/range-product-1.jpg',
17
+ alt: ''
18
+ },
19
+ footer: {
20
+ button: {
21
+ label: 'View technology'
22
+ }
23
+ }
24
+ },
25
+ variants: [],
26
+ props: [
27
+ {
28
+ table: [
29
+ ['title', 'string'],
30
+ ['link', 'string'],
31
+ ['image', 'object', 'Image object']
32
+ ]
33
+ }
34
+ ]
35
+ }
@@ -0,0 +1,35 @@
1
+ {%- from "components/twi/macro.njk" import twi -%}
2
+
3
+ {%- set classes = 'mp c-technology-card' -%}
4
+
5
+ {%- if params.classes -%}{% set classes = classes + ' ' + params.classes %}{%- endif -%}
6
+
7
+ <article class="{{ classes }}" role="article" aria-label="Technology card">
8
+ <div class="c-technology-card__body">
9
+ {% if params.title | length %}
10
+ <h3 class="c-technology-card__heading">
11
+ {% if params.link | length %}
12
+ <a href="{{ params.link }}" aria-label="{{ params.title }}">
13
+ {{ params.title }}
14
+ </a>
15
+ {% else %}
16
+ {{ params.title }}
17
+ {% endif %}
18
+ </h3>
19
+ {% endif %}
20
+ {% if params.description | length %}
21
+ <p class="c-technology-card__lede">{{ params.description }}</p>
22
+ {% endif %}
23
+ {% if params.footer.button | length %}
24
+ <footer class="c-technology-card__footer">
25
+ {{ twi({ label: params.footer.button.label, icon: 'arrow-right', classes: 'c-twi--small u-link' }) }}
26
+ </footer>
27
+ {% endif %}
28
+ </div>
29
+ {% if params.image | length %}
30
+ <figure class="c-technology-card__image">
31
+ <img src="{{ params.image.src }}" alt="{{ params.image.alt or params.title }}" />
32
+ </figure>
33
+ {% endif %}
34
+ </article>
35
+
@@ -0,0 +1,56 @@
1
+ .c-technology-card {
2
+ background: color('white');
3
+ display: flex;
4
+ flex-flow: column;
5
+ border: 1px solid color('petrol', 'step-2');
6
+ position: relative;
7
+
8
+ &:focus-within {
9
+ outline: 2px solid color('petrol');
10
+ }
11
+
12
+ &:where(:hover) .c-twi.u-link {
13
+ text-decoration: underline;
14
+ text-underline-offset: 0.1em;
15
+ }
16
+
17
+ &__body {
18
+ @include padding('s-m');
19
+ display: flex;
20
+ flex-flow: column;
21
+ flex-grow: 1;
22
+
23
+ & > * + * {
24
+ @include margin-top('xs');
25
+ }
26
+ }
27
+
28
+ &__heading {
29
+ @extend .c-h, .c-h--step-0;
30
+
31
+ a {
32
+ @include clickable-parent;
33
+ }
34
+ }
35
+
36
+ &__lede {
37
+ @extend .u-step--1;
38
+ }
39
+
40
+ &__footer {
41
+ @include margin-top('auto');
42
+ @include padding-top('s');
43
+ }
44
+
45
+ &__image {
46
+ height: 10em;
47
+ order: -1;
48
+
49
+ img {
50
+ height: 100%;
51
+ width: 100%;
52
+ aspect-ratio: 16/9;
53
+ object-fit: cover;
54
+ }
55
+ }
56
+ }
@@ -33,7 +33,7 @@
33
33
  }
34
34
 
35
35
  &--utility-orange {
36
- background-color: color('utility-orange');
36
+ background-color: color('utility-orange', 'step-1');
37
37
  color: color('grey');
38
38
  }
39
39
  }
@@ -1,7 +1,7 @@
1
- {% from "components/button/macro.njk" import button %}
2
1
  {% from "components/breadcrumb/macro.njk" import breadcrumb %}
3
2
  {% from "components/button/macro.njk" import button %}
4
3
  {% from "components/icon/macro.njk" import icon %}
4
+ {% from "components/input/macro.njk" import input %}
5
5
 
6
6
  {%- set classes = 'mp c-hero' -%}
7
7
  {% if params.classes %}{%- set classes = classes + ' ' + params.classes -%}{% endif %}
@@ -29,6 +29,23 @@
29
29
  <header class="u-flow--m">
30
30
  <h1 class="c-h c-h--page-title">{{ params.title }}</h1>
31
31
  {% if params.subtitle %}<p class="u-step-1">{{ params.subtitle }}</p>{% endif %}
32
+ {% if params.search %}
33
+ <form class="c-hero__search u-split">
34
+ {{ input({
35
+ name: 'hero-search',
36
+ id: 'hero-search',
37
+ type: 'search',
38
+ hideLabel: true,
39
+ placeholder: params.search.placeholder
40
+ }) }}
41
+ {{ button({
42
+ name: 'hero-search-submit',
43
+ id: 'hero-search-submit',
44
+ label: params.search.buttonText or 'Search',
45
+ link: ''
46
+ }) }}
47
+ </form>
48
+ {% endif %}
32
49
  {{ params.content | safe }}
33
50
  </header>
34
51
 
@@ -34,8 +34,9 @@
34
34
  bottom: 0;
35
35
  @include space('right', 'gutter');
36
36
  z-index: 2;
37
- }
38
37
 
38
+ }
39
+
39
40
  &:after {
40
41
  content: '';
41
42
  box-shadow: -1px 0 color('white');
@@ -48,6 +49,17 @@
48
49
  bottom: 0;
49
50
  right: 0;
50
51
  }
52
+
53
+ @at-root {
54
+ .c-hero--extend .u-wrap {
55
+ &:before {
56
+ right: 0;
57
+ }
58
+ &:after {
59
+ right: calc(-1 * var(--gutter));
60
+ }
61
+ }
62
+ }
51
63
  }
52
64
 
53
65
  &__content {
@@ -55,6 +67,10 @@
55
67
  z-index: 5;
56
68
  max-width: 828px;
57
69
 
70
+ .c-hero--padded & {
71
+ @include padding('m-l', 0)
72
+ }
73
+
58
74
  & > * + * {
59
75
  @include margin-top('m');
60
76
  }
@@ -325,4 +341,16 @@
325
341
  z-index: 1;
326
342
  }
327
343
  }
344
+
345
+ &:has(+ .u-margin-top-negative-2xl) {
346
+ .u-wrap {
347
+ @include space('padding-bottom', '4xl')
348
+ }
349
+ }
350
+
351
+ &__search {
352
+ :first-child {
353
+ flex-grow: 1;
354
+ }
355
+ }
328
356
  }
@@ -10,4 +10,4 @@
10
10
  {% if params.button %}
11
11
  </div>
12
12
  {% endif %}
13
- {% endinputWrapper %}
13
+ {% endinputWrapper %}
@@ -3,6 +3,11 @@
3
3
  border-bottom: 1px solid transparent;
4
4
  transition: 200ms all;
5
5
 
6
+ &--sticky {
7
+ @extend .u-sticky;
8
+ top: -1;
9
+ }
10
+
6
11
  &--stuck {
7
12
  @extend .u-bg-white;
8
13
  border-bottom-color: color('grey', 'step-2');
@@ -66,8 +71,4 @@
66
71
 
67
72
  .c-hero + .c-internal-nav {
68
73
  margin-top: calc(var(--gutter) * -1);
69
- }
70
-
71
- .c-internal-nav.u-sticky {
72
- top: -1px;
73
74
  }
@@ -51,4 +51,4 @@
51
51
  margin-bottom: 0.5em;
52
52
  vertical-align: top;
53
53
  }
54
- }
54
+ }
@@ -12,5 +12,25 @@ module.exports = {
12
12
  icon: 'large-student',
13
13
  title: 'Dive into our knowledge center',
14
14
  description: 'Our huge freely-available library of manuals, instrument and application information.'
15
- }
15
+ },
16
+ variants: [
17
+ {
18
+ title: "Vertical",
19
+ preview: 'cards-three',
20
+ context: {
21
+ direction: 'vertical',
22
+ size: 'l',
23
+ color: 'blue',
24
+ icon: 'icon-user-training--white',
25
+ description: false
26
+ }
27
+ },
28
+ {
29
+ title: "Bordered",
30
+ preview: 'cards-two',
31
+ context: {
32
+ name: 'bordered'
33
+ }
34
+ }
35
+ ]
16
36
  }
@@ -1,11 +1,21 @@
1
- <article class="mp c-signpost">
1
+ {% set className %}{{
2
+ "c-signpost--vertical " if params.direction == "vertical" }}{{
3
+ "c-signpost--l " if params.size == "l" }}{{
4
+ "c-signpost--bordered " if params.name == "bordered" }}{{
5
+ "u-white u-bg-" if params.color }}{{params.color}}
6
+ {% endset %}
7
+
8
+ <article
9
+ class="mp c-signpost {{ className }} {{ params.classes }}">
2
10
  <a class="c-signpost__link" href="{{ params.link }}">
3
11
  <figure class="c-signpost__image">
4
12
  <img src="/static/svg/{{ params.icon }}.svg" />
5
13
  </figure>
6
14
  <div class="c-signpost__content u-flow--2xs">
7
- <h3 class="c-h c-h--step--1">{{ params.title }}</h3>
8
- <p>{{ params.description }}</p>
15
+ <h3 class="{{ "c-h c-h--step--1" if params.direction !== "vertical" }}">{{ params.title }}</h3>
16
+ {% if params.description %}
17
+ <p>{{ params.description }}</p>
18
+ {% endif %}
9
19
  </div>
10
20
  </a>
11
21
  </article>
@@ -1,7 +1,19 @@
1
1
  .c-signpost {
2
+ &--bordered {
3
+ @extend .u-border;
4
+ display: flex;
5
+ }
6
+
2
7
  &__link {
3
8
  display: flex;
4
9
  align-items: center;
10
+
11
+ .c-signpost--bordered & {
12
+ @include padding('xs');
13
+ align-self: stretch;
14
+ flex-grow: 1;
15
+ justify-content: center;
16
+ }
5
17
  }
6
18
 
7
19
  &__image {
@@ -10,6 +22,11 @@
10
22
  max-width: 72px;
11
23
  flex-grow: 1;
12
24
  flex-shrink: 0;
25
+
26
+ .c-signpost--l & {
27
+ max-width: var(--space-3xl);
28
+ width: auto;
29
+ }
13
30
  }
14
31
 
15
32
  &__content {
@@ -19,9 +36,31 @@
19
36
  color: color('utility-blue');
20
37
  text-decoration: underline;
21
38
  }
39
+
40
+ .c-signpost--l & {
41
+ @include step(0);
42
+ }
22
43
  }
23
44
 
24
45
  &:hover &__content p {
25
46
  text-decoration: none;
26
47
  }
48
+ }
49
+
50
+ .c-signpost--vertical {
51
+ @include cutoff($size: #{var(--space-m)});
52
+ display: flex;
53
+
54
+ .c-signpost__link {
55
+ flex-direction: column;
56
+ flex-grow: 1;
57
+ @include padding('m');
58
+ text-align: center;
59
+ }
60
+
61
+ .c-signpost__image {
62
+ @include margin-bottom('s-m');
63
+ flex-grow: 0;
64
+ margin-right: 0;
65
+ }
27
66
  }
@@ -7,6 +7,10 @@
7
7
  }
8
8
  }
9
9
 
10
+ .no-js &__content > * + * {
11
+ @include margin-top('gutter');
12
+ }
13
+
10
14
  &__content > * {
11
15
  display: none;
12
16
 
@@ -15,6 +15,7 @@
15
15
  margin-left: $twi-space;
16
16
  font-size: 1.25em;
17
17
  position: static !important;
18
+ flex-shrink: 0;
18
19
  }
19
20
 
20
21
  &--left svg {
@@ -22,4 +23,8 @@
22
23
  margin-left: 0;
23
24
  order: -1;
24
25
  }
26
+
27
+ &--small {
28
+ @include step(-1);
29
+ }
25
30
  }
@@ -6,9 +6,6 @@
6
6
  <li>
7
7
  <a href="/prototype/sections">Solutions</a>
8
8
  </li>
9
- <li>
10
- <a href="">CRO services</a>
11
- </li>
12
9
  <li>
13
10
  <a href="/prototype/webinars">Webinars and events</a>
14
11
  </li>
@@ -1,5 +1,5 @@
1
1
  function InternalNav() {
2
- const internalNav = document.querySelector('.c-internal-nav.u-sticky');
2
+ const internalNav = document.querySelector('.c-internal-nav--sticky');
3
3
 
4
4
  if (!internalNav) {
5
5
  return;
@@ -18,6 +18,24 @@ function InternalNav() {
18
18
 
19
19
  const observer = new IntersectionObserver(intersectionCallback, observerOptions);
20
20
  observer.observe(internalNav);
21
+
22
+ let internalNavHeight = internalNav.offsetHeight;
23
+
24
+ const updateInternalNavHeight = () => {
25
+ internalNavHeight = internalNav.offsetHeight;
26
+ const anchors = Array.from(internalNav.querySelectorAll('a'));
27
+ anchors.forEach(anchor => {
28
+ const id = anchor.getAttribute('href').replace('#', '');
29
+ const target = document.getElementById(id);
30
+ if (target) {
31
+ target.style.scrollMarginTop = `${internalNavHeight}px`;
32
+ }
33
+ });
34
+ };
35
+
36
+ window.addEventListener('resize', updateInternalNavHeight);
37
+
38
+ updateInternalNavHeight();
21
39
  }
22
40
 
23
41
  export default InternalNav;
@@ -1,9 +1,14 @@
1
1
  function ScrollSpy() {
2
+ const internalNav = document.querySelector('.c-internal-nav');
3
+ const internalNavHeight = internalNav ? internalNav.offsetHeight : 0;
4
+
2
5
  const spies = Array.from(document.querySelectorAll('.c-scroll-spy'));
3
- spies.forEach(setup);
6
+ spies.forEach(spy => {
7
+ setup(spy, internalNavHeight);
8
+ });
4
9
  }
5
10
 
6
- function setup(element) {
11
+ function setup(element, internalNavHeight) {
7
12
  const anchors = Array.from(element.querySelectorAll('a'));
8
13
  const observer = new IntersectionObserver(observation(anchors));
9
14
 
@@ -14,6 +19,9 @@ function setup(element) {
14
19
 
15
20
  observer.observe(target);
16
21
  });
22
+
23
+ const currentTop = parseFloat(window.getComputedStyle(element).top);
24
+ element.style.top = `${currentTop + internalNavHeight}px`;
17
25
  }
18
26
 
19
27
  /**
@@ -6,8 +6,10 @@
6
6
  @import '~comp/card/card.scss';
7
7
  @import '~comp/card/existing-customer-card.scss';
8
8
  @import '~comp/card/industry-card.scss';
9
- @import '~comp/card/product-comparison-card.scss';
9
+ @import '~comp/card/measurement-type-card.scss';
10
+ @import '~comp/card/product-card.scss';
10
11
  @import '~comp/card/search-result-card.scss';
12
+ @import '~comp/card/technology-card.scss';
11
13
  @import '~comp/comparison-table/comparison-table.scss';
12
14
  @import '~comp/embed/embed.scss';
13
15
  @import '~comp/eyebrow/eyebrow.scss';
@@ -64,7 +64,7 @@
64
64
  }
65
65
  }
66
66
 
67
- .c-product-comparison-card {
67
+ .c-product-card {
68
68
  border: 1px solid;
69
69
  border-image-slice: 1;
70
70
  border-image-source: linear-gradient(to right, rgba(color('blue'), 0.5), rgba(color('green'), 0.5));
@@ -28,7 +28,7 @@ $grid-gutter-width: 36;
28
28
  & > * {
29
29
  width: calc(($width - (($columns - 1) * space-unit() / $columns)) - 0.1px);
30
30
  width: calc(($width - (($columns - 1) * var(--gutter) / $columns)) - 0.1px);
31
- @include margin-bottom("gutter");
31
+ // @include margin-bottom(0);
32
32
 
33
33
  & + * {
34
34
  @include margin-left("gutter");
@@ -79,6 +79,7 @@ $grid-gutter-width: 36;
79
79
  }
80
80
 
81
81
  & > * {
82
+ @include margin-bottom("gutter");
82
83
  width: 100%;
83
84
  }
84
85
 
@@ -162,6 +163,16 @@ $grid-gutter-width: 36;
162
163
  }
163
164
  }
164
165
 
166
+ &--of-five {
167
+ @media (min-width: 22.4em) and (max-width: 64.9375em) {
168
+ @include o-grid(3)
169
+ }
170
+
171
+ @media (min-width: 65em) {
172
+ @include o-grid(5)
173
+ }
174
+ }
175
+
165
176
  &--swipeable {
166
177
  @media (max-width: 54.9375em) {
167
178
  @include breakout('gutter');
@@ -41,6 +41,10 @@
41
41
  @include cutoff("bottom-left")
42
42
  }
43
43
 
44
+ .u-cutoff--m {
45
+ @include cutoff($size: var(--space-m))
46
+ }
47
+
44
48
  .u-cutoff--xl {
45
49
  @include cutoff($size: var(--space-xl))
46
- }
50
+ }
@@ -90,6 +90,9 @@
90
90
  .u-pad-s {
91
91
  @include padding('s');
92
92
  }
93
+ .u-pad-s-m {
94
+ @include padding('s-m');
95
+ }
93
96
  .u-pad-m {
94
97
  @include padding('m');
95
98
  }
@@ -166,6 +169,9 @@
166
169
  .u-margin-top-auto {
167
170
  margin-top: auto;
168
171
  }
172
+ .u-margin-top-negative-2xl {
173
+ margin-top: calc(-1 * #{var(--space-2xl)})
174
+ }
169
175
  .u-margin-top-2xs {
170
176
  @include margin-top('2xs');
171
177
  }
@@ -9,54 +9,59 @@ tags: brand
9
9
  {% from "components/card/macro.njk" import card %}
10
10
  {% from "components/twi/macro.njk" import twi %}
11
11
 
12
- {% set content %}
13
- ## Figma
14
-
15
- Franklin is available as a UI design kit in Figma. It contains text and color styles, grids and spacing, icons, and a complete library of components.
16
-
17
- Visit our profile at [figma.com/@malpan](https://www.figma.com/@malpan) and duplicate the project to add it to your account. You can then use Franklin in your own designs.
18
-
19
- The Figma project is updated regularly to keep it in line with the CSS/JS/HTML version of Franklin. Also every [component](/components) page on this site has a link to its Figma counterpart.
20
- {% endset %}
21
-
22
12
  <div class="u-flow--l u-margin-top-xl">
23
13
 
14
+ <div class="o-grid o-grid--of-two">
15
+
24
16
  {{ twi({
25
17
  link: "/static/zip/MP_logo.zip",
26
18
  label: "Malvern Panalytical logo",
27
- classes: "u-link",
19
+ classes: "u-link u-border u-pad-s",
28
20
  icon: "file"
29
21
  }) }}
30
22
 
31
- <br>
32
-
33
23
  {{ twi({
34
- link: '/static/pdf/PN12558_Physical_branding_v23.pdf',
35
- label: 'Brand guidelines quick-start guide',
36
- classes: 'u-link',
37
- icon: 'file'
24
+ link: "/static/pdf/PN12558_Physical_branding_v23.pdf",
25
+ label: "Brand guidelines quick-start guide",
26
+ classes: "u-link u-border u-pad-s",
27
+ icon: "file"
38
28
  }) }}
39
29
 
40
- <br>
41
-
42
30
  {{ twi({
43
31
  link: "https://malvern.sharepoint.com/:b:/r/sites/Intranet/Shared%20Documents/FINAL%20Tone%20of%20voice%20guidelines%20April%202021.pdf?csf=1&web=1&e=vW1Qzs",
44
32
  label: "Tone of voice guidelines",
45
- classes: "u-link",
33
+ classes: "u-link u-border u-pad-s",
46
34
  icon: "file"
47
35
  }) }}
48
36
 
49
- <br>
50
-
51
37
  {{ twi({
52
38
  link: "https://malvern.sharepoint.com/:p:/r/sites/SVP/Shared%20Documents/Elevator%20Pitch%20(different%20languages)/Elevator%20pitch%20PPT%20(internal-external).pptx?d=w5ae5e5afa8c042f9968f95878a910471&csf=1&web=1&e=ui0qAk",
53
39
  label: "Elevator pitch - Powerpoint presentation",
54
- classes: "u-link",
40
+ classes: "u-link u-border u-pad-s",
55
41
  icon: "file"
56
42
  }) }}
57
43
 
44
+ {{ twi({
45
+ link: "/static/pdf/Power of one Content guidance.pdf",
46
+ label: "Channel Partner & Field Marketing guide - Product rebranding and naming conventions",
47
+ classes: "u-link u-border u-pad-s",
48
+ icon: "file"
49
+ }) }}
50
+
51
+ </div>
52
+
58
53
  <hr>
59
54
 
55
+ {% set content %}
56
+ ## Figma
57
+
58
+ Franklin is available as a UI design kit in Figma. It contains a detailed component library, as well as text and color styles, grids, spacing, and icons.
59
+
60
+ Visit our profile at [figma.com/@malpan](https://www.figma.com/@malpan) and duplicate the project to add it to your account. You can then use Franklin in your own designs.
61
+
62
+ The Figma project is updated regularly to keep it in line with the CSS/JS/HTML version of Franklin. Also most [component](/components) pages on this site have a link to their Figma counterpart.
63
+ {% endset %}
64
+
60
65
  {{ markdown({ content: content }) }}
61
66
 
62
67
  </div>
package/src/index.njk CHANGED
@@ -196,7 +196,7 @@ There are two other design systems in use at Malvern Panalytical.
196
196
  ## Latest updates
197
197
  ##### V1.2.13 - November 2023
198
198
 
199
- - New [product comparison cards](/components/product-comparison-card)
199
+ - New [product comparison cards](/components/product-card-with-features-list)
200
200
  - New ["Sticky" internal nav](/components/internal-nav-sticky-on-scroll)
201
201
  - Updated [comparison table](/components/comparison-table) design
202
202
  {% endset %}