@itwin/itwinui-css 0.43.0 → 0.45.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 (71) hide show
  1. package/css/alert.css +46 -61
  2. package/css/all.css +1065 -907
  3. package/css/breadcrumbs.css +7 -20
  4. package/css/button.css +48 -91
  5. package/css/carousel.css +97 -0
  6. package/css/code.css +6 -9
  7. package/css/color-picker.css +14 -14
  8. package/css/date-picker.css +91 -85
  9. package/css/expandable-block.css +13 -9
  10. package/css/file-upload.css +4 -3
  11. package/css/footer.css +7 -20
  12. package/css/global.css +7 -9
  13. package/css/header.css +4 -24
  14. package/css/inputs.css +121 -89
  15. package/css/popover.css +12 -0
  16. package/css/side-navigation.css +1 -16
  17. package/css/slider.css +7 -10
  18. package/css/table.css +160 -29
  19. package/css/tabs.css +8 -3
  20. package/css/tag.css +17 -18
  21. package/css/tile.css +340 -314
  22. package/css/time-picker.css +26 -18
  23. package/css/toast-notification.css +12 -49
  24. package/css/toggle-switch.css +7 -4
  25. package/css/tree.css +12 -8
  26. package/css/wizard.css +4 -4
  27. package/package.json +10 -9
  28. package/scss/alert/alert.scss +4 -2
  29. package/scss/button/borderless.scss +10 -26
  30. package/scss/button/button-group.scss +2 -2
  31. package/scss/button/cta.scss +10 -25
  32. package/scss/button/default.scss +22 -32
  33. package/scss/button/high-visibility.scss +10 -25
  34. package/scss/carousel/carousel.scss +119 -0
  35. package/scss/carousel/classes.scss +15 -0
  36. package/scss/carousel/index.scss +3 -0
  37. package/scss/classes.scss +2 -0
  38. package/scss/color-picker/color-picker.scss +2 -25
  39. package/scss/date-picker/classes.scss +20 -0
  40. package/scss/date-picker/date-picker.scss +88 -100
  41. package/scss/expandable-block/block.scss +1 -0
  42. package/scss/file-upload/file-upload.scss +2 -2
  43. package/scss/footer/footer.scss +0 -2
  44. package/scss/header/header.scss +1 -15
  45. package/scss/index.scss +2 -0
  46. package/scss/inputs/checkbox-radio.scss +28 -18
  47. package/scss/inputs/checkbox.scss +9 -8
  48. package/scss/inputs/input.scss +1 -14
  49. package/scss/inputs/labeled-inputs.scss +2 -1
  50. package/scss/inputs/radio-tile.scss +9 -4
  51. package/scss/inputs/select.scss +2 -1
  52. package/scss/popover/classes.scss +7 -0
  53. package/scss/popover/index.scss +3 -0
  54. package/scss/popover/popover.scss +22 -0
  55. package/scss/side-navigation/side-navigation.scss +1 -33
  56. package/scss/slider/slider.scss +1 -2
  57. package/scss/style/mixins.scss +14 -16
  58. package/scss/table/classes.scss +12 -0
  59. package/scss/table/paginator.scss +39 -31
  60. package/scss/table/table.scss +1 -1
  61. package/scss/tabs/default.scss +5 -0
  62. package/scss/tabs/tabs.scss +1 -8
  63. package/scss/tag/tag.scss +9 -1
  64. package/scss/tile/classes.scss +28 -0
  65. package/scss/tile/tile.scss +230 -235
  66. package/scss/time-picker/time-picker.scss +1 -0
  67. package/scss/toast-notification/categories.scss +5 -2
  68. package/scss/toast-notification/toast.scss +0 -1
  69. package/scss/toggle-switch/toggle-switch.scss +7 -3
  70. package/scss/tree/tree.scss +2 -14
  71. package/scss/wizard/wizard.scss +3 -3
@@ -39,16 +39,13 @@
39
39
  .iui-time > ol > li{
40
40
  padding:6px 16px;
41
41
  border-radius:3px; }
