mp-design-system 1.0.0 → 1.0.2
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.
- package/dist/build/js/app.js +1 -1
- package/dist/build/js/app.js.map +1 -1
- package/dist/build/scss/library.css +1 -1
- package/dist/build/scss/library.css.map +1 -1
- package/dist/build/scss/main.css +1 -1
- package/dist/build/scss/main.css.map +1 -1
- package/package.json +1 -1
- package/src/_includes/components/button/button.config.js +6 -0
- package/src/_includes/components/button/button.scss +7 -0
- package/src/_includes/components/input/checkbox.config.js +6 -0
- package/src/_includes/components/input/checkbox.njk +2 -2
- package/src/_includes/components/input/input.config.js +6 -0
- package/src/_includes/components/input/input.njk +1 -1
- package/src/_includes/components/input/input.scss +11 -0
- package/src/_includes/components/input/radio.config.js +6 -0
- package/src/_includes/components/input/radio.njk +2 -2
- package/src/_includes/components/input/radio.scss +13 -0
- package/src/_includes/components/input/select.config.js +6 -0
- package/src/_includes/components/input/select.njk +1 -1
- package/src/_includes/components/input/textarea.config.js +6 -0
- package/src/_includes/components/input/textarea.njk +1 -1
- package/src/_includes/components/input/toggle.config.js +6 -0
- package/src/_includes/components/input/toggle.njk +2 -2
- package/src/_includes/components/input/toggle.scss +16 -0
- package/src/_includes/components/tabs/tabs.config.js +5 -5
- package/src/_includes/components/tabs/tabs.njk +1 -1
- package/src/_includes/components/tabs/tabs.scss +4 -0
- package/src/_includes/components/twi/twi.njk +1 -1
- package/src/_includes/includes/system-scripts.njk +1 -1
- package/src/_includes/layout.njk +1 -0
- package/src/_includes/system-home-page.njk +1 -0
- package/src/assets/js/app.js +2 -0
- package/src/assets/js/imports/off-canvas.js +97 -0
- package/src/assets/scss/elements/reset.scss +0 -7
- package/src/assets/scss/objects/index.scss +1 -0
- package/src/assets/scss/objects/off-canvas.scss +85 -0
- package/src/assets/scss/utilities/link.scss +1 -0
- package/src/components/iconography.njk +3 -0
- package/src/index.njk +14 -7
- package/src/patterns/form.njk +324 -151
- package/src/patterns/off-canvas.njk +42 -0
- package/src/prototype/index.njk +2 -2
- package/src/static/svg/sprite.svg +41 -20
package/package.json
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
<input type="checkbox" class="c-checkbox" name="{{ params.name or params.id }}" id="{{ params.id }}" value="{{ params.value }}" {{ 'checked' if params.checked }} {{ 'required' if params.required }} />
|
2
|
-
<label for="{{ params.id }}">{{ params.label }}</label>
|
1
|
+
<input type="checkbox" class="c-checkbox" name="{{ params.name or params.id }}" id="{{ params.id }}" value="{{ params.value }}" {{ 'checked' if params.checked }} {{ 'required' if params.required }} {{ 'disabled' if params.disabled }} />
|
2
|
+
<label for="{{ params.id }}">{{ params.label }}</label>
|
@@ -3,7 +3,7 @@
|
|
3
3
|
{% if params.button %}
|
4
4
|
<div class="u-flex u-border">
|
5
5
|
{% endif %}
|
6
|
-
<input type="{{ params.type or 'text' }}" class="c-input {{ 'c-input--with-button' if params.button }}{{ params.classes }}" name="{{ params.name or params.id }}" placeholder="{{ params.placeholder }}" id="{{ params.id }}" {{ 'required' if params.required }} />
|
6
|
+
<input type="{{ params.type or 'text' }}" class="c-input {{ 'c-input--with-button' if params.button }}{{ params.classes }}" name="{{ params.name or params.id }}" placeholder="{{ params.placeholder }}" id="{{ params.id }}" {{ 'required' if params.required }} {{ 'disabled' if params.disabled }} />
|
7
7
|
{% if params.button %}
|
8
8
|
<button type="button" class="mp c-button--white">Search</button>
|
9
9
|
{% endif %}
|
@@ -83,6 +83,17 @@
|
|
83
83
|
@include step(-1);
|
84
84
|
color: var(--error-state);
|
85
85
|
}
|
86
|
+
|
87
|
+
&[disabled],
|
88
|
+
[disabled] & {
|
89
|
+
background-color: color('petrol', 'step-2');
|
90
|
+
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" id="lock" viewBox="0 0 25 24" fill="currentColor"><path fill-rule="evenodd" clip-rule="evenodd" d="M9.45 4.17A4 4 0 0 1 16.28 7v3h-8V7a4 4 0 0 1 1.17-2.83ZM6.28 10V7a6 6 0 1 1 12 0v3h.22c1.64 0 2.78 1.46 2.78 3v7c0 1.54-1.14 3-2.78 3H6.06c-1.65 0-2.78-1.46-2.78-3v-7c0-1.54 1.13-3 2.78-3h.22Zm1 2H6.06c-.33 0-.78.33-.78 1v7c0 .67.45 1 .78 1H18.5c.32 0 .78-.33.78-1v-7c0-.67-.46-1-.78-1H7.28Zm3 3.35a2 2 0 1 1 3 1.73v1.77a1 1 0 1 1-2 0v-1.77a2 2 0 0 1-1-1.73Z"/></svg>');
|
91
|
+
background-position: right var(--space-2xs) center;
|
92
|
+
background-repeat: no-repeat;
|
93
|
+
@include space('background-size', 's');
|
94
|
+
cursor: not-allowed;
|
95
|
+
opacity: 0.6;
|
96
|
+
}
|
86
97
|
}
|
87
98
|
|
88
99
|
.c-input--with-button {
|
@@ -1,2 +1,2 @@
|
|
1
|
-
<input type="radio" class="c-radio" name="{{ params.name or params.id }}" id="{{ params.id }}" value="{{ params.value }}" {{ 'checked' if params.checked }} {{ 'required' if params.required }} />
|
2
|
-
<label for="{{ params.id }}">{{ params.label }}</label>
|
1
|
+
<input type="radio" class="c-radio" name="{{ params.name or params.id }}" id="{{ params.id }}" value="{{ params.value }}" {{ 'checked' if params.checked }} {{ 'required' if params.required }} {{ 'disabled' if params.disabled }} />
|
2
|
+
<label for="{{ params.id }}">{{ params.label }}</label>
|
@@ -25,6 +25,19 @@
|
|
25
25
|
&:focus + input[type=hidden] + label:before {
|
26
26
|
outline: 2px solid;
|
27
27
|
}
|
28
|
+
|
29
|
+
&[disabled],
|
30
|
+
[disabled] & {
|
31
|
+
& + label:before {
|
32
|
+
background-color: color('petrol', 'step-2');
|
33
|
+
cursor: not-allowed;
|
34
|
+
opacity: 0.6;
|
35
|
+
|
36
|
+
}
|
37
|
+
&:hover + label:before {
|
38
|
+
background-color: color('petrol', 'step-2');
|
39
|
+
}
|
40
|
+
}
|
28
41
|
}
|
29
42
|
|
30
43
|
.c-checkbox {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{% inputWrapper params.error %}
|
2
2
|
<label class="{{ 'u-hidden' if params.hideLabel else 'c-label' }}{{ params.classes }}" for="{{ params.id }}">{{ params.label }}</label>
|
3
|
-
<select class="c-input c-input--select" name="{{ params.name or params.id }}" id="{{ params.id }}" {{ 'required' if params.required }}>
|
3
|
+
<select class="c-input c-input--select" name="{{ params.name or params.id }}" id="{{ params.id }}" {{ 'required' if params.required }} {{ 'disabled' if params.disabled }}>
|
4
4
|
{% if params.placeholder %}<option value="">{{ params.placeholder }}</option>{% endif %}
|
5
5
|
{% if params.options | length %}
|
6
6
|
{% for option in params.options %}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
{% inputWrapper params.error %}
|
2
2
|
<label class="{{ 'u-hidden' if params.hideLabel else 'c-label' }}{{ params.classes }}" for="{{ params.id }}">{{ params.label }}</label>
|
3
|
-
<textarea class="c-input c-input--textarea" name="{{ params.name or params.id }}" placeholder="{{ params.placeholder }}" id="{{ params.id }}" {{ 'required' if params.required }}></textarea>
|
3
|
+
<textarea class="c-input c-input--textarea" name="{{ params.name or params.id }}" placeholder="{{ params.placeholder }}" id="{{ params.id }}" {{ 'required' if params.required }} {{ 'disabled' if params.disabled }}></textarea>
|
4
4
|
{% endinputWrapper %}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<label for="{{ params.id }}" class="c-toggle">
|
2
|
-
<input type="checkbox" class="c-toggle__checkbox" id="{{ params.id }}" value="{{ params.value }}" role="switch" aria-checked="false" aria-label="{{ params.label }}" {{ 'checked' if params.checked }} {{ 'required' if params.required }} />
|
2
|
+
<input type="checkbox" class="c-toggle__checkbox" id="{{ params.id }}" value="{{ params.value }}" role="switch" aria-checked="false" aria-label="{{ params.label }}" {{ 'checked' if params.checked }} {{ 'required' if params.required }} {{ 'disabled' if params.disabled }} />
|
3
3
|
<span class="c-toggle__slider"></span>
|
4
|
-
{{ params.label }}
|
4
|
+
<span class="c-toggle__label">{{ params.label }}</span>
|
5
5
|
</label>
|
@@ -56,4 +56,20 @@
|
|
56
56
|
&__checkbox:checked + &__slider::before {
|
57
57
|
transform: translateX(1rem);
|
58
58
|
}
|
59
|
+
|
60
|
+
input[disabled] {
|
61
|
+
& + .c-toggle__slider {
|
62
|
+
background-color: color('petrol', 'step-2');
|
63
|
+
cursor: not-allowed;
|
64
|
+
opacity: 0.6;
|
65
|
+
|
66
|
+
&:before {
|
67
|
+
background-color: color('petrol', 'step-3');
|
68
|
+
}
|
69
|
+
}
|
70
|
+
& ~ .c-toggle__label {
|
71
|
+
cursor: not-allowed;
|
72
|
+
opacity: 0.6;
|
73
|
+
}
|
74
|
+
}
|
59
75
|
}
|
@@ -8,11 +8,11 @@ module.exports = {
|
|
8
8
|
context: {
|
9
9
|
type: 'anchor',
|
10
10
|
tabs: [
|
11
|
-
{ id: 'tab-1', label: 'Primary materials', content: '<
|
12
|
-
{ id: 'tab-2', label: 'Pharmaceuticals', content: '<
|
13
|
-
{ id: 'tab-3', label: 'Advanced materials', content: '<
|
14
|
-
{ id: 'tab-4', label: 'Academia', content: '<
|
15
|
-
{ id: 'tab-5', label: 'Connected world', content: '<
|
11
|
+
{ id: 'tab-1', label: 'Primary materials', content: '<strong>Primary materials</strong> lorem ipsum a maecenas parturient ipsum at nisl id nisi a imperdiet platea dui venenatis sit euismod.', active: true },
|
12
|
+
{ id: 'tab-2', label: 'Pharmaceuticals', content: '<strong>Pharmaceuticals</strong> lorem ipsum parturient a ullamcorper nisl parturient cum ullamcorper augue arcu a feugiat mus imperdiet curae suspendisse rhoncus sit id parturient cubilia adipiscing ad ullamcorper aliquet mi.' },
|
13
|
+
{ id: 'tab-3', label: 'Advanced materials', content: '<strong>Advanced materials</strong> lorem ipsum fringilla eros cum facilisis id ullamcorper pretium sociosqu a eu vestibulum cras vivamus inceptos sed potenti a.' },
|
14
|
+
{ id: 'tab-4', label: 'Academia', content: '<strong>Academia</strong> lorem ipsum augue et vestibulum ut luctus ut vestibulum proin eros mauris sodales penatibus euismod a sem eleifend suspendisse litora fringilla habitasse suspendisse.' },
|
15
|
+
{ id: 'tab-5', label: 'Connected world', content: '<strong>Connected world</strong> lorem ipsum eros a parturient libero ullamcorper natoque vestibulum turpis egestas suspendisse parturient et adipiscing arcu a.' },
|
16
16
|
]
|
17
17
|
},
|
18
18
|
props: [
|
@@ -10,7 +10,7 @@
|
|
10
10
|
<div class="c-tabs__content">
|
11
11
|
{% for tab in params.tabs %}
|
12
12
|
<div id="{{ tab.id }}" class="c-tab {{ 'c-tab--active' if tab.active }}">
|
13
|
-
{{ tab.content | safe }}
|
13
|
+
<div class="o-prose"><p>{{ tab.content | safe }}</p></div>
|
14
14
|
</div>
|
15
15
|
{% endfor %}
|
16
16
|
</div>
|
@@ -67,7 +67,7 @@
|
|
67
67
|
function toggleBackgroundColour(event) {
|
68
68
|
const iframe = event.currentTarget.parentNode.parentNode.querySelector('iframe');
|
69
69
|
if (iframe) {
|
70
|
-
iframe.classList.toggle('u-bg-petrol-step-
|
70
|
+
iframe.classList.toggle('u-bg-petrol-step-3');
|
71
71
|
iframe.classList.toggle('u-pad-s');
|
72
72
|
}
|
73
73
|
}
|
package/src/_includes/layout.njk
CHANGED
@@ -6,6 +6,7 @@
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
7
7
|
<title>{{ fullTitle }}</title>
|
8
8
|
{% if description %} <meta name="description" content="{{ description }}" /> {% endif %}
|
9
|
+
{% if not index %}<meta name="robots" content="noindex" />{% endif %}
|
9
10
|
<meta name="theme-color" content="#005461">
|
10
11
|
<meta property="og:type" content="website" />
|
11
12
|
<meta property="og:title" content="{{ fullTitle }}" />
|
package/src/assets/js/app.js
CHANGED
@@ -5,6 +5,7 @@ import Comparison from './imports/comparison';
|
|
5
5
|
import Gallery from './imports/gallery';
|
6
6
|
import HeroPattern from './imports/hero-pattern';
|
7
7
|
import HeroVideo from './imports/hero-video';
|
8
|
+
import OffCanvas from './imports/off-canvas';
|
8
9
|
import ResponsiveTable from './imports/responsive-table';
|
9
10
|
import ScrollbarWidth from './imports/scrollbar-width';
|
10
11
|
import ScrollSpy from './imports/scroll-spy';
|
@@ -25,6 +26,7 @@ import Tabs from './imports/tabs';
|
|
25
26
|
Gallery();
|
26
27
|
HeroPattern();
|
27
28
|
HeroVideo();
|
29
|
+
OffCanvas();
|
28
30
|
ResponsiveTable();
|
29
31
|
ScrollbarWidth();
|
30
32
|
ScrollSpy();
|
@@ -0,0 +1,97 @@
|
|
1
|
+
// Add click event listeners to each toggle button
|
2
|
+
function OffCanvas() {
|
3
|
+
const toggleButtons = Array.from(document.querySelectorAll('.c-button--off-canvas-toggle'));
|
4
|
+
toggleButtons.forEach((button) => {
|
5
|
+
button.addEventListener('click', handleToggleClick);
|
6
|
+
});
|
7
|
+
}
|
8
|
+
|
9
|
+
// Function to handle the toggle button click
|
10
|
+
function handleToggleClick() {
|
11
|
+
const target = this.getAttribute('data-target');
|
12
|
+
const offCanvas = document.getElementById(target);
|
13
|
+
openOffCanvas(offCanvas);
|
14
|
+
}
|
15
|
+
|
16
|
+
// Function to open the off-canvas drawer
|
17
|
+
function openOffCanvas(offCanvas) {
|
18
|
+
const offCanvasList = document.querySelectorAll('.o-off-canvas');
|
19
|
+
const isOpen = offCanvas.classList.contains('o-off-canvas--open');
|
20
|
+
|
21
|
+
// Close other off-canvas drawers only if the target is not already open
|
22
|
+
if (!isOpen) {
|
23
|
+
offCanvasList.forEach((drawer) => {
|
24
|
+
if (drawer !== offCanvas) {
|
25
|
+
closeOffCanvas(drawer);
|
26
|
+
}
|
27
|
+
});
|
28
|
+
}
|
29
|
+
|
30
|
+
// Open the target off-canvas drawer
|
31
|
+
offCanvas.classList.add('o-off-canvas--open');
|
32
|
+
offCanvas.setAttribute('aria-hidden', 'false');
|
33
|
+
|
34
|
+
// Add click event listener to the backdrop to close the off-canvas drawer
|
35
|
+
const backdrop = offCanvas.querySelector('.o-off-canvas__backdrop');
|
36
|
+
backdrop.addEventListener('click', handleBackdropClick);
|
37
|
+
|
38
|
+
// Add keydown event listener to close the off-canvas drawer with the Esc key
|
39
|
+
document.addEventListener('keydown', handleKeyDown);
|
40
|
+
}
|
41
|
+
|
42
|
+
// Function to handle the backdrop click
|
43
|
+
function handleBackdropClick() {
|
44
|
+
const offCanvas = this.closest('.o-off-canvas');
|
45
|
+
closeOffCanvas(offCanvas);
|
46
|
+
}
|
47
|
+
|
48
|
+
// Function to handle the keydown event
|
49
|
+
function handleKeyDown(event) {
|
50
|
+
if (event.key === 'Escape') {
|
51
|
+
const openDrawer = document.querySelector('.o-off-canvas--open');
|
52
|
+
if (openDrawer) {
|
53
|
+
closeOffCanvas(openDrawer);
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
// Function to close the off-canvas drawer
|
59
|
+
function closeOffCanvas(offCanvas) {
|
60
|
+
offCanvas.classList.remove('o-off-canvas--open');
|
61
|
+
offCanvas.setAttribute('aria-hidden', 'true');
|
62
|
+
|
63
|
+
// Remove backdrop click event listener when closing the off-canvas drawer
|
64
|
+
const backdrop = offCanvas.querySelector('.o-off-canvas__backdrop');
|
65
|
+
backdrop.removeEventListener('click', handleBackdropClick);
|
66
|
+
|
67
|
+
// Remove keydown event listener when closing the off-canvas drawer
|
68
|
+
document.removeEventListener('keydown', handleKeyDown);
|
69
|
+
}
|
70
|
+
|
71
|
+
// Update button functionality
|
72
|
+
const updateButton = document.querySelectorAll('.o-off-canvas__update');
|
73
|
+
updateButton.forEach((button) => {
|
74
|
+
button.addEventListener('click', handleUpdateButtonClick);
|
75
|
+
});
|
76
|
+
|
77
|
+
// Handle the update button click
|
78
|
+
function handleUpdateButtonClick() {
|
79
|
+
// Save the options somewhere
|
80
|
+
const offCanvas = this.closest('.o-off-canvas');
|
81
|
+
closeOffCanvas(offCanvas);
|
82
|
+
}
|
83
|
+
|
84
|
+
// Close button functionality
|
85
|
+
const closeButton = document.querySelectorAll('.o-off-canvas__close');
|
86
|
+
closeButton.forEach((button) => {
|
87
|
+
button.addEventListener('click', handleCloseButtonClick);
|
88
|
+
});
|
89
|
+
|
90
|
+
// Handle the close button click
|
91
|
+
function handleCloseButtonClick() {
|
92
|
+
const offCanvas = this.closest('.o-off-canvas');
|
93
|
+
closeOffCanvas(offCanvas);
|
94
|
+
};
|
95
|
+
|
96
|
+
|
97
|
+
export default OffCanvas;
|
@@ -0,0 +1,85 @@
|
|
1
|
+
.o-off-canvas {
|
2
|
+
position: fixed;
|
3
|
+
top: 0;
|
4
|
+
left: 0;
|
5
|
+
width: 100%;
|
6
|
+
height: 100%;
|
7
|
+
background-color: transparent;
|
8
|
+
opacity: 0;
|
9
|
+
visibility: hidden;
|
10
|
+
transition: opacity 0.3s ease, visibility 0s linear 0.3s;
|
11
|
+
z-index: 9999;
|
12
|
+
|
13
|
+
&__backdrop {
|
14
|
+
position: fixed;
|
15
|
+
top: 0;
|
16
|
+
left: 0;
|
17
|
+
width: 100%;
|
18
|
+
height: 100%;
|
19
|
+
background-color: rgba(color("grey"), 0.5);
|
20
|
+
opacity: 0;
|
21
|
+
visibility: hidden;
|
22
|
+
transition: opacity 0.3s ease;
|
23
|
+
backdrop-filter: blur(5px);
|
24
|
+
}
|
25
|
+
|
26
|
+
&__content {
|
27
|
+
position: fixed;
|
28
|
+
top: 0;
|
29
|
+
right: -100%;
|
30
|
+
width: calc(100% - var(--space-m));
|
31
|
+
height: 100%;
|
32
|
+
background-color: color("white");
|
33
|
+
transition: right 0.3s ease;
|
34
|
+
display: flex;
|
35
|
+
flex-direction: column;
|
36
|
+
}
|
37
|
+
|
38
|
+
&__header {
|
39
|
+
@extend .c-h--step-3;
|
40
|
+
@include padding('s', 's', 0);
|
41
|
+
|
42
|
+
& > * {
|
43
|
+
margin-bottom: 0 !important;
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
&__header + &__main {
|
48
|
+
@include margin-top('m');
|
49
|
+
}
|
50
|
+
|
51
|
+
&__main {
|
52
|
+
@include margin-bottom('m');
|
53
|
+
@include padding(0, 's');
|
54
|
+
overflow-y: scroll;
|
55
|
+
}
|
56
|
+
|
57
|
+
&__footer {
|
58
|
+
@include margin-top('auto');
|
59
|
+
@include padding(0, 's', 's');
|
60
|
+
display: flex;
|
61
|
+
flex-direction: column;
|
62
|
+
align-items: stretch;
|
63
|
+
}
|
64
|
+
|
65
|
+
&__close {
|
66
|
+
@extend .u-link;
|
67
|
+
@include margin(0, 'auto');
|
68
|
+
@include padding('s');
|
69
|
+
}
|
70
|
+
|
71
|
+
&--open {
|
72
|
+
opacity: 1;
|
73
|
+
visibility: visible;
|
74
|
+
transition: opacity 0.3s ease;
|
75
|
+
|
76
|
+
.o-off-canvas__backdrop {
|
77
|
+
opacity: 1;
|
78
|
+
visibility: visible;
|
79
|
+
}
|
80
|
+
|
81
|
+
.o-off-canvas__content {
|
82
|
+
right: 0;
|
83
|
+
}
|
84
|
+
}
|
85
|
+
}
|
@@ -21,6 +21,7 @@ Icons add visual noise to designs and should be used sparingly.
|
|
21
21
|
'arrow-left',
|
22
22
|
'arrow-right',
|
23
23
|
'chevron-down',
|
24
|
+
'chevron-up',
|
24
25
|
'cross',
|
25
26
|
'dash',
|
26
27
|
'facebook',
|
@@ -28,12 +29,14 @@ Icons add visual noise to designs and should be used sparingly.
|
|
28
29
|
'info',
|
29
30
|
'instagram',
|
30
31
|
'linkedin',
|
32
|
+
'lock',
|
31
33
|
'log-out',
|
32
34
|
'play',
|
33
35
|
'rss',
|
34
36
|
'search',
|
35
37
|
'tick',
|
36
38
|
'twitter',
|
39
|
+
'warning',
|
37
40
|
'youtube'
|
38
41
|
] %}
|
39
42
|
|
package/src/index.njk
CHANGED
@@ -11,7 +11,7 @@ renderData:
|
|
11
11
|
{% from "components/card/macro.njk" import card %}
|
12
12
|
{% from "components/usp/macro.njk" import usp %}
|
13
13
|
|
14
|
-
<div class="o-grid o-grid--of-four">
|
14
|
+
<div class="o-grid o-grid--of-four u-pad-right-xl">
|
15
15
|
{{ card({
|
16
16
|
theme: {
|
17
17
|
layout: 'single',
|
@@ -99,18 +99,25 @@ renderData:
|
|
99
99
|
A combination of brand guidelines and a library of HTML/CSS/JS components.
|
100
100
|
|
101
101
|
As Malvern Panalytical has grown, our online experiences have become disparate and inconsistent. The goal of this design system is to address this by creating a single source of truth. It will rely on us all using and contributing to it, with the ongoing support of the Design System Team.
|
102
|
+
{% endset %}
|
102
103
|
|
104
|
+
{% set latest %}
|
103
105
|
## Latest updates
|
104
|
-
##### V.{{ config.dsVersion }} -
|
106
|
+
##### V.{{ config.dsVersion }} - May 2023
|
105
107
|
|
106
|
-
-
|
107
|
-
-
|
108
|
-
-
|
109
|
-
-
|
108
|
+
- Add new toggle components
|
109
|
+
- Add new breadcrumb component
|
110
|
+
- Add button with loading indicator
|
111
|
+
- Update event card styles
|
110
112
|
- Misc. fixes
|
111
|
-
- Misc. documentation improvements
|
112
113
|
{% endset %}
|
113
114
|
|
114
115
|
{{ markdown({
|
115
116
|
content: content
|
116
117
|
}) }}
|
118
|
+
|
119
|
+
<div class="c-slat c-slat--crystal u-bg-blue-step-3 u-pad-x-l">
|
120
|
+
{{ markdown({
|
121
|
+
content: latest
|
122
|
+
}) }}
|
123
|
+
</div>
|