@itwin/itwinui-css 0.56.0 → 0.59.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 (39) hide show
  1. package/css/all.css +706 -346
  2. package/css/anchor.css +21 -17
  3. package/css/breadcrumbs.css +312 -57
  4. package/css/button.css +9 -12
  5. package/css/dialog.css +201 -0
  6. package/css/footer.css +1 -17
  7. package/css/global.css +1 -17
  8. package/css/information-panel.css +2 -2
  9. package/css/radio-tile.css +9 -13
  10. package/css/side-navigation.css +1 -1
  11. package/css/table.css +148 -61
  12. package/css/tag.css +1 -17
  13. package/package.json +1 -1
  14. package/scss/anchor/classes.scss +4 -0
  15. package/scss/breadcrumbs/breadcrumbs.scss +77 -18
  16. package/scss/breadcrumbs/classes.scss +12 -0
  17. package/scss/button/button.scss +17 -16
  18. package/scss/button/classes.scss +4 -0
  19. package/scss/button/cta.scss +3 -1
  20. package/scss/button/default.scss +0 -2
  21. package/scss/button/high-visibility.scss +3 -1
  22. package/scss/classes.scss +1 -1
  23. package/scss/dialog/classes.scss +47 -0
  24. package/scss/dialog/dialog.scss +213 -0
  25. package/scss/{modal → dialog}/index.scss +1 -1
  26. package/scss/index.scss +1 -1
  27. package/scss/information-panel/information-panel.scss +2 -2
  28. package/scss/radio-tile/radio-tile.scss +12 -17
  29. package/scss/side-navigation/side-navigation.scss +2 -2
  30. package/scss/style/anchor.scss +19 -16
  31. package/scss/style/elevation.scss +6 -5
  32. package/scss/table/classes.scss +16 -0
  33. package/scss/table/condensed.scss +4 -1
  34. package/scss/table/extra-condensed.scss +8 -1
  35. package/scss/table/paginator.scss +4 -0
  36. package/scss/table/table.scss +137 -37
  37. package/css/modal.css +0 -132
  38. package/scss/modal/classes.scss +0 -15
  39. package/scss/modal/modal.scss +0 -155
@@ -6,11 +6,14 @@
6
6
  @import './disabled';
7
7
 
8
8
  @mixin iui-button-cta {
9
+ --_iui-button-text-color: var(--iui-color-foreground-accessory);
10
+
9
11
  @include themed {
10
12
  background-color: t(iui-color-background-positive);
11
13
  border-color: t(iui-color-background-positive);
12
14
  color: t(iui-color-foreground-accessory);
13
15
  }
16
+ color: var(--_iui-button-text-color);
14
17
  @include iui-focus($color: var(--iui-color-foreground-accessory), $offset: -3px, $thickness: 1px);
15
18
 
16
19
  &:hover,
@@ -18,7 +21,6 @@
18
21
  @include themed {
19
22
  background-color: t(iui-color-background-positive-overlay);
20
23
  border-color: t(iui-color-background-positive-overlay);
21
- color: t(iui-color-foreground-accessory);
22
24
  }
23
25
  }
24
26
 
@@ -10,7 +10,6 @@
10
10
  @include themed {
11
11
  background-color: t(iui-color-background-1);
12
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));
14
13
  }
15
14
  @include iui-focus($offset: -2px, $thickness: 2px);
16
15
 
@@ -19,7 +18,6 @@
19
18
  @include themed {
20
19
  background-color: t(iui-color-background-1-overlay);
21
20
  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
21
  }
24
22
  @include iui-notification-marker-hover;
25
23
  }
@@ -6,11 +6,14 @@
6
6
  @import './button-icon';
7
7
 