42
- .iui-time > ol > li:focus{
43
- outline:0;
44
- box-shadow:rgba(0, 139, 225, 0.2) 0 0 0 2px;
45
- box-shadow:var(--iui-focus-box-shadow); }
46
- .iui-time > ol > li:focus:not(:focus-visible){
47
- box-shadow:none; }
48
42
  .iui-time > ol > li:focus-visible{
49
- outline:0;
50
- box-shadow:rgba(0, 139, 225, 0.2) 0 0 0 2px;
51
- box-shadow:var(--iui-focus-box-shadow); }
43
+ outline:1px solid var(--iui-color-foreground-primary);
44
+ outline-offset:-1px; }
45
+ @supports not selector(*:focus-visible){
46
+ .iui-time > ol > li:focus{
47
+ outline:1px solid var(--iui-color-foreground-primary);
48
+ outline-offset:-1px; } }
52
49
  .iui-time > ol > li:hover{
53
50
  cursor:pointer;
54
51
  color:#008BE1;
@@ -62,6 +59,13 @@
62
59
  color:#FFF;
63
60
  background-color:var(--iui-color-background-primary);
64
61
  color:var(--iui-color-foreground-accessory); }
62
+ .iui-time > ol > li.iui-selected:focus-visible{
63
+ outline:1px solid var(--iui-color-foreground-accessory);
64
+ outline-offset:-3px; }
65
+ @supports not selector(*:focus-visible){
66
+ .iui-time > ol > li.iui-selected:focus{
67
+ outline:1px solid var(--iui-color-foreground-accessory);
68
+ outline-offset:-3px; } }
65
69
 
66
70
  .iui-period{
67
71
  padding:11px 8px;
@@ -82,16 +86,13 @@
82
86
  .iui-period > ol > li{
83
87
  padding:6px 16px;
84
88
  border-radius:3px; }
85
- .iui-period > ol > li:focus{
86
- outline:0;
87
- box-shadow:rgba(0, 139, 225, 0.2) 0 0 0 2px;
88
- box-shadow:var(--iui-focus-box-shadow); }
89
- .iui-period > ol > li:focus:not(:focus-visible){
90
- box-shadow:none; }
91
89
  .iui-period > ol > li:focus-visible{
92
- outline:0;
93
- box-shadow:rgba(0, 139, 225, 0.2) 0 0 0 2px;
94
- box-shadow:var(--iui-focus-box-shadow); }
90
+ outline:1px solid var(--iui-color-foreground-primary);
91
+ outline-offset:-1px; }
92
+ @supports not selector(*:focus-visible){
93
+ .iui-period > ol > li:focus{
94
+ outline:1px solid var(--iui-color-foreground-primary);
95
+ outline-offset:-1px; } }
95
96
  .iui-period > ol > li:hover{
96
97
  cursor:pointer;
97
98
  color:#008BE1;
@@ -105,3 +106,10 @@
105
106
  color:#FFF;
106
107
  background-color:var(--iui-color-background-primary);
107
108
  color:var(--iui-color-foreground-accessory); }
109
+ .iui-period > ol > li.iui-selected:focus-visible{
110
+ outline:1px solid var(--iui-color-foreground-accessory);
111
+ outline-offset:-3px; }
112
+ @supports not selector(*:focus-visible){
113
+ .iui-period > ol > li.iui-selected:focus{
114
+ outline:1px solid var(--iui-color-foreground-accessory);
115
+ outline-offset:-3px; } }
@@ -111,16 +111,6 @@
111
111
  user-select:none;
112
112
  text-decoration:underline;
113
113
  white-space:nowrap; }
114
- .iui-toast > .iui-anchor:focus{
115
- outline:0;
116
- box-shadow:rgba(0, 139, 225, 0.2) 0 0 0 2px;
117
- box-shadow:var(--iui-focus-box-shadow); }
118
- .iui-toast > .iui-anchor:focus:not(:focus-visible){
119
- box-shadow:none; }
120
- .iui-toast > .iui-anchor:focus-visible{
121
- outline:0;
122
- box-shadow:rgba(0, 139, 225, 0.2) 0 0 0 2px;
123
- box-shadow:var(--iui-focus-box-shadow); }
124
114
  .iui-toast > .iui-anchor:hover{
125
115
  text-decoration:none; }
