@itwin/itwinui-css 0.50.0 → 0.52.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 (67) hide show
  1. package/css/alert.css +232 -174
  2. package/css/all.css +7324 -5608
  3. package/css/badge.css +2 -1
  4. package/css/blockquote.css +10 -7
  5. package/css/breadcrumbs.css +110 -87
  6. package/css/button.css +443 -344
  7. package/css/carousel.css +119 -88
  8. package/css/code.css +69 -56
  9. package/css/color-picker.css +150 -103
  10. package/css/date-picker.css +73 -55
  11. package/css/expandable-block.css +212 -160
  12. package/css/fieldset.css +22 -18
  13. package/css/file-upload.css +93 -79
  14. package/css/footer.css +64 -53
  15. package/css/global.css +100 -78
  16. package/css/header.css +471 -364
  17. package/css/icon.css +108 -78
  18. package/css/information-panel.css +174 -137
  19. package/css/inputs.css +1134 -942
  20. package/css/keyboard.css +11 -7
  21. package/css/location-marker.css +68 -58
  22. package/css/menu.css +105 -80
  23. package/css/modal.css +114 -44
  24. package/css/non-ideal-state.css +47 -40
  25. package/css/notification-marker.css +275 -200
  26. package/css/popover.css +10 -8
  27. package/css/progress-indicator.css +315 -237
  28. package/css/reset-global-styles.css +10 -5
  29. package/css/side-navigation.css +189 -140
  30. package/css/skip-to-content.css +41 -27
  31. package/css/slider.css +112 -87
  32. package/css/table.css +563 -419
  33. package/css/tabs.css +324 -238
  34. package/css/tag.css +111 -84
  35. package/css/text.css +46 -27
  36. package/css/tile.css +387 -311
  37. package/css/time-picker.css +113 -86
  38. package/css/toast-notification.css +232 -173
  39. package/css/toggle-switch.css +176 -111
  40. package/css/tooltip.css +21 -16
  41. package/css/tree.css +123 -93
  42. package/css/user-icon.css +223 -162
  43. package/css/wizard.css +156 -131
  44. package/package.json +5 -6
  45. package/scss/alert/alert.scss +1 -5
  46. package/scss/button/button-group.scss +4 -1
  47. package/scss/carousel/carousel.scss +4 -1
  48. package/scss/code/codeblock.scss +1 -1
  49. package/scss/inputs/checkbox.scss +1 -0
  50. package/scss/inputs/labeled-inputs.scss +8 -8
  51. package/scss/inputs/radio.scss +0 -4
  52. package/scss/location-marker/data-rich.scss +1 -1
  53. package/scss/location-marker/me.scss +4 -4
  54. package/scss/modal/classes.scss +4 -0
  55. package/scss/modal/modal.scss +81 -7
  56. package/scss/popover/popover.scss +1 -2
  57. package/scss/progress-indicator/linear.scss +2 -10
  58. package/scss/style/global.scss +1 -5
  59. package/scss/style/mixins.scss +9 -0
  60. package/scss/style/ripple.scss +1 -1
  61. package/scss/style/speed.scss +1 -0
  62. package/scss/table/table.scss +23 -14
  63. package/scss/toast-notification/categories.scss +1 -5
  64. package/scss/toggle-switch/classes.scss +4 -0
  65. package/scss/toggle-switch/toggle-switch.scss +141 -162
  66. package/scss/tooltip/tooltip.scss +1 -1
  67. package/scss/user-icon/user-icon.scss +38 -19
package/css/wizard.css CHANGED
@@ -6,58 +6,65 @@
6
6
  margin:0;
7
7
  padding:0;
8
8
  border:none;
