@itwin/itwinui-css 0.41.1 → 0.44.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 (60) hide show
  1. package/css/alert.css +46 -61
  2. package/css/all.css +755 -715
  3. package/css/breadcrumbs.css +7 -20
  4. package/css/button.css +172 -194
  5. package/css/code.css +6 -9
  6. package/css/color-picker.css +14 -14
  7. package/css/date-picker.css +91 -85
  8. package/css/expandable-block.css +13 -9
  9. package/css/file-upload.css +4 -3
  10. package/css/footer.css +7 -20
  11. package/css/global.css +7 -9
  12. package/css/header.css +20 -38
  13. package/css/inputs.css +111 -80
  14. package/css/side-navigation.css +1 -16
  15. package/css/slider.css +7 -10
  16. package/css/table.css +173 -34
  17. package/css/tabs.css +8 -3
  18. package/css/tag.css +17 -18
  19. package/css/tile.css +0 -14
  20. package/css/time-picker.css +26 -18
  21. package/css/toast-notification.css +12 -49
  22. package/css/toggle-switch.css +7 -4
  23. package/css/tree.css +2 -3
  24. package/css/wizard.css +4 -4
  25. package/package.json +3 -3
  26. package/scss/alert/alert.scss +4 -2
  27. package/scss/button/borderless.scss +10 -26
  28. package/scss/button/button-group.scss +68 -46
  29. package/scss/button/cta.scss +10 -25
  30. package/scss/button/default.scss +11 -26
  31. package/scss/button/high-visibility.scss +10 -25
  32. package/scss/button/split-menu.scss +34 -20
  33. package/scss/color-picker/color-picker.scss +2 -25
  34. package/scss/date-picker/classes.scss +20 -0
  35. package/scss/date-picker/date-picker.scss +88 -100
  36. package/scss/expandable-block/block.scss +1 -0
  37. package/scss/file-upload/file-upload.scss +2 -2
  38. package/scss/footer/footer.scss +0 -2
  39. package/scss/header/header.scss +17 -23
  40. package/scss/inputs/checkbox-radio.scss +28 -18
  41. package/scss/inputs/checkbox.scss +9 -8
  42. package/scss/inputs/input.scss +1 -14
  43. package/scss/inputs/labeled-inputs.scss +2 -1
  44. package/scss/inputs/radio-tile.scss +9 -4
  45. package/scss/inputs/select.scss +1 -1
  46. package/scss/side-navigation/side-navigation.scss +1 -33
  47. package/scss/slider/slider.scss +1 -2
  48. package/scss/style/mixins.scss +15 -17
  49. package/scss/table/classes.scss +12 -0
  50. package/scss/table/paginator.scss +39 -32
  51. package/scss/table/table.scss +17 -8
  52. package/scss/tabs/default.scss +5 -0
  53. package/scss/tabs/tabs.scss +1 -8
  54. package/scss/tag/tag.scss +9 -1
  55. package/scss/time-picker/time-picker.scss +1 -0
  56. package/scss/toast-notification/categories.scss +5 -2
  57. package/scss/toast-notification/toast.scss +0 -1
  58. package/scss/toggle-switch/toggle-switch.scss +7 -3
  59. package/scss/tree/tree.scss +2 -2
  60. package/scss/wizard/wizard.scss +3 -3
@@ -20,25 +20,22 @@
20
20
  }
21
21
  }
22
22
 
23
- @mixin iui-focus($box-shadow-value: iui-focus-box-shadow) {
24
- &:focus {
25
- outline: 0;
26
-
27
- @include themed {
28
- box-shadow: t($box-shadow-value);
29
- }
23
+ @mixin focus-visible {
24
+ &:focus-visible {
25
+ @content;
30
26
  }
31
27
 
32
- &:focus:not(:focus-visible) {
33
- box-shadow: none;
28
+ @supports #{'not selector(*:focus-visible)'} {
29
+ &:focus {
30
+ @content;
31
+ }
34
32
  }
33
+ }
35
34
 
36
- &:focus-visible {
37
- outline: 0;
38
-
39
- @include themed {
40
- box-shadow: t($box-shadow-value);
41
- }
35
+ @mixin iui-focus($color: var(--iui-color-foreground-primary), $offset: -1px, $thickness: 1px) {
36
+ @include focus-visible {
37
+ outline: $thickness solid $color;
38
+ outline-offset: $offset;
42
39
  }
43
40
  }
44
41
 
@@ -50,7 +47,8 @@
50
47
  }
51
48
 
52
49
  @mixin iui-anchor {
53
- @include iui-focus;
50
+ @include iui-focus($offset: 2px);
51
+ border-radius: $iui-border-radius;
54
52
  text-decoration: none;
55
53
  cursor: pointer;
56
54
  @include themed {
@@ -167,7 +165,7 @@
167
165
  scroll-snap-type: y mandatory;
168
166
 
169
167
  #{$selector} {
170
- scroll-snap-align: start;
168
+ scroll-snap-align: start none;
171
169
  }
172
170
  }
173
171
  }
@@ -30,6 +30,18 @@
30
30
  @include iui-paginator;
31
31
  }
