@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779280803 → 5.0.0-next.3-dev.1779281392

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 (116) hide show
  1. package/alert/alert/alert.global.scss +45 -0
  2. package/alert/alert-group/alert-group.global.scss +8 -0
  3. package/badge/badge.global.scss +44 -0
  4. package/breadcrumb/breadcrumb/breadcrumb.global.scss +16 -0
  5. package/breadcrumb/breadcrumb-group/breadcrumb-group.global.scss +26 -0
  6. package/button/common/button-common.global.scss +58 -0
  7. package/button/common/mini-button-common.global.scss +18 -0
  8. package/button/mini-button-group/mini-button-group.global.scss +35 -0
  9. package/calendar/calendar/calendar.global.scss +31 -0
  10. package/calendar/common/calendar-cell-base-element.global.scss +23 -0
  11. package/card/card/card.global.scss +22 -0
  12. package/card/card-badge/card-badge.global.scss +19 -0
  13. package/card/card.library.global.scss +203 -0
  14. package/carousel/carousel/carousel.global.scss +10 -0
  15. package/checkbox/checkbox.global.scss +10 -0
  16. package/checkbox/common/checkbox-common.global.scss +25 -0
  17. package/chip/chip/chip.global.scss +16 -0
  18. package/chip/chip-group/chip-group.global.scss +62 -0
  19. package/chip-label/chip-label.global.scss +11 -0
  20. package/clock/clock.global.scss +9 -0
  21. package/container/container/container.global.scss +21 -0
  22. package/container/sticky-bar/sticky-bar.global.scss +17 -0
  23. package/core/base-elements/selection-group-base-element.global.scss +12 -0
  24. package/core/mixins/panel-common.global.scss +41 -0
  25. package/development/form-field/form-field/form-field.component.js +1 -1
  26. package/development/{form-field.component-w4nlNsj2.js → form-field.component-BzjbIwnz.js} +2 -2
  27. package/development/form-field.js +1 -1
  28. package/development/form-field.pure.js +1 -1
  29. package/dialog/dialog/dialog.global.scss +32 -0
  30. package/dialog/dialog-close-button/dialog-close-button.global.scss +35 -0
  31. package/dialog/dialog-content/dialog-content.global.scss +13 -0
  32. package/dialog/dialog-title/dialog-title.global.scss +13 -0
  33. package/divider/divider.global.scss +9 -0
  34. package/expansion-panel/expansion-panel/expansion-panel.global.scss +21 -0
  35. package/expansion-panel/expansion-panel-content/expansion-panel-content.global.scss +16 -0
  36. package/expansion-panel/expansion-panel-header/expansion-panel-header.global.scss +41 -0
  37. package/file-selector/common/file-selector.global.scss +25 -0
  38. package/flip-card/flip-card/flip-card.global.scss +25 -0
  39. package/flip-card/flip-card-details/flip-card-details.global.scss +7 -0
  40. package/flip-card/flip-card-summary/flip-card-summary.global.scss +17 -0
  41. package/footer/footer.global.scss +17 -0
  42. package/form-field/error/error.global.scss +9 -0
  43. package/form-field/form-field/form-field.component.js +1 -1
  44. package/form-field/form-field/form-field.global.scss +271 -0
  45. package/{form-field.component-DkqZz7aZ.js → form-field.component-BKWzdNHT.js} +1 -1
  46. package/form-field.js +1 -1
  47. package/form-field.pure.js +1 -1
  48. package/header/common/header-action.global.scss +41 -0
  49. package/header/header/header.global.scss +62 -0
  50. package/header/header-environment/header-environment.global.scss +10 -0
  51. package/icon-sidebar/icon-sidebar/icon-sidebar.global.scss +21 -0
  52. package/lead-container/lead-container.global.scss +31 -0
  53. package/link/common/block-link.global.scss +15 -0
  54. package/link/link.library.global.scss +121 -0
  55. package/loading-indicator/loading-indicator.global.scss +10 -0
  56. package/loading-indicator-circle/loading-indicator-circle.global.scss +19 -0
  57. package/logo/logo.global.scss +15 -0
  58. package/map-container/map-container.global.scss +15 -0
  59. package/menu/common/menu-action.global.scss +14 -0
  60. package/menu/menu/menu.global.scss +23 -0
  61. package/message/message.global.scss +20 -0
  62. package/mini-calendar/mini-calendar-day/mini-calendar-day.global.scss +9 -0
  63. package/mini-calendar/mini-calendar-month/mini-calendar-month.global.scss +12 -0
  64. package/navigation/common/navigation-action.global.scss +11 -0
  65. package/navigation/navigation/navigation.global.scss +36 -0
  66. package/navigation/navigation-list/navigation-list.global.scss +10 -0
  67. package/navigation/navigation-marker/navigation-marker.global.scss +17 -0
  68. package/navigation/navigation-section/navigation-section.global.scss +34 -0
  69. package/notification/notification.global.scss +53 -0
  70. package/option/optgroup/optgroup.global.scss +17 -0
  71. package/option/option/option.global.scss +51 -0
  72. package/option/option-hint/option-hint.global.scss +17 -0
  73. package/option/option-panel-common.global.scss +11 -0
  74. package/overlay/overlay.global.scss +13 -0
  75. package/package.json +2 -2
  76. package/paginator/common/paginator-common.global.scss +14 -0
  77. package/paginator/compact-paginator/compact-paginator.global.scss +9 -0
  78. package/paginator/paginator/paginator.global.scss +10 -0
  79. package/popover/popover.global.scss +12 -0
  80. package/radio-button/common/radio-button-common.global.scss +37 -0
  81. package/select/select.global.scss +24 -0
  82. package/selection-action-panel/selection-action-panel.global.scss +19 -0
  83. package/selection-expansion-panel/selection-expansion-panel.global.scss +21 -0
  84. package/sidebar/sidebar/sidebar.global.scss +19 -0
  85. package/sidebar/sidebar-close-button/sidebar-close-button.global.scss +10 -0
  86. package/sidebar/sidebar-container/sidebar-container.global.scss +62 -0
  87. package/signet/signet.global.scss +16 -0
  88. package/slider/slider.global.scss +30 -0
  89. package/status/status.global.scss +10 -0
  90. package/stepper/step-label/step-label.global.scss +43 -0
  91. package/stepper/stepper/stepper.global.scss +10 -0
  92. package/table/table.global.scss +295 -0
  93. package/tabs/common/tab-group-common.global.scss +17 -0
  94. package/tabs/common/tab-label-common.global.scss +38 -0
  95. package/tabs/tab-nav-bar/tab-nav-bar.global.scss +10 -0
  96. package/tag/tag/tag.global.scss +41 -0
  97. package/teaser/teaser.global.scss +24 -0
  98. package/teaser-hero/teaser-hero.global.scss +27 -0
  99. package/teaser-panel/teaser-panel.global.scss +33 -0
  100. package/teaser-product/common/teaser-product-common.global.scss +50 -0
  101. package/time-input/time-input.global.scss +11 -0
  102. package/timetable-form/timetable-form/timetable-form.global.scss +97 -0
  103. package/timetable-form/timetable-form-details/timetable-form-details.global.scss +12 -0
  104. package/timetable-form/timetable-form-field/timetable-form-field.global.scss +10 -0
  105. package/timetable-occupancy/timetable-occupancy.global.scss +10 -0
  106. package/title/title-common.global.scss +7 -0
  107. package/title/title.global.scss +12 -0
  108. package/toast/toast.global.scss +18 -0
  109. package/toggle/toggle/toggle.global.scss +44 -0
  110. package/toggle/toggle-option/toggle-option.global.scss +10 -0
  111. package/toggle-check/toggle-check.global.scss +32 -0
  112. package/tooltip/tooltip.global.scss +20 -0
  113. package/train/train-blocked-passage/train-blocked-passage.global.scss +16 -0
  114. package/train/train-formation/train-formation.global.scss +26 -0
  115. package/train/train-wagon-common.global.scss +42 -0
  116. package/visual-checkbox/visual-checkbox.global.scss +38 -0
