@itwin/itwinui-css 0.39.0 → 0.41.1

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 (40) hide show
  1. package/css/all.css +525 -280
  2. package/css/breadcrumbs.css +31 -15
  3. package/css/button.css +228 -137
  4. package/css/code.css +2 -0
  5. package/css/header.css +34 -16
  6. package/css/inputs.css +34 -44
  7. package/css/side-navigation.css +27 -24
  8. package/css/table.css +11 -3
  9. package/css/tile.css +51 -40
  10. package/css/tree.css +107 -0
  11. package/css/user-icon.css +3 -1
  12. package/package.json +1 -1
  13. package/scss/breadcrumbs/breadcrumbs.scss +1 -1
  14. package/scss/button/borderless.scss +37 -39
  15. package/scss/button/button-group.scss +3 -3
  16. package/scss/button/button-icon.scss +12 -0
  17. package/scss/button/button.scss +27 -32
  18. package/scss/button/classes.scss +25 -3
  19. package/scss/button/cta.scss +31 -21
  20. package/scss/button/default.scss +40 -45
  21. package/scss/button/disabled.scss +3 -14
  22. package/scss/button/high-visibility.scss +31 -21
  23. package/scss/button/index.scss +1 -0
  24. package/scss/button/split-menu.scss +5 -0
  25. package/scss/classes.scss +1 -0
  26. package/scss/code/codeblock.scss +4 -0
  27. package/scss/header/header.scss +22 -10
  28. package/scss/index.scss +1 -0
  29. package/scss/inputs/checkbox-radio.scss +1 -3
  30. package/scss/inputs/checkbox.scss +5 -2
  31. package/scss/inputs/classes.scss +2 -6
  32. package/scss/inputs/labeled-inputs.scss +13 -5
  33. package/scss/side-navigation/side-navigation.scss +27 -22
  34. package/scss/table/paginator.scss +9 -1
  35. package/scss/table/table.scss +6 -2
  36. package/scss/tile/tile.scss +4 -2
  37. package/scss/tree/classes.scss +15 -0
  38. package/scss/tree/index.scss +3 -0
  39. package/scss/tree/tree.scss +137 -0
  40. package/scss/user-icon/user-icon.scss +3 -0
