mp-design-system 1.2.28 → 1.2.30

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. package/dist/build/scss/library.css +1 -1
  2. package/dist/build/scss/library.css.map +1 -1
  3. package/dist/build/scss/main.css +1 -1
  4. package/dist/build/scss/main.css.map +1 -1
  5. package/package.json +1 -1
  6. package/src/_includes/components/button/button.scss +1 -1
  7. package/src/_includes/components/card/existing-customer-card.config.js +2 -2
  8. package/src/_includes/components/card/existing-customer-card.njk +7 -3
  9. package/src/_includes/components/card/industry-card.config.js +26 -3
  10. package/src/_includes/components/card/industry-card.njk +32 -6
  11. package/src/_includes/components/card/industry-card.scss +76 -6
  12. package/src/_includes/components/card/macro.njk +10 -2
  13. package/src/_includes/components/card/measurement-type-card.config.js +35 -0
  14. package/src/_includes/components/card/measurement-type-card.njk +35 -0
  15. package/src/_includes/components/card/measurement-type-card.scss +56 -0
  16. package/src/_includes/components/card/{product-comparison-card.config.js → product-card.config.js} +28 -27
  17. package/src/_includes/components/card/product-card.njk +50 -0
  18. package/src/_includes/components/card/product-card.scss +88 -0
  19. package/src/_includes/components/card/search-result-card.config.js +2 -2
  20. package/src/_includes/components/card/search-result-card.njk +9 -5
  21. package/src/_includes/components/card/search-result-card.scss +5 -1
  22. package/src/_includes/components/card/technology-card.config.js +35 -0
  23. package/src/_includes/components/card/technology-card.njk +35 -0
  24. package/src/_includes/components/card/technology-card.scss +56 -0
  25. package/src/_includes/components/signpost/signpost.config.js +14 -1
  26. package/src/_includes/components/signpost/signpost.njk +7 -4
  27. package/src/_includes/components/signpost/signpost.scss +23 -0
  28. package/src/_includes/components/tabs/tabs.scss +4 -0
  29. package/src/_includes/components/twi/twi.scss +4 -0
  30. package/src/_includes/navigation/corporate.njk +0 -3
  31. package/src/assets/scss/components/index.scss +3 -1
  32. package/src/assets/scss/components/product-finder.scss +1 -1
  33. package/src/assets/scss/tools/cutoff.scss +5 -1
  34. package/src/assets/scss/utilities/space.scss +6 -0
  35. package/src/index.njk +1 -1
  36. package/src/prototype/events-hub.njk +463 -0
  37. package/src/prototype/index.njk +251 -182
  38. package/src/prototype/range.njk +5 -5
  39. package/src/prototype/sections.njk +6 -1
  40. package/src/static/svg/icon-globe-alt.svg +4 -0
  41. package/src/static/svg/icon-live-webinars.svg +6 -0
  42. package/src/static/svg/icon-recorded-webinars.svg +4 -0
  43. package/src/static/svg/icon-user-trainings.svg +5 -0
  44. package/src/_includes/components/card/product-comparison-card.njk +0 -37
  45. package/src/_includes/components/card/product-comparison-card.scss +0 -79
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mp-design-system",
3
- "version": "1.2.28",
3
+ "version": "1.2.30",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "dev": "npm-run-all --parallel bundle:*",
@@ -149,7 +149,7 @@
149
149
 
150
150
  &--small {
151
151
  @include step(-1);
152
- padding: 0.5em 1em;
152
+ padding: 0.75em 1em;
153
153
  }
154
154
 