9
- vertical-align:baseline; }
10
- .iui-wizard > ol{
11
- margin:0;
12
- padding:0;
13
- border:none;
14
- vertical-align:baseline;
15
- display:flex;
16
- justify-content:space-around;
17
- align-items:flex-start;
18
- width:100%;
19
- margin-bottom:5.5px; }
20
- .iui-wizard.iui-long .iui-wizard-steps-label{
21
- display:block;
22
- font-size:18px;
23
- text-align:center; }
24
- .iui-wizard.iui-long .iui-steps-count{
25
- -webkit-user-select:none;
26
- -moz-user-select:none;
27
- -ms-user-select:none;
28
- user-select:none;
29
- margin-right:8px;
30
- color:rgba(0, 0, 0, 0.4);
31
- color:var(--iui-text-color-muted); }
32
- .iui-wizard.iui-workflow > ol{
33
- align-items:center; }
34
- .iui-wizard.iui-workflow .iui-wizard-step .iui-wizard-circle{
35
- padding-left:16px;
36
- padding-right:16px;
37
- height:100%;
38
- width:auto;
39
- border-radius:0;
40
- font-weight:400;
41
- text-align:center;
42
- background-color:#53A21A;
43
- border-color:#53A21A;
44
- color:#FFF;
45
- background-color:var(--iui-color-background-positive);
46
- border-color:var(--iui-color-background-positive);
47
- color:var(--iui-color-foreground-accessory); }
48
- .iui-wizard.iui-workflow .iui-wizard-step:first-of-type .iui-wizard-circle,
49
- .iui-wizard.iui-workflow .iui-wizard-step:last-of-type .iui-wizard-circle{
50
- border-radius:12px;
51
- background-color:#FFF;
52
- border-color:#53A21A;
53
- color:#53A21A;
54
- background-color:var(--iui-color-background-1);
55
- border-color:var(--iui-color-foreground-positive);
56
- color:var(--iui-color-foreground-positive); }
57
- .iui-wizard.iui-workflow .iui-wizard-track-content::before,
58
- .iui-wizard.iui-workflow .iui-wizard-track-content::after{
59
- background-color:#53A21A;
60
- background-color:var(--iui-color-foreground-positive); }
9
+ vertical-align:baseline;
10
+ }
11
+ .iui-wizard > ol{
12
+ margin:0;
13
+ padding:0;
14
+ border:none;
15
+ vertical-align:baseline;
16
+ display:flex;
17
+ justify-content:space-around;
18
+ align-items:flex-start;
19
+ width:100%;
20
+ margin-bottom:5.5px;
21
+ }
22
+ .iui-wizard.iui-long .iui-wizard-steps-label{
23
+ display:block;
24
+ font-size:18px;
25
+ text-align:center;
26
+ }
27
+ .iui-wizard.iui-long .iui-steps-count{
28
+ -webkit-user-select:none;
29
+ -moz-user-select:none;
30
+ -ms-user-select:none;
31
+ user-select:none;
32
+ margin-right:8px;
33
+ color:rgba(0, 0, 0, 0.4);
34
+ color:var(--iui-text-color-muted);
35
+ }
36
+ .iui-wizard.iui-workflow > ol{
37
+ align-items:center;
38
+ }
39
+ .iui-wizard.iui-workflow .iui-wizard-step .iui-wizard-circle{
40
+ padding-left:16px;
41
+ padding-right:16px;
42
+ height:100%;
43
+ width:auto;
44
+ border-radius:0;
45
+ font-weight:400;
46
+ text-align:center;
47
+ background-color:#53A21A;
48
+ border-color:#53A21A;
49
+ color:#FFF;
50
+ background-color:var(--iui-color-background-positive);
51
+ border-color:var(--iui-color-background-positive);
52
+ color:var(--iui-color-foreground-accessory);
53
+ }
54
+ .iui-wizard.iui-workflow .iui-wizard-step:first-of-type .iui-wizard-circle, .iui-wizard.iui-workflow .iui-wizard-step:last-of-type .iui-wizard-circle{
55
+ border-radius:12px;
56
+ background-color:#FFF;
57
+ border-color:#53A21A;
58
+ color:#53A21A;
59
+ background-color:var(--iui-color-background-1);
60
+ border-color:var(--iui-color-foreground-positive);
61
+ color:var(--iui-color-foreground-positive);
62
+ }
63
+ .iui-wizard.iui-workflow .iui-wizard-track-content::before,
64
+ .iui-wizard.iui-workflow .iui-wizard-track-content::after{
65
+ background-color:#53A21A;
66
+ background-color:var(--iui-color-foreground-positive);
67
+ }
61
68
 
