@swisspost/design-system-styles 6.5.1 → 6.6.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.
@@ -16,6 +16,7 @@
16
16
  }
17
17
  }
18
18
 
19
+ //deprecated
19
20
  // px-gutters class is used to manipulate border collapse in product-cards
20
21
  .row.px-gutters {
21
22
  margin-right: -(commons.$border-width);
@@ -48,6 +49,7 @@
48
49
  }
49
50
  }
50
51
 
52
+ //deprecated
51
53
  .vertical-gutters {
52
54
  margin-bottom: -(portal-variables.$grid-gutter-width-rg);
53
55
 
@@ -58,6 +60,7 @@
58
60
  }
59
61
  }
60
62
 
63
+ //deprecated
61
64
  @each $breakpoint in grid.$grid-breakpoints-list {
62
65
  .container-fluid-#{$breakpoint} {
63
66
  @include media-breakpoint-only($breakpoint) {
@@ -67,12 +70,14 @@
67
70
  }
68
71
  }
69
72
 
73
+ //deprecated
70
74
  .container-reset-right-rg-up {
71
75
  @include media-breakpoint-up(rg) {
72
76
  margin-left: 0;
73
77
  }
74
78
  }
75
79
 
80
+ //deprecated
76
81
  .container-reset-left-rg-up {
77
82
  @include media-breakpoint-up(rg) {
78
83
  margin-right: 0;
@@ -0,0 +1,16 @@
1
+ @use './../mixins/color' as color-mx;
2
+ @use './../functions/contrast';
3
+ @use './../variables/color';
4
+
5
+ @mixin background-color() {
6
+ // make light gray the default accordion color
7
+ @include color-mx.colored-background(color.$gray-background);
8
+
9
+ // make the accordion white on any background other than white
10
+ @each $name, $color in color.$background-colors {
11
+ .bg-#{$name} & {
12
+ $accordion-bg: if($color == color.$white, color.$gray-background, color.$white);
13
+ @include color-mx.colored-background($accordion-bg);
14
+ }
15
+ }
16
+ }
@@ -27,12 +27,26 @@
27
27
  background-position: calc(100% - #{form-validation.$form-feedback-icon-offset}) center;
28
28
  }
29
29
 
30
- @mixin form-control-rg {
30
+ @mixin form-rg {
31
31
  padding: forms.$input-padding-y-rg forms.$input-padding-x-rg;
32
32
  font-size: type.$font-size-regular;
33
33
  line-height: forms.$input-line-height-rg;
34
34
  }
35
35
 
36
+ @mixin form-sm {
37
+ font-size: type.$font-size-14;
38
+ line-height: forms.$input-line-height-sm;
39
+ min-height: forms.$input-height-sm;
40
+ padding-block: forms.$input-padding-y-sm;
41
+ padding-inline: forms.$input-padding-x-sm;
42
+ }
43
+
44
+ @mixin form-lg {
45
+ font-size: type.$font-size-16;
46
+ line-height: forms.$input-line-height-lg;
47
+ min-height: forms.$input-height-lg;
48
+ }
49
+
36
50
  @mixin focus-outline {
37
51
  outline: none;
38
52
  outline-offset: forms.$input-focus-outline-thickness;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swisspost/design-system-styles",
3
- "version": "6.5.1",
3
+ "version": "6.6.1",
4
4
  "description": "Design System Styles for the Swiss Post web platform.",
5
5
  "author": "Swiss Post <oss@post.ch>",
6
6
  "license": "Apache-2.0",
@@ -33,27 +33,26 @@
33
33
  "bootstrap": "5.3.2"
34
34
  },
35
35
  "devDependencies": {
36
- "@swisspost/design-system-icons": "1.0.17",
37
- "@types/node": "18.19.5",
38
- "autoprefixer": "10.4.16",
36
+ "@swisspost/design-system-icons": "1.2.0",
37
+ "@types/node": "18.19.14",
38
+ "autoprefixer": "10.4.17",
39
39
  "copyfiles": "2.4.1",
40
40
  "glob": "10.3.10",
41
41
  "gulp": "4.0.2",
42
42
  "gulp-newer": "^1.4.0",
43
- "gulp-postcss": "9.0.1",
43
+ "gulp-postcss": "9.1.0",
44
44
  "gulp-sass": "5.1.0",
45
45
  "jest": "29.7.0",
46
- "npm-run-all": "4.1.5",
46
+ "npm-run-all2": "5.0.2",
47
47
  "postcss": "8.4.33",
48
48
  "postcss-scss": "4.0.9",
49
- "prettier": "3.1.1",
49
+ "prettier": "3.2.5",
50
50
  "rimraf": "5.0.5",
51
- "sass": "1.69.7",
52
- "stylelint": "15.11.0",
53
- "stylelint-config-prettier": "9.0.5",
54
- "stylelint-config-sass-guidelines": "10.0.0",
55
- "stylelint-prettier": "4.1.0",
56
- "stylelint-scss": "5.3.2",
51
+ "sass": "1.70.0",
52
+ "stylelint": "16.2.1",
53
+ "stylelint-config-sass-guidelines": "11.0.0",
54
+ "stylelint-prettier": "5.0.0",
55
+ "stylelint-scss": "6.1.0",
57
56
  "typescript": "4.9.5"
58
57
  },
59
58
  "sass": {
@@ -62,6 +61,17 @@
62
61
  ],
63
62
  "outputDir": "./dist"
64
63
  },
64
+ "keywords": [
65
+ "scss",
66
+ "components",
67
+ "web-components",
68
+ "collections",
69
+ "patterns",
70
+ "library",
71
+ "design-system",
72
+ "ui",
73
+ "frontend"
74
+ ],
65
75
  "scripts": {
66
76
  "start": "gulp watch",
67
77
  "build": "pnpm clean && gulp build",
@@ -41,6 +41,7 @@ $font-size-40: sizing.px-to-rem(40px);
41
41
  $font-size-48: sizing.px-to-rem(48px);
42
42
  $font-size-56: sizing.px-to-rem(56px);
43
43
 
44
+ $line-height-sm: 1;
44
45
  $line-height-copy: 1.5;
45
46
  $line-height-heading: 1.2;
46
47
 
@@ -14,7 +14,10 @@ $badge-height: button.$btn-height-rg;
14
14
  $badge-gap: spacing.$size-mini;
15
15
  $badge-border-color: var(--post-gray-60);
16
16
  $badge-border-width: commons.$border-thick;
17
- $badge-transition: color 250ms, background-color 250ms, border-color 250ms;
17
+ $badge-transition:
18
+ color 250ms,
19
+ background-color 250ms,
20
+ border-color 250ms;
18
21
  $badge-hover-color: color.$black;
19
22
  $badge-hover-bg-color: color.$gray-10;
20
23
  $badge-active-color: color.$black;
@@ -1,3 +1,4 @@
1
+ @use 'sass:string';
1
2
  @use './../color';
2
3
  @use './../commons';
3
4
 
@@ -16,6 +17,6 @@ $breadcrumb-divider-color: color.$gray-60 !default;
16
17
  $breadcrumb-link-color: color.$gray-60 !default;
17
18
  $breadcrumb-hover-color: color.$black !default;
18
19
  $breadcrumb-active-color: color.$gray-60 !default;
19
- $breadcrumb-divider: quote('/') !default;
20
+ $breadcrumb-divider: string.quote('/') !default;
20
21
 
21
22
  $breadcrumb-border-radius: commons.$border-radius !default;
@@ -19,7 +19,7 @@ $input-btn-padding-x: spacing.$size-small-large - $input-btn-border-width-rem !d
19
19
  $input-btn-line-height: type.$line-height-copy !default;
20
20
 
21
21
  $input-btn-padding-y-sm: spacing.$size-mini - $input-btn-border-width-rem !default;
22
- $input-btn-padding-x-sm: spacing.$size-regular - $input-btn-border-width-rem !default;
22
+ $input-btn-padding-x-sm: spacing.$size-small-regular !default;
23
23
  $input-btn-line-height-sm: type.$line-height-copy !default;
24
24
 
25
25
  $input-btn-padding-y-rg: spacing.$size-small-regular - $input-btn-border-width-rem !default;
@@ -74,7 +74,8 @@ $form-check-feedback-margin-top: spacing.$size-small-regular !default;
74
74
  $form-switch-padding-start: 0 !default;
75
75
  $form-switch-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 32'><circle r='15' stroke='#{$form-switch-border-color}' stroke-width='2' fill='#{$form-switch-color}'/></svg>") !default;
76
76
  $form-switch-border-radius: $form-switch-width !default;
77
- $form-switch-transition: background-position animation.$transition-base-timing,
77
+ $form-switch-transition:
78
+ background-position animation.$transition-base-timing,
78
79
  background-color animation.$transition-time-default !default;
79
80
  $form-switch-checked-color: color.$white !default;
80
81
  $form-switch-checked-bg-image: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 32'><circle r='15' stroke='#{$form-switch-checked-border-color}' stroke-width='2' fill='#{$form-switch-checked-color}'/></svg>") !default;
@@ -7,8 +7,6 @@ $form-select-disabled-color: forms.$input-disabled-color;
7
7
  $form-select-disabled-bg: forms.$input-disabled-bg;
8
8
  $form-select-disabled-border-color: forms.$input-disabled-border-color;
9
9
  $form-select-indicator-color: color.$black;
10
- $form-select-bg-size: 32px 32px !default;
11
- $form-select-bg-size-sm: 24px 24px !default;
12
10
  $_form-select-indicator-icon: icons.get-colored-svg-url('2113', $form-select-indicator-color);
13
11
  $form-select-indicator: url($_form-select-indicator-icon) !default;
14
12
  $form-select-indicator-disabled: url(icons.get-colored-svg-url(
@@ -25,5 +25,7 @@ $form-feedback-custom-color: color.$success !default;
25
25
  $form-feedback-custom-bg: color.$success !default;
26
26
  $form-feedback-invalid-box-shadow: 0 0 0 forms.$input-focus-width
27
27
  rgba($form-feedback-invalid-color, 0.25) !default;
28
+ $form-feedback-valid-box-shadow: 0 0 0 forms.$input-focus-width
29
+ rgba($form-feedback-valid-color, 0.25) !default;
28
30
  $form-feedback-custom-text: color.$white !default;
29
31
  $form-feedback-custom-box-shadow: 0 0 0 0.2rem rgba($form-feedback-custom-color, 0.25) !default;
@@ -12,6 +12,9 @@
12
12
 
13
13
  // Forms
14
14
 
15
+ $form-bg-size: 32px !default;
16
+ $form-bg-size-sm: 24px !default;
17
+
15
18
  $form-label-margin-bottom: 0.5rem !default;
16
19
  $form-label-color: var(--post-contrast-color) !default;
17
20
 
@@ -21,13 +24,13 @@ $input-line-height: type.$line-height-copy !default;
21
24
 
22
25
  $input-padding-y-sm: button.$input-btn-padding-y-sm !default;
23
26
  $input-padding-x-sm: button.$input-btn-padding-x-sm !default;
24
- $input-line-height-sm: type.$line-height-copy !default;
27
+ $input-line-height-sm: type.$line-height-sm !default;
25
28
 
26
29
  $input-padding-y-rg: button.$input-btn-padding-y-rg !default;
27
30
  $input-padding-x-rg: button.$input-btn-padding-x-rg !default;
28
31
  $input-line-height-rg: type.$line-height-copy !default;
29
32
 
30
- $input-padding-y-lg: spacing.$size-small-large !default;
33
+ $input-padding-y-lg: sizing.px-to-rem(11) !default;
31
34
  $input-padding-x-lg: button.$input-btn-padding-x-lg !default;
32
35
  $input-line-height-lg: type.$line-height-copy !default;
33
36
 
@@ -60,26 +63,25 @@ $input-height-border: $input-border-width * 2 !default;
60
63
 
61
64
  $input-height-content: type.$font-size-base * $input-line-height !default;
62
65
  $input-height-inner: $input-height-content + ($input-padding-y * 2) !default;
63
- $input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
66
+ $input-height: $input-height-inner + sizing.px-to-rem($input-height-border) !default;
64
67
 
65
- $input-height-content-sm: type.$font-size-tiny * $input-line-height-sm !default;
66
- $input-height-inner-sm: $input-height-content-sm + ($input-padding-y-sm * 2) !default;
67
- $input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;
68
+ $input-height-content-sm: type.$font-size-14 * 1 !default;
69
+ $input-height-inner-sm: $input-height-content-sm + ($input-padding-y-sm * 2) + sizing.px-to-rem(2) !default; // + 2px approximation from Figma mockup
70
+ $input-height-sm: $input-height-inner-sm + sizing.px-to-rem($input-height-border) !default;
68
71
 
69
- $form-floating-input-height-content-sm: type.$font-size-12 * $input-line-height-sm * 2 !default;
72
+ $form-floating-input-height-content-sm: type.$font-size-14 * 1 !default;
70
73
  $form-floating-input-height-inner-sm: $form-floating-input-height-content-sm +
71
- ($input-padding-y-sm * 2) !default;
72
- $form-floating-input-height-sm: calc(
73
- #{$form-floating-input-height-inner-sm} + #{$input-height-border}
74
- ) !default;
74
+ (spacing.$size-regular * 2) - sizing.px-to-rem(2) !default; // - 2px approximation from Figma mockup
75
+ $form-floating-input-height-sm: $form-floating-input-height-inner-sm +
76
+ sizing.px-to-rem($input-height-border) !default;
75
77
 
76
78
  $input-height-content-rg: type.$font-size-regular * $input-line-height-rg !default;
77
79
  $input-height-inner-rg: $input-height-content-rg + ($input-padding-y-rg * 2) !default;
78
80
  $input-height-rg: calc(#{$input-height-inner-rg} + #{$input-height-border}) !default;
79
81
 
80
- $input-height-content-lg: type.$font-size-medium * $input-line-height-lg !default;
81
- $input-height-inner-lg: $input-height-content-lg + ($input-padding-y-lg * 2) !default; // Design System
82
- $input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;
82
+ $input-height-content-lg: (type.$font-size-16 * $input-line-height-lg) - sizing.px-to-rem(2) !default; // - 2px and remove approximation in Figma
83
+ $input-height-inner-lg: $input-height-content-lg + ($input-padding-y-lg * 2) !default;
84
+ $input-height-lg: $input-height-inner-lg + sizing.px-to-rem($input-height-border) !default;
83
85
 
84
86
  $input-transition:
85
87
  border-color 0.15s ease-in-out,
@@ -116,14 +118,14 @@ $form-range-input-height-ie: 6rem !default;
116
118
 
117
119
  $form-file-button-hover-bg: $input-bg;
118
120
 
119
- $form-floating-height: $input-height-lg;
121
+ $form-floating-height: $input-height-lg * $input-line-height-lg;
120
122
  $form-floating-padding-x: $input-padding-x-lg;
121
123
  $form-floating-padding-y: $input-padding-y-lg;
122
124
  $form-floating-line-height: type.$line-height-copy;
123
125
  $form-floating-input-padding-t: spacing.$size-large;
124
126
  $form-floating-input-padding-b: 0;
125
127
  $form-floating-label-opacity: 1;
126
- $form-floating-label-height: $input-height-inner-lg;
128
+ $form-floating-label-height: $form-floating-height;
127
129
  $form-floating-label-color: $input-placeholder-color;
128
130
  $form-floating-label-font-size: type.$font-size-bigger-regular;
129
131
  $form-floating-label-font-size-small: type.$font-size-tiny;
@@ -132,10 +134,8 @@ $form-floating-label-scale: math.div(
132
134
  $form-floating-label-font-size
133
135
  );
134
136
  $form-floating-label-upscale: math.div(1, $form-floating-label-scale);
135
- $form-floating-label-padding-t: calc(
136
- #{$input-border-width} + #{$form-floating-label-height * 0.5} - #{$form-floating-label-font-size *
137
- type.$line-height-copy * 0.5}
138
- );
137
+ $form-floating-label-padding-t: $form-floating-label-height * 0.5 - $form-floating-label-font-size *
138
+ type.$line-height-copy * 0.5;
139
139
  $form-floating-label-translate-x: $form-floating-padding-x * (1 - $form-floating-label-scale);
140
140
  $form-floating-label-transform: scale($form-floating-label-scale);
141
141
  $form-floating-transition: animation.$transition-base;
@@ -148,10 +148,9 @@ $form-floating-transition-out:
148
148
  $form-floating-select-bg-size: 32px 32px;
149
149
 
150
150
  $form-floating-label-font-size-sm: type.$font-size-12;
151
- $form-floating-label-font-size-placeholder-sm: type.$font-size-14; // TODO: replace with input font-size after adjustment
152
- $form-floating-padding-x-sm: $input-padding-x-sm;
151
+ $form-floating-label-font-size-placeholder-sm: type.$font-size-14;
152
+ $form-floating-padding-x-sm: spacing.$size-regular;
153
153
  $form-floating-padding-y-sm: $input-padding-y-sm;
154
- $form-floating-label-height-sm: $form-floating-input-height-inner-sm;
155
- $form-floating-label-padding-t-sm: calc(
156
- #{$input-border-width} + #{$form-floating-label-height-sm * 0.5} - #{$form-floating-label-font-size-sm}
157
- );
154
+ $form-floating-label-height-sm: $form-floating-input-height-sm;
155
+ $form-floating-label-padding-t-sm: $form-floating-label-height-sm * 0.5 -
156
+ $form-floating-label-font-size-sm;
@@ -1,3 +1,4 @@
1
+ @use 'sass:color' as sass-color;
1
2
  @use './../color';
2
3
  @use './../commons';
3
4
  @use './../type';
@@ -10,7 +11,9 @@ $nav-link-font-size: null !default;
10
11
  $nav-link-font-weight: null !default;
11
12
  $nav-link-color: color.$gray-60 !default;
12
13
  $nav-link-hover-color: color.$black !default;
13
- $nav-link-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out,
14
+ $nav-link-transition:
15
+ color 0.15s ease-in-out,
16
+ background-color 0.15s ease-in-out,
14
17
  border-color 0.15s ease-in-out !default;
15
18
  $nav-link-disabled-color: color.$gray-20 !default;
16
19
 
@@ -29,11 +32,13 @@ $nav-pills-link-active-bg: color.$gray-80 !default;
29
32
  // Design System custom variables
30
33
  $nav-link-padding: spacing.$spacer !default;
31
34
 
32
- $nav-tabs-link-hover-bg: lighten(color.$gray-10, 5%) !default;
35
+ $nav-tabs-link-hover-bg: sass-color.adjust(color.$gray-10, $lightness: 5%) !default;
33
36
  $nav-tabs-link-text-color: color.$gray-60 !default;
34
37
  $nav-tabs-link-active-font-weight: bold !default;
35
38
 
36
- $nav-tabs-focus-box-shadow: 0 0 0 1px color.$white, 0 0 0 2px color.$gray-80 !default;
39
+ $nav-tabs-focus-box-shadow:
40
+ 0 0 0 1px color.$white,
41
+ 0 0 0 2px color.$gray-80 !default;
37
42
  $nav-tabs-focus-box-shadow-width: 2px !default;
38
43
 
39
44
  $nav-tabs-i-border-color: rgba(var(--post-contrast-color-inverted-rgb), 0.4) !default;
@@ -1,3 +1,5 @@
1
+ @use 'sass:map';
2
+ @use 'sass:list';
1
3
  @use './../color';
2
4
  @use './../commons';
3
5
  @use './../spacing';
@@ -14,7 +16,7 @@ $notification-heading-font-weight: type.$headings-font-weight !default;
14
16
  $notification-buttons-gap: spacing.$size-mini !default;
15
17
 
16
18
  $notification-padding-x-map: () !default;
17
- $notification-padding-x-map: map-merge(
19
+ $notification-padding-x-map: map.merge(
18
20
  $notification-padding-x-map,
19
21
  (
20
22
  'alert': spacing.$size-small-large,
@@ -23,7 +25,7 @@ $notification-padding-x-map: map-merge(
23
25
  );
24
26
 
25
27
  $notification-padding-y-map: () !default;
26
- $notification-padding-y-map: map-merge(
28
+ $notification-padding-y-map: map.merge(
27
29
  $notification-padding-y-map,
28
30
  (
29
31
  'alert': spacing.$size-regular,
@@ -32,7 +34,7 @@ $notification-padding-y-map: map-merge(
32
34
  );
33
35
 
34
36
  $notification-font-size-map: () !default;
35
- $notification-font-size-map: map-merge(
37
+ $notification-font-size-map: map.merge(
36
38
  $notification-font-size-map,
37
39
  (
38
40
  'alert': type.$font-size-base,
@@ -41,7 +43,7 @@ $notification-font-size-map: map-merge(
41
43
  );
42
44
 
43
45
  $notification-heading-font-size-map: () !default;
44
- $notification-heading-font-size-map: map-merge(
46
+ $notification-heading-font-size-map: map.merge(
45
47
  $notification-heading-font-size-map,
46
48
  (
47
49
  'alert': type.$font-size-bigger-regular,
@@ -50,7 +52,7 @@ $notification-heading-font-size-map: map-merge(
50
52
  );
51
53
 
52
54
  $notification-hr-margin-block-map: () !default;
53
- $notification-hr-margin-block-map: map-merge(
55
+ $notification-hr-margin-block-map: map.merge(
54
56
  $notification-hr-margin-block-map,
55
57
  (
56
58
  'alert': spacing.$size-mini spacing.$size-small-regular,
@@ -59,7 +61,7 @@ $notification-hr-margin-block-map: map-merge(
59
61
  );
60
62
 
61
63
  $notification-icon-size-map: () !default;
62
- $notification-icon-size-map: map-merge(
64
+ $notification-icon-size-map: map.merge(
63
65
  $notification-icon-size-map,
64
66
  (
65
67
  'alert': spacing.$size-small-huge,
@@ -68,7 +70,7 @@ $notification-icon-size-map: map-merge(
68
70
  );
69
71
 
70
72
  $notification-variants: () !default;
71
- $notification-variants: join(
73
+ $notification-variants: list.join(
72
74
  $notification-variants,
73
75
  (
74
76
  'primary' color.$gray-80 3134,
@@ -1,3 +1,4 @@
1
+ @use 'sass:color' as sass-color;
1
2
  @use './../color';
2
3
  @use './../commons';
3
4
  @use './../spacing';
@@ -29,7 +30,7 @@ $table-head-color: color.$gray-40 !default;
29
30
  $table-dark-bg: color.$gray-80 !default;
30
31
  $table-dark-accent-bg: rgba(color.$white, 0.05) !default;
31
32
  $table-dark-hover-bg: rgba(color.$white, 0.075) !default;
32
- $table-dark-border-color: lighten(color.$gray-80, 7.5%) !default;
33
+ $table-dark-border-color: sass-color.adjust(color.$gray-80, $lightness: 7.5%) !default;
33
34
  $table-dark-color: color.$black !default;
34
35
 
35
36
  $table-striped-order: odd !default;