@sbb-esta/lyne-elements 2.2.0 → 2.3.0

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.
Files changed (184) hide show
  1. package/accordion.js +6 -6
  2. package/alert/alert-group.js +4 -4
  3. package/alert/alert.js +9 -9
  4. package/autocomplete-grid/autocomplete-grid-button.js +4 -4
  5. package/autocomplete-grid/autocomplete-grid-optgroup.js +4 -4
  6. package/autocomplete-grid/autocomplete-grid-row.js +4 -4
  7. package/autocomplete.js +1 -1
  8. package/badge.css +31 -0
  9. package/breadcrumb/breadcrumb-group.js +4 -4
  10. package/breadcrumb/breadcrumb.js +19 -19
  11. package/button/accent-button-link.js +9 -9
  12. package/button/accent-button-static.js +6 -6
  13. package/button/accent-button.js +6 -6
  14. package/button/button-link.js +7 -7
  15. package/button/button-static.js +7 -7
  16. package/button/button.js +8 -8
  17. package/button/common.js +1 -1
  18. package/button/mini-button-group.js +8 -8
  19. package/button/secondary-button-link.js +7 -7
  20. package/button/secondary-button-static.js +7 -7
  21. package/button/secondary-button.js +3 -3
  22. package/button/transparent-button-link.js +6 -6
  23. package/button/transparent-button-static.js +5 -5
  24. package/button/transparent-button.js +6 -6
  25. package/calendar.js +1 -1
  26. package/card/card-badge.js +9 -9
  27. package/card/card-button.js +5 -5
  28. package/card/card-link.js +7 -7
  29. package/card/card.js +1 -1
  30. package/checkbox/checkbox-panel.js +16 -16
  31. package/checkbox/checkbox.js +15 -15
  32. package/checkbox/common.js +3 -3
  33. package/clock.js +8 -8
  34. package/container/container.js +4 -4
  35. package/core/base-elements.js +10 -10
  36. package/core/controllers.js +4 -4
  37. package/core/datetime.js +6 -6
  38. package/core/eventing.js +4 -4
  39. package/core/i18n/i18n.d.ts +2 -0
  40. package/core/i18n/i18n.d.ts.map +1 -1
  41. package/core/i18n.js +43 -31
  42. package/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  43. package/core/mixins/form-associated-mixin.d.ts +3 -0
  44. package/core/mixins/form-associated-mixin.d.ts.map +1 -1
  45. package/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  46. package/core/mixins.js +342 -248
  47. package/core/styles/badge.scss +3 -0
  48. package/core/styles/mixins/badge.scss +26 -1
  49. package/core/styles/mixins/font-face.scss +12 -12
  50. package/core/styles/mixins/link.scss +32 -8
  51. package/core/styles/standard-theme.scss +1 -0
  52. package/core/testing.js +14 -14
  53. package/core.css +3 -3
  54. package/custom-elements.json +7323 -169
  55. package/datepicker/datepicker-toggle.js +14 -14
  56. package/development/alert/alert-group.js +1 -1
  57. package/development/alert/alert.js +1 -1
  58. package/development/autocomplete.js +1 -1
  59. package/development/breadcrumb/breadcrumb.js +5 -2
  60. package/development/button/common.js +18 -14
  61. package/development/calendar.js +1 -1
  62. package/development/card/card.js +1 -1
  63. package/development/checkbox/checkbox-panel.js +1 -1
  64. package/development/core/i18n/i18n.d.ts +2 -0
  65. package/development/core/i18n/i18n.d.ts.map +1 -1
  66. package/development/core/i18n.js +15 -1
  67. package/development/core/mixins/form-associated-checkbox-mixin.d.ts.map +1 -1
  68. package/development/core/mixins/form-associated-mixin.d.ts +3 -0
  69. package/development/core/mixins/form-associated-mixin.d.ts.map +1 -1
  70. package/development/core/mixins/form-associated-radio-button-mixin.d.ts.map +1 -1
  71. package/development/core/mixins.js +159 -22
  72. package/development/datepicker/datepicker-toggle.js +1 -1
  73. package/development/dialog/dialog-title.js +1 -1
  74. package/development/expansion-panel/expansion-panel-header.js +1 -1
  75. package/development/expansion-panel/expansion-panel.js +1 -1
  76. package/development/file-selector/common.js +1 -1
  77. package/development/footer.js +1 -1
  78. package/development/form-field/form-field/form-field.d.ts.map +1 -1
  79. package/development/form-field/form-field.js +5 -2
  80. package/development/image.js +1 -1
  81. package/development/journey-header.js +1 -1
  82. package/development/link/common.js +19 -7
  83. package/development/link-list/common.js +1 -1
  84. package/development/map-container.js +1 -1
  85. package/development/menu/common/menu-action-common.d.ts +3 -0
  86. package/development/menu/common/menu-action-common.d.ts.map +1 -1
  87. package/development/menu/common.js +35 -12
  88. package/development/navigation/navigation-section.js +1 -1
  89. package/development/notification.js +1 -1
  90. package/development/overlay.js +1 -1
  91. package/development/radio-button/radio-button-panel.js +1 -1
  92. package/development/select/select.d.ts +4 -1
  93. package/development/select/select.d.ts.map +1 -1
  94. package/development/select.js +22 -4
  95. package/development/skiplink-list.js +1 -1
  96. package/development/slider.js +1 -1
  97. package/development/tabs/tab-label.js +1 -1
  98. package/development/timetable-occupancy.js +1 -1
  99. package/development/toast.js +1 -1
  100. package/development/toggle/toggle/toggle.d.ts +25 -6
  101. package/development/toggle/toggle/toggle.d.ts.map +1 -1
  102. package/development/toggle/toggle-option/toggle-option.d.ts +2 -6
  103. package/development/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  104. package/development/toggle/toggle-option.js +21 -39
  105. package/development/toggle/toggle.js +57 -39
  106. package/development/train/train-formation.js +1 -1
  107. package/development/train/train.js +1 -1
  108. package/development/visual-checkbox.js +1 -1
  109. package/dialog/dialog-content.js +3 -3
  110. package/dialog/dialog-title.js +8 -8
  111. package/divider.js +12 -12
  112. package/expansion-panel/expansion-panel-header.js +1 -1
  113. package/expansion-panel/expansion-panel.js +1 -1
  114. package/file-selector/common.js +9 -9
  115. package/file-selector/file-selector-dropzone.js +5 -5
  116. package/file-selector/file-selector.js +6 -6
  117. package/flip-card/flip-card-details.js +4 -4
  118. package/flip-card/flip-card-summary.js +9 -9
  119. package/font-characters-extension.css +3 -3
  120. package/footer.js +4 -4
  121. package/form-field/form-field/form-field.d.ts.map +1 -1
  122. package/form-field/form-field.js +7 -5
  123. package/header/header-button.js +5 -5
  124. package/header/header-link.js +5 -5
  125. package/icon.js +36 -36
  126. package/image.js +1 -1
  127. package/journey-header.js +5 -5
  128. package/link/block-link-button.js +4 -4
  129. package/link/block-link-static.js +9 -9
  130. package/link/block-link.js +4 -4
  131. package/link/common.js +28 -28
  132. package/link/link-button.js +7 -7
  133. package/link/link-static.js +7 -7
  134. package/link/link.js +4 -4
  135. package/link-list/common.js +15 -15
  136. package/loading-indicator-circle.js +11 -11
  137. package/map-container.js +5 -5
  138. package/menu/common/menu-action-common.d.ts +3 -0
  139. package/menu/common/menu-action-common.d.ts.map +1 -1
  140. package/menu/common.js +34 -30
  141. package/menu/menu-button.js +8 -8
  142. package/menu/menu-link.js +6 -6
  143. package/menu/menu.js +7 -7
  144. package/navigation/navigation-button.js +4 -4
  145. package/navigation/navigation-link.js +7 -7
  146. package/navigation/navigation-list.js +4 -4
  147. package/navigation/navigation-marker.js +3 -3
  148. package/navigation/navigation-section.js +1 -1
  149. package/notification.js +18 -18
  150. package/option/optgroup.js +11 -11
  151. package/overlay.js +14 -14
  152. package/package.json +6 -2
  153. package/paginator/common.js +6 -6
  154. package/popover/popover.js +13 -13
  155. package/radio-button/radio-button-panel.js +6 -6
  156. package/screen-reader-only.js +5 -5
  157. package/select/select.d.ts +4 -1
  158. package/select/select.d.ts.map +1 -1
  159. package/select.js +35 -28
  160. package/skiplink-list.js +3 -3
  161. package/slider.js +13 -13
  162. package/standard-theme.css +35 -3
  163. package/status.js +3 -3
  164. package/stepper/step-label.js +4 -4
  165. package/table/table-wrapper.js +4 -4
  166. package/tabs/tab-group.js +24 -24
  167. package/tabs/tab-label.js +1 -1
  168. package/tabs/tab.js +4 -4
  169. package/tag/tag-group.js +7 -7
  170. package/teaser-product/common.js +5 -5
  171. package/teaser-product/teaser-product-static.js +2 -2
  172. package/timetable-occupancy-icon.js +3 -3
  173. package/timetable-occupancy.js +6 -6
  174. package/toast.js +5 -5
  175. package/toggle/toggle/toggle.d.ts +25 -6
  176. package/toggle/toggle/toggle.d.ts.map +1 -1
  177. package/toggle/toggle-option/toggle-option.d.ts +2 -6
  178. package/toggle/toggle-option/toggle-option.d.ts.map +1 -1
  179. package/toggle/toggle-option.js +44 -52
  180. package/toggle/toggle.js +103 -83
  181. package/toggle-check.js +5 -5
  182. package/train/train-formation.js +1 -1
  183. package/train/train.js +29 -29
  184. package/visual-checkbox.js +1 -1
