@siemens/element-theme 51.0.0-rc.6 → 51.0.0-rc.8

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 (54) hide show
  1. package/package.json +1 -1
  2. package/src/styles/_accessibility.scss +4 -2
  3. package/src/styles/_density.scss +144 -0
  4. package/src/styles/_reboot-shadow-dom.scss +5 -0
  5. package/src/styles/_root-font-size.scss +4 -2
  6. package/src/styles/_selectors.scss +3 -0
  7. package/src/styles/_themes.scss +15 -3
  8. package/src/styles/_utilities.scss +5 -0
  9. package/src/styles/_variables.scss +1 -0
  10. package/src/styles/bootstrap/_badges.scss +3 -3
  11. package/src/styles/bootstrap/_button-group.scss +3 -3
  12. package/src/styles/bootstrap/_buttons.scss +2 -3
  13. package/src/styles/bootstrap/_card.scss +18 -11
  14. package/src/styles/bootstrap/_dropdowns.scss +12 -12
  15. package/src/styles/bootstrap/_images.scss +2 -1
  16. package/src/styles/bootstrap/_modals.scss +8 -8
  17. package/src/styles/bootstrap/_nav.scss +10 -1
  18. package/src/styles/bootstrap/_pagination.scss +3 -3
  19. package/src/styles/bootstrap/_popovers.scss +1 -1
  20. package/src/styles/bootstrap/_reboot.scss +9 -3
  21. package/src/styles/bootstrap/_root.scss +2 -1
  22. package/src/styles/bootstrap/_tables.scss +8 -6
  23. package/src/styles/bootstrap/_type.scss +129 -3
  24. package/src/styles/bootstrap/_utilities.scss +40 -45
  25. package/src/styles/bootstrap/_variables.scss +63 -58
  26. package/src/styles/bootstrap/forms/_form-check.scss +13 -11
  27. package/src/styles/bootstrap/forms/_form-control.scss +19 -13
  28. package/src/styles/bootstrap/forms/_form-file.scss +2 -2
  29. package/src/styles/bootstrap/forms/_form-label.scss +1 -1
  30. package/src/styles/bootstrap/forms/_form-layout.scss +36 -0
  31. package/src/styles/bootstrap/forms/_validation.scss +2 -2
  32. package/src/styles/bootstrap/mixins/_badge-text.scss +2 -2
  33. package/src/styles/bootstrap/mixins/_form-layout.scss +7 -5
  34. package/src/styles/bootstrap/mixins/_grid.scss +3 -3
  35. package/src/styles/bootstrap/mixins/_utilities.scss +14 -3
  36. package/src/styles/components/_application-header.scss +8 -8
  37. package/src/styles/components/_datatable.scss +38 -27
  38. package/src/styles/components/_drag_drop.scss +2 -1
  39. package/src/styles/components/_layout.scss +12 -12
  40. package/src/styles/components/_list-item.scss +47 -17
  41. package/src/styles/components/_markdown.scss +8 -8
  42. package/src/styles/components/_pills.scss +3 -3
  43. package/src/styles/components/_scrollbar.scss +2 -1
  44. package/src/styles/components/_search-bar.scss +67 -0
  45. package/src/styles/components/_switch.scss +4 -4
  46. package/src/styles/components/_widgets.scss +9 -7
  47. package/src/styles/mixins/_utilities.scss +259 -0
  48. package/src/styles/variables/_si-vars.scss +13 -7
  49. package/src/styles/variables/_sizing.scss +22 -0
  50. package/src/styles/variables/_spacers.scss +53 -25
  51. package/src/styles/variables/_typography.scss +108 -40
  52. package/src/styles/variables/_utilities.scss +56 -51
  53. package/src/theme-shadow-dom.scss +17 -0
  54. package/src/theme.scss +14 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@siemens/element-theme",
3
- "version": "51.0.0-rc.6",
3
+ "version": "51.0.0-rc.8",
4
4
  "description": "Element CSS theme.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1,4 +1,6 @@
1
- :root {
1
+ @use 'selectors';
2
+
3
+ #{selectors.$root} {
2
4
  --element-animations-enabled: 1;
3
5
  }
4
6
 
@@ -7,7 +9,7 @@
7
9
  }
8
10
 
9
11
  @media (prefers-reduced-motion) {
10
- :root {
12
+ #{selectors.$root} {
11
13
  --element-animations-enabled: 0;
12
14
  }
13
15
  }