62
69
  .iui-wizard-step{
63
70
  flex:1;
@@ -72,89 +79,106 @@
72
79
  font-weight:400;
73
80
  line-height:22px;
74
81
  color:#53A21A;
75
- color:var(--iui-color-background-positive); }
76
- .iui-wizard-step .iui-wizard-circle{
77
- align-items:center;
78
- border-radius:50%;
79
- display:flex;
80
- width:24px;
81
- height:24px;
82
- justify-content:center;
83
- overflow-wrap:break-word;
84
- -webkit-user-select:none;
85
- -moz-user-select:none;
86
- -ms-user-select:none;
87
- user-select:none;
88
- transition:background-color 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out;
89
- border:1px solid #53A21A;
90
- background-color:#FFF;
91
- color:#53A21A;
92
- border:1px solid var(--iui-color-foreground-positive);
93
- background-color:var(--iui-color-background-1);
94
- color:var(--iui-color-foreground-positive); }
95
- .iui-wizard-step.iui-current{
96
- font-weight:600; }
97
- .iui-wizard-step.iui-current .iui-wizard-step-name{
98
- color:#53A21A;
99
- color:var(--iui-color-foreground-positive); }
100
- .iui-wizard-step.iui-current .iui-wizard-circle{
101
- color:#FFF;
102
- border-color:#53A21A;
103
- background-color:#53A21A;
104
- color:var(--iui-color-foreground-accessory);
105
- border-color:var(--iui-color-background-positive);
106
- background-color:var(--iui-color-background-positive); }
107
- .iui-wizard-step.iui-current .iui-wizard-track-content::after{
108
- background-color:#C7CCD1;
109
- background-color:var(--iui-color-background-5); }
110
- .iui-wizard-step.iui-current ~ .iui-wizard-step .iui-wizard-circle{
111
- border:1px solid #C7CCD1;
112
- background-color:#FFF;
113
- color:rgba(0, 0, 0, 0.4);
114
- border:1px solid var(--iui-color-background-5);
115
- background-color:var(--iui-color-background-1);
116
- color:var(--iui-text-color-muted); }
117
- .iui-wizard-step.iui-current ~ .iui-wizard-step .iui-wizard-step-name{
118
- color:rgba(0, 0, 0, 0.4);
119
- color:var(--iui-text-color-muted); }
120
- .iui-wizard-step.iui-current ~ .iui-wizard-step .iui-wizard-track-content::before,
121
- .iui-wizard-step.iui-current ~ .iui-wizard-step:not(:last-of-type) .iui-wizard-track-content::after{
122
- background-color:#C7CCD1;
123
- background-color:var(--iui-color-background-5); }
82
+ color:var(--iui-color-background-positive);
83
+ }
84
+ .iui-wizard-step .iui-wizard-circle{
85
+ align-items:center;
86
+ border-radius:50%;
87
+ display:flex;
88
+ width:24px;
89
+ height:24px;
90
+ justify-content:center;
91
+ overflow-wrap:break-word;
92
+ -webkit-user-select:none;
93
+ -moz-user-select:none;
94
+ -ms-user-select:none;
95
+ user-select:none;
96
+ transition:background-color 0.2s ease-out, border-color 0.2s ease-out, color 0.2s ease-out;
97
+ border:1px solid #53A21A;
98
+ background-color:#FFF;
99
+ color:#53A21A;
100
+ border:1px solid var(--iui-color-foreground-positive);
101
+ background-color:var(--iui-color-background-1);
102
+ color:var(--iui-color-foreground-positive);
103
+ }
104
+ .iui-wizard-step.iui-current{
105
+ font-weight:600;
106
+ }
107
+ .iui-wizard-step.iui-current .iui-wizard-step-name{
108
+ color:#53A21A;
109
+ color:var(--iui-color-foreground-positive);
110
+ }
111
+ .iui-wizard-step.iui-current .iui-wizard-circle{
112
+ color:#FFF;
113
+ border-color:#53A21A;
114
+ background-color:#53A21A;
115
+ color:var(--iui-color-foreground-accessory);
116
+ border-color:var(--iui-color-background-positive);
117
+ background-color:var(--iui-color-background-positive);
118
+ }
119
+ .iui-wizard-step.iui-current .iui-wizard-track-content::after{
120
+ background-color:#C7CCD1;
121
+ background-color:var(--iui-color-background-5);
122
+ }
123
+ .iui-wizard-step.iui-current ~ .iui-wizard-step .iui-wizard-circle{
124
+ border:1px solid #C7CCD1;
125
+ background-color:#FFF;
126
+ color:rgba(0, 0, 0, 0.4);
127
+ border:1px solid var(--iui-color-background-5);
128
+ background-color:var(--iui-color-background-1);
129
+ color:var(--iui-text-color-muted);
130
+ }
131
+ .iui-wizard-step.iui-current ~ .iui-wizard-step .iui-wizard-step-name{
132
+ color:rgba(0, 0, 0, 0.4);
133
+ color:var(--iui-text-color-muted);
134
+ }
135
+ .iui-wizard-step.iui-current ~ .iui-wizard-step .iui-wizard-track-content::before, .iui-wizard-step.iui-current ~ .iui-wizard-step:not(:last-of-type) .iui-wizard-track-content::after{
136
+ background-color:#C7CCD1;
137
+ background-color:var(--iui-color-background-5);
138
+ }
139
+ .iui-wizard-step.iui-clickable .iui-wizard-circle{
140
+ cursor:pointer;
141
+ }
142
+ @media (prefers-reduced-motion: no-preference){
124
143
  .iui-wizard-step.iui-clickable .iui-wizard-circle{
125
- cursor:pointer; }
126
- @media (prefers-reduced-motion: no-preference){
127
- .iui-wizard-step.iui-clickable .iui-wizard-circle{
128
- transition:background-color 0.2s ease-out; } }
129
- .iui-wizard-step.iui-clickable .iui-wizard-circle:hover{
130
- color:#FFF;
131
- border:1px solid #53A21A;
132
- background-color:#53A21A;
133
- color:var(--iui-color-foreground-accessory);
134
- border:1px solid var(--iui-color-background-positive);
135
- background-color:var(--iui-color-background-positive); }
136
- .iui-wizard-step.iui-clickable:focus{
137
- outline:0; }
138
- .iui-wizard-step.iui-clickable:focus .iui-wizard-circle{
139
- outline:2px solid #53A21A;
140
- outline:2px solid var(--iui-color-foreground-positive);
141
- outline-offset:-1px; }
142
- .iui-wizard-step.iui-clickable:focus:not(:focus-visible) .iui-wizard-circle{
143
- outline:none; }
144
- .iui-wizard-step:first-of-type .iui-wizard-track-content::before,
145
- .iui-wizard-step:last-of-type .iui-wizard-track-content::after{
146
- background-color:transparent; }
144
+ transition:background-color 0.2s ease-out;
145
+ }
146
+ }
147
+ .iui-wizard-step.iui-clickable .iui-wizard-circle:hover{
148
+ color:#FFF;
149
+ border:1px solid #53A21A;
150
+ background-color:#53A21A;
151
+ color:var(--iui-color-foreground-accessory);
152
+ border:1px solid var(--iui-color-background-positive);
153
+ background-color:var(--iui-color-background-positive);
154
+ }
155
+ .iui-wizard-step.iui-clickable:focus{
156
+ outline:0;
157
+ }
158
+ .iui-wizard-step.iui-clickable:focus .iui-wizard-circle{
159
+ outline:2px solid #53A21A;
160
+ outline:2px solid var(--iui-color-foreground-positive);
161
+ outline-offset:-1px;
162
+ }
163
+ .iui-wizard-step.iui-clickable:focus:not(:focus-visible) .iui-wizard-circle{
164
+ outline:none;
165
+ }
166
+ .iui-wizard-step:first-of-type .iui-wizard-track-content::before, .iui-wizard-step:last-of-type .iui-wizard-track-content::after{
167
+ background-color:transparent;
168
+ }
147
169
 