@@ -0,0 +1,3 @@
1
+ @use './mixins/badge';
2
+
3
+ @include badge.badge-attribute;
@@ -10,5 +10,30 @@
10
10
  border-radius: var(--sbb-border-radius-infinity);
11
11
  background-color: var(--sbb-color-red);
12
12
  color: var(--sbb-color-white);
13
- min-width: fit-content;
13
+ min-width: var(--sbb-spacing-fixed-4x);
14
+ max-height: var(--sbb-spacing-fixed-4x);
15
+ }
16
+
17
+ @mixin badge-attribute {
18
+ [sbb-badge] {
19
+ --sbb-badge-position-offset: calc(var(--sbb-spacing-fixed-2x) * -1);
20
+
21
+ position: relative;
22
+
23
+ &::after {
24
+ @include badge;
25
+
26
+ content: attr(sbb-badge);
27
+ position: absolute;
28
+ inset-block-start: var(--sbb-badge-position-offset);
29
+ }
30
+
31
+ &:where([sbb-badge-position='before'])::after {
32
+ inset-inline-start: var(--sbb-badge-position-offset);
33
+ }
34
+
35
+ &:where(:not([sbb-badge-position]), [sbb-badge-position='after'])::after {
36
+ inset-inline-end: var(--sbb-badge-position-offset);
37
+ }
38
+ }
14
39
  }
