@carbon/element-styles 0.3.15 → 0.3.16-rc.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 (79) hide show
  1. package/README.md +21 -0
  2. package/css/prebuilt/editorial.css +1 -1
  3. package/css/prebuilt/expressive.css +1 -1
  4. package/css/prebuilt/productive.css +1 -1
  5. package/package.json +2 -2
  6. package/scss/_config.scss +9 -0
  7. package/scss/elements/_heading/index.scss +7 -4
  8. package/scss/elements/_input/index.scss +50 -47
  9. package/scss/elements/_labelled-input/index.scss +44 -41
  10. package/scss/elements/_layer/index.scss +17 -14
  11. package/scss/elements/abbreviation/index.scss +7 -4
  12. package/scss/elements/address/index.scss +7 -4
  13. package/scss/elements/anchor/index.scss +33 -30
  14. package/scss/elements/block-quotation/index.scss +30 -27
  15. package/scss/elements/body/index.scss +7 -4
  16. package/scss/elements/bold-text/index.scss +5 -2
  17. package/scss/elements/button/index.scss +183 -180
  18. package/scss/elements/checkbox/index.scss +40 -37
  19. package/scss/elements/code/index.scss +9 -6
  20. package/scss/elements/color-input/index.scss +70 -67
  21. package/scss/elements/combo-box/index.scss +35 -32
  22. package/scss/elements/date-input/index.scss +24 -21
  23. package/scss/elements/date-time-input/index.scss +24 -21
  24. package/scss/elements/deleted-text/index.scss +8 -5
  25. package/scss/elements/description-list/index.scss +17 -14
  26. package/scss/elements/details/index.scss +53 -48
  27. package/scss/elements/dialog/index.scss +173 -170
  28. package/scss/elements/email-input/index.scss +16 -13
  29. package/scss/elements/fieldset/index.scss +15 -12
  30. package/scss/elements/file-input/index.scss +53 -50
  31. package/scss/elements/footer/index.scss +9 -6
  32. package/scss/elements/header-navigation/index.scss +101 -98
  33. package/scss/elements/heading-level-1/index.scss +6 -3
  34. package/scss/elements/heading-level-2/index.scss +6 -3
  35. package/scss/elements/heading-level-3/index.scss +6 -3
  36. package/scss/elements/heading-level-4/index.scss +6 -3
  37. package/scss/elements/heading-level-5/index.scss +6 -3
  38. package/scss/elements/heading-level-6/index.scss +6 -3
  39. package/scss/elements/horizontal-rule/index.scss +12 -9
  40. package/scss/elements/image/index.scss +6 -2
  41. package/scss/elements/inline-loading/index.scss +34 -31
  42. package/scss/elements/inline-quotation/index.scss +6 -3
  43. package/scss/elements/inserted-text/index.scss +9 -6
  44. package/scss/elements/italic-text/index.scss +5 -2
  45. package/scss/elements/keyboard-input/index.scss +9 -6
  46. package/scss/elements/label/index.scss +22 -19
  47. package/scss/elements/main/index.scss +7 -4
  48. package/scss/elements/marked-text/index.scss +7 -4
  49. package/scss/elements/menu/index.scss +71 -64
  50. package/scss/elements/meter/index.scss +45 -42
  51. package/scss/elements/number-input/index.scss +16 -12
  52. package/scss/elements/ordered-list/index.scss +25 -22
  53. package/scss/elements/paragraph/index.scss +8 -5
  54. package/scss/elements/password-input/index.scss +17 -13
  55. package/scss/elements/popover/index.scss +75 -72
  56. package/scss/elements/preformatted/index.scss +18 -15
  57. package/scss/elements/progress-bar/index.scss +71 -68
  58. package/scss/elements/radio-button/index.scss +35 -32
  59. package/scss/elements/range-input/index.scss +42 -39
  60. package/scss/elements/search-input/index.scss +21 -18
  61. package/scss/elements/select/index.scss +36 -33
  62. package/scss/elements/side-navigation/index.scss +141 -137
  63. package/scss/elements/small-text/index.scss +7 -4
  64. package/scss/elements/table/index.scss +93 -90
  65. package/scss/elements/tabs/index.scss +155 -152
  66. package/scss/elements/telephone-number-input/index.scss +16 -13
  67. package/scss/elements/text-area/index.scss +21 -18
  68. package/scss/elements/text-input/index.scss +16 -13
  69. package/scss/elements/tile/index.scss +49 -45
  70. package/scss/elements/time-input/index.scss +24 -21
  71. package/scss/elements/toggle/index.scss +71 -68
  72. package/scss/elements/tooltip/index.scss +16 -13
  73. package/scss/elements/tree-view/index.scss +86 -82
  74. package/scss/elements/unordered-list/index.scss +21 -18
  75. package/scss/elements/url-input/index.scss +16 -13
  76. package/scss/prebuilt/editorial/_elements.scss +37 -33
  77. package/scss/prebuilt/expressive/_elements.scss +75 -71
  78. package/scss/prebuilt/productive/_elements.scss +71 -67
  79. package/scss/utilities/_cascade-layer.scss +33 -0