148
170
  .iui-wizard-track-content{
149
171
  display:flex;
150
172
  align-items:center;
151
- width:100%; }
152
- .iui-wizard-track-content::before, .iui-wizard-track-content::after{
153
- content:'';
154
- height:2px;
155
- flex:1 2 auto;
156
- background-color:#53A21A;
157
- background-color:var(--iui-color-foreground-positive); }
173
+ width:100%;
174
+ }
175
+ .iui-wizard-track-content::before, .iui-wizard-track-content::after{
176
+ content:"";
177
+ height:2px;
178
+ flex:1 2 auto;
179
+ background-color:#53A21A;
180
+ background-color:var(--iui-color-foreground-positive);
181
+ }
158
182
 
159
183
  .iui-wizard-step-name{
160
184
  text-align:center;
@@ -162,4 +186,5 @@
162
186
  -moz-user-select:all;
163
187
  user-select:all;
164
188
  color:#53A21A;
165
- color:var(--iui-color-foreground-positive); }
189
+ color:var(--iui-color-foreground-positive);
190
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/itwinui-css",
3
- "version": "0.50.0",
3
+ "version": "0.52.0",
4
4
  "author": "Bentley Systems",
5
5
  "license": "MIT",
6
6
  "main": "src/index.scss",
@@ -38,16 +38,15 @@
38
38
  ]