@@ -2,8 +2,8 @@
2
2
  @font-face {
3
3
  font-family: SBB;
4
4
  src:
5
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Roman.woff2') format('woff2'),
6
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Roman.woff') format('woff');
5
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Roman.woff2') format('woff2'),
6
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Roman.woff') format('woff');
7
7
  font-display: fallback;
8
8
  font-weight: 400;
9
9
  }
@@ -11,8 +11,8 @@
11
11
  @font-face {
12
12
  font-family: SBB;
13
13
  src:
14
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Bold.woff2') format('woff2'),
15
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Bold.woff') format('woff');
14
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Bold.woff2') format('woff2'),
15
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Bold.woff') format('woff');
16
16
  font-display: swap;
17
17
  font-weight: 700;
18
18
  }
@@ -20,8 +20,8 @@
20
20
  @font-face {
21
21
  font-family: SBB;
22
22
  src:
23
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Light.woff2') format('woff2'),
24
- url('https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Light.woff') format('woff');
23
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Light.woff2') format('woff2'),
24
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Light.woff') format('woff');
25
25
  font-display: swap;
26
26
  font-weight: 300;
27
27
  }
@@ -31,8 +31,8 @@
31
31
  @font-face {
32
32
  font-family: SBB;
33
33
  src:
34
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Roman.woff2') format('woff2'),
35
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Roman.woff') format('woff');
34
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Roman.woff2') format('woff2'),
35
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Roman.woff') format('woff');
36
36
  font-display: fallback;
37
37
  font-weight: 400;
38
38
  }
@@ -40,8 +40,8 @@
40
40
  @font-face {
41
41
  font-family: SBB;
42
42
  src:
43
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Bold.woff2') format('woff2'),
44
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Bold.woff') format('woff');
43
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Bold.woff2') format('woff2'),
44
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Bold.woff') format('woff');
45
45
  font-display: swap;
46
46
  font-weight: 700;
47
47
  }
@@ -49,8 +49,8 @@
49
49
  @font-face {
50
50
  font-family: SBB;
51
51
  src:
52
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Light.woff2') format('woff2'),
53
- url('https://cdn.app.sbb.ch/fonts/v1/SBBWeb-Light.woff') format('woff');
52
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Light.woff2') format('woff2'),
53
+ url('https://cdn.app.sbb.ch/fonts/v1_8_1_full/SBBWeb-Light.woff') format('woff');
54
54
  font-display: swap;
55
55
  font-weight: 300;
56
56
  }