package/css/tree.css ADDED
@@ -0,0 +1,107 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ .iui-tree{
6
+ margin:0;
7
+ padding:0;
8
+ border:none;
9
+ vertical-align:baseline;
10
+ list-style:none; }
11
+
12
+ .iui-sub-tree{
13
+ margin:0;
14
+ padding:0;
15
+ border:none;
16
+ vertical-align:baseline;
17
+ list-style:none; }
18
+
19
+ .iui-tree-node{
20
+ display:flex;
21
+ cursor:pointer;
22
+ padding:0 8px; }
23
+ .iui-tree-node-checkbox{
24
+ margin-right:8px; }
25
+ .iui-tree-node-content{
26
+ display:flex;
27
+ align-items:center;
28
+ box-sizing:border-box;
29
+ min-height:33px;
30
+ margin-left:calc(28px * (var(--level, 0)));
31
+ overflow:hidden;
32
+ padding-left:2px; }
33
+ .iui-tree-node-content-icon{
34
+ fill:rgba(0, 0, 0, 0.4);
35
+ fill:var(--iui-icons-color);
36
+ display:inline-flex;
37
+ width:16px;
38
+ height:16px;
39
+ padding:0 6px;
40
+ flex-shrink:0; }
41
+ .iui-tree-node-content-icon.iui-informational{
42
+ fill:#008BE1;
43
+ fill:var(--iui-icons-color-primary); }
44
+ .iui-tree-node-content-icon.iui-positive{
45
+ fill:#53A21A;
46
+ fill:var(--iui-icons-color-positive); }
47
+ .iui-tree-node-content-icon.iui-warning{
48
+ fill:#F18B12;
49
+ fill:var(--iui-icons-color-warning); }
50
+ .iui-tree-node-content-icon.iui-negative{
51
+ fill:#D30A0A;
52
+ fill:var(--iui-icons-color-negative); }
53
+ .iui-tree-node-content-icon:first-child{
54
+ margin-left:28px; }
55
+ @media (prefers-reduced-motion: no-preference){
56
+ .iui-tree-node-content-expander-icon{
57
+ transition:transform 0.2s ease-out; } }
58
+ .iui-tree-node-content-expander-icon-expanded{
59
+ transform:rotate(90deg); }
60
+ .iui-tree-node-content-label{
61
+ min-width:0;
62
+ padding-left:6px; }
63
+ .iui-tree-node-content-label:first-child{
64
+ margin-left:28px; }
65
+ .iui-tree-node-content-title, .iui-tree-node-content-caption{
66
+ white-space:nowrap;
67
+ overflow:hidden;
68
+ text-overflow:ellipsis; }
69
+ .iui-tree-node-content-title{
70
+ font-size:14px; }
71
+ .iui-tree-node-content-caption{
72
+ font-size:12px;
73
+ color:rgba(0, 0, 0, 0.4);
74
+ color:var(--iui-text-color-muted); }
75
+ .iui-tree-node:focus{
76
+ outline:thin solid rgba(0, 139, 225, 0.4);
77
+ outline-offset:-1px;
78
+ outline:thin solid rgba(var(--iui-color-foreground-primary-rgb), var(--iui-opacity-4));
79
+ outline-offset:-1px; }
80
+ .iui-tree-node:focus:not(:focus-visible){
81
+ outline-offset:-2px; }
82
+ .iui-tree-node:hover{
83
+ background-color:rgba(0, 139, 225, 0.1);
84
+ background-color:rgba(var(--iui-color-foreground-primary-rgb), var(--iui-opacity-6)); }
85
+ .iui-tree-node:hover .iui-tree-node-content-caption{
86
+ color:#000;
87
+ color:var(--iui-color-foreground-body);
88
+ transition:color 0.2s ease; }
89
+ .iui-tree-node.iui-active{
90
+ background-color:rgba(0, 139, 225, 0.2);
91
+ outline:thin solid var(--iui-color-foreground-primary);
92
+ outline-offset:-1px;
93
+ background-color:rgba(var(--iui-color-foreground-primary-rgb), var(--iui-opacity-5));
94
+ outline:thin solid var(--iui-color-foreground-primary);
95
+ outline-offset:-1px; }
96
+ .iui-tree-node.iui-active:focus{
97
+ outline-width:2px;
98
+ outline-offset:-2px; }
99
+ .iui-tree-node.iui-disabled{
100
+ cursor:not-allowed;
101
+ outline:none;
102
+ background-color:transparent;
103
+ color:rgba(0, 0, 0, 0.2);
104
+ color:var(--iui-text-color-placeholder); }
105
+ .iui-tree-node.iui-disabled .iui-tree-node-content-caption{
106
+ color:rgba(0, 0, 0, 0.2);
107
+ color:var(--iui-text-color-placeholder); }
package/css/user-icon.css CHANGED
@@ -65,7 +65,9 @@
65
65
  width:100%;
66
66
  height:100%;
67
67
  border-width:0;
68
- border-radius:50%; }
68
+ border-radius:50%;
69
+ background-color:#FFF;
70
+ background-color:var(--iui-color-background-1); }
69
71
  .iui-user-icon > .iui-status{
70
72
  display:flex;
71
73
  align-items:center;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/itwinui-css",
3
- "version": "0.39.0",
3
+ "version": "0.41.1",
4
4
  "author": "Bentley Systems",
5
5
  "license": "MIT",
6
6
  "main": "src/index.scss",
@@ -35,7 +35,7 @@
35
35
  }
36
36
 
37
37
  > *,
