@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,45 @@
1
+ @use '../../core/styles/index' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-alert-background-color: var(--sbb-background-color-1-inverted);
7
+ --sbb-alert-border-radius: var(--sbb-border-radius-4x);
8
+ --sbb-alert-color: light-dark(var(--sbb-color-aluminium), var(--sbb-color-anthracite));
9
+ --sbb-alert-padding: var(--sbb-spacing-responsive-xxs) var(--sbb-spacing-responsive-xs);
10
+ --sbb-alert-timing-function: ease-in;
11
+ --sbb-alert-icon-size: #{sbb.px-to-rem-build(20)};
12
+ --sbb-alert-icon-size-l: var(--sbb-size-icon-ui-small);
13
+ --sbb-alert-title-margin-block: 0;
14
+ --sbb-alert-font-size: var(--sbb-text-font-size-s);
15
+ --sbb-alert-gap: #{sbb.theme-pattern-select(
16
+ (
17
+ 'standard': var(--sbb-spacing-fixed-2x) var(--sbb-spacing-responsive-xs),
18
+ 'lean': var(--sbb-spacing-fixed-1x) var(--sbb-spacing-responsive-xxs),
19
+ ),
20
+ $theme
21
+ )};
22
+ --sbb-alert-close-icon-margin: #{sbb.theme-pattern-select(
23
+ (
24
+ 'standard': var(--sbb-spacing-responsive-xxs),
25
+ 'lean': var(--sbb-spacing-responsive-xxxs),
26
+ ),
27
+ $theme
28
+ )};
29
+ }
30
+
31
+ @mixin base-forced-colors {
32
+ // Use outline here to not influence content position.
33
+ // Due to overflow hidden of inner elements it's placed on host.
34
+ --sbb-alert-outline: var(--sbb-border-width-1x) solid CanvasText;
35
+ --sbb-alert-forced-color-border-radius: var(--sbb-alert-border-radius);
36
+ }
37
+
38
+ @mixin base-breakpoint-large {
39
+ --sbb-alert-icon-size: #{sbb.px-to-rem-build(28)};
40
+ --sbb-alert-icon-size-l: #{sbb.px-to-rem-build(34)};
41
+ }
42
+
43
+ @mixin base-breakpoint-small {
44
+ --sbb-alert-close-button-divider-display: block;
45
+ }
@@ -0,0 +1,8 @@
1
+ @use '../../core/styles/index' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-alert-group-gap: var(--sbb-spacing-fixed-3x);
7
+ --sbb-alert-group-border-radius: var(--sbb-border-radius-4x);
8
+ }
@@ -0,0 +1,44 @@
1
+ @use '../core/styles' as sbb;
2
+
3
+ @mixin base-rules {
4
+ display: flex;
5
+ align-items: center;
6
+ justify-content: center;
7
+ padding-inline: var(--sbb-spacing-fixed-1x);
8
+ border-radius: var(--sbb-border-radius-infinity);
9
+ background-color: var(--sbb-color-primary);
10
+ color: var(--sbb-color-1-negative);
11
+ min-width: var(--sbb-spacing-fixed-4x);
12
+ max-height: var(--sbb-spacing-fixed-4x);
13
+ line-height: var(--sbb-typo-line-height-text);
14
+ letter-spacing: var(--sbb-typo-letter-spacing-text);
15
+ font-size: var(--sbb-text-font-size-xxs);
16
+ font-weight: bold;
17
+
18
+ // Transparent outline is visible in forced colors mode to ensure readability
19
+ outline: var(--sbb-border-width-1x) solid transparent;
20
+ }
21
+
22
+ @mixin rules {
23
+ [sbb-badge] {
24
+ --sbb-badge-position-offset: calc(var(--sbb-spacing-fixed-2x) * -1);
25
+
26
+ position: relative;
27
+
28
+ &::after {
29
+ @include base-rules;
30
+
31
+ content: attr(sbb-badge);
32
+ position: absolute;
33
+ inset-block-start: var(--sbb-badge-position-offset);
34
+ }
35
+
36
+ &:where([sbb-badge-position='before'])::after {
37
+ inset-inline-start: var(--sbb-badge-position-offset);
38
+ }
39
+
40
+ &:where(:not([sbb-badge-position]), [sbb-badge-position='after'])::after {
41
+ inset-inline-end: var(--sbb-badge-position-offset);
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,16 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-breadcrumb-color: light-dark(var(--sbb-color-granite), var(--sbb-color-aluminium));
7
+ --sbb-breadcrumb-color-hover: light-dark(var(--sbb-color-charcoal), var(--sbb-color-smoke));
8
+ --sbb-breadcrumb-color-active: light-dark(var(--sbb-color-anthracite), var(--sbb-color-cloud));
9
+ --sbb-breadcrumb-font-size: var(--sbb-text-font-size-xs);
10
+ --sbb-breadcrumb-gap: var(--sbb-spacing-fixed-2x);
11
+ }
12
+
13
+ @mixin base-forced-colors {
14
+ --sbb-breadcrumb-color: ButtonText;
15
+ --sbb-breadcrumb-color-active: Highlight;
16
+ }
@@ -0,0 +1,26 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-breadcrumb-group-wrap: nowrap;
7
+ --sbb-breadcrumb-group-visibility: hidden;
8
+ --sbb-breadcrumb-group-ellipsis-color: light-dark(
9
+ var(--sbb-color-granite),
10
+ var(--sbb-color-cloud)
11
+ );
12
+ --sbb-breadcrumb-group-ellipsis-background-color: transparent;
13
+ --sbb-breadcrumb-group-ellipsis-border-width: var(--sbb-border-width-1x);
14
+ --sbb-breadcrumb-group-ellipsis-border-color: light-dark(
15
+ var(--sbb-color-silver),
16
+ var(--sbb-color-anthracite)
17
+ );
18
+ }
19
+
20
+ @mixin rules {
21
+ sbb-breadcrumb-group:not(:defined) {
22
+ display: block;
23
+ height: calc(var(--sbb-typo-line-height-text) * var(--sbb-text-font-size-xs));
24
+ overflow: hidden;
25
+ }
26
+ }
@@ -0,0 +1,58 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-button-box-shadow: transparent 0 0;
7
+ --sbb-button-border-radius: var(--sbb-border-radius-infinity);
8
+ --sbb-button-border-width: var(--sbb-border-width-2x);
9
+ --sbb-button-border-disabled-style: dashed;
10
+ --sbb-button-border-disabled-width: var(--sbb-border-width-1x);
11
+ --sbb-button-color-disabled-background: var(--sbb-background-color-3);
12
+ --sbb-button-color-disabled-border: var(--sbb-border-color-5);
13
+ --sbb-button-color-disabled-text: light-dark(
14
+ var(--sbb-color-granite),
15
+ var(--sbb-color-aluminium)
16
+ );
17
+ --sbb-button-gap: #{sbb.theme-pattern-select(
18
+ (
19
+ 'standard': var(--sbb-spacing-fixed-2x),
20
+ 'lean': var(--sbb-spacing-fixed-1x),
21
+ ),
22
+ $theme
23
+ )};
24
+ --sbb-button-loading-border-width: var(--sbb-border-width-3x);
25
+ --sbb-button-loading-delay: 300ms;
26
+ --sbb-button-min-height-size-l: var(--sbb-size-element-m);
27
+ --sbb-button-min-height-size-m: var(--sbb-size-element-s);
28
+ --sbb-button-min-height-size-s: var(--sbb-size-element-xs);
29
+ --sbb-button-min-height: #{sbb.theme-pattern-select(
30
+ (
31
+ 'standard': var(--sbb-button-min-height-size-m),
32
+ 'lean': var(--sbb-button-min-height-size-s),
33
+ ),
34
+ $theme
35
+ )};
36
+ --sbb-button-padding-block-min: var(--sbb-spacing-fixed-1x);
37
+ --sbb-button-padding-inline-size-l: var(--sbb-spacing-fixed-8x);
38
+ --sbb-button-padding-inline-size-m: var(--sbb-spacing-fixed-5x);
39
+ --sbb-button-padding-inline-size-s: var(--sbb-spacing-fixed-4x);
40
+ --sbb-button-padding-inline: #{sbb.theme-pattern-select(
41
+ (
42
+ 'standard': var(--sbb-button-padding-inline-size-m),
43
+ 'lean': var(--sbb-button-padding-inline-size-s),
44
+ ),
45
+ $theme
46
+ )};
47
+ --sbb-button-shadow-1-offset-y: var(--sbb-shadow-elevation-level-3-shadow-1-offset-y);
48
+ --sbb-button-shadow-2-offset-y: var(--sbb-shadow-elevation-level-3-shadow-2-offset-y);
49
+ --sbb-button-shadow-1-blur: var(--sbb-shadow-elevation-level-3-shadow-1-blur);
50
+ --sbb-button-shadow-2-blur: var(--sbb-shadow-elevation-level-3-shadow-2-blur);
51
+ --sbb-button-transition-easing-function: var(--sbb-animation-easing);
52
+ }
53
+
54
+ @mixin base-breakpoint-large {
55
+ --sbb-button-padding-inline-size-l: var(--sbb-spacing-fixed-10x);
56
+ --sbb-button-padding-inline-size-m: var(--sbb-spacing-fixed-8x);
57
+ --sbb-button-padding-inline-size-s: var(--sbb-spacing-fixed-5x);
58
+ }
@@ -0,0 +1,18 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-mini-button-color-text: var(--sbb-color-3);
7
+ --sbb-mini-button-color-default-background: transparent;
8
+ --sbb-mini-button-color-hover-background: var(--sbb-background-color-3);
9
+ --sbb-mini-button-color-active-background: var(--sbb-background-color-4);
10
+ --sbb-mini-button-color-disabled-background: var(--sbb-background-color-3);
11
+ --sbb-mini-button-color-disabled-border: var(--sbb-border-color-5);
12
+ --sbb-mini-button-color-disabled-text: light-dark(
13
+ var(--sbb-color-granite),
14
+ var(--sbb-color-smoke)
15
+ );
16
+ --sbb-mini-button-border-radius: var(--sbb-border-radius-infinity);
17
+ --sbb-mini-button-transition-easing-function: var(--sbb-animation-easing);
18
+ }
@@ -0,0 +1,35 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-mini-button-group-background: var(--sbb-background-color-1);
7
+ --sbb-mini-button-group-border-color: var(--sbb-border-color-4-inverted);
8
+ --sbb-mini-button-group-border-width: var(--sbb-border-width-2x);
9
+ --sbb-mini-button-group-border-radius: var(--sbb-border-radius-infinity);
10
+ --sbb-mini-button-group-gap: var(--sbb-spacing-fixed-2x);
11
+ --sbb-mini-button-group-divider-height: var(--sbb-size-icon-ui-small);
12
+ --sbb-mini-button-group-divider-padding: var(--sbb-spacing-fixed-1x);
13
+ --sbb-mini-button-group-min-height-s: var(--sbb-size-element-xs);
14
+ --sbb-mini-button-group-min-height-m: var(--sbb-size-element-s);
15
+ --sbb-mini-button-group-min-height-l: var(--sbb-size-element-m);
16
+ --sbb-mini-button-group-min-height-xl: var(--sbb-size-element-l);
17
+ --sbb-mini-button-group-min-height: #{sbb.theme-pattern-select(
18
+ (
19
+ 'standard': var(--sbb-mini-button-group-min-height-m),
20
+ 'lean': var(--sbb-mini-button-group-min-height-s),
21
+ ),
22
+ $theme
23
+ )};
24
+ --sbb-mini-button-group-padding-inline-s: var(--sbb-spacing-fixed-2x);
25
+ --sbb-mini-button-group-padding-inline-m: var(--sbb-spacing-fixed-3x);
26
+ --sbb-mini-button-group-padding-inline-l: var(--sbb-spacing-fixed-3x);
27
+ --sbb-mini-button-group-padding-inline-xl: var(--sbb-spacing-fixed-4x);
28
+ --sbb-mini-button-group-padding-inline: #{sbb.theme-pattern-select(
29
+ (
30
+ 'standard': var(--sbb-mini-button-group-padding-inline-m),
31
+ 'lean': var(--sbb-mini-button-group-padding-inline-s),
32
+ ),
33
+ $theme
34
+ )};
35
+ }
@@ -0,0 +1,31 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-calendar-cell-background-color: transparent;
7
+ --sbb-calendar-cell-background-color-hover: var(--sbb-background-color-3);
8
+ --sbb-calendar-cell-background-color-active: var(--sbb-background-color-4);
9
+ --sbb-calendar-cell-padding: #{sbb.px-to-rem-build(2)};
10
+ --sbb-calendar-cell-border-width: var(--sbb-border-width-2x);
11
+ --sbb-calendar-cell-disabled-height: #{sbb.px-to-rem-build(1.5)};
12
+ --sbb-calendar-cell-disabled-width: #{sbb.px-to-rem-build(25.5)};
13
+ --sbb-calendar-cell-disabled-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
14
+ --sbb-calendar-cell-transition-easing-function: var(--sbb-animation-easing);
15
+ --sbb-calendar-control-gap: var(--sbb-spacing-fixed-2x);
16
+ --sbb-calendar-control-margin-block-end: var(--sbb-spacing-fixed-4x);
17
+ --sbb-calendar-control-view-change-height: #{sbb.px-to-rem-build(44)};
18
+ --sbb-calendar-control-view-change-color: var(--sbb-color-3);
19
+ --sbb-calendar-control-view-change-background: var(--sbb-background-color-1);
20
+ --sbb-calendar-control-view-change-padding-inline: var(--sbb-spacing-fixed-5x)
21
+ var(--sbb-spacing-fixed-2x);
22
+ --sbb-calendar-header-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
23
+ --sbb-calendar-table-animation-shift: #{sbb.px-to-rem-build(0.1)};
24
+ --sbb-calendar-table-column-spaces: 12;
25
+ --sbb-calendar-tables-gap: var(--sbb-spacing-fixed-10x);
26
+
27
+ // While changing views, there would be a few frames where the height of the calendar collapses to just
28
+ // the height of the controls and then grow back to the height of the next view.
29
+ // By using 0.1ms this can be avoided.
30
+ --sbb-calendar-table-animation-duration: 0.1ms;
31
+ }
@@ -0,0 +1,23 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-calendar-cell-border: var(--sbb-calendar-cell-border-width) solid
7
+ var(--sbb-border-color-1-inverted);
8
+ --sbb-calendar-cell-color: var(--sbb-color-2);
9
+ --sbb-calendar-cell-cursor: var(--sbb-cursor-pointer);
10
+ --sbb-calendar-cell-justify-content: normal;
11
+ --sbb-calendar-cell-inset: #{sbb.px-to-rem-build(1)};
12
+ --sbb-calendar-cell-font-size: var(--sbb-text-font-size-s);
13
+ --sbb-calendar-cell-font-weight: unset;
14
+ --sbb-calendar-cell-transition-easing-function: var(--sbb-animation-easing);
15
+ --sbb-calendar-cell-year-month-width: #{sbb.px-to-rem-build(77)};
16
+ --sbb-calendar-cell-year-month-height: #{sbb.px-to-rem-build(44)};
17
+ --sbb-calendar-day-width: #{sbb.px-to-rem-build(44)};
18
+ --sbb-calendar-day-height: #{sbb.px-to-rem-build(48)};
19
+ --sbb-calendar-day-extra-display: block;
20
+ --sbb-calendar-day-extra-height: var(--sbb-spacing-fixed-4x);
21
+ --sbb-calendar-day-crossed-out-top: 33%;
22
+ --sbb-calendar-day-crossed-out-translate: translate(-50%, -33%) rotate(-45deg);
23
+ }
@@ -0,0 +1,22 @@
1
+ $theme: 'standard' !default;
2
+
3
+ @use '../../core/styles' as sbb;
4
+ @use '../card.library.global' as card with (
5
+ $theme: $theme
6
+ );
7
+
8
+ @mixin base {
9
+ @include card.variables--global;
10
+ }
11
+
12
+ @mixin base-forced-colors {
13
+ @include card.variables--global-forced-colors;
14
+ }
15
+
16
+ @mixin rules {
17
+ // Every element in the Light DOM of a sbb-card which is focusable should receive this attribute.
18
+ // This style enables accessing focusable elements inside an sbb-card.
19
+ sbb-card .sbb-action {
20
+ pointer-events: all;
21
+ }
22
+ }
@@ -0,0 +1,19 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-card-badge-gap: var(--sbb-spacing-fixed-2x);
7
+ --sbb-card-badge-color: var(--sbb-color-2-inverted);
8
+ --sbb-card-badge-background-color: var(--sbb-background-color-3-inverted);
9
+ --sbb-card-badge-border-color: transparent;
10
+ --sbb-card-badge-padding-inline: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-fixed-3x);
11
+ --sbb-card-badge-border-width: var(--sbb-border-width-1x);
12
+ --sbb-card-badge-border-radius: var(--sbb-border-radius-4x);
13
+ --sbb-card-badge-skew: skew(16deg, 0deg);
14
+ }
15
+
16
+ @mixin base-forced-colors {
17
+ --sbb-card-badge-border-display: block;
18
+ --sbb-card-badge-inline-border-display: none;
19
+ }
@@ -0,0 +1,203 @@
1
+ @use '../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ // -----------------------------------------------------------------------------
6
+ // Card: Mixins & CSS custom properties
7
+ // -----------------------------------------------------------------------------
8
+ @mixin variables--global {
9
+ @include variables--white;
10
+
11
+ --sbb-card-border-radius: var(--sbb-border-radius-4x);
12
+ --sbb-card-animation-easing: var(--sbb-animation-easing);
13
+ --sbb-card-border-style: solid;
14
+ --sbb-card-padding-inline-default: #{sbb.theme-pattern-select(
15
+ (
16
+ 'standard': var(--sbb-spacing-responsive-s),
17
+ 'lean': var(--sbb-spacing-responsive-xxs),
18
+ ),
19
+ $theme
20
+ )};
21
+ --sbb-card-padding-block-default: #{sbb.theme-pattern-select(
22
+ (
23
+ 'standard': var(--sbb-spacing-responsive-xxxs),
24
+ 'lean': var(--sbb-spacing-fixed-3x),
25
+ ),
26
+ $theme
27
+ )};
28
+ --sbb-card-with-badge-padding-block-default: #{sbb.theme-pattern-select(
29
+ (
30
+ 'standard': var(--sbb-spacing-fixed-6x) var(--sbb-spacing-responsive-xxxs),
31
+ 'lean': var(--sbb-spacing-fixed-6x) var(--sbb-spacing-fixed-3x),
32
+ ),
33
+ $theme
34
+ )};
35
+ }
36
+
37
+ @mixin variables--global-forced-colors {
38
+ --sbb-card-border-color: CanvasText;
39
+ --sbb-card-border-width: var(--sbb-border-width-2x);
40
+ }
41
+
42
+ @mixin variables {
43
+ @include variables--global;
44
+
45
+ @media (forced-colors: active) {
46
+ @include variables--global-forced-colors;
47
+ }
48
+ }
49
+
50
+ @mixin variables--white {
51
+ --sbb-card-background-color: var(--sbb-background-color-1);
52
+ --sbb-card-border-color: transparent;
53
+ }
54
+
55
+ @mixin variables--milk {
56
+ --sbb-card-background-color: var(--sbb-background-color-3);
57
+ --sbb-card-border-color: transparent;
58
+ }
59
+
60
+ @mixin variables--transparent-bordered {
61
+ --sbb-card-background-color: transparent;
62
+ --sbb-card-border-color: var(--sbb-border-color-4-inverted);
63
+ --sbb-card-border-width: var(--sbb-border-width-1x);
64
+ --sbb-focus-outline-color: inherit;
65
+ }
66
+
67
+ @mixin variables--transparent-bordered-dashed {
68
+ --sbb-card-background-color: transparent;
69
+ --sbb-card-border-color: light-dark(var(--sbb-color-cement), var(--sbb-color-granite));
70
+ --sbb-card-border-width: var(--sbb-border-width-1x);
71
+ --sbb-card-border-style: dashed;
72
+ --sbb-focus-outline-color: inherit;
73
+ }
74
+
75
+ @mixin variables--active {
76
+ --sbb-card-border-color: var(--sbb-border-color-3);
77
+ --sbb-card-border-width: var(--sbb-border-width-2x);
78
+ --sbb-card-border-style: solid;
79
+
80
+ @media (forced-colors: active) {
81
+ --sbb-card-border-color: Highlight;
82
+ }
83
+ }
84
+
85
+ // Card sizing
86
+ @mixin variables--spacing-default {
87
+ --sbb-card-padding-block: var(--sbb-card-padding-block-default);
88
+ --sbb-card-with-badge-padding-block: var(--sbb-card-with-badge-padding-block-default);
89
+ --sbb-card-padding-inline: var(--sbb-card-padding-inline-default);
90
+ }
91
+
92
+ @mixin variables--spacing-3x-xxs {
93
+ --sbb-card-padding-block: var(--sbb-spacing-fixed-3x);
94
+ --sbb-card-with-badge-padding-block: var(--sbb-spacing-fixed-6x) var(--sbb-spacing-fixed-3x);
95
+ --sbb-card-padding-inline: var(--sbb-spacing-responsive-xxs);
96
+ }
97
+
98
+ @mixin variables--spacing-xxxs-xxs {
99
+ --sbb-card-padding-block: var(--sbb-spacing-responsive-xxxs);
100
+ --sbb-card-with-badge-padding-block: var(--sbb-spacing-fixed-6x)
101
+ var(--sbb-spacing-responsive-xxxs);
102
+ --sbb-card-padding-inline: var(--sbb-spacing-responsive-xxs);
103
+ }
104
+
105
+ @mixin variables--spacing-xxxs-s {
106
+ --sbb-card-padding-block: var(--sbb-spacing-responsive-xxxs);
107
+ --sbb-card-with-badge-padding-block: var(--sbb-spacing-fixed-6x)
108
+ var(--sbb-spacing-responsive-xxxs);
109
+ --sbb-card-padding-inline: var(--sbb-spacing-responsive-s);
110
+ }
111
+
112
+ @mixin variables--spacing-4x-xxs {
113
+ --sbb-card-padding-block: var(--sbb-spacing-fixed-4x);
114
+ --sbb-card-with-badge-padding-block: var(--sbb-spacing-fixed-6x) var(--sbb-spacing-fixed-4x);
115
+ --sbb-card-padding-inline: var(--sbb-spacing-responsive-xxs);
116
+ }
117
+
118
+ @mixin variables--spacing-xxs {
119
+ --sbb-card-padding-block: var(--sbb-spacing-responsive-xxs);
120
+ --sbb-card-with-badge-padding-block: var(--sbb-spacing-fixed-6x) var(--sbb-spacing-responsive-xxs);
121
+ --sbb-card-padding-inline: var(--sbb-spacing-responsive-xxs);
122
+ }
123
+
124
+ @mixin variables--spacing-s {
125
+ --sbb-card-padding-block: var(--sbb-spacing-responsive-s);
126
+ --sbb-card-with-badge-padding-block: var(--sbb-spacing-responsive-s);
127
+ --sbb-card-padding-inline: var(--sbb-spacing-responsive-s);
128
+ }
129
+
130
+ @mixin variables--spacing-l {
131
+ --sbb-card-padding-block: var(--sbb-spacing-responsive-l);
132
+ --sbb-card-with-badge-padding-block: var(--sbb-spacing-responsive-l);
133
+ --sbb-card-padding-inline: var(--sbb-spacing-responsive-l);
134
+ }
135
+
136
+ @mixin variables--button {
137
+ @media (forced-colors: active) {
138
+ --sbb-card-color: ButtonText;
139
+ }
140
+ }
141
+
142
+ @mixin variables--link {
143
+ @media (forced-colors: active) {
144
+ --sbb-card-color: LinkText;
145
+ --sbb-card-border-color: CanvasText;
146
+ }
147
+ }
148
+
149
+ @mixin rules {
150
+ // As the card has always a white/milk background, we have to fix the focus outline color
151
+ // to default color for cases where the card is used in a negative context.
152
+ --sbb-focus-outline-color: light-dark(
153
+ var(--sbb-focus-outline-color-default),
154
+ var(--sbb-focus-outline-color-dark)
155
+ );
156
+ --sbb-card-animation-duration: var(
157
+ --sbb-disable-animation-duration,
158
+ var(--sbb-animation-duration-1x)
159
+ );
160
+
161
+ display: block;
162
+ position: relative;
163
+ padding-inline: var(--sbb-card-padding-inline);
164
+ padding-block: var(--sbb-card-padding-block);
165
+ border-radius: var(--sbb-card-border-radius);
166
+ background-color: var(--sbb-card-background-color);
167
+ box-shadow: none;
168
+ transition: box-shadow var(--sbb-card-animation-duration) var(--sbb-card-animation-easing);
169
+ color: var(--sbb-card-color);
170
+
171
+ // Apply border as after element to let it be inline
172
+ &::after {
173
+ content: '';
174
+ position: absolute;
175
+ inset: 0;
176
+ background-color: transparent;
177
+ border: var(--sbb-card-border-width) var(--sbb-card-border-style) var(--sbb-card-border-color);
178
+ border-radius: var(--sbb-card-border-radius);
179
+ pointer-events: none;
180
+ }
181
+
182
+ @media (forced-colors: active) {
183
+ // Propagate card text color to title text color to ensure correct color in forced colors mode
184
+ --sbb-title-color: var(--sbb-card-color);
185
+ }
186
+ }
187
+
188
+ @mixin state--hover {
189
+ @include sbb.hover-mq($hover: true) {
190
+ --sbb-card-hover-shift: #{sbb.px-to-rem-build(-2)};
191
+
192
+ box-shadow: var(--sbb-box-shadow-level-9-hard);
193
+
194
+ @media (forced-colors: active) {
195
+ --sbb-card-border-color: Highlight;
196
+ }
197
+ }
198
+ }
199
+
200
+ @mixin wrapper {
201
+ display: block;
202
+ height: 100%;
203
+ }
@@ -0,0 +1,10 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-carousel-background-color: var(--sbb-background-color-1);
7
+ --sbb-carousel-border-radius: var(--sbb-border-radius-4x);
8
+ --sbb-carousel-box-shadow: var(--sbb-box-shadow-level-9-hard);
9
+ --sbb-carousel-paginator-padding: var(--sbb-spacing-responsive-xs);
10
+ }
@@ -0,0 +1,10 @@
1
+ @use '../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-checkbox-label-icon-flex-direction: row;
7
+ --sbb-checkbox-label-icon-justify-content: space-between;
8
+ --sbb-checkbox-label-icon-flex-grow: 1;
9
+ --sbb-checkbox-label-gap: var(--sbb-spacing-fixed-2x);
10
+ }
@@ -0,0 +1,25 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-checkbox-dimension-xs: #{sbb.px-to-rem-build(20)};
7
+ --sbb-checkbox-dimension-s: var(--sbb-size-icon-ui-small);
8
+ --sbb-checkbox-dimension-m: var(--sbb-size-icon-ui-small);
9
+ --sbb-checkbox-dimension: #{sbb.theme-pattern-select(
10
+ (
11
+ 'standard': var(--sbb-checkbox-dimension-m),
12
+ 'lean': var(--sbb-checkbox-dimension-xs),
13
+ ),
14
+ $theme
15
+ )};
16
+ --sbb-checkbox-font-size: #{sbb.theme-pattern-select(
17
+ (
18
+ 'standard': var(--sbb-text-font-size-m),
19
+ 'lean': var(--sbb-text-font-size-xs),
20
+ ),
21
+ $theme
22
+ )};
23
+ --sbb-checkbox-label-color: var(--sbb-color-color-3);
24
+ --sbb-checkbox-cursor: var(--sbb-cursor-pointer);
25
+ }
@@ -0,0 +1,16 @@
1
+ @use '../../core/styles' as sbb;
2
+
3
+ $theme: 'standard' !default;
4
+
5
+ @mixin base {
6
+ --sbb-chip-background-color: var(--sbb-background-color-3);
7
+ --sbb-chip-background-color-active: var(--sbb-background-color-1);
8
+ --sbb-chip-background-color-hover: var(--sbb-background-color-1);
9
+ --sbb-chip-border-color: var(--sbb-border-color-4-inverted);
10
+ --sbb-chip-border-radius: var(--sbb-border-radius-2x);
11
+ --sbb-chip-color: light-dark(var(--sbb-color-granite), var(--sbb-color-cloud));
12
+ --sbb-chip-color-hover: var(--sbb-color-2);
13
+ --sbb-chip-font-size: var(--sbb-text-font-size-xxs);
14
+ --sbb-chip-height: #{sbb.px-to-rem-build(24)};
15
+ --sbb-chip-label-padding-inline: var(--sbb-spacing-fixed-2x);
16
+ }