126
116
  .iui-toast > .iui-button{
@@ -162,19 +152,10 @@
162
152
  .iui-toast.iui-positive > .iui-anchor:hover{
163
153
  color:#3c7613;
164
154
  color:var(--iui-color-foreground-positive-overlay); }
165
- .iui-toast.iui-positive > .iui-anchor:focus,
166
- .iui-toast.iui-positive > .iui-button:focus{
167
- outline:0;
168
- box-shadow:rgba(83, 162, 26, 0.2) 0 0 0 2px;
169
- box-shadow:var(--iui-focus-positive-box-shadow); }
170
- .iui-toast.iui-positive > .iui-anchor:focus:not(:focus-visible),
171
- .iui-toast.iui-positive > .iui-button:focus:not(:focus-visible){
172
- box-shadow:none; }
173
- .iui-toast.iui-positive > .iui-anchor:focus-visible,
174
- .iui-toast.iui-positive > .iui-button:focus-visible{
175
- outline:0;
176
- box-shadow:rgba(83, 162, 26, 0.2) 0 0 0 2px;
177
- box-shadow:var(--iui-focus-positive-box-shadow); }
155
+ .iui-toast.iui-positive > .iui-anchor{
156
+ outline-color:var(--iui-color-foreground-positive); }
157
+ .iui-toast.iui-positive > .iui-button{
158
+ outline-color:var(--iui-color-foreground-positive); }
178
159
  .iui-toast.iui-negative{
179
160
  border-color:#D30A0A;
180
161
  border-color:var(--iui-color-foreground-negative); }
@@ -193,19 +174,10 @@
193
174
  .iui-toast.iui-negative > .iui-anchor:hover{
194
175
  color:#a20808;
195
176
  color:var(--iui-color-foreground-negative-overlay); }
196
- .iui-toast.iui-negative > .iui-anchor:focus,
197
- .iui-toast.iui-negative > .iui-button:focus{
198
- outline:0;
199
- box-shadow:rgba(211, 10, 10, 0.2) 0 0 0 2px;
200
- box-shadow:var(--iui-focus-negative-box-shadow); }
201
- .iui-toast.iui-negative > .iui-anchor:focus:not(:focus-visible),
202
- .iui-toast.iui-negative > .iui-button:focus:not(:focus-visible){
203
- box-shadow:none; }
204
- .iui-toast.iui-negative > .iui-anchor:focus-visible,
205
- .iui-toast.iui-negative > .iui-button:focus-visible{
206
- outline:0;
207
- box-shadow:rgba(211, 10, 10, 0.2) 0 0 0 2px;
208
- box-shadow:var(--iui-focus-negative-box-shadow); }
177
+ .iui-toast.iui-negative > .iui-anchor{
178
+ outline-color:var(--iui-color-foreground-negative); }
179
+ .iui-toast.iui-negative > .iui-button{
180
+ outline-color:var(--iui-color-foreground-negative); }
209
181
  .iui-toast.iui-warning{
210
182
  border-color:#F18B12;
211
183
  border-color:var(--iui-color-foreground-warning); }
@@ -224,16 +196,7 @@
224
196
  .iui-toast.iui-warning > .iui-anchor:hover{
225
197
  color:#c4700c;
226
198
  color:var(--iui-color-foreground-warning-overlay); }
227
- .iui-toast.iui-warning > .iui-anchor:focus,
228
- .iui-toast.iui-warning > .iui-button:focus{
229
- outline:0;
230
- box-shadow:rgba(241, 139, 18, 0.2) 0 0 0 2px;
231
- box-shadow:var(--iui-focus-warning-box-shadow); }
232
- .iui-toast.iui-warning > .iui-anchor:focus:not(:focus-visible),
233
- .iui-toast.iui-warning > .iui-button:focus:not(:focus-visible){
234
- box-shadow:none; }
235
- .iui-toast.iui-warning > .iui-anchor:focus-visible,
236
- .iui-toast.iui-warning > .iui-button:focus-visible{
237
- outline:0;
238
- box-shadow:rgba(241, 139, 18, 0.2) 0 0 0 2px;
239
- box-shadow:var(--iui-focus-warning-box-shadow); }
199
+ .iui-toast.iui-warning > .iui-anchor{
200
+ outline-color:var(--iui-color-foreground-warning); }
201
+ .iui-toast.iui-warning > .iui-button{
202
+ outline-color:var(--iui-color-foreground-warning); }
@@ -90,10 +90,10 @@
90
90
  background-color:var(--iui-color-foreground-accessory);
91
91
  opacity:var(--iui-opacity-2);
92
92
  right:2px; }