8
8
  @mixin iui-button-high-visibility {
9
+ --_iui-button-text-color: var(--iui-color-foreground-accessory);
10
+
9
11
  @include themed {
10
12
  background-color: t(iui-color-background-primary);
11
13
  border-color: t(iui-color-background-primary);
12
14
  color: t(iui-color-foreground-accessory);
13
15
  }
16
+ color: var(--_iui-button-text-color);
14
17
  @include iui-focus($color: var(--iui-color-foreground-accessory), $offset: -3px, $thickness: 1px);
15
18
 
16
19
  &:hover,
@@ -18,7 +21,6 @@
18
21
  @include themed {
19
22
  background-color: t(iui-color-background-primary-overlay);
20
23
  border-color: t(iui-color-background-primary-overlay);
21
- color: t(iui-color-foreground-accessory);
22
24
  }
23
25
  }
24
26
 
package/scss/classes.scss CHANGED
@@ -12,6 +12,7 @@
12
12
  @import './code/classes';
13
13
  @import './color-picker/classes';
14
14
  @import './date-picker/classes';
15
+ @import './dialog/classes';
15
16
  @import './expandable-block/classes';
16
17
  @import './fieldset/classes';
17
18
  @import './file-upload/classes';
@@ -23,7 +24,6 @@
23
24
  @import './keyboard/classes';
24
25
  @import './location-marker/classes';
25
26
  @import './menu/classes';
26
- @import './modal/classes';
27
27
  @import './non-ideal-state/classes';
28
28
  @import './notification-marker/classes';
29
29
  @import './popover/classes';