@@ -11,6 +11,7 @@
11
11
  @use "@carbon/styles/scss/spacing";
12
12
 
13
13
  @use "../../layout";
14
+ @use "../../utilities/cascade-layer";
14
15
 
15
16
  $config: () !default;
16
17
 
@@ -24,9 +25,11 @@ $-default-config: (
24
25
  @mixin styles($config: $config) {
25
26
  $props: map.deep-merge($-default-config, $config);
26
27
 
27
- #{map.get($props, "selector")} {
28
- padding-inline: spacing.$spacing-07;
29
- padding-block-start: spacing.$spacing-07;
30
- padding-block-end: spacing.$spacing-10;
28
+ @include cascade-layer.wrap {
29
+ #{map.get($props, "selector")} {
30
+ padding-inline: spacing.$spacing-07;
31
+ padding-block-start: spacing.$spacing-07;
32
+ padding-block-end: spacing.$spacing-10;
33
+ }
31
34
  }
32
35
  }
@@ -12,6 +12,7 @@
12
12
  @use "@carbon/styles/scss/theme";
13
13
 
14
14
  @use "../../layout";
15
+ @use "../../utilities/cascade-layer";
15
16
 
16
17
  $config: () !default;
17
18
 
@@ -25,9 +26,11 @@ $-default-config: (
25
26
  @mixin styles($config: $config) {
26
27
  $props: map.deep-merge($-default-config, $config);
27
28
 
28
- #{map.get($props, "selector")} {
29
- padding-inline: spacing.$spacing-01;
30
- background-color: colors.$yellow-20;
31
- color: colors.$black;
29
+ @include cascade-layer.wrap {
30
+ #{map.get($props, "selector")} {
31
+ padding-inline: spacing.$spacing-01;
32
+ background-color: colors.$yellow-20;
33
+ color: colors.$black;
34
+ }
32
35
  }
33
36
  }
@@ -13,6 +13,7 @@
13
13
  @use "@carbon/styles/scss/utilities/focus-outline";
14
14
 
15
15
  @use "../../layout";
16
+ @use "../../utilities/cascade-layer";
16
17
  @use "../../utilities/icons";
17
18
  @use "../../utilities/guards";
18
19
 
