mp-design-system 1.2.61 → 1.2.63

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. package/dist/build/js/app.js +22 -2
  2. package/dist/build/scss/library.css +1 -2
  3. package/dist/build/scss/main.css +1 -2
  4. package/package.json +12 -6
  5. package/src/_includes/components/alert/alert.config.js +1 -1
  6. package/src/_includes/components/alert/alert.njk +1 -1
  7. package/src/_includes/components/alert/alert.scss +7 -1
  8. package/src/_includes/components/card/card.scss +1 -0
  9. package/src/_includes/components/card/product-card.njk +8 -0
  10. package/src/_includes/components/card-new/card-new.config.js +95 -0
  11. package/src/_includes/components/card-new/card-new.md +0 -0
  12. package/src/_includes/components/card-new/card-new.njk +169 -0
  13. package/src/_includes/components/card-new/card-new.scss +156 -0
  14. package/src/_includes/components/card-new/macro.njk +5 -0
  15. package/src/_includes/components/event-card/event-card.config.js +108 -0
  16. package/src/_includes/components/event-card/event-card.njk +1 -0
  17. package/src/_includes/components/event-card/event-card.scss +49 -0
  18. package/src/_includes/components/event-card/macro.njk +5 -0
  19. package/src/_includes/components/product-card/macro.njk +5 -0
  20. package/src/_includes/components/product-card/product-card.config.js +84 -0
  21. package/src/_includes/components/product-card/product-card.njk +1 -0
  22. package/src/_includes/components/product-card/product-card.scss +36 -0
  23. package/src/_includes/components/resource-card/macro.njk +5 -0
  24. package/src/_includes/components/resource-card/resource-card.config.js +59 -0
  25. package/src/_includes/components/resource-card/resource-card.njk +1 -0
  26. package/src/_includes/components/resource-card/resource-card.scss +0 -0
  27. package/src/_includes/components/twi/twi.scss +14 -0
  28. package/src/_includes/includes/system-scripts.njk +13 -0
  29. package/src/_includes/layout.njk +1 -1
  30. package/src/_includes/system-home-page.njk +1 -1
  31. package/src/assets/scss/components/index.scss +3 -0
  32. package/src/assets/scss/library.scss +94 -67
  33. package/src/assets/scss/objects/button-wrap.scss +18 -0
  34. package/src/assets/scss/objects/clickable-parent.scss +3 -0
  35. package/src/assets/scss/objects/index.scss +2 -0
  36. package/src/assets/scss/tools/index.scss +1 -0
  37. package/src/components-full-pages.njk +2 -3
  38. package/src/components-pages.njk +5 -4
  39. package/src/index.njk +1 -86
  40. package/src/prototype/events-hub.njk +10 -9
  41. package/src/prototype/index.njk +330 -201
  42. package/src/prototype/range.njk +23 -12
  43. package/dist/build/arc.abe174a6.svg +0 -1
  44. package/dist/build/concentric.465e6b4d.svg +0 -1
  45. package/dist/build/crystal.8300dbe3.svg +0 -1
  46. package/dist/build/dots-pattern.1bae0e23.svg +0 -1
  47. package/dist/build/js/app.js.map +0 -1
  48. package/dist/build/scss/library.css.map +0 -1
  49. package/dist/build/scss/main.css.map +0 -1
@@ -11,7 +11,7 @@
11
11
  display: grid;
12
12
  min-height: 100vh;
13
13
  grid-template-rows: auto 1fr auto;
14
-
14
+
15
15
  &--components {
16
16
  grid-template-rows: auto 1fr;
17
17
  }
@@ -21,18 +21,18 @@
21
21
  @include padding('2xs');
22
22
  flex-direction: column;
23
23
  align-items: flex-start;
24
-
24
+
25
25
  background: color('petrol');
26
26
  color: color('white');
27
27
  font-weight: weight('bold');