32
32
 
33
+ .iui-paginator-ellipsis {
34
+ @include iui-paginator-ellipsis;
35
+ }
36
+
37
+ .iui-paginator-pages-group {
38
+ @include iui-paginator-pages-group;
39
+ }
40
+
41
+ .iui-paginator-page-button {
42
+ @include iui-paginator-page-button;
43
+ }
44
+
33
45
  .iui-column-filter {
34
46
  @include iui-column-filter;
35
47
  }
@@ -34,38 +34,6 @@
34
34
  @include themed {
35
35
  color: t(iui-text-color);
36
36
  }
37
-
38
- .iui-button-group {
39
- margin: 0 $iui-s;
40
-
41
- > .iui-button,
42
- > .iui-ellipsis {
43
- width: $iui-component-height;
44
-
45
- &.iui-small {
46
- width: $iui-component-height-small;
47
- }
48
- }
49
-
50
- > .iui-button {
51
- // Animation looks odd when switching pages
52
- transition: none;
53
- }
54
-
55
- > .iui-ellipsis {
56
- display: flex;
57
- justify-content: center;
58
- align-items: center;
59
- @include themed {
60
- color: t(iui-text-color-muted);
61
- }
62
- }
63
-
64
- > .iui-active::after {
65
- top: auto;
66
- bottom: $iui-xxs;
67
- }
68
- }
69
37
  }
70
38
 
71
39
  > .iui-right {
@@ -79,3 +47,42 @@
79
47
  text-overflow: ellipsis;
80
48
  }
81
49
  }
50
+
51
+ @mixin iui-paginator-ellipsis {
52
+ display: flex;
53
+ justify-content: center;
54
+ align-items: center;
55
+ width: $iui-component-height;
56
+ @include themed {
57
+ color: t(iui-text-color-muted);
58
+ }
59
+
60
+ &-small {
61
+ width: $iui-component-height-small;
62
+ }
63
+ }
64
+
65
+ @mixin iui-paginator-pages-group {
66
+ @include iui-button-group;
67
+ margin: 0 $iui-s;
68
+
69
+ > * + * {
70
+ margin-left: 0; // unset negative margin from button-group
71
+ }
72
+
73
+ button.iui-active::after {
74
+ top: auto;
75
+ bottom: $iui-xxs;
76
+ }
77
+ }
78
+
79
+ @mixin iui-paginator-page-button {
80
+ @include iui-button;
81
+ @include iui-button-borderless;
82
+ width: $iui-component-height;
83
+
84
+ &-small {
85
+ @include iui-button-size(small);
86
+ width: $iui-component-height-small;
87
+ }
88
+ }
@@ -13,17 +13,17 @@
13
13
  box-sizing: border-box;
14
14
  }
15
15
 
16
- &.iui-zebra-striping > .iui-table-body > .iui-row:nth-child(even):not(.iui-selected) {
17
- @include themed {
18
- background: rgba(t(iui-color-foreground-body-rgb), 0.02);
19
- }
20
- }
21
-
22
16
  @include iui-table-cell-icon;
23
17
  }
24
18
 
25
19
  @mixin iui-table-header {
26
20
  user-select: none;
21
+ overflow: hidden;
22
+ // Fix for Firefox columns misalignment
23
+ @supports not (overflow: overlay) {
24
+ overflow-y: scroll;
25
+ }
26
+ flex-shrink: 0;
27
27
  @include themed {
28
28
  background-color: t(iui-color-background-3);
29
29
  }
@@ -123,18 +123,26 @@
123
123
  }
124
124
 
125
125
  @mixin iui-table-body {
126
- overflow-x: hidden;
127
126
  overflow-y: scroll;
128
- overflow-y: overlay;
127
+ overflow: overlay;
129
128
  display: flex;
130
129
  flex-direction: column;
131
130
  flex-grow: 1;
131
+ // Allows columns with static width to take more space than the table width
132
+ align-items: flex-start;
132
133
  @include iui-scroll-snapping('.iui-row');
133
134
  @include themed {
134
135
  background-color: t(iui-color-background-1);
135
136
  }
136
137
 
138
+ &.iui-zebra-striping > .iui-row:nth-child(even):not(.iui-selected) {
139
+ @include themed {
140
+ background-color: rgba(t(iui-color-foreground-body-rgb), 0.02);
141
+ }
142
+ }
143
+
137
144
  .iui-row {
145
+ min-width: 100%;
138
146
  display: flex;
139
147
  border: solid 1px transparent;
140
148
  @media (prefers-reduced-motion: no-preference) {
@@ -296,6 +304,7 @@
296
304
  justify-content: center;
297
305
  align-items: center;
298
306
  flex-grow: 1;
307
+ align-self: center;
299
308
  @include themed {
300
309
  color: t(iui-text-color-muted);
301
310
  background-color: t(iui-color-background-1);
@@ -37,6 +37,11 @@
37
37
  background-color: t(iui-color-background-3);
38
38
  }
39
39
  }
40
+
41
+ &:focus {
42
+ outline-width: 2px;
43
+ outline-offset: -2px;
44
+ }
40
45
  }
41
46
 
42
47
  @at-root {
@@ -49,14 +49,7 @@
49
49
  }
50
50
  }