38
- .iui-label {
38
+ .iui-button-label {
39
39
  overflow: hidden;
40
40
  white-space: nowrap;
41
41
  text-overflow: ellipsis;
@@ -2,59 +2,40 @@
2
2
  // See LICENSE.md in the project root for license terms and full copyright notice.
3
3
  @import '../style/index';
4
4
  @import './button';
5
+ @import './disabled';
6
+ @import './button-icon';
5
7
 
6
8
  @mixin iui-button-borderless {
7
- background-color: transparent;
8
- border-color: transparent;
9
- padding: 0 $iui-s;
9
+ @include iui-button-borderless-base;
10
+ @include iui-button-size(medium, borderless);
10
11
 
11
- // Sizes
12
- &.iui-small {
13
- padding: 0 $iui-xxs;
14
- }
12
+ &:focus {
13
+ @include iui-button-borderless-hover-focus;
15
14
 
16
- &.iui-large {
17
- padding: 0 $iui-sm;
15
+ &:where(:not(:focus-visible)) {
16
+ @include iui-button-borderless-base;
17
+ }
18
18
  }
19
19
 
20
- // If icon is by itself, button takes 1:1 size ratio
21
- > .iui-icon:only-child {
22
- margin-left: $iui-component-offset;
23
- margin-right: $iui-component-offset;
20
+ &:hover {
21
+ @include iui-button-borderless-hover-focus;
24
22
  }
25
23
 
26
- &:enabled:hover,
27
- &:enabled:active,
28
- &:focus-visible {
24
+ &.iui-active {
29
25
  @include themed {
30
- background-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-6));
31
- border-color: transparent;
32
- }
33
- }
34
-
35
- &.iui-active:not(.iui-high-visibility):not(.iui-cta) {
36
- &:enabled,
37
- &:enabled:hover,
38
- &:enabled:active {
39
- background: transparent;
40
- @include themed {
41
- background-color: rgba(t(iui-color-foreground-primary-rgb), t(iui-opacity-6));
42
- }
43
- border-color: transparent;
26
+ background-color: rgba(t(iui-color-foreground-primary-rgb), t(iui-opacity-6));
27
+ color: t(iui-color-foreground-primary);
44
28
  }
29
+ border-color: transparent;
45
30
  }
46
31
 
47
32
  &[disabled],
48
- &[disabled]:hover,
49
- &[disabled]:active,
50
- &[disabled]:focus {
51
- background-color: transparent;
52
- border-color: transparent;
33
+ &:disabled {
34
+ @include iui-button-disabled;
53
35
 
54
- > .iui-icon {
55
- @include themed {
56
- fill: t(iui-icons-color-actionable-disabled);
57
- }
36
+ @include themed {
37
+ background-color: transparent;
38
+ border-color: transparent;
58
39
  }
59
40
 
60
41
  &.iui-active {
@@ -64,3 +45,20 @@
64
45
  }
65
46
  }
66
47
  }
48
+
49
+ @mixin iui-button-borderless-hover-focus {
50
+ @include themed {
51
+ background-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-6));
52
+ border-color: transparent;
53
+ }
54
+ }
55
+
56
+ @mixin iui-button-borderless-base {
57
+ border-color: transparent;
58
+ background-color: transparent;
59
+
60
+ > .iui-button-icon:only-child {
61
+ margin-left: $iui-component-offset;
62
+ margin-right: $iui-component-offset;
63
+ }
64
+ }
@@ -21,13 +21,13 @@
21
21
  border-bottom-right-radius: $iui-border-radius;
22
22
  }
23
23
 
24
- &:not(.iui-borderless):not(.iui-cta):not(.iui-high-visibility):not(:last-of-type) {
24
+ &.iui-default:not(:last-of-type) {
25
25
  border-right: none;
26
26
  }
27
27
 
28
- &:not(.iui-high-visibility):not(.iui-cta):not(.iui-borderless) {
28
+ &.iui-default {
29
29
  // Border trick for grouped default & disabled buttons
30
- &:enabled {
30
+ &:not(:disabled) {
31
31
  + :disabled {
32
32
  @include themed {
33
33
  border-left-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-4));
@@ -0,0 +1,12 @@
1
+ // Copyright (c) Bentley Systems, Incorporated. All rights reserved.
2
+ // See LICENSE.md in the project root for license terms and full copyright notice.
3
+ @import '../style/index';
4
+ @import '../icon/index';
5
+
6
+ /// Mixin for button icons
7
+ @mixin iui-button-icon {
8
+ width: $iui-icons-default;
9
+ height: $iui-icons-default;
10
+ transition: fill $iui-speed-fast ease-out;
11
+ fill: currentColor;
12
+ }
@@ -2,6 +2,8 @@
2
2
  // See LICENSE.md in the project root for license terms and full copyright notice.
3
3
  @import '../style/index';
4
4
  @import '../icon/index';
5
+ @import './disabled';
6
+ @import './button-icon';
5
7
 
6
8
  $iui-button-padding: $iui-xs * 4;
7
9
  $iui-button-padding-small: $iui-xs * 2;
@@ -32,52 +34,45 @@ $iui-button-padding-large: $iui-xs * 6;
32
34
  border-color $iui-speed-fast ease-out;
33
35
  }
34
36
 
35
- > .iui-icon:not(.iui-user-icon) {
36
- width: $iui-icons-default;
37
- height: $iui-icons-default;
38
- @media (prefers-reduced-motion: no-preference) {
39
- transition: fill $iui-speed-fast ease-out;
40
- }
37
+ @include themed {
38
+ color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-2));
41
39
  }
42
40
 
43
- &:enabled:hover {
41
+ &:hover {
44
42
  text-decoration: none;
43
+ @include themed {
44
+ color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-1));
45
+ }
45
46
  }
46
47
 
47
48
  @include iui-focus;
48
- @include iui-button-sizes;
49
- }
50
49
 
51
- @mixin iui-button-sizes {
52
- padding: 0 $iui-button-padding;
53
- height: $iui-component-height;
50
+ &[disabled],
51
+ &:disabled {
52
+ @include iui-button-disabled;
53
+ }
54
+ }
54
55
 
55
- > .iui-icon + .iui-label,
56
- > .iui-label + .iui-icon,
57
- > .iui-icon + .iui-icon {
58
- margin-left: $iui-s;
56
+ /// Mixin for applying padding and margins to various button sizes.
57
+ /// @arg size - must be one of: small, medium, large
58
+ /// @arg styleType - must be one of: default, borderless
59
+ @mixin iui-button-size($size: medium, $styleType: default) {
60
+ @if $size == medium {
61
+ padding: if($styleType == 'borderless', 0 $iui-s, 0 $iui-button-padding);
62
+ height: $iui-component-height;
63
+ gap: $iui-s;
59
64
  }
60
65
 
61
- &.iui-small {
62
- padding: 0 $iui-button-padding-small;
66
+ @if $size == small {
67
+ padding: if($styleType == 'borderless', 0 $iui-xxs, 0 $iui-button-padding-small);
63
68
  height: $iui-component-height-small;
64
-
65
- > .iui-icon + .iui-label,
66
- > .iui-label + .iui-icon,
67
- > .iui-icon + .iui-icon {
68
- margin-left: $iui-xs;
69
- }
69
+ gap: $iui-xs;
70
70
  }
71
71
 
72
- &.iui-large {
73
- padding: 0 $iui-button-padding-large;
72
+ @if $size == large {
73
+ padding: if($styleType == 'borderless', 0 $iui-sm, 0 $iui-button-padding-large);
74
74
  height: $iui-component-height-large;
75
75
  font-size: $iui-font-size-leading;
76
-
77
- > .iui-icon + .iui-label,
78
- > .iui-label + .iui-icon,
79
- > .iui-icon + .iui-icon {
80
- margin-left: $iui-sm;
81
- }
76
+ gap: $iui-sm;
82
77
  }
83
78
  }
@@ -4,7 +4,11 @@
4
4
 
5
5
  .iui-button {
6
6
  @include iui-button;
7
- @include iui-button-default;
7
+ @include iui-button-size;
8
+
9
+ &.iui-default {
10
+ @include iui-button-default;
11
+ }
8
12
 
9
13
  &.iui-high-visibility {
10
14
  @include iui-button-high-visibility;
@@ -22,8 +26,22 @@
22
26
  @include iui-button-borderless;
23
27
  }
24
28
 
25
- &[disabled] {
26
- @include iui-button-disabled;
29
+ @include iui-button-size(medium);
30
+
31
+ &.iui-small {
32
+ @include iui-button-size(small);
33
+
34
+ &.iui-borderless {
35
+ @include iui-button-size(small, borderless);
36
+ }
37
+ }
38
+
39
+ &.iui-large {
40
+ @include iui-button-size(large);
41
+
42
+ &.iui-borderless {
43
+ @include iui-button-size(large, borderless);
44
+ }
27
45
  }
28
46
  }
29
47
 
@@ -35,3 +53,7 @@
35
53
  @include iui-button-group;
36
54
  @include iui-button-split-menu;
37
55
  }
56
+
57
+ .iui-button-icon {
58
+ @include iui-button-icon;
59
+ }
@@ -2,33 +2,43 @@
2
2
  // See LICENSE.md in the project root for license terms and full copyright notice.
3
3
  @import '../style/index';
4
4
  @import './button';
5
+ @import './button-icon';
6
+ @import './disabled';
5
7
 
6
8
  @mixin iui-button-cta {
7
- @include themed {
8
- background-color: t(iui-color-background-positive);
9
- border-color: t(iui-color-background-positive);
10
- color: t(iui-color-foreground-accessory);
11
- }
9
+ @include iui-button-cta-base;
10
+
11
+ &:focus {
12
+ @include iui-button-cta-hover-focus;
12
13
 
13
- > .iui-icon {
14
- @include themed {
15
- fill: t(iui-color-foreground-accessory);
14
+ &:where(:not(:focus-visible)) {
15
+ @include iui-button-cta-base;
16
16
  }
17
17
  }
18
18
 
19
- &:enabled:hover,
20
- &:enabled:active,
21
- &:focus-visible {
22
- @include themed {
23
- background-color: t(iui-color-background-positive-overlay);
24
- border-color: t(iui-color-background-positive-overlay);
25
- color: t(iui-color-foreground-accessory);
26
- }
19
+ &:hover,
20
+ &:active {
21
+ @include iui-button-cta-hover-focus;
22
+ }
27
23
 
28
- > .iui-icon {
29
- @include themed {
30
- fill: t(iui-color-foreground-accessory);
31
- }
32
- }
24
+ &[disabled],
25
+ &:disabled {
26
+ @include iui-button-disabled;
27
+ }
28
+ }
29
+
30
+ @mixin iui-button-cta-hover-focus {
31
+ @include themed {
32
+ background-color: t(iui-color-background-positive-overlay);
33
+ border-color: t(iui-color-background-positive-overlay);
34
+ color: t(iui-color-foreground-accessory);
35
+ }
36
+ }
37
+
38
+ @mixin iui-button-cta-base {
39
+ @include themed {
40
+ background-color: t(iui-color-background-positive);
41
+ border-color: t(iui-color-background-positive);
42
+ color: t(iui-color-foreground-accessory);
33
43
  }
34
44
  }
@@ -2,36 +2,24 @@
2
2
  // See LICENSE.md in the project root for license terms and full copyright notice.
3
3
  @import '../style/index';
4
4
  @import './button';
5
+ @import './button-icon';
5
6
  @import '../notification-marker/index';
7
+ @import './disabled';
6
8
 
7
9
  @mixin iui-button-default {
8
- @include themed {
9
- background-color: t(iui-color-background-1);
10
- border-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-4));
11
- color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-2));
12
- }
10
+ @include iui-button-default-base;
13
11
 
14
- > .iui-icon {
15
- @include themed {
16
- fill: t(iui-icons-color-actionable);
17
- }
18
- }
12
+ &:focus {
13
+ @include iui-button-default-hover-focus;
19
14
 
20
- &:enabled:hover,
21
- &:enabled:active,
22
- &:focus-visible {
23
- @include themed {
24
- background-color: t(iui-color-background-1-overlay);
25
- border-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-1));
26
- color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-1));
15
+ &:where(:not(:focus-visible)) {
16
+ @include iui-button-default-base;
27
17
  }
28
- @include iui-notification-marker-hover;
18
+ }
29
19
 
30
- > .iui-icon {
31
- @include themed {
32
- fill: t(iui-icons-color-actionable-hover);
33
- }
34
- }
20
+ &:hover,
21
+ &:active {
22
+ @include iui-button-default-hover-focus;
35
23
  }
36
24
 
37
25
  &.iui-dropdown {
@@ -47,29 +35,36 @@
47
35
  }
48
36
  }
49
37
 
50
- &.iui-active:not(.iui-high-visibility):not(.iui-cta) {
51
- &:enabled,
52
- &:enabled:hover,
53
- &:enabled:active {
54
- @include themed {
55
- background: linear-gradient(
56
- rgba(t(iui-color-foreground-primary-rgb), t(iui-opacity-6)),
57
- rgba(t(iui-color-foreground-primary-rgb), t(iui-opacity-6))
58
- ),
59
- linear-gradient(t(iui-color-background-1), t(iui-color-background-1));
60
- }
38
+ &.iui-active {
39
+ @include themed {
40
+ background: linear-gradient(
41
+ rgba(t(iui-color-foreground-primary-rgb), t(iui-opacity-6)),
42
+ rgba(t(iui-color-foreground-primary-rgb), t(iui-opacity-6))
43
+ ),
44
+ linear-gradient(t(iui-color-background-1), t(iui-color-background-1));
45
+ color: t(iui-color-foreground-primary);
46
+ }
47
+ }
61
48
 
62
- > .iui-label {
63
- @include themed {
64
- color: t(iui-color-foreground-primary);
65
- }
66
- }
49
+ &[disabled],
50
+ &:disabled {
51
+ @include iui-button-disabled;
52
+ }
53
+ }
67
54
 
68
- > .iui-icon {
69
- @include themed {
70
- fill: t(iui-icons-color-primary);
71
- }
72
- }
73
- }
55
+ @mixin iui-button-default-hover-focus {
56
+ @include themed {
57
+ background-color: t(iui-color-background-1-overlay);
58
+ border-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-1));
59
+ color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-1));
60
+ }
61
+ @include iui-notification-marker-hover;
62
+ }
63
+
64
+ @mixin iui-button-default-base {
65
+ @include themed {
66
+ background-color: t(iui-color-background-1);
67
+ border-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-4));
68
+ color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-2));
74
69
  }