39
39
  },
40
40
  "scripts": {
41
- "build": "yarn clean && yarn build:scss && yarn build:css && yarn build:html && yarn copy-files",
41
+ "build": "yarn clean && yarn build:scss && yarn build:css && yarn lint:copyright --fix lib/css/* && yarn build:html && yarn copy-files",
42
42
  "build:scss": "cpx \"./src/**/*.scss\" ./lib/scss",
43
- "build:css": "node ./scripts/generateCss.js src lib/css && yarn postcss-processing && yarn lint:copyright --fix lib/css/*",
43
+ "build:css": "node ./scripts/generateCss.js src lib/css",
44
44
  "build:html": "node ./scripts/generateHtml.js backstop/tests backstop/minified",
45
45
  "build:watch": "yarn build && concurrently -n scss,html -k \"yarn build:watch:scss\" \"yarn build:watch:html\"",
46
46
  "build:watch:scss": "chokidar \"src/**/*\" -c \"yarn build:scss && yarn build:css\"",
47
47
  "build:watch:html": "chokidar \"backstop/tests/**/*\" -c \"yarn build:html\"",
48
48
  "copy-files": "cpx package.json lib && cpx README.md lib",
49
49
  "createComponent": "node ./scripts/createComponent.js",
50
- "postcss-processing": "postcss lib/css -d lib/css --no-map && yarn print \"Finished post-processing CSS.\"",
51
50
  "clean": "rimraf ./lib ./backstop/results/bitmaps_test",
52
51
  "lint": "stylelint \"src/**/*.scss\"",
53
52
  "lint:copyright": "node scripts/copyrightLinter.js",
@@ -68,12 +67,12 @@
68
67
  "html-minifier": "^4.0.0",
69
68
  "husky": "=4",
70
69
  "lint-staged": "^11.2.6",
71
- "node-sass": "^7.0.0",
72
70
  "postcss": "^8.4.5",
73
- "postcss-cli": "^8.3.1",
74
71
  "postcss-discard-comments": "^5.0.1",
72
+ "postcss-scss": "^4.0.3",
75
73
  "prettier": "^2.4.1",
76
74
  "rimraf": "^3.0.2",
75
+ "sass-embedded": "^1.49.9",
77
76
  "stylelint": "^14.2.0",
78
77
  "stylelint-config-sass-guidelines": "^9.0.1"
79
78
  },
@@ -79,11 +79,7 @@
79
79
  }
80
80
 
81
81
  #{$rootSelector}-message {