@@ -1,30 +1,46 @@
1
1
  @use './typo';
2
2
  @use './a11y';
3
3
  @use '../core/mediaqueries';
4
+ @use '../core/functions';
4
5
 
5
- @mixin block-link-variables {
6
- --sbb-link-color-normal: var(--sbb-color-granite);
6
+ @mixin link-common-variables {
7
7
  --sbb-link-color-hover: var(--sbb-color-red125);
8
8
  --sbb-link-color-active: var(--sbb-color-red150);
9
+ --sbb-link-text-decoration-color: color-mix(in srgb, currentcolor 80%, white);
10
+ --sbb-link-text-decoration-color-hover: currentcolor;
11
+ }
12
+
13
+ @mixin link-common-variables--negative {
14
+ --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
15
+ --sbb-link-text-decoration-color: color-mix(in srgb, currentcolor 80%, black);
16
+ --sbb-link-text-decoration-color-hover: currentcolor;
17
+ }
18
+
19
+ @mixin block-link-variables {
20
+ @include link-common-variables;
21
+
22
+ --sbb-link-color-normal: var(--sbb-color-granite);
9
23
  }
10
24
 
11
25
  @mixin block-link-variables--negative {
26
+ @include link-common-variables--negative;
27
+
12
28
  --sbb-link-color-normal: var(--sbb-color-white);
13
29
  --sbb-link-color-hover: var(--sbb-color-cloud);
14
30
  --sbb-link-color-active: var(--sbb-color-silver);
15
- --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
16
31
  }
17
32
 
18
33
  @mixin link-variables {
34
+ @include link-common-variables;
35
+
19
36
  --sbb-link-color-normal: inherit;
20
- --sbb-link-color-hover: var(--sbb-color-red125);
21
- --sbb-link-color-active: var(--sbb-color-red150);
22
37
  }
23
38
 
24
39
  @mixin link-variables--negative {
40
+ @include link-common-variables--negative;
41
+
25
42
  --sbb-link-color-hover: var(--sbb-color-graphite);
26
43
  --sbb-link-color-active: var(--sbb-color-metal);
27
- --sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);
28
44
  }
29
45
 