93
- .iui-toggle-switch > input:checked:hover:not(:disabled) ~ .iui-toggle, .iui-toggle-switch > input:checked:focus ~ .iui-toggle{
93
+ .iui-toggle-switch > input:checked:hover:not(:disabled) ~ .iui-toggle{
94
94
  border-color:#008BE1;
95
95
  border-color:var(--iui-color-background-primary); }
96
- .iui-toggle-switch > input:checked:hover:not(:disabled) ~ .iui-toggle > .iui-handle, .iui-toggle-switch > input:checked:focus ~ .iui-toggle > .iui-handle{
96
+ .iui-toggle-switch > input:checked:hover:not(:disabled) ~ .iui-toggle > .iui-handle{
97
97
  opacity:1;
98
98
  opacity:var(--iui-opacity-1); }
99
99
  .iui-toggle-switch > input:disabled ~ .iui-toggle{
@@ -119,8 +119,11 @@
119
119
  opacity:0.2;
120
120
  opacity:var(--iui-opacity-5); }
121
121
  .iui-toggle-switch > input:enabled:focus ~ .iui-toggle{
122
- box-shadow:rgba(0, 139, 225, 0.2) 0 0 0 2px;
123
- box-shadow:var(--iui-focus-box-shadow); }
122
+ outline:1px solid #008BE1;
123
+ outline:1px solid var(--iui-color-foreground-primary);
124
+ outline-offset:1px; }
125
+ .iui-toggle-switch > input:enabled:focus:not(:focus-visible) ~ .iui-toggle{
126
+ outline:none; }
124
127
  .iui-toggle-switch.iui-disabled{
125
128
  cursor:not-allowed; }
126
129
  .iui-toggle-switch > .iui-label{
package/css/tree.css CHANGED
@@ -72,13 +72,13 @@
72
72
  font-size:12px;
73
73
  color:rgba(0, 0, 0, 0.4);
74
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));
75
+ .iui-tree-node:focus-visible{
76
+ outline:1px solid var(--iui-color-foreground-primary);
79
77
  outline-offset:-1px; }
80
- .iui-tree-node:focus:not(:focus-visible){
81
- outline-offset:-2px; }
78
+ @supports not selector(*:focus-visible){
79
+ .iui-tree-node:focus{
80
+ outline:1px solid var(--iui-color-foreground-primary);
81
+ outline-offset:-1px; } }
82
82
  .iui-tree-node:hover{
83
83
  background-color:rgba(0, 139, 225, 0.1);
84
84
  background-color:rgba(var(--iui-color-foreground-primary-rgb), var(--iui-opacity-6)); }
@@ -93,9 +93,13 @@
93
93
  background-color:rgba(var(--iui-color-foreground-primary-rgb), var(--iui-opacity-5));
94
94
  outline:thin solid var(--iui-color-foreground-primary);
95
95
  outline-offset:-1px; }
96
- .iui-tree-node.iui-active:focus{
97
- outline-width:2px;
96
+ .iui-tree-node.iui-active:focus-visible{
97
+ outline:2px solid var(--iui-color-foreground-primary);
98
98
  outline-offset:-2px; }
99
+ @supports not selector(*:focus-visible){
100
+ .iui-tree-node.iui-active:focus{
101
+ outline:2px solid var(--iui-color-foreground-primary);
102
+ outline-offset:-2px; } }
99
103
  .iui-tree-node.iui-disabled{
100
104
  cursor:not-allowed;
101
105
  outline:none;
package/css/wizard.css CHANGED
@@ -136,11 +136,11 @@
136
136
  .iui-wizard-step.iui-clickable:focus{
137
137
  outline:0; }
138
138
  .iui-wizard-step.iui-clickable:focus .iui-wizard-circle{
139
- outline:0;
140
- box-shadow:rgba(83, 162, 26, 0.2) 0 0 0 2px;
141
- box-shadow:var(--iui-focus-positive-box-shadow); }
139
+ outline:2px solid #53A21A;
140
+ outline:2px solid var(--iui-color-foreground-positive);
141
+ outline-offset:-1px; }
142
142
  .iui-wizard-step.iui-clickable:focus:not(:focus-visible) .iui-wizard-circle{
143
- box-shadow:none; }
143
+ outline:none; }
144
144
  .iui-wizard-step:first-of-type .iui-wizard-track-content::before,