@@ -0,0 +1,295 @@
1
+ @use '../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-table-border-color: light-dark(var(--sbb-color-cloud), var(--sbb-color-anthracite));
7
+ --sbb-table-background-color: var(--sbb-background-color-1);
8
+ --sbb-table-row-striped-color: var(--sbb-background-color-3);
9
+ --sbb-table-color: var(--sbb-color-1);
10
+ --sbb-table-caption-color: light-dark(var(--sbb-color-granite), var(--sbb-color-cement));
11
+ --sbb-table-caption-margin-block-start: var(--sbb-spacing-fixed-4x);
12
+ --sbb-table-sticky-shadow-width: 3rem;
13
+ --sbb-table-sticky-shadow-transition-easing: var(--sbb-animation-easing);
14
+ --sbb-table-header-cell-font-size: var(--sbb-text-font-size-xs);
15
+ --sbb-table-data-cell-font-size: #{sbb.theme-pattern-select(
16
+ (
17
+ 'standard': var(--sbb-text-font-size-s),
18
+ 'lean': var(--sbb-text-font-size-xs),
19
+ ),
20
+ $theme
21
+ )};
22
+ --sbb-table-header-padding-block: #{sbb.theme-pattern-select(
23
+ (
24
+ 'standard': var(--sbb-spacing-fixed-3x),
25
+ 'lean': var(--sbb-spacing-fixed-1x),
26
+ ),
27
+ $theme
28
+ )};
29
+ --sbb-table-header-padding-inline: #{sbb.theme-pattern-select(
30
+ (
31
+ 'standard': var(--sbb-spacing-fixed-4x),
32
+ 'lean': var(--sbb-spacing-fixed-2x),
33
+ ),
34
+ $theme
35
+ )};
36
+ --sbb-table-cell-padding-block: #{sbb.theme-pattern-select(
37
+ (
38
+ 'standard': var(--sbb-spacing-responsive-xxxs),
39
+ 'lean': var(--sbb-spacing-fixed-1x),
40
+ ),
41
+ $theme
42
+ )};
43
+ --sbb-table-cell-padding-inline: #{sbb.theme-pattern-select(
44
+ (
45
+ 'standard': var(--sbb-spacing-fixed-4x),
46
+ 'lean': var(--sbb-spacing-fixed-2x),
47
+ ),
48
+ $theme
49
+ )};
50
+ }
51
+
52
+ @mixin rules {
53
+ // Notes:
54
+ // We cannot use `border-collapse` because in sticky variants it gets visually broken.
55
+ // Therefore, we have to build the grid avoiding double borders.
56
+ :is(.sbb-table, .sbb-table-m, .sbb-table-s, .sbb-table-xs) {
57
+ --sbb-table-border: var(--sbb-border-width-1x) solid var(--sbb-table-border-color);
58
+ --sbb-table-sticky-shadow-transition-duration: var(
59
+ --sbb-disable-animation-duration,
60
+ var(--sbb-animation-duration-6x)
61
+ );
62
+
63
+ border-spacing: 0;
64
+ caption-side: bottom;
65
+ color: var(--sbb-table-color);
66
+ table-layout: auto;
67
+ text-align: left;
68
+
69
+ th {
70
+ font-size: var(--sbb-table-header-cell-font-size);
71
+ letter-spacing: var(--sbb-typo-letter-spacing-text);
72
+ font-weight: bold;
73
+ background-color: var(--sbb-table-background-color);
74
+ border-block-end: var(--sbb-table-border);
75
+ border-inline-end: var(--sbb-table-border);
76
+ padding-block: var(--sbb-table-header-padding-block);
77
+ padding-inline: var(--sbb-table-header-padding-inline);
78
+ }
79
+
80
+ td {
81
+ font-size: var(--sbb-table-data-cell-font-size);
82
+ letter-spacing: var(--sbb-typo-letter-spacing-text);
83
+ background-color: var(--sbb-table-background-color);
84
+ border-block-end: var(--sbb-table-border);
85
+ border-inline-end: var(--sbb-table-border);
86
+ padding-block: var(--sbb-table-cell-padding-block);
87
+ padding-inline: var(--sbb-table-cell-padding-inline);
88
+ }
89
+
90
+ :is(th, td) {
91
+ &.sbb-table-group-with-next {
92
+ border-inline-end: none;
93
+ }
94
+
95
+ &:first-child {
96
+ border-inline-start: var(--sbb-table-border);
97
+ }
98
+ }
99
+
100
+ // In Angular the CDK table always adds a thead even if there are no headers.
101
+ // Due to this fact we have to also insert `tr` in the `:has()` selector.
102
+ &:has(thead tr) thead,
103
+ &:not(:has(thead tr)) tbody {
104
+ tr:first-of-type > :is(th, td) {
105
+ border-block-start: var(--sbb-table-border);
106
+ }
107
+ }
108
+
109
+ // Avoid borders between header rows (design specification).
110
+ thead > tr:has(+ tr) > :is(th, td) {
111
+ border-block-end: none;
112
+ }
113
+ }
114
+
115
+ :is(.sbb-table, .sbb-table-m, .sbb-table-s, .sbb-table-xs) caption,
116
+ .sbb-table-caption {
117
+ // Workaround for storybook. It crashes if 'light-dark' is used as a 'var' fallback
118
+ --sbb-table-caption-color-fallback: light-dark(
119
+ var(--sbb-color-granite),
120
+ var(--sbb-color-cement)
121
+ );
122
+
123
+ font-size: var(--sbb-text-font-size-xs);
124
+ letter-spacing: var(--sbb-typo-letter-spacing-text);
125
+
126
+ // Defaults are needed for cases where the caption is used outside a table
127
+ color: var(--sbb-table-caption-color, var(--sbb-table-caption-color-fallback));
128
+ margin-block-start: var(--sbb-table-caption-margin-block-start, var(--sbb-spacing-fixed-4x));
129
+ text-align: left;
130
+ }
131
+
132
+ .sbb-table-xs {
133
+ --sbb-table-data-cell-font-size: var(--sbb-text-font-size-xs);
134
+ --sbb-table-header-padding-block: 0;
135
+ --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-1x);
136
+ --sbb-table-cell-padding-block: 0;
137
+ --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-1x);
138
+ }
139
+
140
+ .sbb-table-s {
141
+ --sbb-table-data-cell-font-size: var(--sbb-text-font-size-xs);
142
+ --sbb-table-header-padding-block: var(--sbb-spacing-fixed-1x);
143
+ --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-2x);
144
+ --sbb-table-cell-padding-block: var(--sbb-spacing-fixed-1x);
145
+ --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-2x);
146
+ }
147
+
148
+ .sbb-table-m {
149
+ --sbb-table-data-cell-font-size: var(--sbb-text-font-size-s);
150
+ --sbb-table-header-padding-block: var(--sbb-spacing-fixed-3x);
151
+ --sbb-table-header-padding-inline: var(--sbb-spacing-fixed-4x);
152
+ --sbb-table-cell-padding-block: var(--sbb-spacing-responsive-xxxs);
153
+ --sbb-table-cell-padding-inline: var(--sbb-spacing-fixed-4x);
154
+ }
155
+
156
+ sbb-table-wrapper[negative] .sbb-table,
157
+ .sbb-table--negative {
158
+ --sbb-table-border-color: var(--sbb-color-anthracite);
159
+ --sbb-table-background-color: var(--sbb-background-color-1-negative);
160
+ --sbb-table-color: var(--sbb-color-1-negative);
161
+ --sbb-table-row-striped-color: var(--sbb-background-color-3-negative);
162
+ --sbb-table-caption-color: var(--sbb-color-cement);
163
+ }
164
+
165
+ .sbb-table--striped {
166
+ tbody tr:nth-child(odd) :is(th, td) {
167
+ background-color: var(--sbb-table-row-striped-color);
168
+ }
169
+ }
170
+
171
+ .sbb-table--unstriped {
172
+ tbody tr:nth-child(odd) :is(th, td) {
173
+ background-color: var(--sbb-table-background-color);
174
+ }
175
+ }
176
+
177
+ .sbb-table--theme-iron {
178
+ --sbb-table-cell-color: var(--sbb-color-4);
179
+
180
+ sbb-table-wrapper[negative] &,
181
+ &.sbb-table--negative {
182
+ --sbb-table-cell-color: var(--sbb-color-cloud);
183
+ }
184
+
185
+ tbody > tr > td {
186
+ color: var(--sbb-table-cell-color);
187
+ }
188
+ }
189
+
190
+ .sbb-table-header-subtitle {
191
+ font-weight: normal;
192
+ }
193
+
194
+ .sbb-table-row--striped {
195
+ background-color: var(--sbb-table-row-striped-color);
196
+ }
197
+
198
+ .sbb-table-filter {
199
+ padding-block-start: 0 !important;
200
+ }
201
+
202
+ .sbb-table-caption {
203
+ // Workaround for storybook. It crashes if 'light-dark' is used as a 'var' fallback
204
+ --sbb-table-caption-color-fallback: light-dark(
205
+ var(--sbb-color-granite),
206
+ var(--sbb-color-cement)
207
+ );
208
+
209
+ font-size: var(--sbb-text-font-size-xs);
210
+ letter-spacing: var(--sbb-typo-letter-spacing-text);
211
+
212
+ // Defaults are needed for cases where the caption is used outside a table
213
+ color: var(--sbb-table-caption-color, var(--sbb-table-caption-color-fallback));
214
+ margin-block-start: var(--sbb-table-caption-margin-block-start, var(--sbb-spacing-fixed-4x));
215
+ text-align: left;
216
+ }
217
+
218
+ .sbb-table-sticky {
219
+ // Note that the table can either set this class or an inline style to make something sticky.
220
+ // We set the style as `!important` so that we get an identical specificity in both cases
221
+ // and to avoid cases where user styles have a higher specificity.
222
+ position: sticky !important;
223
+ }
224
+
225
+ // The `sbb-table-sticky-*` css classes are used by the Angular wrapper and CDK.
226
+ // Do not rename them, please.
227
+ :is(.sbb-table-sticky-border-elem-left, .sbb-table-sticky-border-elem-right)::after {
228
+ content: '';
229
+ transition: {
230
+ timing-function: var(--sbb-table-sticky-shadow-transition-easing);
231
+ duration: var(--sbb-table-sticky-shadow-transition-duration);
232
+ property: visibility, opacity;
233
+ }
234
+
235
+ visibility: hidden;
236
+ opacity: 0;
237
+ position: absolute;
238
+ width: var(--sbb-table-sticky-shadow-width);
239
+ inset: 0;
240
+ }
241
+
242
+ .sbb-table-sticky-border-elem-left {
243
+ :is(.sbb-table-wrapper-offset-left, .sbb-table-wrapper-offset-both) & {
244
+ border-inline-end: var(--sbb-table-border);
245
+
246
+ &::after {
247
+ visibility: visible;
248
+ opacity: 1;
249
+ background-image: linear-gradient(-270deg, rgb(0 0 0 / 10%) 0%, transparent 100%);
250
+ inset-inline-start: unset;
251
+ inset-inline-end: calc(var(--sbb-table-sticky-shadow-width) * -1 - 1px);
252
+ }
253
+ }
254
+ }
255
+
256
+ .sbb-table-sticky-border-elem-right {
257
+ :is(.sbb-table-wrapper-offset-right, .sbb-table-wrapper-offset-both) & {
258
+ border-inline-start: var(--sbb-table-border);
259
+
260
+ &::after {
261
+ visibility: visible;
262
+ opacity: 1;
263
+ background-image: linear-gradient(270deg, rgb(0 0 0 / 10%) 0%, transparent 100%);
264
+ inset-inline-start: calc(var(--sbb-table-sticky-shadow-width) * -1 - 1px);
265
+ inset-inline-end: unset;
266
+ }
267
+ }
268
+ }
269
+
270
+ .sbb-table-align-start {
271
+ text-align: start;
272
+ }
273
+
274
+ .sbb-table-align-center {
275
+ text-align: center;
276
+ }
277
+
278
+ .sbb-table-align-end {
279
+ text-align: end;
280
+ }
281
+
282
+ .sbb-table-align-justify {
283
+ text-align: justify;
284
+ }
285
+
286
+ // Backwards compatibility for sbb-angular
287
+ .sbb-table-align-left {
288
+ text-align: left;
289
+ }
290
+
291
+ // Backwards compatibility for sbb-angular
292
+ .sbb-table-align-right {
293
+ text-align: right;
294
+ }
295
+ }
@@ -0,0 +1,17 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ // These variables are shared within the `sbb-tab-label` and the `sbb-tab-nav-bar`.
6
+ @mixin base {
7
+ --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
8
+ --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
9
+ --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
10
+ --sbb-tab-group-content-gap-default: #{sbb.theme-pattern-select(
11
+ (
12
+ 'standard': var(--sbb-tab-group-content-gap-size-l),
13
+ 'lean': var(--sbb-tab-group-content-gap-size-s),
14
+ ),
15
+ $theme
16
+ )};
17
+ }
@@ -0,0 +1,38 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ // These variables are shared within the `sbb-tab-label` and the `sbb-tab-nav-bar`.
6
+ @mixin base {
7
+ --sbb-tab-label-height: #{sbb.theme-pattern-select(
8
+ (
9
+ 'standard': var(--sbb-size-element-m),
10
+ 'lean': var(--sbb-size-element-xs),
11
+ ),
12
+ $theme
13
+ )};
14
+ --sbb-tab-label-inline-padding: #{sbb.theme-pattern-select(
15
+ (
16
+ 'standard': var(--sbb-spacing-responsive-xs),
17
+ 'lean': var(--sbb-spacing-responsive-xxxs),
18
+ ),
19
+ $theme
20
+ )};
21
+ --sbb-tab-label-color: light-dark(var(--sbb-color-granite), var(--sbb-color-graphite));
22
+ --sbb-tab-label-marker-thickness: var(--sbb-border-width-3x);
23
+ --sbb-tab-label-text-decoration: none;
24
+ --sbb-tab-label-animation-easing: var(--sbb-animation-easing);
25
+ --sbb-tab-label-font-size: #{sbb.theme-pattern-select(
26
+ (
27
+ 'standard': var(--sbb-text-font-size-m),
28
+ 'lean': var(--sbb-text-font-size-s),
29
+ ),
30
+ $theme
31
+ )};
32
+ --sbb-tab-label-font-weight: bold;
33
+ --sbb-tab-label-gap: var(--sbb-spacing-fixed-2x);
34
+ --sbb-tab-label-outline-border-radius: var(--sbb-border-radius-2x);
35
+ --sbb-tab-label-amount-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
36
+ --sbb-tab-label-line-color: var(--sbb-border-color-4-inverted);
37
+ --sbb-tab-label-cursor: var(--sbb-cursor-pointer);
38
+ }
@@ -0,0 +1,10 @@
1
+ @use '../../core/styles' as sbb;
2
+ @use '../common/tab-label-common' as tab-label-common;
3
+
4
+ $theme: 'standard' !default;
5
+
6
+ @mixin rules {
7
+ sbb-tab-nav-bar .sbb-tab-amount {
8
+ @include tab-label-common.tab-label-amount;
9
+ }
10
+ }
@@ -0,0 +1,41 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-tag-animation-easing: var(--sbb-animation-easing);
7
+ --sbb-tag-background-color: var(--sbb-background-color-1);
8
+ --sbb-tag-border-color: var(--sbb-border-color-4-inverted);
9
+ --sbb-tag-border-style: solid;
10
+ --sbb-tag-border-width: var(--sbb-border-width-1x);
11
+ --sbb-tag-border-radius: var(--sbb-border-radius-infinity);
12
+ --sbb-tag-gap: var(--sbb-spacing-fixed-2x);
13
+ --sbb-tag-text-color: var(--sbb-color-2);
14
+ --sbb-tag-amount-color: light-dark(var(--sbb-color-metal), var(--sbb-color-smoke));
15
+ --sbb-tag-height-s: var(--sbb-size-element-xxxs);
16
+ --sbb-tag-height-m: var(--sbb-size-element-xs);
17
+ --sbb-tag-height: #{sbb.theme-pattern-select(
18
+ (
19
+ 'standard': var(--sbb-tag-height-m),
20
+ 'lean': var(--sbb-tag-height-s),
21
+ ),
22
+ $theme
23
+ )};
24
+ --sbb-tag-padding-inline-s: var(--sbb-spacing-fixed-3x);
25
+ --sbb-tag-padding-inline-m: var(--sbb-spacing-fixed-5x);
26
+ --sbb-tag-padding-inline: #{sbb.theme-pattern-select(
27
+ (
28
+ 'standard': var(--sbb-tag-padding-inline-m),
29
+ 'lean': var(--sbb-tag-padding-inline-s),
30
+ ),
31
+ $theme
32
+ )};
33
+ }
34
+
35
+ @mixin base-forced-colors {
36
+ --sbb-tag-amount-color: ButtonText;
37
+ --sbb-tag-background-color: Canvas !important;
38
+ --sbb-tag-text-color: ButtonText;
39
+ --sbb-tag-border-color: CanvasText;
40
+ --sbb-tag-border-width: var(--sbb-border-width-2x);
41
+ }
@@ -0,0 +1,24 @@
1
+ @use '../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-teaser-scale-hover: 1.02;
7
+ --sbb-teaser-description-color: light-dark(var(--sbb-color-granite), var(--sbb-color-silver));
8
+ --sbb-teaser-flex-direction: row;
9
+ --sbb-teaser-align-items: center;
10
+ --sbb-teaser-font-size: var(--sbb-text-font-size-s);
11
+ --sbb-teaser-gap: var(--sbb-spacing-fixed-4x);
12
+ --sbb-teaser-border-radius: var(--sbb-border-radius-4x);
13
+ --sbb-teaser-image-width: #{sbb.px-to-rem-build(300)};
14
+ }
15
+
16
+ @mixin rules {
17
+ sbb-teaser :is(sbb-image, img):not(.sbb-figure-overlap-image) {
18
+ --sbb-image-object-fit: cover;
19
+ --sbb-image-aspect-ratio: 4 / 3;
20
+
21
+ // The transition of the scale is done by the global rules in core.scss
22
+ scale: var(--sbb-teaser-scale, 1);
23
+ }
24
+ }
@@ -0,0 +1,27 @@
1
+ @use '../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-teaser-hero-link-font-weight: 400;
7
+ }
8
+
9
+ @mixin rules {
10
+ sbb-teaser-hero {
11
+ :is(sbb-image, img):not(.sbb-figure-overlap-image) {
12
+ --sbb-image-aspect-ratio: 1 / 1;
13
+
14
+ border-radius: 0;
15
+
16
+ @include sbb.mq($from: small) {
17
+ --sbb-image-aspect-ratio: 16 / 9;
18
+ }
19
+ }
20
+
21
+ img:not(.sbb-figure-overlap-image) {
22
+ display: block;
23
+ align-self: stretch;
24
+ width: 100%;
25
+ }
26
+ }
27
+ }
@@ -0,0 +1,33 @@
1
+ @use '../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-panel-width: #{sbb.px-to-rem-build(223)};
7
+ --sbb-panel-inner-height: #{sbb.px-to-rem-build(167)};
8
+ --sbb-panel-triangle-height: #{sbb.px-to-rem-build(33)};
9
+ --sbb-panel-line-height: var(--sbb-typo-line-height-heading);
10
+ --sbb-panel-font-size: var(--sbb-typo-scale-1-5x);
11
+ --sbb-panel-font-weight: 300;
12
+ --sbb-panel-color: var(--sbb-color-1-negative);
13
+ --sbb-panel-background-color: color-mix(in srgb, var(--sbb-color-primary) 90%, transparent);
14
+ --sbb-panel-background-color-hover: var(--sbb-color-primary);
15
+ --sbb-panel-padding-inline: var(--sbb-spacing-responsive-m);
16
+ --sbb-panel-gap: var(--sbb-spacing-responsive-xs);
17
+ --sbb-panel-animation-easing: var(--sbb-animation-easing);
18
+ }
19
+
20
+ @mixin base-breakpoint-large {
21
+ --sbb-panel-width: #{sbb.px-to-rem-build(321)};
22
+ --sbb-panel-inner-height: #{sbb.px-to-rem-build(240.11)};
23
+ --sbb-panel-triangle-height: #{sbb.px-to-rem-build(47.45)};
24
+ --sbb-panel-font-size: var(--sbb-typo-scale-2x);
25
+ }
26
+
27
+ @mixin base-breakpoint-ultra {
28
+ --sbb-panel-width: #{sbb.px-to-rem-build(428)};
29
+ --sbb-panel-inner-height: #{sbb.px-to-rem-build(320.38)};
30
+ --sbb-panel-triangle-height: #{sbb.px-to-rem-build(63.31)};
31
+ --sbb-panel-font-size: var(--sbb-typo-scale-2-5x);
32
+ --sbb-panel-line-height: 1.2;
33
+ }
@@ -0,0 +1,50 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-teaser-product-background-color: light-dark(
7
+ var(--sbb-color-cloud),
8
+ var(--sbb-color-midnight)
9
+ );
10
+ --sbb-teaser-product-background-gradient-direction: to right;
11
+ --sbb-teaser-product-border-radius: var(--sbb-border-radius-4x);
12
+ --sbb-teaser-product-min-height: #{sbb.px-to-rem-build(600)};
13
+ --sbb-teaser-product-background-gradient-start: 25%;
14
+ --sbb-teaser-product-background-gradient-end: 75%;
15
+ --sbb-teaser-product-container-padding-block: var(--sbb-spacing-responsive-s);
16
+ --sbb-teaser-product-container-padding-inline: var(--sbb-spacing-responsive-s);
17
+ --sbb-teaser-product-container-spacing: var(--sbb-spacing-responsive-l);
18
+ --sbb-teaser-product-content-color: var(--sbb-color-4);
19
+ --sbb-teaser-product-footer-color: light-dark(
20
+ var(--sbb-color-anthracite),
21
+ var(--sbb-color-cloud)
22
+ );
23
+ --sbb-teaser-product-footer-font-size: var(--sbb-text-font-size-xxs);
24
+ --sbb-teaser-product-footer-padding-block-start: var(--sbb-spacing-responsive-s);
25
+ --sbb-teaser-product-footer-padding-block-end: 0;
26
+ }
27
+
28
+ @mixin base-breakpoint-large {
29
+ --sbb-teaser-product-container-padding-block: var(--sbb-spacing-responsive-l) 0;
30
+ --sbb-teaser-product-container-padding-inline: var(--sbb-spacing-responsive-xl);
31
+ --sbb-teaser-product-content-align-content: center;
32
+ --sbb-teaser-product-footer-padding-block-start: var(--sbb-spacing-responsive-xs);
33
+ --sbb-teaser-product-footer-padding-block-end: var(--sbb-spacing-responsive-xs);
34
+ --sbb-teaser-product-footer-min-height: var(--sbb-teaser-product-container-spacing);
35
+ }
36
+
37
+ @mixin rules {
38
+ :is(sbb-teaser-product, sbb-teaser-product-static) {
39
+ :is(sbb-image, img):not(.sbb-figure-overlap-image) {
40
+ border-radius: 0; // Reset sbb-image border radius in order to control it from teaser product.
41
+
42
+ --sbb-image-object-fit: cover;
43
+ --sbb-image-aspect-ratio: 16 / 9;
44
+ }
45
+
46
+ img:not(.sbb-figure-overlap-image) {
47
+ place-self: stretch;
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,11 @@
1
+ @use '../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-time-input-max-width: #{sbb.px-to-rem-build(58)};
7
+ }
8
+
9
+ @mixin base-breakpoint-large {
10
+ --sbb-time-input-max-width: #{sbb.px-to-rem-build(65)};
11
+ }
@@ -0,0 +1,97 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-timetable-form-background-color: var(--sbb-background-color-1);
7
+ --sbb-timetable-form-border-radius: var(--sbb-border-radius-4x);
8
+ }
9
+
10
+ @mixin rules {
11
+ .sbb-timetable-form {
12
+ --sbb-timetable-form-content-max-width: #{sbb.px-to-rem-build(740)};
13
+
14
+ position: relative;
15
+ display: flex;
16
+ flex-direction: column;
17
+ column-gap: var(--sbb-spacing-fixed-3x);
18
+ border-radius: var(--sbb-border-radius-4x);
19
+ padding-block: var(--sbb-spacing-fixed-10x) var(--sbb-spacing-responsive-l);
20
+ padding-inline: var(--sbb-spacing-fixed-5x);
21
+ background: linear-gradient(
22
+ to bottom,
23
+ var(--sbb-color-primary) 0 #{sbb.px-to-rem-build(178)},
24
+ var(--sbb-background-color-3) #{sbb.px-to-rem-build(178)} 100%
25
+ );
26
+
27
+ @include sbb.mq($to: large) {
28
+ &:has(sbb-signet) {
29
+ padding-block-start: var(--sbb-spacing-fixed-4x);
30
+ }
31
+ }
32
+
33
+ sbb-signet {
34
+ width: var(--sbb-spacing-fixed-16x);
35
+ align-self: end;
36
+ margin-block-end: var(--sbb-spacing-fixed-2x);
37
+ margin-inline: 0;
38
+
39
+ @include sbb.mq($from: large) {
40
+ position: absolute;
41
+ inset-block-start: var(--sbb-spacing-fixed-6x);
42
+ inset-inline-end: var(--sbb-spacing-fixed-6x);
43
+ }
44
+ }
45
+
46
+ & > * {
47
+ margin-inline: auto;
48
+ max-width: var(--sbb-timetable-form-content-max-width);
49
+ width: 100%;
50
+ }
51
+ }
52
+
53
+ sbb-timetable-form {
54
+ sbb-date-input {
55
+ min-width: #{sbb.px-to-rem-build(133)}; // From FIGMA spec
56
+ }
57
+
58
+ :is(.sbb-timetable-form-block, .sbb-timetable-form-mobile-block) {
59
+ --sbb-form-field-focus-underline-z-index: 1;
60
+
61
+ width: 100%;
62
+ position: relative;
63
+
64
+ &::after {
65
+ content: '';
66
+ position: absolute;
67
+ border-block-end: var(--sbb-border-width-1x) solid var(--sbb-border-color-4-inverted);
68
+ inset-inline: var(--sbb-form-field-padding-inline);
69
+ inset-block-end: 0;
70
+ }
71
+
72
+ sbb-datepicker-toggle {
73
+ margin-inline-end: var(--sbb-spacing-fixed-6x);
74
+ }
75
+ }
76
+
77
+ @include sbb.mq($from: small) {
78
+ .sbb-timetable-form-mobile-block {
79
+ width: unset;
80
+
81
+ &::after {
82
+ display: none;
83
+ }
84
+
85
+ sbb-datepicker-toggle {
86
+ margin-inline-end: unset;
87
+ }
88
+ }
89
+ }
90
+
91
+ @include sbb.mq($to: small) {
92
+ .sbb-timetable-form-mobile-hidden {
93
+ display: none;
94
+ }
95
+ }
96
+ }
97
+ }
@@ -0,0 +1,12 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-timetable-form-details-border-block-start: var(--sbb-border-width-1x) solid
7
+ var(--sbb-border-color-4-inverted);
8
+ --sbb-timetable-form-details-gap: var(--sbb-spacing-fixed-1x);
9
+ --sbb-timetable-form-details-padding-block: var(--sbb-spacing-fixed-1x);
10
+ --sbb-timetable-form-details-padding-inline: var(--sbb-spacing-responsive-xxs);
11
+ --sbb-timetable-form-details-horizontal-divider-height: 1.5rem;
12
+ }
@@ -0,0 +1,10 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-timetable-form-field-route-icon-color: var(--sbb-color-2);
7
+ --sbb-timetable-form-field-route-icon-background-color: var(--sbb-background-color-1);
8
+ --sbb-timetable-form-field-route-via-icon-width: var(--sbb-size-icon-ui-small);
9
+ --sbb-timetable-form-field-route-via-after-dimension: #{sbb.px-to-rem-build(7)};
10
+ }
@@ -0,0 +1,10 @@
1
+ @use '../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-timetable-occupancy-color: var(--sbb-color-2);
7
+ --sbb-timetable-occupancy-font-size: var(--sbb-text-font-size-s);
8
+ --sbb-timetable-occupancy-list-gap: var(--sbb-spacing-fixed-2x);
9
+ --sbb-timetable-occupancy-item-gap: var(--sbb-spacing-fixed-1x);
10
+ }