30
46
  @mixin link-variables--button {
@@ -37,7 +53,12 @@
37
53
 
38
54
  @mixin link-base {
39
55
  color: var(--sbb-link-color-normal);
40
- text-decoration: var(--sbb-link-text-decoration, underline);
56
+
57
+ // TODO: rename --sbb-link-text-decoration variable to --sbb-link-text-decoration-line
58
+ text-decoration-line: var(--sbb-link-text-decoration, underline);
59
+ text-decoration-color: var(--sbb-link-text-decoration-color);
60
+ text-decoration-thickness: #{functions.px-to-rem-build(1)};
61
+ text-underline-offset: 0.3125em; // 5px
41
62
  user-select: none;
42
63
 
43
64
  @include a11y.if-forced-colors {
@@ -57,7 +78,10 @@
57
78
  @mixin link-hover-rules {
58
79
  @include mediaqueries.hover-mq($hover: true) {
59
80
  color: var(--sbb-link-color-hover);
60
- text-decoration: var(--sbb-link-hover-text-decoration, underline);
81
+
82
+ // TODO: rename --sbb-link-hover-text-decoration variable to --sbb-link-text-decoration-line-hover
83
+ text-decoration-line: var(--sbb-link-hover-text-decoration, underline);
84
+ text-decoration-color: var(--sbb-link-text-decoration-color-hover);
61
85
  }
62
86
  }
63
87
 
@@ -4,6 +4,7 @@
4
4
  @use './core';
5
5
  @use './typography';
6
6
  @use './a11y';
7
+ @use './badge';
7
8
  @use './animation';
8
9
  @use './image';
9
10
  @use './layout';
package/core/testing.js CHANGED
@@ -27,14 +27,14 @@ class p {
27
27
  return this._promiseEventMap.get(e).promise;
28
28
  {
29
29
  let r, s;
30
- const o = {
30
+ const n = {
31
31
  promise: new Promise((a, l) => {
32
32
  r = a, s = l;
33
33
  }),
34
34
  resolve: r,
35
35
  reject: s
36
36
  };
37
- return this._promiseEventMap.set(e, o), this._wrapPromiseWithTimeout(o, e, i);
37
+ return this._promiseEventMap.set(e, n), this._wrapPromiseWithTimeout(n, e, i);
38
38
  }
39
39
  }
40
40
  _wrapPromiseWithTimeout(e, i, r) {
@@ -62,11 +62,11 @@ function w(t) {
62
62
  async function f(t, e = 30, i = 2 * 1e3) {
63
63
  const r = /* @__PURE__ */ new Date();
64
64
  let s = 0;
65
- function n() {
65
+ function o() {
66
66
  return s++, t();
67
67
  }
68
- for (; !await n() && r.getTime() + i >= (/* @__PURE__ */ new Date()).getTime(); )
69
- await new Promise((o) => setTimeout(o, e));
68
+ for (; !await o() && r.getTime() + i >= (/* @__PURE__ */ new Date()).getTime(); )
69
+ await new Promise((n) => setTimeout(n, e));
70
70
  return r.getTime() + i < (/* @__PURE__ */ new Date()).getTime() ? Promise.reject(`waitForCondition timeout: ${t.toString()}, attempts: ${s}, start: ${r.getTime()}, end: ${(/* @__PURE__ */ new Date()).getTime()}`) : Promise.resolve(!0);
71
71
  }
72
72
  async function _(t, e = 2 * 1e3) {
@@ -74,25 +74,25 @@ async function _(t, e = 2 * 1e3) {
74
74
  const i = t.localName === "sbb-image" ? ((r = t.shadowRoot) == null ? void 0 : r.querySelector(".sbb-image__img")) ?? null : t;
75
75
  if (!i)
76
76
  throw new Error("img tag not found");
77
- t.complete ? await i.decode() : await new Promise((s, n) => {
78
- const o = setTimeout(() => n("image loading timeout"), e);
77
+ t.complete ? await i.decode() : await new Promise((s, o) => {
78
+ const n = setTimeout(() => o("image loading timeout"), e);
79
79
  t.addEventListener("load", () => {
80
- clearTimeout(o), i.decode().then(() => {
80
+ clearTimeout(n), i.decode().then(() => {
81
81
  m && t.localName === "sbb-image" ? setTimeout(s, 100) : s();
82
82
  });
83
83
  }), t.addEventListener("error", () => {
84
- clearTimeout(o), n("image error");
84
+ clearTimeout(n), o("image error");
85
85
  });
86
86
  });
87
87
  }
88
88
  const c = (t) => !!t.updateComplete, u = Promise.resolve(), h = async (t) => {
89
89
  var r, s;
90
90
  const e = await t;
91
- (s = (r = e.parentElement ?? e).querySelectorAll) == null || s.call(r, "[defer-hydration]").forEach((n) => n.removeAttribute("defer-hydration"));
92
- const i = [e, ...e.querySelectorAll("*")].filter(c).map((n) => [
93
- n.updateComplete,
94
- n.hydrationComplete ?? u,
95
- h(n.renderRoot)
91
+ (s = (r = e.parentElement ?? e).querySelectorAll) == null || s.call(r, "[defer-hydration]").forEach((o) => o.removeAttribute("defer-hydration"));
92
+ const i = [e, ...e.querySelectorAll("*")].filter(c).map((o) => [
93
+ o.updateComplete,
94
+ o.hydrationComplete ?? u,
95
+ h(o.renderRoot)
96
96
  ]).flat(1 / 0);
97
97
  return await Promise.all(i), e;
98
98
  };
package/core.css CHANGED
@@ -1128,19 +1128,19 @@
1128
1128
 
1129
1129
  @font-face {
1130
1130
  font-family: SBB;
1131
- src: url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Roman.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Roman.woff") format("woff");
1131
+ src: url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Roman.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Roman.woff") format("woff");
1132
1132
  font-display: fallback;
1133
1133
  font-weight: 400;
1134
1134
  }
1135
1135
  @font-face {
1136
1136
  font-family: SBB;
1137
- src: url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Bold.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Bold.woff") format("woff");
1137
+ src: url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Bold.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Bold.woff") format("woff");
1138
1138
  font-display: swap;
1139
1139
  font-weight: 700;
1140
1140
  }
1141
1141
  @font-face {
1142
1142
  font-family: SBB;
1143
- src: url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Light.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_6_subset/SBBWeb-Light.woff") format("woff");
1143
+ src: url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Light.woff2") format("woff2"), url("https://cdn.app.sbb.ch/fonts/v1_8_1_subset/SBBWeb-Light.woff") format("woff");
1144
1144
  font-display: swap;
1145
1145
  font-weight: 300;
1146
1146
  }