145
145
  .iui-wizard-step:last-of-type .iui-wizard-track-content::after{
146
146
  background-color:transparent; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/itwinui-css",
3
- "version": "0.43.0",
3
+ "version": "0.45.0",
4
4
  "author": "Bentley Systems",
5
5
  "license": "MIT",
6
6
  "main": "src/index.scss",
@@ -49,7 +49,7 @@
49
49
  "createComponent": "node ./scripts/createComponent.js",
50
50
  "postcss-processing": "postcss lib/css -d lib/css --no-map && yarn print \"Finished post-processing CSS.\"",
51
51
  "clean": "rimraf ./lib ./backstop/results/bitmaps_test",
52
- "lint": "stylelint \"src/**/*.scss\" \"backstop/tests/*.html\"",
52
+ "lint": "stylelint \"src/**/*.scss\"",
53
53
  "lint:copyright": "node scripts/copyrightLinter.js",
54
54
  "approve": "backstop --config=./backstop/backstop.js approve",
55
55
  "test": "yarn build && yarn test:ci",
@@ -60,8 +60,8 @@
60
60
  },
61
61
  "devDependencies": {
62
62
  "audit-ci": "^4.0.0",
63
- "autoprefixer": "^10.2.4",
64
- "backstopjs": "~5.1.0",
63
+ "autoprefixer": "^10.4.1",
64
+ "backstopjs": "~6.0.4",
65
65
  "chokidar-cli": "^2.1.0",
66
66
  "concurrently": "^6.0.0",
67
67
  "cpx": "^1.5.0",
@@ -69,13 +69,13 @@
69
69
  "husky": "=4",
70
70
  "lint-staged": "^11.2.6",
71
71
  "node-sass": "^5.0.0",
72
- "postcss": "^8.2.15",
72
+ "postcss": "^8.4.5",
73
73
  "postcss-cli": "^8.3.1",
74
- "postcss-discard-comments": "^4.0.2",
74
+ "postcss-discard-comments": "^5.0.1",
75
75
  "prettier": "^2.4.1",
76
76
  "rimraf": "^3.0.2",
77
- "stylelint": "^13.10.0",
78
- "stylelint-config-sass-guidelines": "^8.0.0"
77
+ "stylelint": "^14.2.0",
78
+ "stylelint-config-sass-guidelines": "^9.0.1"
79
79
  },
80
80
  "resolutions": {
81
81
  "braces": "^2.3.1",
@@ -85,6 +85,7 @@
85
85
  "glob-parent": "^5.1.2",
86
86
  "jpeg-js": "^0.4.3",
87
87
  "set-value": "^4.1.0",
88
- "ansi-regex": "^5.0.1"
88
+ "ansi-regex": "^5.0.1",
89
+ "node-fetch": "^2.6.7"
89
90
  }
90
91
  }
@@ -87,6 +87,7 @@
87
87
  }
88
88
 
89
89
  #{$rootSelector}-link {
90
+ border-radius: $iui-border-radius;
90
91
  @include themed {
91
92
  color: t(iui-color-foreground-#{$statusColor});
92
93
  }
@@ -96,10 +97,11 @@
96
97
  color: t(iui-color-foreground-#{$statusColor}-overlay);
97
98
  }
98
99
  }
100
+
101
+ @include iui-focus($color: var(--iui-color-foreground-#{$statusColor}), $offset: 2px);
99
102
  }
100
103
 
101
- #{$rootSelector}-link,
102
104
  > .iui-button {
103
- @include iui-focus(if($statusColor == primary, iui-focus-box-shadow, iui-focus-#{$statusColor}-box-shadow));
105
+ outline-color: var(--iui-color-foreground-#{$statusColor});
104
106
  }
105
107
  }
@@ -6,19 +6,20 @@
6
6
  @import './button-icon';
7
7
 
8
8
  @mixin iui-button-borderless {
9
- @include iui-button-borderless-base;
10
- @include iui-button-size(medium, borderless);
11
-
12
- &:focus {
13
- @include iui-button-borderless-hover-focus;
9
+ border-color: transparent;
10
+ background-color: transparent;
14
11
 
15
- &:where(:not(:focus-visible)) {
16
- @include iui-button-borderless-base;
17
- }
12
+ > .iui-button-icon:only-child {
13
+ margin-left: $iui-component-offset;
14
+ margin-right: $iui-component-offset;
18
15
  }
16
+ @include iui-button-size(medium, borderless);
19
17
 
20
18
  &:hover {
21
- @include iui-button-borderless-hover-focus;
19
+ @include themed {
20
+ background-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-6));
21
+ border-color: transparent;
22
+ }
22
23
  }
23
24
 
24
25
  &.iui-active {
@@ -45,20 +46,3 @@
45
46
  }
46
47
  }
47
48
  }
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
- }
@@ -84,8 +84,8 @@
84
84
  }