82
- &::selection {
83
- @include themed {
84
- background-color: rgba(t(iui-color-foreground-#{$statusColor}-rgb), t(iui-opacity-4));
85
- }
86
- }
82
+ @include iui-text-selection($statusColor);
87
83
  }
88
84
 
89
85
  #{$rootSelector}-link {
@@ -10,8 +10,11 @@
10
10
  align-items: center;
11
11
  isolation: isolate;
12
12
 
13
- @if $orientation != 'horizontal' {
13
+ @if $orientation == 'horizontal' {
14
+ max-width: 100%;
15
+ } @else {
14
16
  flex-direction: column;
17
+ max-height: 100%;
15
18
  }
16
19
 
17
20
  $childZindexSelector: '.iui-input-container, .iui-button, .iui-input:where(:not(.iui-input-container .iui-input))';
@@ -46,7 +46,6 @@
46
46
  border-top: $iui-xxs solid t(iui-color-background-4);
47
47
  }
48
48
 
49
- &-dots,
50
49
  &-left,
51
50
  &-right {
52
51
  display: flex;
@@ -64,6 +63,10 @@
64
63
  &-dots {
65
64
  @include iui-reset;
66
65
  @include iui-focus;
66
+ display: flex;
67
+ align-items: center;
68
+ flex: 2;
69
+ max-width: $iui-xxl * 4;
67
70
  border-radius: $iui-border-radius;
68
71
  white-space: nowrap;
69
72
  overflow: hidden;
@@ -5,7 +5,7 @@
5
5
 
6
6
  @mixin iui-codeblock {
7
7
  @include iui-reset;
8
- margin: round($iui-baseline/2) 0;
8
+ margin: round($iui-baseline * 0.5) 0;
9
9
 
10
10
  > .iui-title-bar {
11
11
  display: flex;
@@ -24,6 +24,7 @@
24
24
  position: relative;
25
25
  border-radius: $iui-border-radius;
26
26
  background-color: var(--_iui-checkbox-background-color);
27
+ flex-shrink: 0;
27
28
  cursor: pointer;
28
29
 
29
30
  &::before {
@@ -55,6 +55,10 @@
55
55
  // stylelint-enable
56
56
  }
57
57
 
58
+ .iui-input-group .iui-toggle-switch-wrapper {
59
+ padding: round($iui-baseline * 0.5) 0;
60
+ }
61
+
58
62
  // #region Cursors
59
63
  @include iui-input-label-cursor;
60
64
 
@@ -124,9 +128,9 @@
124
128
  display: flex;
125
129
  gap: $iui-m;
126
130
 
127
- > .iui-checkbox,
128
- > .iui-radio,
129
- > .iui-toggle-switch {
131
+ > .iui-checkbox-wrapper,
132
+ > .iui-radio-wrapper,
133
+ > .iui-toggle-switch-wrapper {
130
134
  margin-right: $iui-m;
131
135
 
132
136
  @supports (gap: $iui-m) {
@@ -300,11 +304,7 @@
300
304
  /// @arg iconSelector - selector to apply status fill on. Defaults to .iui-input-icon
301
305
  /// @arg textSelector - selector to apply text color on. Defaults to .iui-message
302
306
  @mixin iui-input-status($status, $iconSelector: '.iui-input-icon', $textSelector: '.iui-message') {
303
- *::selection {
304
- @include themed {
305
- background-color: rgba(t(iui-color-foreground-#{$status}-rgb), t(iui-opacity-4));
306
- }
307
- }
307
+ @include iui-text-selection($status);
308
308
 
309
309
  #{$iconSelector} {
310
310
  @include themed {
@@ -3,10 +3,6 @@
3
3
  @import '../style/index';
4
4
 
5
5
  @mixin iui-radio {
6
- &-wrapper {
7
- @include iui-inputs-checkbox-radio;
8
- }
9
-
10
6
  @include iui-checkbox;
11
7
 
12
8
  border-radius: 50%;
@@ -12,7 +12,7 @@
12
12
  border-radius: $iui-border-radius;
13
13
  text-align: center;
14
14
  font-size: $iui-font-size-leading;
15
- padding: round($iui-baseline/4) $iui-s;
15
+ padding: round($iui-baseline * 0.25) $iui-s;
16
16
  filter: drop-shadow($iui-elevation-2);
17
17
  box-sizing: border-box;
18
18
  position: relative;
@@ -20,11 +20,11 @@
20
20
  }
21
21
 
22
22
  > .iui-location-marker-me-dot {
23
- width: $iui-icons-large/2;
24
- height: $iui-icons-large/2;
23
+ width: $iui-icons-large * 0.5;
24
+ height: $iui-icons-large * 0.5;
25
25
  position: absolute;
26
- top: $iui-icons-large/4;
27
- left: $iui-icons-large/4;
26
+ top: $iui-icons-large * 0.25;
27
+ left: $iui-icons-large * 0.25;
28
28
  border-radius: 50%;
29
29
  box-sizing: border-box;
30
30
 
@@ -4,4 +4,8 @@
4
4
 
5
5
  .iui-modal {
6
6
  @include iui-modal;
7
+
8
+ &-full-page {
9
+ @include iui-modal-full-page;
10
+ }
7
11
  }
@@ -11,15 +11,37 @@
11
11
  left: 0;
12
12
  width: 100%;
13
13
  height: 100%;
14
+ @include themed {
15
+ background-color: rgba(0, 0, 0, t(iui-opacity-4));
16
+ }
17
+
18
+ // #region Small Modal Animations for CSS
14
19
  visibility: hidden;
15
20
  opacity: 0;
16
21
  @media (prefers-reduced-motion: no-preference) {
17
- transition: visibility 0s linear $iui-speed-fast, opacity $iui-speed-fast ease-out;
22
+ transition: visibility $iui-speed-instant linear $iui-speed-fast, opacity $iui-speed-fast ease-out;
18
23
  }
19
- @include themed {
20
- background-color: rgba(0, 0, 0, t(iui-opacity-4));
24
+
25
+ &.iui-modal-visible {
26
+ visibility: visible;
27
+ opacity: 1;
28
+ // remove delay for entry animation so it's instantly visible
29
+ transition-delay: $iui-speed-instant;
30
+ }
31
+ // #endregion Small Modal Animations for CSS
32
+
33
+ // #region Small Modal Animations for React
34
+ &.iui-modal-animation-enter {
35
+ visibility: hidden;
36
+ opacity: 0;
21
37
  }
22
38
 
39
+ &.iui-modal-animation-enter-active {
40
+ visibility: visible;
41
+ opacity: 1;
42
+ }
43
+ // #endregion Full Page Modal Animations for React
44
+
23
45
  > .iui-modal-dialog {
24
46
  position: absolute;
25
47
  left: 50%;
@@ -27,10 +49,12 @@
27
49
  transform: translate(-50%, -33%);
28
50
  z-index: 1000;
29
51
  max-width: 50%;
30
- min-width: 400px;
52
+ min-width: 380px;
53
+ max-height: 100vh;
31
54
  border-radius: $iui-border-radius;
32
55
  box-shadow: $iui-elevation-24;
33
56
  padding: $iui-baseline $iui-m;
57
+ box-sizing: border-box;
34
58
 
35
59
  @include themed {
36
60
  background-color: t(iui-color-background-1);
@@ -67,11 +91,61 @@
67
91
  margin-right: $iui-s;
68
92
  }
69
93
  }
94
+
95
+ .iui-modal-content {
96
+ flex-grow: 2;
97
+ margin: 0 -#{$iui-m};
98
+ padding: 0 $iui-m;
99
+ overflow-y: auto;
100
+ overflow-y: overlay;
101
+ }
70
102
  }
103
+ }
71
104
 
72
- &.iui-modal-visible {
73
- visibility: visible;
105
+ @mixin iui-modal-full-page {
106
+ > .iui-modal-dialog {
107
+ display: flex;
108
+ flex-direction: column;
109
+ height: 100vh;
110
+ width: 100vw;
111
+ left: 0;
112
+ top: 0;
113
+ transform: none;
114
+ max-width: initial;
115
+ min-width: initial;
116
+ border-radius: 0;
117
+ will-change: transform;
118
+ }
119
+
120
+ // #region Full Page Modal Animations for CSS
121
+ @media (prefers-reduced-motion: no-preference) {
122
+ transition: visibility $iui-speed-instant linear $iui-speed, opacity $iui-speed ease-out $iui-speed-fast;
123
+ }
124
+
125
+ > .iui-modal-dialog {
126
+ transform: translateY(100%);
127
+ @media (prefers-reduced-motion: no-preference) {
128
+ transition: visibility $iui-speed-instant linear $iui-speed, opacity $iui-speed-instant linear $iui-speed, transform $iui-speed ease-in;
129
+ }
130
+ }
131
+
132
+ &.iui-modal-visible > .iui-modal-dialog {
133
+ transform: translateY(0);
134
+ @media (prefers-reduced-motion: no-preference) {
135
+ transition: transform $iui-speed ease-out;
136
+ }
137
+ }
138
+ // #endregion Full Page Modal Animations for CSS
139
+
140
+ // #region Full Page Modal Animations for React
141
+ &.iui-modal-animation-enter > .iui-modal-dialog {
142
+ transform: translateY(100%);
143
+ opacity: 0;
144
+ }
145
+
146
+ &.iui-modal-animation-enter-active > .iui-modal-dialog {
147
+ transform: translateY(0);
74
148
  opacity: 1;
75
- transition-delay: 0s;
76
149
  }
150
+ // #endregion Full Page Modal Animations for React
77
151
  }
@@ -1,10 +1,10 @@
1
+ /* stylelint-disable selector-class-pattern */
1
2
  // Copyright (c) Bentley Systems, Incorporated. All rights reserved.
2
3
  // See LICENSE.md in the project root for license terms and full copyright notice.
3
4
  @import '../style/index';
4
5
 
5
6
  // tippy.js helper class to hide Popover when it is scrolled out of view
6
7
  @mixin iui-popover {
7
- /* stylelint-disable-next-line selector-class-pattern */
8
8
  &.tippy-box {
9
9
  &[data-reference-hidden] {
10
10
  visibility: visible;
@@ -16,7 +16,6 @@
16
16
  }
17
17
 
18
18
  // Resets tippy.js default stylings that interfere with our own
19
- /* stylelint-disable-next-line selector-class-pattern */
20
19
  .tippy-content {
21
20
  all: revert;
22
21
  }