@@ -0,0 +1,47 @@
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 './index';
4
+
5
+ .iui-dialog-backdrop {
6
+ @include iui-dialog-backdrop;
7
+
8
+ &.iui-dialog-backdrop-relative {
9
+ @include iui-dialog-backdrop-relative;
10
+ }
11
+ }
12
+
13
+ .iui-dialog {
14
+ @include iui-dialog;
15
+ }
16
+
17
+ .iui-dialog-default {
18
+ @include iui-dialog-default;
19
+ }
20
+
21
+ .iui-dialog-full-page {
22
+ @include iui-dialog-full-page;
23
+ }
24
+
25
+ .iui-dialog-draggable {
26
+ @include iui-dialog-draggable;
27
+ }
28
+
29
+ .iui-dialog-title {
30
+ @include iui-dialog-title;
31
+ }
32
+
33
+ .iui-dialog-title-bar {
34
+ @include iui-dialog-title-bar;
35
+ }
36
+
37
+ .iui-dialog-content {
38
+ @include iui-dialog-content;
39
+ }
40
+
41
+ .iui-dialog-button-bar {
42
+ @include iui-dialog-button-bar;
43
+ }
44
+
45
+ .iui-dialog-animation {
46
+ @include iui-dialog-animation;
47
+ }
@@ -0,0 +1,213 @@
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 iui-dialog-backdrop {
7
+ @include iui-reset;
8
+ z-index: 999;
9
+ isolation: isolate;
10
+ position: fixed;
11
+ top: 0;
12
+ left: 0;
13
+ width: 100%;
14
+ height: 100%;
15
+ @include themed {
16
+ background-color: rgba(0, 0, 0, t(iui-opacity-4));
17
+ }
18
+
19
+ // Small/Resizable Dialog Animations for CSS
20
+ visibility: hidden;
21
+ opacity: 0;
22
+ transition: visibility $iui-speed-instant linear $iui-speed-fast, opacity $iui-speed-fast ease-out;
23
+
24
+ &.iui-dialog-visible {
25
+ visibility: visible;
26
+ opacity: 1;
27
+ // remove delay for entry animation so dialog is instantly visible
28
+ transition-delay: $iui-speed-instant;
29
+ }
30
+ }
31
+
32
+ @mixin iui-dialog-backdrop-relative {
33
+ position: relative;
34
+ overflow: hidden;
35
+ }
36
+
37
+ @mixin iui-dialog {
38
+ border-radius: $iui-border-radius;
39
+ box-shadow: $iui-elevation-24;
40
+ box-sizing: border-box;
41
+ position: absolute;
42
+ padding: $iui-baseline $iui-m;
43
+ box-sizing: border-box;
44
+ padding: $iui-baseline $iui-m;
45
+ overflow: hidden;
46
+ @include themed {
47
+ background-color: t(iui-color-background-1);
48
+ }
49
+ @media (forced-colors: active) {
50
+ border: 1px solid;
51
+ }
52
+ }
53
+
54
+ @mixin iui-dialog-default {
55
+ .iui-dialog {
56
+ left: 50%;
57
+ top: 33%;
58
+ transform: translate(-50%, -33%);
59
+ max-width: 50%;
60
+ min-width: 380px;
61
+ max-height: 100vh;
62
+
63
+ @media screen and (max-width: 400px) {
64
+ max-width: 95%;
65
+ width: 95%;
66
+ min-width: 95%;
67
+ }
68
+ }
69
+ }
70
+
71
+ @mixin iui-dialog-full-page {
72
+ @media (prefers-reduced-motion: no-preference) {
73
+ transition: visibility $iui-speed-instant linear $iui-speed-slow, opacity $iui-speed ease-out $iui-speed-fast;
74
+ }
75
+
76
+ .iui-dialog {
77
+ border-radius: 0;
78
+ height: 100vh;
79
+ width: 100vw;
80
+ top: 0;
81
+ left: 0;
82
+ max-width: initial;
83
+ min-width: initial;
84
+ display: flex;
85
+ flex-direction: column;
86
+ will-change: transform;
87
+ @media (prefers-reduced-motion: no-preference) {
88
+ transform: translateY(100%);
89
+ transition: visibility $iui-speed-instant linear $iui-speed, opacity $iui-speed-instant linear $iui-speed,
90
+ transform $iui-speed-fast ease-in;
91
+ }
92
+ }
93
+
94
+ &.iui-dialog-visible .iui-dialog {
95
+ transform: translateY(0);
96
+ @media (prefers-reduced-motion: no-preference) {
97
+ transition: transform $iui-speed ease-out;
98
+ }
99
+ }
100
+ }
101
+
102
+ @mixin iui-dialog-draggable {
103
+ background-color: transparent;
104
+ pointer-events: none;
105
+ z-index: 998;
106
+
107
+ .iui-dialog {
108
+ pointer-events: initial;
109
+ max-width: 100vw;
110
+ max-height: 100vh;
111
+ min-width: 380px;
112
+ min-height: 144px;
113
+ display: flex;
114
+ flex-direction: column;
115
+ padding: 0;
116
+ @include themed {
117
+ border: 1px solid t(iui-color-background-border);
118
+ }
119
+ }
120
+ }
121
+
122
+ @mixin iui-dialog-animation {
123
+ // Full Page Dialog Animations for React
124
+ &-enter .iui-dialog-full-page .iui-dialog {
125
+ transform: translateY(100%);
126
+ opacity: 0;
127
+ }
128
+
129
+ &-enter-active .iui-dialog-full-page .iui-dialog {
130
+ transform: translateY(0);
131
+ opacity: 1;
132
+ }
133
+
134
+ // Small Dialog Animations for React
135
+ &-enter .iui-dialog-backdrop {
136
+ visibility: hidden;
137
+ opacity: 0;
138
+ }
139
+
140
+ &-enter-active .iui-dialog-backdrop {
141
+ visibility: visible;
142
+ opacity: 1;
143
+ }
144
+ }
145
+
146
+ @mixin iui-dialog-title {
147
+ font-size: inherit;
148
+ white-space: nowrap;
149
+ overflow: hidden;
150
+ text-overflow: ellipsis;
151
+ line-height: 1.5;
152
+ }
153
+
154
+ @mixin iui-dialog-title-bar {
155
+ display: flex;
156
+ align-items: center;
157
+ margin-bottom: $iui-baseline;
158
+ justify-content: space-between;
159
+ box-sizing: border-box;
160
+ font-size: $iui-font-size-subheading;
161
+
162
+ @at-root .iui-dialog-draggable & {
163
+ user-select: none;
164
+ font-size: $iui-font-size-leading;
165
+ padding: round($iui-baseline * 0.5) $iui-m;
166
+ cursor: grab;
167
+ @include themed {
168
+ background-color: t(iui-color-background-3);
169
+ border-bottom: 1px solid t(iui-color-background-border);
170
+ }
171
+
172
+ &:active {
173
+ cursor: grabbing;
174
+ }
175
+ }
176
+ }
177
+
178
+ @mixin iui-dialog-content {
179
+ flex-grow: 2;
180
+ margin: 0 -#{$iui-m};
181
+ padding: 0 $iui-m;
182
+ overflow-y: auto;
183
+ overflow-y: overlay;
184
+
185
+ @at-root .iui-dialog-draggable & {
186
+ margin: 0;
187
+ }
188
+ }
189
+
190
+ @mixin iui-dialog-button-bar {
191
+ margin-top: $iui-baseline;
192
+ display: flex;
193
+ align-items: center;
194
+ justify-content: flex-end;
195
+
196
+ @at-root .iui-dialog-draggable & {
197
+ padding: 0 $iui-m $iui-baseline $iui-m;
198
+ }
199
+
200
+ // #region IE support
201
+ > .iui-button:not(:last-child) {
202
+ margin-right: $iui-s;
203
+ }
204
+
205
+ @supports (column-gap: $iui-s) {
206
+ column-gap: $iui-s;
207
+
208
+ > .iui-button:not(:last-child) {
209
+ margin-right: 0;
210
+ }
211
+ }
212
+ // #endregion IE support
213
+ }
@@ -1,3 +1,3 @@
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
- @import './modal';
3
+ @import './dialog';
package/scss/index.scss CHANGED
@@ -11,6 +11,7 @@
11
11
  @import './code/index';