@@ -28,83 +29,89 @@ $-default-config: (
28
29
  @mixin styles($config: $config) {
29
30
  $props: map.deep-merge($-default-config, $config);
30
31
 
31
- #{map.get($props, "selector")} {
32
- @include box-shadow.box-shadow;
33
- background-color: theme.$layer;
34
- list-style: none;
35
- margin: 0;
36
- padding-inline: 0;
37
- padding-block: spacing.$spacing-02;
38
- inline-size: 14rem;
39
-
40
- & li[role="menuitem"],
41
- & li[role="menuitemcheckbox"],
42
- & li[role="menuitemradio"] {
43
- @include layout.mode--body-compact;
44
- display: flex;
45
- column-gap: spacing.$spacing-03;
46
- color: theme.$text-secondary;
47
- padding-inline: layout.$density--padding;
48
- block-size: layout.$size--block-size;
49
- padding-block-start: layout.$size--padding-block-start;
50
- padding-block-end: layout.$size--padding-block-end;
51
- box-sizing: border-box;
52
- cursor: pointer;
53
-
54
- @include guards.hover {
55
- &:hover {
56
- background-color: theme.$layer-hover;
57
- color: theme.$text-primary;
32
+ @include cascade-layer.wrap {
33
+ #{map.get($props, "selector")} {
34
+ @include box-shadow.box-shadow;
35
+ background-color: theme.$layer;
36
+ list-style: none;
37
+ margin: 0;
38
+ padding-inline: 0;
39
+ padding-block: spacing.$spacing-02;
40
+ inline-size: 14rem;
41
+
42
+ & li[role="menuitem"],
43
+ & li[role="menuitemcheckbox"],
44
+ & li[role="menuitemradio"] {
45
+ @include layout.mode--body-compact;
46
+ display: flex;
47
+ column-gap: spacing.$spacing-03;
48
+ color: theme.$text-secondary;
49
+ padding-inline: layout.$density--padding;
50
+ block-size: layout.$size--block-size;
51
+ padding-block-start: layout.$size--padding-block-start;
52
+ padding-block-end: layout.$size--padding-block-end;
53
+ box-sizing: border-box;
54
+ cursor: pointer;
55
+
56
+ @include guards.hover {
57
+ &:hover {
58
+ background-color: theme.$layer-hover;
59
+ color: theme.$text-primary;
60
+ }
61
+ }
62
+
63
+ &:active {
64
+ background-color: theme.$layer-active;
65
+ }
66
+
67
+ &:focus {
68
+ @include focus-outline.focus-outline("outline");
58
69
  }
59
70
  }
60
71
 
61
- &:active {
62
- background-color: theme.$layer-active;
72
+ &:has(li[aria-checked]) {
73
+ & li[role="menuitem"]::before,
74
+ & li[role="menuitemcheckbox"]::before,
75
+ & li[role="menuitemradio"]::before {
76
+ content: "";
77
+ display: block;
78
+ inline-size: 1rem;
79
+ translate: 0 0.0625rem;
80
+ }
63
81
  }
64
82
 
65
- &:focus {
66
- @include focus-outline.focus-outline("outline");
83
+ & li[role="menuitemcheckbox"][aria-checked="true"]::before,
84
+ & li[role="menuitemradio"][aria-checked="true"]::before {
85
+ @include icons.checkmark;
67
86
  }
68
- }
69
87
 
70
- &:has(li[aria-checked]) {
71
- & li[role="menuitem"]::before,
72
- & li[role="menuitemcheckbox"]::before,
73
- & li[role="menuitemradio"]::before {
74
- content: "";
75
- display: block;
88
+ & li > svg {
89
+ fill: currentColor;
90
+ block-size: 1rem;
76
91
  inline-size: 1rem;
77
92
  translate: 0 0.0625rem;
78
93
  }
79
- }
80
-
81
- & li[role="menuitemcheckbox"][aria-checked="true"]::before,
82
- & li[role="menuitemradio"][aria-checked="true"]::before {
83
- @include icons.checkmark;
84
- }
85
-
86
- & li > svg {
87
- fill: currentColor;
88
- block-size: 1rem;
89
- inline-size: 1rem;
90
- translate: 0 0.0625rem;
91
- }
92
94
 
93
- &:has(li > svg)
94
- li:not(:has(> svg)):is([role="menuitem"], [role="menuitemcheckbox"], [role="menuitemradio"]) {
95
- column-gap: calc(spacing.$spacing-03 + 1rem + spacing.$spacing-03);
96
- }
95
+ &:has(li > svg)
96
+ li:not(:has(> svg)):is(
97
+ [role="menuitem"],
98
+ [role="menuitemcheckbox"],
99
+ [role="menuitemradio"]
100
+ ) {
101
+ column-gap: calc(spacing.$spacing-03 + 1rem + spacing.$spacing-03);
102
+ }
97
103
 
98
- & li[role="separator"] {
99
- block-size: 0.0625rem;
100
- background-color: theme.$border-subtle;
101
- margin-block: spacing.$spacing-02;
102
- }
104
+ & li[role="separator"] {
105
+ block-size: 0.0625rem;
106
+ background-color: theme.$border-subtle;
107
+ margin-block: spacing.$spacing-02;
108
+ }
103
109
 
104
- & ul[role="group"] {
105
- list-style: none;
106
- margin: 0;
107
- padding: 0;
110
+ & ul[role="group"] {
111
+ list-style: none;
112
+ margin: 0;
113
+ padding: 0;
114
+ }
108
115
  }
109
116
  }
110
117
  }
@@ -12,6 +12,7 @@
12
12
  @use "../label";
13
13
 
14
14
  @use "../../layout";
15
+ @use "../../utilities/cascade-layer";
15
16
 
16
17
  $config: () !default;
17
18
 
@@ -27,48 +28,50 @@ $-default-config: (
27
28
  @mixin styles($config: $config) {
28
29
  $props: map.deep-merge($-default-config, $config);
29
30
 
30
- #{map.get($props, "selector")} {
31
- @include label.styles(
32
- (
33
- selector: "&",
34
- axis: map.get($props, "axis"),
35
- )
36
- );
37
-
38
- meter {
39
- min-inline-size: 6rem;
40
- background: theme.$layer;
41
- block-size: 0.5rem;
42
- inline-size: 100%;
43
- }
44
-
45
- meter::-webkit-meter-bar {
46
- background: theme.$layer;
47
- block-size: 0.5rem;
48
- }
49
-
50
- meter::-webkit-meter-optimum-value {
51
- background: theme.$support-success;
52
- }
53
-
54
- meter:-moz-meter-optimum::-moz-meter-bar {
55
- background: theme.$support-success;
56
- }
57
-
58
- meter::-webkit-meter-suboptimum-value {
59
- background: theme.$support-caution-minor;
60
- }
61
-
62
- meter:-moz-meter-sub-optimum::-moz-meter-bar {
63
- background: theme.$support-caution-minor;
64
- }
65
-
66
- meter::-webkit-meter-even-less-good-value {
67
- background: theme.$support-caution-major;
68
- }
69
-
70
- meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
71
- background: theme.$support-caution-major;
31
+ @include cascade-layer.wrap {
32
+ #{map.get($props, "selector")} {
33
+ @include label.styles(
34
+ (
35
+ selector: "&",
36
+ axis: map.get($props, "axis"),
37
+ )
38
+ );
39
+
40
+ meter {
41
+ min-inline-size: 6rem;
42
+ background: theme.$layer;
43
+ block-size: 0.5rem;
44
+ inline-size: 100%;
45
+ }
46
+
47
+ meter::-webkit-meter-bar {
48
+ background: theme.$layer;
49
+ block-size: 0.5rem;
50
+ }
51
+
52
+ meter::-webkit-meter-optimum-value {
53
+ background: theme.$support-success;
54
+ }
55
+
56
+ meter:-moz-meter-optimum::-moz-meter-bar {
57
+ background: theme.$support-success;
58
+ }
59
+
60
+ meter::-webkit-meter-suboptimum-value {
61
+ background: theme.$support-caution-minor;
62
+ }
63
+
64
+ meter:-moz-meter-sub-optimum::-moz-meter-bar {
65
+ background: theme.$support-caution-minor;
66
+ }
67
+
68
+ meter::-webkit-meter-even-less-good-value {
69
+ background: theme.$support-caution-major;
70
+ }
71
+
72
+ meter:-moz-meter-sub-sub-optimum::-moz-meter-bar {
73
+ background: theme.$support-caution-major;
74
+ }
72
75
  }
73
76
  }
74
77
  }
@@ -9,6 +9,8 @@
9
9
 
10
10
  @use "../_labelled-input";
11
11
 
12
+ @use "../../utilities/cascade-layer";
13
+
12
14
  $config: () !default;
13
15
 
14
16
  $-default-config: (
@@ -23,17 +25,19 @@ $-default-config: (
23
25
  @mixin styles($config: $config) {
24
26
  $props: map.deep-merge($-default-config, $config);
25
27
 
26
- #{map.get($props, "selector")} {
27
- @include labelled-input.styles(
28
- (
29
- label: (
30
- selector: "&",
31
- axis: map.get($props, "axis"),
32
- ),
33
- input: (
34
- selector: 'input[type="number"]',
35
- ),
36
- )
37
- );
28
+ @include cascade-layer.wrap {
29
+ #{map.get($props, "selector")} {
30
+ @include labelled-input.styles(
31
+ (
32
+ label: (
33
+ selector: "&",
34
+ axis: map.get($props, "axis"),
35
+ ),
36
+ input: (
37
+ selector: 'input[type="number"]',
38
+ ),
39
+ )
40
+ );
41
+ }
38
42
  }
39
43
  }
@@ -10,6 +10,7 @@
10
10
  @use "@carbon/styles/scss/spacing";
11
11
 
12
12
  @use "../../layout";
13
+ @use "../../utilities/cascade-layer";
13
14
 
14
15
  $config: () !default;
15
16
 
@@ -23,28 +24,30 @@ $-default-config: (
23
24
  @mixin styles($config: $config) {
24
25
  $props: map.deep-merge($-default-config, $config);
25
26
 
26
- #{map.get($props, "selector")} {
27
- list-style-type: decimal;
28
- padding: 0;
29
- margin-inline-start: layout.$density--padding;
30
-
31
- & li {
32
- @include layout.mode--body-compact;
33
- max-inline-size: layout.$mode--max-inline-size;
34
- margin-inline-start: spacing.$spacing-03;
35
- }
36
-
37
- & li p {
38
- @include layout.mode--body-compact;
39
- margin-block: 0;
40
- }
41
-
42
- & ol {
43
- list-style-type: lower-alpha;
44
- }
45
-
46
- & ol ol {
47
- list-style-type: lower-roman;
27
+ @include cascade-layer.wrap {
28
+ #{map.get($props, "selector")} {
29
+ list-style-type: decimal;
30
+ padding: 0;
31
+ margin-inline-start: layout.$density--padding;
32
+
33
+ & li {
34
+ @include layout.mode--body-compact;
35
+ max-inline-size: layout.$mode--max-inline-size;
36
+ margin-inline-start: spacing.$spacing-03;
37
+ }
38
+
39
+ & li p {
40
+ @include layout.mode--body-compact;
41
+ margin-block: 0;
42
+ }
43
+
44
+ & ol {
45
+ list-style-type: lower-alpha;
46
+ }
47
+
48
+ & ol ol {
49
+ list-style-type: lower-roman;
50
+ }
48
51
  }
49
52
  }
50
53
  }
@@ -8,6 +8,7 @@
8
8
  @use "sass:map";
9
9
 
10
10
  @use "../../layout";
11
+ @use "../../utilities/cascade-layer";
11
12
 
12
13
  $config: () !default;
13
14
 
@@ -21,10 +22,12 @@ $-default-config: (
21
22
  @mixin styles($config: $config) {
22
23
  $props: map.deep-merge($-default-config, $config);
23
24
 
24
- #{map.get($props, "selector")} {
25
- @include layout.mode--body;
26
- max-inline-size: layout.$mode--max-inline-size;
27
- margin-block: layout.$mode--margin-block;
28
- text-wrap: pretty;
25
+ @include cascade-layer.wrap {
26
+ #{map.get($props, "selector")} {
27
+ @include layout.mode--body;
28
+ max-inline-size: layout.$mode--max-inline-size;
29
+ margin-block: layout.$mode--margin-block;
30
+ text-wrap: pretty;
31
+ }
29
32
  }
30
33
  }
@@ -9,6 +9,8 @@
9
9
 
10
10
  @use "../_labelled-input";
11
11
 
12
+ @use "../../utilities/cascade-layer";
13
+
12
14
  $config: () !default;
13
15
 
14
16
  $-default-config: (
@@ -23,18 +25,20 @@ $-default-config: (
23
25
  @mixin styles($config: $config) {
24
26
  $props: map.deep-merge($-default-config, $config);
25
27
 
26
- #{map.get($props, "selector")} {
27
- @include labelled-input.styles(
28
- (
29
- label: (
30
- selector: "&",
31
- axis: map.get($props, "axis"),
32
- ),
33
- input: (
34
- selector: 'input[type="password"]',
35
- ),
36
- input-invalid-slot: "after",
37
- )
38
- );
28
+ @include cascade-layer.wrap {
29
+ #{map.get($props, "selector")} {
30
+ @include labelled-input.styles(
31
+ (
32
+ label: (
33
+ selector: "&",
34
+ axis: map.get($props, "axis"),
35
+ ),
36
+ input: (
37
+ selector: 'input[type="password"]',
38
+ ),
39
+ input-invalid-slot: "after",
40
+ )
41
+ );
42
+ }
39
43
  }
40
44
  }
@@ -16,6 +16,7 @@
16
16
  @use "../_layer";
17
17
 
18
18
  @use "../../layout";
19
+ @use "../../utilities/cascade-layer";
19
20
  @use "../../utilities/tokens";
20
21
 
21
22
  $config: () !default;
@@ -39,97 +40,99 @@ $-default-config: (
39
40
  $-caret-size: 0.75rem;
40
41
  }
41
42
 
42
- #{map.get($props, "selector")} {
43
- @include layer.styles;
44
- @include box-shadow.box-shadow;
45
- @include layout.mode--body;
46
- margin: 0;
47
- position: fixed;
48
- border: none;
49
- border-radius: 0.125rem;
50
- padding: layout.$density--padding;
51
- overflow: visible;
52
-
53
- &::before {
43
+ @include cascade-layer.wrap {
44
+ #{map.get($props, "selector")} {
45
+ @include layer.styles;
54
46
  @include box-shadow.box-shadow;
55
- content: "";
56
- position: absolute;
57
- display: block;
58
- block-size: $-caret-size;
59
- inline-size: $-caret-size;
60
- background-color: inherit;
61
- clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 0%);
62
- }
63
-
64
- $-alignment: string.split(map.get($props, "alignment"), " ");
65
- $-alignment-block: list.nth($-alignment, 1);
66
- $-alignment-inline: list.nth($-alignment, 2);
67
-
68
- @if $-alignment-block == "start" {
69
- position-area: start center;
70
- inset-block-end: calc(spacing.$spacing-02 + ($-caret-size * 0.5));
71
- inset-block-start: unset;
47
+ @include layout.mode--body;
48
+ margin: 0;
49
+ position: fixed;
50
+ border: none;
51
+ border-radius: 0.125rem;
52
+ padding: layout.$density--padding;
53
+ overflow: visible;
72
54
 
73
55
  &::before {
74
- inset-block-end: calc($-caret-size * -0.5);
75
- inset-block-start: unset;
76
- rotate: 135deg;
56
+ @include box-shadow.box-shadow;
57
+ content: "";
58
+ position: absolute;
59
+ display: block;
60
+ block-size: $-caret-size;
61
+ inline-size: $-caret-size;
62
+ background-color: inherit;
63
+ clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 0%);
77
64
  }
78
- }
79
-
80
- @if $-alignment-block == "end" {
81
- position-area: end center;
82
- inset-block-start: calc(spacing.$spacing-02 + ($-caret-size * 0.5));
83
- inset-block-end: unset;
84
65
 
85
- &::before {
86
- inset-block-start: calc($-caret-size * -0.5);
87
- inset-block-end: unset;
88
- rotate: -45deg;
89
- }
90
- }
66
+ $-alignment: string.split(map.get($props, "alignment"), " ");
67
+ $-alignment-block: list.nth($-alignment, 1);
68
+ $-alignment-inline: list.nth($-alignment, 2);
91
69
 
92
- @if $-alignment-block == "start" or $-alignment-block == "end" {
93
- @if $-alignment-inline == "start" {
94
- translate: calc(-50% + layout.$density--padding + spacing.$spacing-02) 0;
70
+ @if $-alignment-block == "start" {
71
+ position-area: start center;
72
+ inset-block-end: calc(spacing.$spacing-02 + ($-caret-size * 0.5));
73
+ inset-block-start: unset;
95
74
 
96
75
  &::before {
97
- inset-inline-start: -get-caret-offset("end", $-caret-size);
76
+ inset-block-end: calc($-caret-size * -0.5);
77
+ inset-block-start: unset;
78
+ rotate: 135deg;
98
79
  }
99
- } @else if $-alignment-inline == "end" {
100
- translate: calc(50% - layout.$density--padding - spacing.$spacing-02) 0;
80
+ }
81
+
82
+ @if $-alignment-block == "end" {
83
+ position-area: end center;
84
+ inset-block-start: calc(spacing.$spacing-02 + ($-caret-size * 0.5));
85
+ inset-block-end: unset;
101
86
 
102
87
  &::before {
103
- inset-inline-start: -get-caret-offset("start", $-caret-size);
88
+ inset-block-start: calc($-caret-size * -0.5);
89
+ inset-block-end: unset;
90
+ rotate: -45deg;
104
91
  }
105
- } @else if $-alignment-inline == "center" {
106
- &::before {
107
- inset-inline-start: -get-caret-offset("center", $-caret-size);
92
+ }
93
+
94
+ @if $-alignment-block == "start" or $-alignment-block == "end" {
95
+ @if $-alignment-inline == "start" {
96
+ translate: calc(-50% + layout.$density--padding + spacing.$spacing-02) 0;
97
+
98
+ &::before {
99
+ inset-inline-start: -get-caret-offset("end", $-caret-size);
100
+ }
101
+ } @else if $-alignment-inline == "end" {
102
+ translate: calc(50% - layout.$density--padding - spacing.$spacing-02) 0;
103
+
104
+ &::before {
105
+ inset-inline-start: -get-caret-offset("start", $-caret-size);
106
+ }
107
+ } @else if $-alignment-inline == "center" {
108
+ &::before {
109
+ inset-inline-start: -get-caret-offset("center", $-caret-size);
110
+ }
108
111
  }
109
112
  }
110
- }
111
113
 
112
- @if map.get($props, "alignment") == "center start" {
113
- position-area: center start;
114
- translate: calc((spacing.$spacing-02 + ($-caret-size * 0.5)) * -1);
114
+ @if map.get($props, "alignment") == "center start" {
115
+ position-area: center start;
116
+ translate: calc((spacing.$spacing-02 + ($-caret-size * 0.5)) * -1);
115
117
 
116
- &::before {
117
- inset-block-start: -get-caret-offset("center", $-caret-size);
118
- inset-block-end: unset;
119
- inset-inline-end: calc($-caret-size * -0.5);
120
- rotate: 45deg;
118
+ &::before {
119
+ inset-block-start: -get-caret-offset("center", $-caret-size);
120
+ inset-block-end: unset;
121
+ inset-inline-end: calc($-caret-size * -0.5);
122
+ rotate: 45deg;
123
+ }
121
124
  }
122
- }
123
125
 
124
- @if map.get($props, "alignment") == "center end" {
125
- position-area: center end;
126
- translate: calc(spacing.$spacing-02 + ($-caret-size * 0.5));
126
+ @if map.get($props, "alignment") == "center end" {
127
+ position-area: center end;
128
+ translate: calc(spacing.$spacing-02 + ($-caret-size * 0.5));
127
129
 
128
- &::before {
129
- inset-block-start: -get-caret-offset("center", $-caret-size);
130
- inset-block-end: unset;
131
- inset-inline-start: calc($-caret-size * -0.5);
132
- rotate: -135deg;
130
+ &::before {
131
+ inset-block-start: -get-caret-offset("center", $-caret-size);
132
+ inset-block-end: unset;
133
+ inset-inline-start: calc($-caret-size * -0.5);
134
+ rotate: -135deg;
135
+ }
133
136
  }
134
137
  }
135
138
  }