@@ -0,0 +1,144 @@
1
+ @use 'selectors';
2
+ @use 'variables/typography';
3
+
4
+ @mixin define-spacer($spacer, $block-size, $inline-size) {
5
+ --si-sys-sizing-spacing-y-#{$spacer}: #{$block-size};
6
+ --si-sys-sizing-spacing-x-#{$spacer}: #{$inline-size};
7
+ }
8
+
9
+ @mixin define-font($name, $font-size, $line-height) {
10
+ --si-sys-typography-font-size-#{$name}: #{typography.px-to-rem($font-size)};
11
+ --si-sys-typography-line-height-#{$name}: #{typography.px-to-ratio($font-size, $line-height)};
12
+ }
13
+
14
+ @mixin define-sizing($name, $size) {
15
+ --si-sys-sizing-sizing-#{$name}: #{$size};
16
+ }
17
+
18
+ @mixin define-icon-size($name, $size) {
19
+ --si-sys-sizing-icon-#{$name}: #{typography.px-to-rem($size)};
20
+ }
21
+
22
+ #{selectors.$root} {
23
+ @include define-spacer(10, 2px, 2px);
24
+ @include define-spacer(20, 4px, 4px);
25
+ @include define-spacer(30, 6px, 6px);
26
+ @include define-spacer(40, 8px, 8px);
27
+ @include define-spacer(50, 12px, 12px);
28
+ @include define-spacer(60, 16px, 16px);
29
+ @include define-spacer(70, 20px, 20px);
30
+ @include define-spacer(80, 24px, 24px);
31
+ @include define-spacer(90, 32px, 32px);
32
+ @include define-spacer(100, 40px, 40px);
33
+ @include define-spacer(110, 48px, 48px);
34
+ @include define-spacer(120, 56px, 56px);
35
+ @include define-spacer(130, 64px, 64px);
36
+ @include define-spacer(140, 96px, 96px);
37
+
38
+ @include define-font(body-sm, 12px, 16px);
39
+ @include define-font(body, 14px, 16px);
40
+ @include define-font(body-lg, 16px, 20px);
41
+ @include define-font(body-paragraph, 14px, 20px);
42
+ @include define-font(h1, 28px, 36px);
43
+ @include define-font(h2, 24px, 32px);
44
+ @include define-font(h3, 20px, 24px);
45
+ @include define-font(h4, 16px, 20px);
46
+ @include define-font(h5, 14px, 20px);
47
+ @include define-font(h6, 12px, 16px);
48
+ @include define-font(display, 32px, 40px);
49
+ @include define-font(display-lg, 40px, 52px);
50
+ @include define-font(display-xl, 48px, 64px);
51
+ @include define-font(display-xxl, 58px, 72px);
52
+ @include define-font(code-sm, 12px, 16px);
53
+ @include define-font(code, 14px, 20px);
54
+ @include define-font(code-lg, 16px, 20px);
55
+
56
+ @include define-sizing(10, 2px);
57
+ @include define-sizing(20, 4px);
58
+ @include define-sizing(30, 8px);
59
+ @include define-sizing(40, 12px);
60
+ @include define-sizing(50, 16px);
61
+ @include define-sizing(60, 20px);
62
+ @include define-sizing(70, 24px);
63
+ @include define-sizing(80, 32px);
64
+ @include define-sizing(90, 40px);
65
+ @include define-sizing(100, 48px);
66
+ @include define-sizing(110, 64px);
67
+ @include define-sizing(120, 80px);
68
+ @include define-sizing(130, 96px);
69
+ @include define-sizing(140, 120px);
70
+ @include define-sizing(150, 160px);
71
+ @include define-sizing(160, 240px);
72
+ @include define-sizing(170, 320px);
73
+ @include define-sizing(180, 480px);
74
+ @include define-sizing(190, 600px);
75
+ @include define-sizing(200, 720px);
76
+
77
+ @include define-icon-size(sm, 16px);
78
+ @include define-icon-size(md, 20px);
79
+ @include define-icon-size(lg, 24px);
80
+ @include define-icon-size(xl, 32px);
81
+ @include define-icon-size(xxl, 48px);
82
+ }
83
+
84
+ .density-compact {
85
+ @include define-spacer(10, 2px, 2px);
86
+ @include define-spacer(20, 2px, 2px);
87
+ @include define-spacer(30, 4px, 4px);
88
+ @include define-spacer(40, 6px, 6px);
89
+ @include define-spacer(50, 8px, 8px);
90
+ @include define-spacer(60, 12px, 12px);
91
+ @include define-spacer(70, 16px, 16px);
92
+ @include define-spacer(80, 20px, 20px);
93
+ @include define-spacer(90, 24px, 24px);
94
+ @include define-spacer(100, 32px, 32px);
95
+ @include define-spacer(110, 40px, 40px);
96
+ @include define-spacer(120, 48px, 48px);
97
+ @include define-spacer(130, 64px, 64px);
98
+ @include define-spacer(140, 80px, 80px);
99
+
100
+ @include define-font(body-sm, 10px, 12px);
101
+ @include define-font(body, 12px, 14px);
102
+ @include define-font(body-lg, 14px, 16px);
103
+ @include define-font(body-paragraph, 12px, 16px);
104
+ @include define-font(h1, 24px, 28px);
105
+ @include define-font(h2, 20px, 24px);
106
+ @include define-font(h3, 16px, 18px);
107
+ @include define-font(h4, 14px, 16px);
108
+ @include define-font(h5, 14px, 16px);
109
+ @include define-font(h6, 12px, 16px);
110
+ @include define-font(display, 28px, 32px);
111
+ @include define-font(display-lg, 32px, 40px);
112
+ @include define-font(display-xl, 40px, 48px);
113
+ @include define-font(display-xxl, 48px, 56px);
114
+ @include define-font(code-sm, 12px, 16px);
115
+ @include define-font(code, 14px, 20px);
116
+ @include define-font(code-lg, 16px, 20px);
117
+
118
+ @include define-sizing(10, 2px);
119
+ @include define-sizing(20, 2px);
120
+ @include define-sizing(30, 4px);
121
+ @include define-sizing(40, 8px);
122
+ @include define-sizing(50, 12px);
123
+ @include define-sizing(60, 16px);
124
+ @include define-sizing(70, 20px);
125
+ @include define-sizing(80, 24px);
126
+ @include define-sizing(90, 32px);
127
+ @include define-sizing(100, 40px);
128
+ @include define-sizing(110, 48px);
129
+ @include define-sizing(120, 64px);
130
+ @include define-sizing(130, 80px);
131
+ @include define-sizing(140, 96px);
132
+ @include define-sizing(150, 120px);
133
+ @include define-sizing(160, 160px);
134
+ @include define-sizing(170, 240px);
135
+ @include define-sizing(180, 320px);
136
+ @include define-sizing(190, 480px);
137
+ @include define-sizing(200, 600px);
138
+
139
+ @include define-icon-size(sm, 12px);
140
+ @include define-icon-size(md, 16px);
141
+ @include define-icon-size(lg, 20px);
142
+ @include define-icon-size(xl, 24px);
143
+ @include define-icon-size(xxl, 32px);
144
+ }
@@ -0,0 +1,5 @@
1
+ // by default shadow dom inherits certain browser styles from parent DOM.
2
+ // To avoid this, we reset all styles to initial values. This is a reboot for shadow dom.
3
+ :host {
4
+ all: initial;
5
+ }
@@ -1,11 +1,13 @@
1
+ @use 'selectors';
2
+
1
3
  $element-root-font-size: initial !default;