85
85
 
86
86
  // Use negative margin to make adjacent borders overlap
87
- &:not(:last-child) {
88
- margin-right: -1px;
87
+ + * {
88
+ margin-left: -1px;
89
89
  }
90
90
 
91
91
  // Add slight border between disabled items
@@ -6,19 +6,20 @@
6
6
  @import './disabled';
7
7
 
8
8
  @mixin iui-button-cta {
9
- @include iui-button-cta-base;
10
-
11
- &:focus {
12
- @include iui-button-cta-hover-focus;
13
-
14
- &:where(:not(:focus-visible)) {
15
- @include iui-button-cta-base;
16
- }
9
+ @include themed {
10
+ background-color: t(iui-color-background-positive);
11
+ border-color: t(iui-color-background-positive);
12
+ color: t(iui-color-foreground-accessory);
17
13
  }
14
+ @include iui-focus($color: var(--iui-color-foreground-accessory), $offset: -3px, $thickness: 1px);
18
15
 
19
16
  &:hover,
20
17
  &:active {
21
- @include iui-button-cta-hover-focus;
18
+ @include themed {
19
+ background-color: t(iui-color-background-positive-overlay);
20
+ border-color: t(iui-color-background-positive-overlay);
21
+ color: t(iui-color-foreground-accessory);
22
+ }
22
23
  }
23
24
 
24
25
  &[disabled],
@@ -26,19 +27,3 @@
26
27
  @include iui-button-disabled;
27
28
  }
28
29
  }
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);
43
- }
44
- }
@@ -7,19 +7,21 @@
7
7
  @import './disabled';
8
8
 
9
9
  @mixin iui-button-default {
10
- @include iui-button-default-base;
11
-
12
- &:focus {
13
- @include iui-button-default-hover-focus;
14
-
15
- &:where(:not(:focus-visible)) {
16
- @include iui-button-default-base;
17
- }
10
+ @include themed {
11
+ background-color: t(iui-color-background-1);
12
+ border-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-4));
13
+ color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-2));
18
14
  }
15
+ @include iui-focus($offset: -2px, $thickness: 2px);
19
16
 
20
17
  &:hover,
21
18
  &:active {
22
- @include iui-button-default-hover-focus;
19
+ @include themed {
20
+ background-color: t(iui-color-background-1-overlay);
21
+ border-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-1));
22
+ color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-1));
23
+ }
24
+ @include iui-notification-marker-hover;
23
25
  }
24
26
 
25
27
  &.iui-dropdown {
@@ -35,15 +37,20 @@
35
37
  }
36
38
  }
37
39
 
38
- &.iui-active {
40
+ &.iui-active:enabled {
41
+ position: relative;
39
42
  @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
43
  color: t(iui-color-foreground-primary);
46
44
  }
45
+
46
+ &::before {
47
+ content: '';
48
+ position: absolute;
49
+ inset: 0;
50
+ @include themed {
51
+ background-color: rgba(t(iui-color-foreground-primary-rgb), t(iui-opacity-6));
52
+ }
53
+ }
47
54
  }
48
55
 
49
56
  &[disabled],
@@ -51,20 +58,3 @@
51
58
  @include iui-button-disabled;
52
59
  }
53
60
  }
54
-
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));
69
- }
70
- }
@@ -6,19 +6,20 @@
6
6
  @import './button-icon';
7
7
 