28
-
29
- @media only screen and (min-width:650px) {
28
+
29
+ @media only screen and (min-width: 650px) {
30
30
  @include step(-2);
31
31
  flex-direction: row;
32
32
  align-items: center;
33
33
  }
34
34
 
35
- @media only screen and (min-width:1000px) {
35
+ @media only screen and (min-width: 1000px) {
36
36
  @include step(-1);
37
37
  @include padding('s', 's-l');
38
38
  }
@@ -57,7 +57,8 @@
57
57
 
58
58
  &__hero {
59
59
  color: white;
60
- background: linear-gradient(color('petrol'), transparent), linear-gradient(45deg, color('blue'), color('petrol'));
60
+ background: linear-gradient(color('petrol'), transparent),
61
+ linear-gradient(45deg, color('blue'), color('petrol'));
61
62
  }
62
63
 
63
64
  &__body {
@@ -67,7 +68,7 @@
67
68
  @media only screen and (min-width: 600px) {
68
69
  grid-template-columns: 10em 1fr;
69
70
  }
70
-
71
+
71
72
  @media only screen and (min-width: 800px) {
72
73
  grid-template-columns: 17em 1fr;
73
74
  }
@@ -76,7 +77,7 @@
76
77
  @media only screen and (min-width: 600px) {
77
78
  &--components &__body > * {
78
79
  overflow-y: auto;
79
- height: calc( 100vh - var(--headerHeight) - 1px );
80
+ height: calc(100vh - var(--headerHeight) - 1px);
80
81
  }
81
82
  }
82
83
 
@@ -85,7 +86,7 @@
85
86
  border-right: 1px solid color('petrol', 'step-3');
86
87
  grid-row: -1;
87
88
  scroll-behavior: none;
88
-
89
+
89
90
  @media only screen and (min-width: 600px) {
90
91
  grid-row: auto;
91
92
  }
@@ -119,7 +120,7 @@
119
120
  @include padding('xs');
120
121
  padding-bottom: 0;
121
122
 
122
- li + li {
123
+ li + li {
123
124
  @include margin-top('2xs');
124
125
  }
125
126
  }
@@ -127,7 +128,7 @@
127
128
 
128
129
  &__skip-link {
129
130
  @include padding('xs');
130
-
131
+
131
132
  @media only screen and (min-width: 600px) {
132
133
  display: none;
133
134
  }
@@ -140,10 +141,10 @@
140
141
  max-width: 15%;
141
142
  min-width: 100px;
142
143
 
143
- @media only screen and (min-width:650px) {
144
+ @media only screen and (min-width: 650px) {
144
145
  justify-content: flex-start;
145
146
  }
146
-
147
+
147
148
  &-name {
148
149
  @include padding-left('xs-s');
149
150
  @include margin-left('xs-s');
@@ -167,7 +168,7 @@
167
168
  }
168
169
 
169
170
  // &:nth-last-child(3) {
170
- // color: color('petrol', 'step-1');
171
+ // color: color('petrol', 'step-1');
171
172
  // }
172
173
  }
173
174
  }
@@ -198,7 +199,7 @@
198
199
  padding: 0.25rem;
199
200
  }
200
201
 
201
- &-menu-active {
202
+ &-menu-active {
202
203
  font-weight: weight('bold');
203
204
  position: relative;
204
205
 
@@ -227,14 +228,15 @@
227
228
  &__frame {
228
229
  position: relative;
229
230
  width: 100%;
230
-
231
+
231
232
  &-links {
232
233
  position: absolute;
233
234
  right: 0;
234
235
  top: calc(-1 * (var(--space-m) + var(--space-s)));
235
236
  z-index: 1;
236
237
 
237
- a, button {
238
+ a,
239
+ button {
238
240
  border-radius: 0 0 0.25em 0.25em;
239
241
  @include step(-1);
240
242
  padding: 0.25em 0.666em;
@@ -248,25 +250,42 @@
248
250
  top: 0;
249
251
  }
250
252
 
251
- iframe {
252
- --negative-padding: calc( var(--space-m) * -1 );
253
+ &-wrap {
254
+ --width: '';
253
255
  height: 100%;
254
- width: 100%;
255
- width: calc( 100% - var(--negative-padding) *2 );
256
- left: var(--negative-padding);
257
- top: var(--negative-padding);
258
- transition:
259
- padding .3s cubic-bezier(0.22, 0.61, 0.36, 1),
260
- background-color .3s cubic-bezier(0.22, 0.61, 0.36, 1);
256
+ overflow: hidden;
257
+ position: relative;
261
258
  resize: both;
262
259
 
263
- @media only screen and (min-width: 600px) {
260
+ &:after {
261
+ background: color('petrol', 'step-3');
262
+ bottom: 0;
263
+ color: color('petrol', 'step-1');
264
+ counter-reset: width var(--width);
265
+ content: counter(width);
266
+ @include step(-2);
267
+ mix-blend-mode: multiply;
268
+ padding: 0.5ch 1ch;
264
269
  position: absolute;
270
+ right: 0;
265
271
  }
272
+ }
266
273
 
267
- body {
268
- border: 2px solid red;
269
- }
274
+ iframe {
275
+ --negative-padding: calc(var(--space-m) * -1);
276
+ height: 100%;
277
+ width: 100%;
278
+ width: calc(100% - var(--negative-padding) * 2);
279
+ left: var(--negative-padding);
280
+ top: var(--negative-padding);
281
+ position: relative;
282
+ transition:
283
+ padding 0.3s cubic-bezier(0.22, 0.61, 0.36, 1),
284
+ background-color 0.3s cubic-bezier(0.22, 0.61, 0.36, 1);
285
+
286
+ // @media only screen and (min-width: 600px) {
287
+ // position: absolute;
288
+ // }
270
289
  }
271
290
  }
272
291
 
@@ -321,51 +340,51 @@
321
340
  gap: 0 1em;
322
341
  grid-auto-rows: minmax(4em, auto);
323
342
  margin-bottom: var(--space-m);
324
-
343
+
325
344
  @media only screen and (min-width: 680px) {
326
345
  gap: 0;
327
346
  grid-template-columns: repeat(5, auto);
328
347
  grid-template-rows: 5em auto;
329
348
  }
330
349
  }
331
-
350
+
332
351
  &__swatch-grid--has-labels {
333
352
  grid-auto-flow: row;
334
-
353
+
335
354
  @media only screen and (min-width: 40em) {
336
355
  grid-template-columns: minmax(15%, 15em) auto;
337
356
  grid-template-rows: auto;
338
357
  }
339
-
340
- @media only screen and (min-width:1000px) {
358
+
359
+ @media only screen and (min-width: 1000px) {
341
360
  grid-auto-flow: column;
342
361
  grid-template-columns: repeat(5, 1fr);
343
362
  grid-template-rows: 5em auto;
344
363
  }
345
364
  }
346
-
365
+
347
366
  &__swatches,
348
367
  &__swatch-labels {
349
368
  display: grid;
350
369
  grid-template-columns: repeat(auto-fit, 165px);
351
370
  }
352
-
371
+
353
372
  &__swatch {
354
373
  display: flex;
355
-
374
+
356
375
  & > * {
357
376
  justify-content: center;
358
377
  font-weight: weight('bold');
359
378
  margin: auto;
360
379
  }
361
380
  }
362
-
381
+
363
382
  &__swatches {
364
383
  & > * {
365
384
  height: 0;
366
385
  padding-bottom: 50%;
367
386
  position: relative;
368
-
387
+
369
388
  & > * {
370
389
  display: flex;
371
390
  justify-content: center;
@@ -381,16 +400,16 @@
381
400
  }
382
401
  }
383
402
  }
384
-
403
+
385
404
  &__swatch-grid table {
386
405
  @include step(-2);
387
-
406
+
388
407
  td,
389
408
  th {
390
409
  @include padding('2xs', 0, '2xs', '3xs');
391
410
  }
392
411
  th {
393
- widtH: 3em;
412
+ width: 3em;
394
413
  }
395
414
  td {
396
415
  font-family: monospace;
@@ -417,7 +436,12 @@
417
436
  display: block;
418
437
 
419
438
  span {
420
- background: linear-gradient(45deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 100%), rgba(206, 0, 88, 0.5);
439
+ background: linear-gradient(
440
+ 45deg,
441
+ rgba(255, 255, 255, 0.2) 0%,
442
+ rgba(255, 255, 255, 0) 100%
443
+ ),
444
+ rgba(206, 0, 88, 0.5);
421
445
  height: 0;
422
446
  padding-bottom: 100%;
423
447
  position: relative;
@@ -447,7 +471,7 @@
447
471
  &--alt {
448
472
  background: color('petrol', 'step-1');
449
473
  padding: 2rem 1rem;
450
-
474
+
451
475
  &:before {
452
476
  content: '\00a0';
453
477
  display: block;
@@ -457,7 +481,7 @@
457
481
  &--first {
458
482
  background: color('petrol');
459
483
  padding: 2rem 1rem;
460
-
484
+
461
485
  &:before {
462
486
  content: 'First on mobile';
463
487
  }
@@ -476,7 +500,7 @@
476
500
  @include step(-1);
477
501
  @include padding('3xs', '2xs');
478
502
  letter-spacing: ls('2%');
479
-
503
+
480
504
  &:hover {
481
505
  color: color('red');
482
506
  }
@@ -484,22 +508,20 @@
484
508
  }
485
509
 
486
510
  hr {
487
- @extend .u-hr
511
+ @extend .u-hr;
488
512
  }
489
513
 
490
514
  &__typo {
491
-
492
515
  &__sidebar {
493
516
  width: grid-column(2);
494
517
 
495
518
  span {
496
519
  display: block;
497
-
498
520
  }
499
521
 
500
522
  .x2 {
501
523
  margin-top: 4.25em;
502
- border: 1px solid color("grey");
524
+ border: 1px solid color('grey');
503
525
  border-width: 1px 0;
504
526
  height: 2em;
505
527
  line-height: 2em;
@@ -545,17 +567,17 @@
545
567
  grid-template-columns: 40% 20% 40%;
546
568
  grid-template-rows: var(--space-2xl) 400px 400px;
547
569
 
548
- img {
570
+ img {
549
571
  &:nth-child(2) {
550
572
  grid-row: 2/3;
551
573
  grid-column: 1/3;
552
574
  }
553
-
575
+
554
576
  &:nth-child(3) {
555
577
  grid-column: 3/4;
556
578
  grid-row: 1/3;
557
579
  }
558
-
580
+
559
581
  &:nth-child(5) {
560
582
  grid-column: 2/4;
561
583
  }
@@ -580,21 +602,21 @@
580
602
  }
581
603
  }
582
604
  }
583
-
584
605
  }
585
606
 
586
607
  &__illustration-grid {
587
- display:grid;
588
- grid-template-columns:repeat(auto-fill, minmax(260px, 1fr));
589
- gap:var(--gutter);
590
-
591
- & :nth-child(odd):nth-last-child(5) {
592
- grid-column: 1/-1;
593
- }
608
+ display: grid;
609
+ grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
610
+ gap: var(--gutter);
611
+
612
+ & :nth-child(odd):nth-last-child(5) {
613
+ grid-column: 1/-1;
614
+ }
594
615
  }
595
616
 
596
617
  .c-alert ul li {
597
- list-style: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="20" viewBox="0 0 10 20"><circle cx="5" cy="14" r="3.5" fill="%2313AA13" fill-rule="evenodd"/></svg>') outside;
618
+ list-style: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="8" height="20" viewBox="0 0 10 20"><circle cx="5" cy="14" r="3.5" fill="%2313AA13" fill-rule="evenodd"/></svg>')
619
+ outside;
598
620
  margin-left: 1em;
599
621
  padding-left: 0.5rem;
600
622
 
@@ -624,7 +646,7 @@
624
646
  }
625
647
 
626
648
  @media only screen and (min-width: 650px) and (max-width: 700px),
627
- screen and (max-width: 450px) {
649
+ screen and (max-width: 450px) {
628
650
  .c-library__header nav .u-row {
629
651
  @include space('gap', '2xs');
630
652
  @include step(-2);
@@ -634,12 +656,17 @@
634
656
  .c-library__header {
635
657
  @media only screen and (max-width: 650px) {
636
658
  nav a {
637
- @include padding('2xs',0);
659
+ @include padding('2xs', 0);
638
660
  display: block;
639
661
  }
640
662
 
641
663
  .c-library-page-active:after {
642
- @include space('bottom','3xs');
664
+ @include space('bottom', '3xs');
643
665
  }
644
666
  }
645
- }
667
+ }
668
+
669
+ .u-resize {
670
+ overflow: hidden;
671
+ resize: both;
672
+ }
@@ -0,0 +1,18 @@
1
+ @mixin button-wrap {
2
+ display: flex;
3
+ flex-flow: row wrap;
4
+ @include space('gap', '2xs');
5
+
6
+ & > .c-button,
7
+ & > button,
8
+ & > input[type='button'],
9
+ & > input[type='submit'] {
10
+ &:not(:only-child) {
11
+ flex-grow: 1;
12
+ }
13
+ }
14
+ }
15
+
16
+ .o-button-wrap {
17
+ @include button-wrap;
18
+ }
@@ -0,0 +1,3 @@
1
+ .o-clickable-parent {
2
+ @include clickable-parent;
3
+ }
@@ -1,2 +1,4 @@
1
+ @import './button-wrap.scss';
2
+ @import './clickable-parent.scss';
1
3
  @import './prose.scss';
2
4
  @import './grid.scss';
@@ -167,5 +167,6 @@
167
167
  inset: 0;
168
168
  cursor: pointer !important;
169
169
  display: flex;
170
+ z-index: 1;
170
171
  }
171
172
  }
@@ -4,9 +4,8 @@ pagination:
4
4
  size: 1
5
5
  alias: component
6
6
  permalink: "components/full/{{ component.slug }}/"
7
- title: 'Components'
8
- renderData:
9
- title: '{{ component.title }}'
7
+ eleventyComputed:
8
+ title: "{{ component.title }}"
10
9
  ---
11
10
 
12
11
  {% extends "layout.njk" %}
@@ -4,10 +4,9 @@ pagination:
4
4
  size: 1
5
5
  alias: component
6
6
  permalink: "components/{{ component.slug }}/"
7
- title: "Components"
8
7
  sidebar: components
9
- renderData:
10
- title: '{{ component.title }}'
8
+ eleventyComputed:
9
+ title: "{{ component.title }}"
11
10
  ---
12
11
 
13
12
  {% extends "library.njk" %}
@@ -53,7 +52,9 @@ renderData:
53
52
  <button type="button" class="c-library__frame-background">Toggle background</button>
54
53
  <a href="/components/full/{{ component.slug }}" target="_blank">Open fullscreen</a>
55
54
  </div>
56
- <iframe src="/components/full/{{ component.slug }}" sandbox="allow-same-origin allow-scripts allow-forms allow-modals" style="" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" scrolling="yes"></iframe>
55
+ <div class="c-library__frame-wrap" id="iframe-wrap">
56
+ <iframe src="/components/full/{{ component.slug }}" sandbox="allow-same-origin allow-scripts allow-forms allow-modals" style="" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" scrolling="yes"></iframe>
57
+ </div>
57
58
  </div>
58
59
  </div>
59
60
 
package/src/index.njk CHANGED
@@ -1,9 +1,8 @@
1
1
  ---
2
- title: "Welcome"
3
2
  subtitle: Our design system helps us create consistent experiences across our websites and beyond. It also makes the design and development process faster, more efficient and scalable.
4
3
  description: Franklin is Malvern Panalytical's design system for public-facing websites and digital products.
5
4
  layout: system-home-page
6
- renderData:
5
+ eleventyComputed:
7
6
  title: "Welcome to the Franklin design system"
8
7
  ---
9
8
 
@@ -73,90 +72,6 @@ renderData:
73
72
  </div>
74
73
  </div>
75
74
 
76
-
77
-
78
- {# <div class="o-grid o-grid--of-four">
79
- {{ card({
80
- theme: {
81
- layout: 'single',
82
- size: 'large',
83
- border: true
84
- },
85
- header: {
86
- title: 'Quick start'
87
- },
88
- body: {
89
- content: '<p>The basics of how to make a digital product \'feel\' like Malvern Panalytical.</p>'
90
- },
91
- footer: {
92
- cta: {
93
- link: '/quickstart',
94
- label: 'Read the quick start guide'
95
- }
96
- }
97
- }) }}
98
-
99
- {{ card({
100
- theme: {
101
- layout: 'single',
102
- size: 'large',
103
- border: true
104
- },
105
- header: {
106
- title: 'Brand and visual identity'
107
- },
108
- body: {
109
- content: '<p>Colors, fonts, logos; it\'s all here.</p>'
110
- },
111
- footer: {
112
- cta: {
113
- link: '/brand/',
114
- label: 'Read brand guidelines'
115
- }
116
- }
117
- }) }}
118
-
119
- {{ card({
120
- theme: {
121
- layout: 'single',
122
- size: 'large',
123
- border: true
124
- },
125
- header: {
126
- title: 'Tone of voice'
127
- },
128
- body: {
129
- content: '<p>Guidelines to help us make our writing clearer, simpler and more inspiring.</p>'
130
- },
131
- footer: {
132
- cta: {
133
- link: '/content/',
134
- label: 'Read tone of voice guidelines'
135
- }
136
- }
137
- }) }}
138
-
139
- {{ card({
140
- theme: {
141
- layout: 'single',
142
- size: 'large',
143
- border: true
144
- },
145
- header: {
146
- title: 'Component library'
147
- },
148
- body: {
149
- content: '<p>Styles and reusable building blocks of the system.</p>'
150
- },
151
- footer: {
152
- cta: {
153
- link: '/components/',
154
- label: 'Browse components'
155
- }
156
- }
157
- }) }}
158
- </div> #}
159
-
160
75
  {% set content %}
161
76
 
162
77
  ## What is Franklin?
@@ -10,6 +10,8 @@ tagTitle: Events hub
10
10
  {% from "components/product-signpost/macro.njk" import productSignpost %}
11
11
  {% from "components/signpost/macro.njk" import signpost %}
12
12
  {% from "components/twi/macro.njk" import twi %}
13
+ {% from "components/twi/macro.njk" import twi %}
14
+ {% from "components/event-card/macro.njk" import eventCardNew %}
13
15
 
14
16
  {% set siteNav %}{% include "navigation/corporate.njk" %}{% endset %}
15
17
 
@@ -110,12 +112,10 @@ tagTitle: Events hub
110
112
  <h2 class="c-h c-h--step-5">This week</h2>
111
113
  </header>
112
114
 
113
- {{ card({
114
- theme: {
115
- layout: 'multi c-card--layout-multi-40-60',
116
- name: 'featured',
117
- switch: false
118
- },
115
+ {{ eventCardNew({
116
+ type: 'event',
117
+ theme: 'dark',
118
+ layout: 'switch',
119
119
  image: {
120
120
  src: 'https://p3.aprimocdn.net/malvernpanalytical/346cf3ca-b1a0-4725-8ba4-adea00c33589/shutterstock_1099481945_Original%20file.jpg?quality=60&width=810',
121
121
  alt: 'Alt'
@@ -124,10 +124,11 @@ tagTitle: Events hub
124
124
  title: 'Does your nasal spray have the right droplet size?',
125
125
  meta: ['English'],
126
126
  date: {
127
- date: '2021-02-09' | createDate,
128
- time: '11:00 – 1200',
127
+ date: '2024-08-09' | createDate,
128
+ time: '11:00 – 12:00',
129
129
  timezone: 'EST'
130
- }
130
+ },
131
+ location: 'Virtual'
131
132
  },
132
133
  body: {
133
134
  keySpecs: [