155
155
  &--loading {
@@ -10,9 +10,9 @@ module.exports = {
10
10
  preview: 'cards-two',
11
11
  context: {
12
12
  title: 'Mastersizer accessories',
13
+ link: 'https://www.malvernpanalytical.com/en/products/product-range/mastersizer-range/mastersizer-3000#accessories',
13
14
  lede: 'Configure your Mastersizer for your application and requirements with our range of accessories.',
14
15
  cta: {
15
- link: 'https://www.malvernpanalytical.com/en/products/product-range/mastersizer-range/mastersizer-3000#accessories',
16
16
  label: 'View accessories',
17
17
  },
18
18
  image: {
@@ -27,9 +27,9 @@ module.exports = {
27
27
  context: {
28
28
  width: 'large',
29
29
  title: 'Looking for support?',
30
+ link: 'https://www.malvernpanalytical.com/en/support/product-support/mastersizer-range',
30
31
  lede: 'Looking for support, manuals or software? Malvern Panalytical will provide the support for your business.',
31
32
  cta: {
32
- link: 'https://www.malvernpanalytical.com/en/support/product-support/mastersizer-range',
33
33
  label: 'Get support',
34
34
  },
35
35
  image: {
@@ -11,9 +11,13 @@
11
11
  <div class="c-existing-customer-card__main-wrapper">
12
12
  {% if params.title | length %}
13
13
  <h3 class="c-existing-customer-card__title">
14
- <a href="{{ params.cta.link }}" aria-label="{{ params.title }}">
15
- {{ params.title }}
16
- </a>
14
+ {% if params.link | length %}
15
+ <a href="{{ params.link }}" aria-label="{{ params.title }}">
16
+ {{ params.title }}
17
+ </a>
18
+ {% else %}
19
+ {{ params.title }}
20
+ {% endif %}
17
21
  </h3>
18
22
  {% endif %}
19
23
  {% if params.lede | length %}
@@ -9,13 +9,36 @@ module.exports = {
9
9
  },
10
10
  preview: 'cards-three',
11
11
  context: {
12
- title: 'Building materials',
12
+ classes: '',
13
+ title: 'Mining and minerals',
13
14
  link: '#',
15
+ description: 'Explore the world of Iron, Base metals, Bauxite, Clay, Coal, Industrial Minerals and Precious Metals in 3D. ',
14
16
  image: {
15
- src: '/static/img/sector-1.jpg',
17
+ src: '/static/img/sector-3.jpg',
16
18
  alt: ''
17
- }
19
+ },
20
+ footer: {
21
+ button: {
22
+ label: 'View industry'
23
+ }
24
+ },
18
25
  },
26
+ variants: [
27
+ {
28
+ title: 'Heading only',
29
+ context: {
30
+ classes: 'c-industry-card--heading',
31
+ title: 'Zetasizer Pro',
32
+ link: '#',
33
+ description: '',
34
+ image: {
35
+ src: '/static/img/range-product-1.jpg',
36
+ alt: ''
37
+ },
38
+ footer: {}
39
+ },
40
+ }
41
+ ],
19
42
  props: [
20
43
  {
21
44
  table: [
@@ -1,8 +1,34 @@
1
- <article class="mp c-industry-card">
2
- <a class="c-industry-card__link u-flow--xs" href="{{ params.link }}">
1
+ {%- from "components/twi/macro.njk" import twi -%}
2
+
3
+ {%- set classes = 'mp c-industry-card' -%}
4
+
5
+ {%- if params.classes -%}{% set classes = classes + ' ' + params.classes %}{%- endif -%}
6
+
7
+ <article class="{{ classes }}" role="article" aria-label="Industry card">
8
+ <div class="c-industry-card__body">
9
+ {% if params.title | length %}
10
+ <h3 class="c-industry-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-industry-card__lede">{{ params.description }}</p>
22
+ {% endif %}
23
+ {% if params.footer | length %}
24
+ <footer class="c-industry-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 %}
3
30
  <figure class="c-industry-card__image">
4
- <img class="u-2/1" src="{{ params.image.src }}" alt="{{ params.image.alt or params.title }}" />
31
+ <img src="{{ params.image.src }}" alt="{{ params.image.alt or params.title }}" />
5
32
  </figure>
6
- <h3 class="c-h c-h--reset">{{ params.title }}</h3>
7
- </a>
8
- </article>
33
+ {% endif %}
34
+ </article>
@@ -1,15 +1,85 @@
1
1
  .c-industry-card {
2
- color: color('utility-blue');
2
+ background: color('white');
3
+ display: flex;
4
+ flex-flow: column;
5
+ border: none;
6
+ border: 1px solid color('petrol', 'step-2');
7
+ position: relative;
3
8
 
4
- &__link {
5
- display: block;
9
+ &:focus-within {
10
+ outline: 2px solid color('petrol');
6
11
  }
7
12
 
8
- &:hover .c-h--reset {
13
+ &:where(:hover) .c-twi.u-link {
9
14
  text-decoration: underline;
15
+ text-underline-offset: 0.1em;
10
16
  }
11
17
 
12
- img {
13
- width: 100%;
18
+ &__body {
19
+ @include padding('s-m');
20
+ display: flex;
21
+ flex-flow: column;
22
+ flex-grow: 1;
23
+
24
+ & > * + * {
25
+ @include margin-top('xs');
26
+ }
27
+ }
28
+
29
+ &__heading {
30
+ @extend .c-h, .c-h--step-0;
31
+
32
+ a {
33
+ @include clickable-parent;
34
+ }
35
+ }
36
+
37
+ &__lede {
38
+ @extend .u-step--1;
39
+ }
40
+
41
+ &__footer {
42
+ @include margin-top('auto');
43
+ @include padding-top('s');
44
+ }
45
+
46
+ &__image {
47
+ max-height: 10em;
48
+ order: -1;
49
+
50
+ img {
51
+ height: 100%;
52
+ width: 100%;
53
+ aspect-ratio: 2/1;
54
+ object-fit: cover;
55
+ }
14
56
  }
15
57
  }
58
+
59
+ .c-industry-card--heading {
60
+ border: none;
61
+
62
+ .c-industry-card {
63
+ &__heading {
64
+ color: color('utility-blue');
65
+ @include margin-top('xs');
66
+ font-weight: normal;
67
+ }
68
+
69
+ &__body {
70
+ @include padding(0);
71
+ }
72
+
73
+ &__image {
74
+ height: unset;
75
+ }
76
+ }
77
+
78
+ &:where(:hover) {
79
+ .c-industry-card {
80
+ &__heading {
81
+ text-decoration: underline;
82
+ }
83
+ }
84
+ }
85
+ }
@@ -12,10 +12,18 @@
12
12
  {{ c({ name: 'industry-card', folder: 'card' }, params) }}
13
13
  {% endmacro %}
14
14
 
15
- {% macro productComparisonCard(params) %}
16
- {{ c({ name: 'product-comparison-card', folder: 'card' }, params) }}
15
+ {% macro measurementTypeCard(params) %}
16
+ {{ c({ name: 'measurement-type-card', folder: 'card' }, params) }}
17
+ {% endmacro %}
18
+
19
+ {% macro productCard(params) %}
20
+ {{ c({ name: 'product-card', folder: 'card' }, params) }}
17
21
  {% endmacro %}
18
22
 
19
23
  {% macro searchResultCard(params) %}
20
24
  {{ c({ name: 'search-result-card', folder: 'card' }, params) }}
25
+ {% endmacro %}
26
+
27
+ {% macro technologyCard(params) %}
28
+ {{ c({ name: 'technology-card', folder: 'card' }, params) }}
21
29
  {% endmacro %}
@@ -0,0 +1,35 @@
1
+ const categories = require('../component/categories');
2
+
3
+ module.exports = {
4
+ title: 'Measurement type card',
5
+ category: categories.card,
6
+ component: {
7
+ name: 'measurement-type-card',
8
+ folder: 'card'
9
+ },
10
+ preview: 'cards-three',
11
+ context: {
12
+ title: 'Particle size',
13
+ link: '#',
14
+ description: 'Measurement of particle size distributions is routinely carried out across a wide range of industries.',
15
+ image: {
16
+ src: '/static/img/range-product-1.jpg',
17
+ alt: ''
18
+ },
19
+ footer: {
20
+ button: {
21
+ label: 'View measurement type'
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-measurement-type-card' -%}
4
+
5
+ {%- if params.classes -%}{% set classes = classes + ' ' + params.classes %}{%- endif -%}
6
+
7
+ <article class="{{ classes }}" role="article" aria-label="Measurement type card">
8
+ <div class="c-measurement-type-card__body">
9
+ {% if params.title | length %}
10
+ <h3 class="c-measurement-type-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-measurement-type-card__lede">{{ params.description }}</p>
22
+ {% endif %}
23
+ {% if params.footer.button | length %}
24
+ <footer class="c-measurement-type-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-measurement-type-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-measurement-type-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
+ }
@@ -1,10 +1,10 @@
1
1
  const categories = require('../component/categories');
2
2
 
3
3
  module.exports = {
4
- title: 'Product comparison card',
4
+ title: 'Product card',
5
5
  category: categories.card,
6
6
  component: {
7
- name: 'product-comparison-card',
7
+ name: 'product-card',
8
8
  folder: 'card'
9
9
  },
10
10
  preview: 'cards-three',
@@ -15,46 +15,27 @@ module.exports = {
15
15
  src: '/static/img/range-product-1.jpg',
16
16
  alt: ''
17
17
  },
18
- features: [
19
- {
20
- icon: 'cross',
21
- label: 'Classic 90° DLS'
22
- },
23
- {
24
- icon: 'tick',
25
- label: 'Dynamic light scattering'
26
- },
27
- {
28
- icon: 'tick',
29
- label: 'Static light scattering'
30
- },
31
- {
32
- icon: 'tick',
33
- label: 'Non-Invasive Back Scatter DLS'
34
- },
35
- {
36
- icon: 'cross',
37
- label: 'Multi-Angle Dynamic Light Scattering'
38
- }
39
- ],
40
18
  footer: {
41
19
  buttons: [
42
20
  {
43
21
  link: '#',
44
- label: 'More details'
22
+ label: 'More details',
23
+ classes: 'c-button--small'
45
24
  },
46
25
  {
47
26
  link: '#',
48
- label: 'Request a quote'
27
+ label: 'Request a quote',
28
+ classes: 'c-button--small'
49
29
  }
50
30
  ]
51
31
  }
52
32
  },
53
33
  variants: [
54
34
  {
55
- title: 'Without features list',
35
+ title: 'With features list',
56
36
  preview: 'cards-three',
57
37
  context: {
38
+ classes: 'c-product-card--features-list',
58
39
  title: 'Zetasizer Pro',
59
40
  description: 'The Zetasizer Pro is your go-to instrument to measure a wide range of sample types and concentrations.',
60
41
  image: {
@@ -62,6 +43,26 @@ module.exports = {
62
43
  alt: ''
63
44
  },
64
45
  features: [
46
+ {
47
+ icon: 'cross',
48
+ label: 'Classic 90° DLS'
49
+ },
50
+ {
51
+ icon: 'tick',
52
+ label: 'Dynamic light scattering'
53
+ },
54
+ {
55
+ icon: 'tick',
56
+ label: 'Static light scattering'
57
+ },
58
+ {
59
+ icon: 'tick',
60
+ label: 'Non-Invasive Back Scatter DLS'
61
+ },
62
+ {
63
+ icon: 'cross',
64
+ label: 'Multi-Angle Dynamic Light Scattering'
65
+ }
65
66
  ],
66
67
  footer: {
67
68
  buttons: [
@@ -0,0 +1,50 @@
1
+ {%- from "components/button/macro.njk" import button -%}
2
+ {%- from "components/twi/macro.njk" import twi -%}
3
+
4
+ {%- set classes = 'mp c-product-card' -%}
5
+
6
+ {%- if params.classes -%}{% set classes = classes + ' ' + params.classes %}{%- endif -%}
7
+
8
+ <article class="{{ classes }}" role="article" aria-label="Product card">
9
+ <div class="c-product-card__body">
10
+ {% if params.title | length %}
11
+ <h3 class="c-product-card__heading">
12
+ {{ params.title }}
13
+ </h3>
14
+ {% endif %}
15
+ {% if params.description | length %}
16
+ <p class="c-product-card__lede">{{ params.description }}</p>
17
+ {% endif %}
18
+ {% if params.features | length %}
19
+ <p class="c-product-card__features-list-heading">Features include</p>
20
+ <ul class="c-product-card__features-list">
21
+ {% for feature in params.features %}
22
+ <li class="c-product-card__feature--{{ feature.icon }}">
23
+ {{ twi({
24
+ label: feature.label,
25
+ icon: feature.icon
26
+ }) }}
27
+ </li>
28
+ {% endfor %}
29
+ </ul>
30
+ {% endif %}
31
+ {% if params.footer.buttons | length %}
32
+ <footer class="c-product-card__footer">
33
+ {% for item in params.footer.buttons %}
34
+ {{ button({
35
+ link: item.link,
36
+ label: item.label,
37
+ classes: item.classes,
38
+ colour: 'outline-green' if loop.index0 == 0 else 'green'
39
+ }) }}
40
+ {% endfor %}
41
+ </footer>
42
+ {% endif %}
43
+ </div>
44
+ {% if params.image | length %}
45
+ <figure class="c-product-card__image">
46
+ <img src="{{ params.image.src }}" alt="{{ params.image.alt or params.title }}" />
47
+ </figure>
48
+ {% endif %}
49
+ </article>
50
+
@@ -0,0 +1,88 @@
1
+ .c-product-card {
2
+ background: color('white');
3
+ display: flex;
4
+ flex-flow: column;
5
+ border: 1px solid color('petrol', 'step-2');
6
+
7
+ &__body {
8
+ @include padding('s-m');
9
+ display: flex;
10
+ flex-flow: column;
11
+ flex-grow: 1;
12
+
13
+ & > * + * {
14
+ @include margin-top('xs');
15
+ }
16
+ }
17
+
18
+ &__heading {
19
+ @extend .c-h, .c-h--step-0;
20
+ }
21
+
22
+ &__lede {
23
+ @extend .u-step--1;
24
+ }
25
+
26
+ &__footer {
27
+ @include margin-top('auto');
28
+ @include padding-top('s');
29
+ display: flex;
30
+ flex-flow: row;
31
+ flex-wrap: wrap;
32
+ gap: var(--space-2xs);
33
+
34
+ & > * {
35
+ flex-grow: 1;
36
+ }
37
+ }
38
+
39
+ &__image {
40
+ height: 10em;
41
+ order: -1;
42
+
43
+ img {
44
+ height: 100%;
45
+ width: 100%;
46
+ aspect-ratio: 16/9;
47
+ object-fit: cover;
48
+ }
49
+ }
50
+ }
51
+
52
+ .c-product-card--features-list {
53
+ .c-product-card {
54
+ &__heading {
55
+ @extend .c-h--step-1;
56
+ }
57
+
58
+ &__lede {
59
+ @extend .u-step-0;
60
+ }
61
+
62
+ &__features-list {
63
+ @include margin-top('2xs');
64
+ list-style: none;
65
+
66
+ &-heading {
67
+ @include margin-top('s');
68
+ font-weight: weight("bold");
69
+ }
70
+
71
+ & > * + * {
72
+ @include margin-top('3xs');
73
+ }
74
+ }
75
+
76
+ &__feature {
77
+ &--tick {
78
+ svg {
79
+ color: color('green');
80
+ }
81
+ }
82
+
83
+ &--cross {
84
+ color: color('grey', 'step-2');
85
+ }
86
+ }
87
+ }
88
+ }
@@ -11,7 +11,7 @@ module.exports = {
11
11
  context: {
12
12
  title: 'Mastersizer range',
13
13
  description: 'The Mastersizer range of laser diffraction particle size analyzers set the standard for delivering rapid, accurate particle size distributions for both wet and dry dispersions.',
14
- url: '/en/products/product-range/mastersizer-range',
14
+ link: '/en/products/product-range/mastersizer-range',
15
15
  tag: 'Product range'
16
16
  },
17
17
  variants: [
@@ -21,7 +21,7 @@ module.exports = {
21
21
  table: [
22
22
  ['title', 'string'],
23
23
  ['description', 'string'],
24
- ['url', 'string'],
24
+ ['link', 'string'],
25
25
  ['tag', 'string'],
26
26
  ]
27
27
  }
@@ -4,9 +4,13 @@
4
4
  <header class="c-search-result-card__header">
5
5
  {% if params.title | length %}
6
6
  <h2 class="c-search-result-card__title">
7
- <a href="{{ params.url }}" aria-label="{{ params.title }}">
8
- {{ params.title }}
9
- </a>
7
+ {% if params.link | length %}
8
+ <a href="{{ params.link }}" aria-label="{{ params.title }}">
9
+ {{ params.title }}
10
+ </a>
11
+ {% else %}
12
+ {{ params.title }}
13
+ {% endif %}
10
14
  </h2>
11
15
  {% endif %}
12
16
  {% if params.tag | length %}
@@ -22,8 +26,8 @@
22
26
  {% if params.description | length %}
23
27
  <p class="c-search-result-card__description">{{ params.description }}</p>
24
28
  {% endif %}
25
- {% if params.url | length %}
26
- <span class="c-search-result-card__url">{{ params.url }}</span>
29
+ {% if params.link | length %}
30
+ <span class="c-search-result-card__url">{{ params.link }}</span>
27
31
  {% endif %}
28
32
  </div>
29
33
  </article>
@@ -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
  }