75
70
  }
@@ -1,24 +1,13 @@
1
1
  // Copyright (c) Bentley Systems, Incorporated. All rights reserved.
2
2
  // See LICENSE.md in the project root for license terms and full copyright notice.
3
3
  @import '../style/index';
4
- @import './button';
4
+ @import './button-icon';
5
5
 
6
6
  @mixin iui-button-disabled {
7
7
  cursor: not-allowed;
8
8
  @include themed {
9
- background-color: t(iui-color-background-disabled);
9
+ background: t(iui-color-background-disabled);
10
10
  border-color: t(iui-color-background-disabled);
11
- }
12
-
13
- > .iui-label {
14
- @include themed {
15
- color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-5));
16
- }
17
- }
18
-
19
- > .iui-icon {
20
- @include themed {
21
- fill: t(iui-icons-color-actionable-disabled);
22
- }
11
+ color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-5));
23
12
  }
24
13
  }
@@ -2,33 +2,43 @@
2
2
  // See LICENSE.md in the project root for license terms and full copyright notice.
3
3
  @import '../style/index';
4
4
  @import './button';
5
+ @import './disabled';
6
+ @import './button-icon';
5
7
 
6
8
  @mixin iui-button-high-visibility {
7
- @include themed {
8
- background-color: t(iui-color-background-primary);
9
- border-color: t(iui-color-background-primary);
10
- color: t(iui-color-foreground-accessory);
11
- }
9
+ @include iui-button-high-visibility-base;
10
+
11
+ &:focus {
12
+ @include iui-button-high-visibility-hover-focus;
12
13
 
13
- > .iui-icon {
14
- @include themed {
15
- fill: t(iui-color-foreground-accessory);
14
+ &:where(:not(:focus-visible)) {
15
+ @include iui-button-high-visibility-base;
16
16
  }
17
17
  }
18
18
 
19
- &:enabled:hover,
20
- &:enabled:active,
21
- &:focus-visible {
22
- @include themed {
23
- background-color: t(iui-color-background-primary-overlay);
24
- border-color: t(iui-color-background-primary-overlay);
25
- color: t(iui-color-foreground-accessory);
26
- }
19
+ &:hover,
20
+ &:active {
21
+ @include iui-button-high-visibility-hover-focus;
22
+ }
27
23
 
28
- > .iui-icon {
29
- @include themed {
30
- fill: t(iui-color-foreground-accessory);
31
- }
32
- }
24
+ &[disabled],
25
+ &:disabled {
26
+ @include iui-button-disabled;
27
+ }
28
+ }
29
+
30
+ @mixin iui-button-high-visibility-hover-focus {
31
+ @include themed {
32
+ background-color: t(iui-color-background-primary-overlay);
33
+ border-color: t(iui-color-background-primary-overlay);
34
+ color: t(iui-color-foreground-accessory);
35
+ }
36
+ }
37
+
38
+ @mixin iui-button-high-visibility-base {
39
+ @include themed {
40
+ background-color: t(iui-color-background-primary);
41
+ border-color: t(iui-color-background-primary);
42
+ color: t(iui-color-foreground-accessory);
33
43
  }
34
44
  }
@@ -9,3 +9,4 @@
9
9
  @import './split-menu';
10
10
  @import './borderless';
11
11
  @import './disabled';
12
+ @import './button-icon';