8
8
  @mixin iui-button-high-visibility {
9
- @include iui-button-high-visibility-base;
10
-
11
- &:focus {
12
- @include iui-button-high-visibility-hover-focus;
13
-
14
- &:where(:not(:focus-visible)) {
15
- @include iui-button-high-visibility-base;
16
- }
9
+ @include themed {
10
+ background-color: t(iui-color-background-primary);
11
+ border-color: t(iui-color-background-primary);
12
+ color: t(iui-color-foreground-accessory);
17
13
  }
14
+ @include iui-focus($color: var(--iui-color-foreground-accessory), $offset: -3px, $thickness: 1px);
18
15
 
19
16
  &:hover,
20
17
  &:active {
21
- @include iui-button-high-visibility-hover-focus;
18
+ @include themed {
19
+ background-color: t(iui-color-background-primary-overlay);
20
+ border-color: t(iui-color-background-primary-overlay);
21
+ color: t(iui-color-foreground-accessory);
22
+ }
22
23
  }
23
24
 
24
25
  &[disabled],
@@ -26,19 +27,3 @@
26
27
  @include iui-button-disabled;
27
28
  }
28
29
  }
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);
43
- }
44
- }
@@ -0,0 +1,119 @@
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 '../text/index';
5
+ @import '../button/button';
6
+
7
+ @mixin iui-carousel {
8
+ overflow: hidden;
9
+ @include iui-focus($offset: 4px);
10
+ border-radius: $iui-border-radius;
11
+ }
12
+
13
+ @mixin iui-carousel-slider {
14
+ display: flex;
15
+ list-style: none;
16
+ margin: 0;
17
+ padding: 0;
18
+ @media (prefers-reduced-motion: no-preference) {
19
+ transition: transform $iui-speed-slow ease-in-out;
20
+ }
21
+
22
+ &-item {
23
+ width: 100%;
24
+ flex-shrink: 0;
25
+ box-sizing: border-box;
26
+ }
27
+ }
28
+
29
+ @mixin iui-carousel-navigation {
30
+ display: flex;
31
+ align-items: center;
32
+ height: $iui-baseline * 3;
33
+ box-sizing: border-box;
34
+ @include themed {
35
+ border-top: $iui-xxs solid t(iui-color-background-4);
36
+ }
37
+
38
+ &-dots,
39
+ &-left,
40
+ &-right {
41
+ display: flex;
42
+ align-items: center;
43
+ flex: 1;
44
+
45
+ button[data-pressed='true'] {
46
+ outline-offset: -1px;
47
+ @include themed {
48
+ outline: 1px solid t(iui-color-foreground-primary);
49
+ }
50
+ }
51
+ }
52
+
53
+ &-dots {
54
+ @include iui-reset;
55
+ @include iui-focus;
56
+ border-radius: $iui-border-radius;
57
+ white-space: nowrap;
58
+ overflow: hidden;
59
+ justify-content: center;
60
+ list-style: none;
61
+ }
62
+
63
+ &-dot {
64
+ @include iui-button-size($size: small);
65
+ background-color: transparent;
66
+ border: none;
67
+ cursor: pointer;
68
+
69
+ &:hover::after {
70
+ @include themed {
71
+ background-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-3));
72
+ }
73
+ }
74
+
75
+ &.iui-invisible {
76
+ display: none;
77
+ }
78
+
79
+ &::after {
80
+ content: '';
81
+ display: block;
82
+ width: $iui-icons-small;
83
+ height: $iui-icons-small;
84
+ border-radius: 50%;
85
+ transition: background-color $iui-speed-fast ease;
86
+ @media (prefers-reduced-motion: no-preference) {
87
+ transition: background-color $iui-speed-fast $iui-speed-fast ease, transform $iui-speed ease;
88
+ }
89
+ @include themed {
90
+ background-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-4));
91
+ }
92
+ }
93
+
94
+ &.iui-first::after {
95
+ transform: scale(0.5);
96
+ }
97
+
98
+ &.iui-second::after {
99
+ transform: scale(0.75);
100
+ }
101
+
102
+ &.iui-invisible::after {
103
+ transform: scale(0);
104
+ @include themed {
105
+ background-color: rgba(t(iui-color-foreground-body-rgb), 0);
106
+ }
107
+ }
108
+
109
+ &.iui-active::after {
110
+ @include themed {
111
+ background-color: t(iui-color-foreground-primary);
112
+ }
113
+ }
114
+ }
115
+
116
+ &-right {
117
+ justify-content: flex-end;
118
+ }
119
+ }