2
4
 
3
- html {
5
+ #{selectors.$document} {
4
6
  // defines the default with low specificity, i.e. easy overridable with :root
5
7
  --element-root-font-size: #{$element-root-font-size};
6
8
  }
7
9
 
8
- :root {
10
+ #{selectors.$root} {
9
11
  font-size: var(--element-root-font-size);
10
12
  }
11
13
 
@@ -0,0 +1,3 @@
1
+ $root: ':root' !default;
2
+ $document: 'html' !default;
3
+ $body: 'body' !default;
@@ -2,8 +2,9 @@
2
2
 
3
3
  $_theme-default: 'element';
4
4
  $_themes: () !default;
5
+ $_root-selector: ':root';
5
6
 
6
- @mixin configure($defaultTheme: null, $themes: ()) {
7
+ @mixin configure($defaultTheme: null, $themes: (), $rootSelector: null) {
7
8
  @if $defaultTheme {
8
9
  $_theme-default: $defaultTheme !global;
9
10
  }
@@ -11,11 +12,17 @@ $_themes: () !default;
11
12
  @if $themes {
12
13
  $_themes: $themes !global;
13
14
  }
15
+
16
+ @if $rootSelector {
17
+ $_root-selector: $rootSelector !global;
18
+ }
14
19
  }
15
20
 
16
- @mixin make-theme($vars, $name, $dark: false, $force-generate: false) {
21
+ @mixin make-theme($vars, $name, $dark: false, $force-generate: false, $root-selector: null) {
17
22
  $theme-name: '';
18
23
  $mode: '';
24
+ $actual-root-selector: $root-selector or $_root-selector;
25
+ $selector: '';
19
26
 
20
27
  @if list.index($_themes, $name) or $name == $_theme-default or $force-generate {
21
28
  @if $name != $_theme-default {
@@ -26,7 +33,12 @@ $_themes: () !default;
26
33
  $mode: '.app--dark';
27
34
  }
28
35
 
29
- :root#{$theme-name}#{$mode} {
36
+ $selector: '#{$actual-root-selector}#{$theme-name}#{$mode}';
37
+ @if $actual-root-selector == ':host' and ($theme-name != '' or $mode != '') {
38
+ $selector: ':host(#{$theme-name}#{$mode})';
39
+ }
40
+
41
+ #{$selector} {
30
42
  @each $token, $val in $vars {
31
43
  --#{$token}: #{$val};
32
44
  }
@@ -0,0 +1,5 @@
1
+ @use 'mixins/utilities';
2
+
3
+ @include utilities.background-utilities();
4
+ @include utilities.text-utilities();
5
+ @include utilities.border-utilities();
@@ -6,6 +6,7 @@
6
6
  @forward './variables/elevation';
7
7
  @forward './variables/focus';
8
8
  @forward './variables/spacers';
9
+ @forward './variables/sizing';
9
10
  @forward './variables/zindex';
10
11
  @forward './variables/layout';
11
12
  @forward './variables/si-vars';
@@ -19,7 +19,7 @@
19
19
  padding-block: variables.$badge-padding-y;
20
20
  padding-inline: variables.$badge-padding-x;
21
21
  margin-block: 0;
22
- margin-inline: map.get(spacers.$spacers, 4);
22
+ margin-inline: map.get(spacers.$spacers-inline, 4);
23
23
  line-height: variables.$badge-line-height;
24
24
  flex-shrink: 0;
25
25
  font-size: typography.$si-font-size-body;
@@ -130,8 +130,8 @@
130
130
  &:has(> .icon) {
131
131
  display: inline-flex;
132
132
  align-items: center;
133
- gap: map.get(spacers.$spacers, 1);
134
- padding-inline: map.get(spacers.$spacers, 2) variables.$badge-padding-x;
133
+ gap: map.get(spacers.$spacers-block, 1) map.get(spacers.$spacers-inline, 1);
134
+ padding-inline: map.get(spacers.$spacers-inline, 2) variables.$badge-padding-x;
135
135
  }
136
136
  }
137
137
 
@@ -69,7 +69,7 @@
69
69
  .btn.dropdown-toggle {
70
70
  aspect-ratio: 0;
71
71
  padding-block: 0;
72
- padding-inline: calc(map.get(spacers.$spacers, 1) - var(--btn-border-width, 0px));
72
+ padding-inline: calc(map.get(spacers.$spacers-inline, 1) - var(--btn-border-width, 0px));
73
73
  border-start-start-radius: 0;
74
74
  border-end-start-radius: 0;
75
75
 
@@ -97,14 +97,14 @@
97
97
 
98
98
  &.btn-icon {
99
99
  inline-size: auto;
100
- padding-inline: map.get(spacers.$spacers, 5) - 1px;
100
+ padding-inline: calc(map.get(spacers.$spacers-inline, 5) - 1px);
101
101
  }
102
102
 
103
103
  // @deprecated Will be removed in a future major version, use .btn-icon instead.
104
104
  &.icon-only {
105
105
  inline-size: auto;
106
106
  min-inline-size: unset;
107
- padding-inline: map.get(spacers.$spacers, 5) - 1px;
107
+ padding-inline: calc(map.get(spacers.$spacers-inline, 5) - 1px);
108
108
 
109
109
  .icon {
110
110
  margin-inline: 0;
@@ -19,7 +19,7 @@ button {
19
19
  :is(.btn, .btn-close) {
20
20
  --btn-icon-size: #{$btn-icon-font-size};
21
21
  --btn-font-size: #{bootstrap-variables.$btn-font-size};
22
- --btn-font-weight: #{typography.$si-font-weight-semibold};
22
+ --btn-font-weight: #{typography.$si-font-weight-sbold};
23
23
  --btn-line-height: #{bootstrap-variables.$btn-line-height};
24
24
  --btn-padding-y: #{bootstrap-variables.$btn-padding-y};
25
25
  line-height: var(--btn-line-height);
@@ -65,7 +65,7 @@ button {
65
65
  .icon {
66
66
  font-size: var(--btn-icon-size);
67
67
  margin-block: calc((var(--btn-icon-size) - var(--btn-font-size)) / -2);
68
- margin-inline-end: #{map.get(spacers.$spacers, 2)};
68
+ margin-inline-end: #{map.get(spacers.$spacers-inline, 2)};
69
69
  }
70
70
  }
71
71
 
@@ -270,7 +270,6 @@ button {
270
270
  );
271
271
  padding-block: bootstrap-variables.$input-padding-y;
272
272
  padding-inline: bootstrap-variables.$input-padding-x;
273
-
274
273
  border-radius: bootstrap-variables.$input-border-radius;
275
274
  justify-content: flex-start;
276
275
 
@@ -43,35 +43,42 @@
43
43
  }
44
44
 
45
45
  &.accent-primary {
46
- border-inline-start: map.get(spacers.$spacers, 4) solid system-tokens.$si-sys-border-accent;
46
+ border-inline-start: map.get(spacers.$spacers-inline, 4) solid
47
+ system-tokens.$si-sys-border-accent;
47
48
  }
48
49
 
49
50
  &.accent-inactive {
50
- border-inline-start: map.get(spacers.$spacers, 4) solid system-tokens.$si-sys-border-4;
51
+ border-inline-start: map.get(spacers.$spacers-inline, 4) solid system-tokens.$si-sys-border-4;
51
52
  }
52
53
 
53
54
  &.accent-info {
54
- border-inline-start: map.get(spacers.$spacers, 4) solid system-tokens.$si-sys-border-information;
55
+ border-inline-start: map.get(spacers.$spacers-inline, 4) solid
56
+ system-tokens.$si-sys-border-information;
55
57
  }
56
58
 
57
59
  &.accent-success {
58
- border-inline-start: map.get(spacers.$spacers, 4) solid system-tokens.$si-sys-border-success;
60
+ border-inline-start: map.get(spacers.$spacers-inline, 4) solid
61
+ system-tokens.$si-sys-border-success;
59
62
  }
60
63
 
61
64
  &.accent-warning {
62
- border-inline-start: map.get(spacers.$spacers, 4) solid system-tokens.$si-sys-border-warning;
65
+ border-inline-start: map.get(spacers.$spacers-inline, 4) solid
66
+ system-tokens.$si-sys-border-warning;
63
67
  }
64
68
 
65
69
  &.accent-caution {
66
- border-inline-start: map.get(spacers.$spacers, 4) solid system-tokens.$si-sys-border-caution;
70
+ border-inline-start: map.get(spacers.$spacers-inline, 4) solid
71
+ system-tokens.$si-sys-border-caution;
67
72
  }
68
73
 
69
74
  &.accent-danger {
70
- border-inline-start: map.get(spacers.$spacers, 4) solid system-tokens.$si-sys-border-danger;
75
+ border-inline-start: map.get(spacers.$spacers-inline, 4) solid
76
+ system-tokens.$si-sys-border-danger;
71
77
  }
72
78
 
73
79
  &.accent-critical {
74
- border-inline-start: map.get(spacers.$spacers, 4) solid system-tokens.$si-sys-border-critical;
80
+ border-inline-start: map.get(spacers.$spacers-inline, 4) solid
81
+ system-tokens.$si-sys-border-critical;
75
82
  }
76
83
 
77
84
  &.action-card:not(:disabled) {
@@ -133,8 +140,8 @@ button.card {
133
140
 
134
141
  + * .card-body, // for action cards, where we wrap the content
135
142
  + .card-body {
136
- margin-block-start: map.get(spacers.$spacers, 2) * -1;
137
- padding-block-start: map.get(spacers.$spacers, 2);
143
+ margin-block-start: map.get(spacers.$negative-spacers-block, 2);
144
+ padding-block-start: map.get(spacers.$spacers-block, 2);
138
145
  }
139
146
 
140
147
  + .list-group {
@@ -167,7 +174,7 @@ button.card {
167
174
  }
168
175
 
169
176
  .card-subtitle {
170
- margin-block: (-(variables.$card-title-spacer-y) * 0.5) 0;
177
+ margin-block: calc(variables.$card-title-spacer-y * -0.5) 0;
171
178
  }
172
179
 
173
180
  .card-text:last-child {
@@ -19,7 +19,7 @@
19
19
  z-index: zindex.$zindex-dropdown;
20
20
  display: none; // none by default, but block on "open" of the menu
21
21
  min-inline-size: bootstrap-variables.$dropdown-min-width;
22
- max-block-size: calc(100vb - #{map.get(spacers.$spacers, 1) * 2});
22
+ max-block-size: calc(100vb - map.get(spacers.$spacers-block, 1) * 2);
23
23
  overflow-y: auto;
24
24
  padding-block: bootstrap-variables.$dropdown-padding-y;
25
25
  padding-inline: bootstrap-variables.$dropdown-padding-x;
@@ -29,7 +29,7 @@
29
29
  background-clip: padding-box;
30
30
  border-radius: bootstrap-variables.$dropdown-border-radius;
31
31
  box-shadow: bootstrap-variables.$dropdown-box-shadow;
32
- margin-block: map.get(spacers.$spacers, 1);
32
+ margin-block: map.get(spacers.$spacers-block, 1);
33
33
  margin-inline: 0;
34
34
  text-align: start;
35
35
 
@@ -45,8 +45,8 @@
45
45
  100vb,
46
46
  calc(
47
47
  (
48
- bootstrap-variables.$dropdown-line-height + #{2 *
49
- bootstrap-variables.$dropdown-item-padding-y}
48
+ bootstrap-variables.$dropdown-line-height + 2 *
49
+ bootstrap-variables.$dropdown-item-padding-y
50
50
  ) *
51
51
  8.3125
52
52
  )
@@ -55,7 +55,7 @@
55
55
 
56
56
  :is(.dropdown-menu, .dropdown-item) {
57
57
  .icon + .item-title {
58
- padding-inline-start: map.get(spacers.$spacers, 4);
58
+ padding-inline-start: map.get(spacers.$spacers-inline, 4);
59
59
  }
60
60
  }
61
61
 
@@ -64,13 +64,13 @@
64
64
  text-align: start;
65
65
 
66
66
  .dropdown-caret {
67
- padding-inline-start: map.get(spacers.$spacers, 2);
68
- margin-block: -#{map.get(spacers.$spacers, 2)};
69
- margin-inline: auto -#{map.get(spacers.$spacers, 2)};
67
+ padding-inline-start: map.get(spacers.$spacers-inline, 2);
68
+ margin-block: map.get(spacers.$negative-spacers-block, 2);
69
+ margin-inline: auto map.get(spacers.$negative-spacers-inline, 2);
70
70
  font-size: variables.$si-icon-font-size !important; // stylelint-disable-line declaration-no-important
71
71
  transform: rotate(var(--caret-rotate));
72
72
  // adjust the origin to account for the negative margin. Otherwise the element would visually not rotate around the center.
73
- transform-origin: calc(50% + #{map.get(spacers.$spacers, 1)}) 50%;
73
+ transform-origin: calc(50% + map.get(spacers.$spacers-inline, 1)) 50%;
74
74
  transition: transform variables.$si-caret-transition-duration;
75
75
  }
76
76
 
@@ -145,11 +145,11 @@
145
145
  }
146
146
 
147
147
  .menu-end-icon {
148
- margin-inline-end: -1 * map.get(spacers.$spacers, 3);
148
+ margin-inline-end: map.get(spacers.$negative-spacers-inline, 3);
149
149
 
150
150
  &.element-record-filled {
151
151
  font-size: 1rem;
152
- margin-inline-end: -1 * map.get(spacers.$spacers, 1);
152
+ margin-inline-end: map.get(spacers.$negative-spacers-inline, 1);
153
153
  }
154
154
  }
155
155
  }
@@ -181,7 +181,7 @@
181
181
  .dropdown-divider {
182
182
  block-size: 0;
183
183
  margin-block: bootstrap-variables.$dropdown-divider-margin-y;
184
- margin-inline: map.get(spacers.$spacers, 5);
184
+ margin-inline: map.get(spacers.$spacers-inline, 5);
185
185
  overflow: hidden;
186
186
  border-block-start: 1px solid bootstrap-variables.$dropdown-divider-bg;
187
187
  }
@@ -1,3 +1,4 @@
1
+ @use 'sass:map';
1
2
  @use '../variables/spacers';
2
3
  @use './mixins/image';
3
4
  @use './variables';
@@ -35,7 +36,7 @@
35
36
  }
36
37
 
37
38
  .figure-img {
38
- margin-block-end: spacers.$spacer * 0.5;
39
+ margin-block-end: map.get(spacers.$spacers-block, 4);
39
40
  line-height: 1;
40
41
  }
41
42
 
@@ -67,7 +67,7 @@
67
67
  }
68
68
 
69
69
  .modal-dialog-scrollable {
70
- block-size: functions.subtract(100%, variables.$modal-dialog-margin * 2);
70
+ block-size: calc(100% - (variables.$modal-dialog-margin * 2));
71
71
 
72
72
  .modal-content {
73
73
  max-block-size: 100%;
@@ -82,7 +82,7 @@
82
82
  .modal-dialog-centered {
83
83
  display: flex;
84
84
  align-items: center;
85
- min-block-size: functions.subtract(100%, variables.$modal-dialog-margin * 2);
85
+ min-block-size: calc(100% - (variables.$modal-dialog-margin * 2));
86
86
  }
87
87
 
88
88
  .modal-header {
@@ -97,7 +97,7 @@
97
97
 
98
98
  .icon {
99
99
  font-size: si-vars.$si-icon-font-size-lg;
100
- margin-inline-end: map.get(spacers.$spacers, 4);
100
+ margin-inline-end: map.get(spacers.$spacers-inline, 4);
101
101
  }
102
102
 
103
103
  .modal-title {
@@ -141,7 +141,7 @@
141
141
  // Enable `flex-grow: 1` so that the body take up as much space as possible
142
142
  // when there should be a fixed height on `.modal-dialog`.
143
143
  flex: 1 1 auto;
144
- padding-block: map.get(spacers.$spacers, 5) variables.$modal-inner-padding;
144
+ padding-block: map.get(spacers.$spacers-block, 5) variables.$modal-inner-padding;
145
145
  // use margin instead of padding so that the scrollbar isn't on the edge of the dialog
146
146
  margin-inline: variables.$modal-inner-padding;
147
147
  padding-inline: 0;
@@ -157,7 +157,7 @@
157
157
  flex-shrink: 0;
158
158
  align-items: center; // vertically center
159
159
  justify-content: flex-end; // Right align buttons with flex property because text-align doesn't work on flex items
160
- padding: (variables.$modal-inner-padding - variables.$modal-footer-margin-between * 0.5);
160
+ padding: calc(variables.$modal-inner-padding - variables.$modal-footer-margin-between * 0.5);
161
161
  border-end-start-radius: variables.$modal-content-inner-border-radius;
162
162
  border-end-end-radius: variables.$modal-content-inner-border-radius;
163
163
 
@@ -165,7 +165,7 @@
165
165
  // This solution is far from ideal because of the universal selector usage,
166
166
  // but is needed to fix https://github.com/twbs/bootstrap/issues/24800
167
167
  > * {
168
- margin: (variables.$modal-footer-margin-between * 0.5);
168
+ margin: calc(variables.$modal-footer-margin-between * 0.5);
169
169
  }
170
170
  }
171
171
 
@@ -186,11 +186,11 @@
186
186
  }
187
187
 
188
188
  .modal-dialog-scrollable {
189
- block-size: functions.subtract(100%, variables.$modal-dialog-margin-y-sm-up * 2);
189
+ block-size: calc(100% - (variables.$modal-dialog-margin-y-sm-up * 2));
190
190
  }
191
191
 
192
192
  .modal-dialog-centered {
193
- min-block-size: functions.subtract(100%, variables.$modal-dialog-margin-y-sm-up * 2);
193
+ min-block-size: calc(100% - (variables.$modal-dialog-margin-y-sm-up * 2));
194
194
  }
195
195
 
196
196
  .modal-content {
@@ -1,5 +1,6 @@
1
1
  @use '../variables/system-tokens';
2
2
  @use '../variables/spacers';
3
+ @use '../variables/typography';
3
4
  @use './variables';
4
5
 
5
6
  @use 'sass:map';
@@ -56,7 +57,7 @@ $nav-tabs-min-width: 100px;
56
57
  position: absolute;
57
58
  inset-inline: 0;
58
59
  inset-block-end: 0;
59
- block-size: variables.$nav-tabs-border-width;
60
+ block-size: 1px;
60
61
  background: system-tokens.$si-sys-border-4;
61
62
  }
62
63
 
@@ -78,6 +79,7 @@ $nav-tabs-min-width: 100px;
78
79
  border-start-start-radius: variables.$btn-border-radius;
79
80
  border-start-end-radius: variables.$btn-border-radius;
80
81
  cursor: pointer;
82
+ font-weight: typography.$si-font-weight-body-lg;
81
83
 
82
84
  .badge {
83
85
  margin-inline-end: 0;
@@ -85,12 +87,19 @@ $nav-tabs-min-width: 100px;
85
87
 
86
88
  &.active {
87
89
  border-color: system-tokens.$si-sys-border-accent-hover;
90
+ font-size: typography.$si-font-size-body-lg-bold;
91
+ font-weight: typography.$si-font-weight-body-lg-bold;
92
+ line-height: typography.$si-line-height-body-lg-bold;
88
93
  }
89
94
 
90
95
  &:hover {
91
96
  isolation: isolate;
92
97
  }
93
98
 
99
+ &:not(.active):hover {
100
+ color: variables.$nav-link-color;
101
+ }
102
+
94
103
  &.disabled {
95
104
  color: variables.$nav-link-disabled-color;
96
105
  background-color: transparent;
@@ -11,7 +11,7 @@ $page-button-size: 1.5rem;
11
11
  .pagination {
12
12
  display: flex;
13
13
  margin: 0;
14
- padding-block: map.get(spacers.$spacers, 4);
14
+ padding-block: map.get(spacers.$spacers-block, 4);
15
15
  @include lists.list-unstyled();
16
16
  }
17
17
 
@@ -23,8 +23,8 @@ $page-button-size: 1.5rem;
23
23
  min-inline-size: $page-button-size;
24
24
  block-size: $page-button-size;
25
25
  padding-block: 0;
26
- padding-inline: map.get(spacers.$spacers, 2);
27
- margin-inline: map.get(spacers.$spacers, 1);
26
+ padding-inline: map.get(spacers.$spacers-inline, 2);
27
+ margin-inline: map.get(spacers.$spacers-inline, 1);
28
28
  background: transparent;
29
29
  font-size: typography.$si-font-size-h5;
30
30
  font-weight: typography.$si-font-weight-h5;
@@ -74,7 +74,7 @@ $si-popover-bg: var(--popover-bg-color, variables.$popover-bg);
74
74
  }
75
75
 
76
76
  + .popover-body {
77
- padding-block-start: map.get(spacers.$spacers, 4);
77
+ padding-block-start: map.get(spacers.$spacers-block, 4);
78
78
  }
79
79
 
80
80
  &:has(> .icon) {
@@ -1,4 +1,5 @@
1
1
  @use '../variables/typography';
2
+ @use '../selectors';
2
3
  @use './variables';
3
4
 
4
5
  // stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
@@ -25,7 +26,7 @@
25
26
  // Ability to the value of the root font sizes, affecting the value of `rem`.
26
27
  // null by default, thus nothing is generated.
27
28
 
28
- :root {
29
+ #{selectors.$root} {
29
30
  @if variables.$enable-smooth-scroll {
30
31
  @media (prefers-reduced-motion: no-preference) {
31
32
  scroll-behavior: smooth;
@@ -41,7 +42,7 @@
41
42
  // 4. Change the default tap highlight to be completely transparent in iOS.
42
43
 
43
44
  // scss-docs-start reboot-body-rules
44
- body {
45
+ #{selectors.$body} {
45
46
  margin: 0; // 1
46
47
  font-family: var(--#{variables.$variable-prefix}body-font-family);
47
48
  font-size: var(--#{variables.$variable-prefix}body-font-size);
@@ -341,6 +342,11 @@ table {
341
342
  }
342
343
 
343
344
  caption {
345
+ @include typography.si-font(
346
+ typography.$si-font-size-caption,
347
+ typography.$si-line-height-caption,
348
+ typography.$si-font-weight-caption
349
+ );
344
350
  padding-block: variables.$table-cell-padding-y;
345
351
  color: variables.$table-caption-color;
346
352
  text-align: start;
@@ -408,7 +414,7 @@ textarea {
408
414
  input,
409
415
  textarea {
410
416
  &:disabled {
411
- color: variables.$text-muted;
417
+ color: variables.$text-disabled;
412
418
 
413
419
  &::placeholder {
414
420
  color: variables.$input-placeholder-disabled-color;