51
51
 
52
- &:focus {
53
- outline: 1px solid t(iui-color-foreground-primary);
54
- outline-offset: -1px;
55
- }
56
-
57
- &:focus:not(:focus-visible) {
58
- outline: none;
59
- }
52
+ @include iui-focus;
60
53
  }
61
54
 
62
55
  .iui-tab-icon {
package/scss/tag/tag.scss CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  @mixin iui-tag {
8
8
  @include iui-reset;
9
- @include iui-focus;
9
+ @include iui-focus($offset: -2px, $thickness: 2px);
10
10
  user-select: all;
11
11
  text-transform: lowercase;
12
12
  display: inline-flex;
@@ -58,6 +58,10 @@
58
58
  }
59
59
  }
60
60
  }
61
+
62
+ &.iui-basic {
63
+ outline-offset: 1px;
64
+ }
61
65
  }
62
66
 
63
67
  @mixin iui-tag-container {
@@ -65,6 +69,10 @@
65
69
  color: t(iui-text-color-muted);
66
70
  }
67
71
 
72
+ > a.iui-basic {
73
+ margin: $iui-xxs;
74
+ }
75
+
68
76
  > .iui-tag:not(:last-child) {
69
77
  margin-right: $iui-xs;
70
78
  }
@@ -56,6 +56,7 @@
56
56
  &.iui-selected {
57
57
  font-weight: $iui-font-weight-semibold;
58
58
  cursor: default;
59
+ @include iui-focus($color: var(--iui-color-foreground-accessory), $offset: -3px);
59
60
  @include themed {
60
61
  background-color: t(iui-color-background-primary);
61
62
  color: t(iui-color-foreground-accessory);
@@ -36,9 +36,12 @@
36
36
  }
37
37
  }
38
38
 
39
- > .iui-anchor,
39
+ > .iui-anchor {
40
+ outline-color: var(--iui-color-foreground-#{$category});
41
+ }
42
+
40
43
  > .iui-button {
41
- @include iui-focus(iui-focus-#{$category}-box-shadow);
44
+ outline-color: var(--iui-color-foreground-#{$category});
42
45
  }
43
46
  }
44
47
  }
@@ -59,7 +59,6 @@
59
59
  user-select: none;
60
60
  text-decoration: underline;
61
61
  white-space: nowrap;
62
- @include iui-focus;
63
62
 
64
63
  &:hover {
65
64
  text-decoration: none;
@@ -109,8 +109,7 @@
109
109
  }
110
110
  }
111
111
 
112
- &:hover:not(:disabled),
113
- &:focus {
112
+ &:hover:not(:disabled) {
114
113
  ~ .iui-toggle {
115
114
  @include themed {
116
115
  border-color: t(iui-color-background-primary);
@@ -168,8 +167,13 @@
168
167
  // Focus on non-disabled toggle switch
169
168
  &:enabled:focus ~ .iui-toggle {
170
169
  @include themed {
171
- box-shadow: t(iui-focus-box-shadow);
170
+ outline: 1px solid t(iui-color-foreground-primary);
172
171
  }
172
+ outline-offset: 1px;
173
+ }
174
+
175
+ &:enabled:focus:not(:focus-visible) ~ .iui-toggle {
176
+ outline: none;
173
177
  }
174
178
  }
175
179
 
@@ -85,9 +85,9 @@ $iui-expander-button-width: ($iui-icons-default) + ($iui-expander-inline-padding
85
85
 
86
86
  &:focus {
87
87
  @include themed {
88
- outline: thin solid rgba(t(iui-color-foreground-primary-rgb), t(iui-opacity-4));
89
- outline-offset: -1px;
88
+ outline: 1px solid t(iui-color-foreground-primary);
90
89
  }
90
+ outline-offset: -1px;
91
91
  }
92
92
 
93
93
  &:focus:not(:focus-visible) {
@@ -115,16 +115,16 @@
115
115
  outline: 0;
116
116
 
117
117
  .iui-wizard-circle {
118
- outline: 0;
119
118
  @include themed {
120
- box-shadow: t(iui-focus-positive-box-shadow);
119
+ outline: 2px solid t(iui-color-foreground-positive);
121
120
  }
121
+ outline-offset: -1px;
122
122
  }
123
123
  }
124
124
 
125
125
  &:focus:not(:focus-visible) {
126
126
  .iui-wizard-circle {
127
- box-shadow: none;
127
+ outline: none;
128
128
  }
129
129
  }
130
130
  }