12
12
  @import './color-picker/index';
13
13
  @import './date-picker/index';
14
+ @import './dialog/index';
14
15
  @import './expandable-block/index';
15
16
  @import './file-upload/index';
16
17
  @import './footer/index';
@@ -21,7 +22,6 @@
21
22
  @import './keyboard/index';
22
23
  @import './location-marker/index';
23
24
  @import './menu/index';
24
- @import './modal/index';
25
25
  @import './non-ideal-state/index';
26
26
  @import './notification-marker/index';
27
27
  @import './popover/index';
@@ -181,7 +181,7 @@
181
181
  @mixin iui-information-panel-right {
182
182
  @include iui-information-panel-vertical;
183
183
  transform: translateX(100%); // hide off screen
184
- box-shadow: -1px 0 14px rgba(0, 0, 0, 0.25);
184
+ box-shadow: -1px 0 10px $iui-elevation-color;
185
185
  clip-path: inset(0 0 0 -15px); // show box-shadow only on the left
186
186
 
187
187
  > .iui-resizer {
@@ -192,7 +192,7 @@
192
192
  @mixin iui-information-panel-bottom {
193
193
  @include iui-information-panel-horizontal;
194
194
  transform: translateY(100%); // hide off screen
195
- box-shadow: 0 -1px 14px rgba(0, 0, 0, 0.25);
195
+ box-shadow: 0 -1px 10px $iui-elevation-color;
196
196
  clip-path: inset(-15px 0 0 0); // show box-shadow only on top
197
197
 
198
198
  > .iui-resizer {
@@ -42,7 +42,7 @@
42
42
  border-color: rgba(t(iui-color-foreground-body-rgb), t(iui-opacity-2));
43
43
  }
44
44
 
45
- svg {
45
+ .iui-radio-tile-icon {
46
46
  @media (forced-colors: active) {
47
47
  fill: CanvasText;
48
48
  }
@@ -90,7 +90,7 @@
90
90
  border: 2px solid t(iui-color-foreground-primary);
91
91
  }
92
92
 
93
- svg {
93
+ .iui-radio-tile-icon {
94
94
  @media (forced-colors: active) {
95
95
  fill: Highlight;
96
96
  }
@@ -133,7 +133,8 @@
133
133
  }
134
134
  }
135
135
 
136
- svg {
136
+ .iui-radio-tile-icon {
137
+ filter: $iui-icons-color-multicolor-disabled;
137
138
  @media (forced-colors: active) {
138
139
  fill: GrayText;
139
140
  }
@@ -142,10 +143,6 @@
142
143
  }
143
144
  }
144
145
 
145
- .iui-radio-tile-icon {
146
- filter: $iui-icons-color-multicolor-disabled;
147
- }
148
-
149
146
  .iui-radio-tile-label,
150
147
  .iui-radio-tile-sublabel {
151
148
  @media (forced-colors: active) {
@@ -179,16 +176,14 @@
179
176
  padding-top: round($iui-baseline * 0.5);
180
177
  padding-bottom: $iui-baseline;
181
178
 
182
- svg {
183
- @media (prefers-reduced-motion: no-preference) {
184
- transition: fill $iui-speed-fast ease-out;
185
- }
186
- @media (forced-colors: active) {
187
- fill: CanvasText;
188
- }
189
- @include themed {
190
- fill: t(iui-icons-color);
191
- }
179
+ @media (prefers-reduced-motion: no-preference) {
180
+ transition: fill $iui-speed-fast ease-out;
181
+ }
182
+ @media (forced-colors: active) {
183
+ fill: CanvasText;
184
+ }
185
+ @include themed {
186
+ fill: t(iui-icons-color);
192
187
  }
193
188
  }
194
189
 
@@ -84,8 +84,8 @@
84
84
  overflow: hidden;
85
85
  justify-content: flex-start;
86
86
 
87
- // Adds stripe to the left of active button
88
- --_iui-button-active-stripe-inset: 0 calc(100% - #{$iui-xxs}) 0 0;
87
+ // Adds stripe to the right of active button
88
+ --_iui-button-active-stripe-inset: 0 0 0 calc(100% - #{$iui-xxs});
89
89
 
90
90
  &:not(.iui-expand) {
91
91
  height: $iui-baseline * 5;
@@ -3,26 +3,11 @@
3
3
  @import './index';
4
4
 
5
5
  @mixin iui-anchor {
6
- --_iui-anchor-external-svg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='m16 0v5.4l-1.9-2-8.4 8.4-1.5-1.5 8.3-8.4-1.9-1.9m5.4 16v-9h-1v8h-14v-14h8v-1h-9v16z' /></svg>");
7
-
8
6
  @include iui-anchor-status('primary');
9
7
  border-radius: $iui-border-radius;
8
+ box-sizing: border-box;
10
9
  cursor: pointer;
11
10
 
12
- &-external::after {
13
- content: '';
14
- display: inline-block;
15
- width: 1.5ch;
16
- height: 1.5ch;
17
- margin-left: 0.5ch;
18
- vertical-align: -0.1ch;
19
- background-color: currentColor;
20
- mask: var(--_iui-anchor-external-svg);
21
- @media (forced-colors: active) {
22
- background-color: LinkText;
23
- }
24
- }
25
-
26
11
  @include iui-anchor-underline('on-hover');
27
12
 
28
13
  @media (prefers-contrast: more) {
@@ -44,6 +29,24 @@
44
29
  }
45
30
  }
46
31
 
32
+ @mixin iui-anchor-external {
33
+ --_iui-anchor-external-svg: url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path d='m16 0v5.4l-1.9-2-8.4 8.4-1.5-1.5 8.3-8.4-1.9-1.9m5.4 16v-9h-1v8h-14v-14h8v-1h-9v16z' /></svg>");
34
+
35
+ &::after {
36
+ content: '';
37
+ display: inline-block;
38
+ width: 1.5ch;
39
+ height: 1.5ch;
40
+ margin-left: 0.5ch;
41
+ vertical-align: -0.1ch;
42
+ background-color: currentColor;
43
+ mask: var(--_iui-anchor-external-svg);
44
+ @media (forced-colors: active) {
45
+ background-color: LinkText;
46
+ }
47
+ }
48
+ }
49
+
47
50
  @mixin iui-anchor-status($status: primary) {
48
51
  @include iui-focus($color: var(--iui-color-foreground-#{$status}), $offset: 1px);
49
52
  @include themed {
@@ -1,10 +1,11 @@
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
  /// Elevations:
4
+ $iui-elevation-color: hsla(200, 12%, 0%, 0.25);
4
5
 
5
6
  $iui-elevation-0: 0;
6
- $iui-elevation-2: 0 1px 5px hsla(200, 12%, 0%, 0.25);
7
- $iui-elevation-4: 0 1px 10px hsla(200, 12%, 0%, 0.25);
8
- $iui-elevation-8: 0 3px 14px hsla(200, 12%, 0%, 0.25);
9
- $iui-elevation-16: 0 6px 30px hsla(200, 12%, 0%, 0.25);
10
- $iui-elevation-24: 0 9px 46px hsla(200, 12%, 0%, 0.25);
7
+ $iui-elevation-2: 0 1px 5px $iui-elevation-color;
8
+ $iui-elevation-4: 0 1px 10px $iui-elevation-color;
9
+ $iui-elevation-8: 0 3px 14px $iui-elevation-color;
10
+ $iui-elevation-16: 0 6px 30px $iui-elevation-color;
11
+ $iui-elevation-24: 0 9px 46px $iui-elevation-color;
@@ -14,10 +14,18 @@
14
14
  }
15
15
  }
16
16
 
17
+ .iui-table-header-wrapper {
18
+ @include iui-table-header-wrapper;
19
+ }
20
+
17
21
  .iui-table-header {
18
22
  @include iui-table-header;
19
23
  }
20
24
 
25
+ .iui-table-header-actions-container {
26
+ @include iui-table-header-actions-container;
27
+ }
28
+
21
29
  .iui-table-body {
22
30
  @include iui-table-body;
23
31
  }
@@ -26,6 +34,14 @@
26
34
  @include iui-table-cell;
27
35
  }
28
36
 
37
+ .iui-cell-shadow-left {
38
+ @include iui-table-cell-shadow-left;
39
+ }
40
+
41
+ .iui-cell-shadow-right {
42
+ @include iui-table-cell-shadow-right;
43
+ }
44
+
29
45
  .iui-paginator {
30
46
  @include iui-paginator;
31
47
  }
@@ -5,8 +5,11 @@
5
5
 
6
6
  @mixin iui-table-condensed {
7
7
  .iui-table-header .iui-cell,
8
- .iui-row .iui-cell,
9
8
  .iui-paginator {
10
9
  min-height: $iui-baseline * 4;
11
10
  }
11
+
12
+ .iui-row .iui-cell {
13
+ min-height: $iui-baseline * 4 + 2px;
14
+ }
12
15
  }
@@ -5,8 +5,15 @@
5
5
 
6
6
  @mixin iui-table-extra-condensed {
7
7
  .iui-table-header .iui-cell,
8
- .iui-row .iui-cell,
9
8
  .iui-paginator {
10
9
  min-height: $iui-baseline * 3;
11
10
  }
11
+
12
+ .iui-row .iui-cell {
13
+ min-height: $iui-baseline * 3 + 2px;
14
+ }
15
+
16
+ .iui-table-header .iui-cell {
17
+ padding-block: $iui-baseline * 0.25;
18
+ }
12
19
  }
@@ -73,6 +73,10 @@
73
73
  @include iui-button-borderless;
74
74
  width: $iui-component-height;
75
75
 
76
+ &.iui-active {
77
+ @include iui-button-active;
78
+ }
79
+
76
80
  // Adds stripe above active button
77
81
  --_iui-button-active-stripe-inset: calc(100% - #{$iui-xs}) #{$iui-xxs} #{$iui-xxs};
78
82