@itwin/itwinui-css 0.59.2 → 0.60.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.60.0](https://www.github.com/iTwin/iTwinUI/compare/v0.59.2...v0.60.0) (2022-06-14)
4
+
5
+ ### What's new
6
+
7
+ * Separate out `Backdrop` from `Dialog` ([#670](https://www.github.com/iTwin/iTwinUI/issues/670)) ([ce0f56c](https://www.github.com/iTwin/iTwinUI/commit/ce0f56c98105d8e4974f1971055ffe0dc597d3d0))
8
+
3
9
  ### [0.59.2](https://www.github.com/iTwin/iTwinUI/compare/v0.59.1...v0.59.2) (2022-06-08)
4
10
 
5
11
  ### Fixes
package/css/all.css CHANGED
@@ -1045,6 +1045,27 @@ html.iui-theme-dark-hc{
1045
1045
  font-weight:600;
1046
1046
  }
1047
1047
 
1048
+ .iui-backdrop{
1049
+ z-index:998;
1050
+ isolation:isolate;
1051
+ position:absolute;
1052
+ top:0;
1053
+ left:0;
1054
+ width:100%;
1055
+ height:100%;
1056
+ background-color:rgba(0, 0, 0, 0.4);
1057
+ background-color:rgba(0, 0, 0, var(--iui-opacity-4));
1058
+ transition:visibility 0s linear, opacity 0.2s ease-out;
1059
+ transition-delay:0.2s, 0s;
1060
+ }
1061
+ .iui-backdrop:not(.iui-backdrop-visible){
1062
+ visibility:hidden;
1063
+ opacity:0;
1064
+ }
1065
+ .iui-backdrop.iui-backdrop-visible{
1066
+ transition-delay:0s;
1067
+ }
1068
+
1048
1069
  .iui-blockquote{
1049
1070
  margin:0;
1050
1071
  padding:0;
@@ -2946,115 +2967,86 @@ a.iui-breadcrumbs-text:focus{
2946
2967
  border-color:rgba(var(--iui-color-foreground-primary-rgb), var(--iui-opacity-4));
2947
2968
  }
2948
2969
 
2949
- .iui-dialog-backdrop{
2950
- margin:0;
2951
- padding:0;
2952
- border:none;
2953
- vertical-align:baseline;
2954
- z-index:999;
2955
- isolation:isolate;
2956
- position:fixed;
2970
+ .iui-dialog-wrapper{
2971
+ position:relative;
2972
+ overflow:hidden;
2957
2973
  top:0;
2958
2974
  left:0;
2959
2975
  width:100%;
2960
2976
  height:100%;
2961
- background-color:rgba(0, 0, 0, 0.4);
2962
- background-color:rgba(0, 0, 0, var(--iui-opacity-4));
2963
- visibility:hidden;
2964
- opacity:0;
2965
- transition:visibility 0s linear 0.2s, opacity 0.2s ease-out;
2966
- }
2967
- .iui-dialog-backdrop.iui-dialog-visible{
2968
- visibility:visible;
2969
- opacity:1;
2970
- transition-delay:0s;
2971
- }
2972
- .iui-dialog-backdrop.iui-dialog-backdrop-relative{
2973
- position:relative;
2974
- overflow:hidden;
2977
+ pointer-events:none;
2978
+ transform:translateX(0);
2975
2979
  }
2976
2980
 
2977
2981
  .iui-dialog{
2982
+ z-index:999;
2983
+ isolation:isolate;
2978
2984
  border-radius:3px;
2979
2985
  box-shadow:0 9px 46px rgba(0, 0, 0, 0.25);
2980
2986
  box-sizing:border-box;
2981
- position:absolute;
2987
+ position:fixed;
2982
2988
  padding:11px 16px;
2983
2989
  box-sizing:border-box;
2984
2990
  padding:11px 16px;
2985
2991
  overflow:hidden;
2986
- background-color:white;
2992
+ pointer-events:auto;
2993
+ background-color:#FFF;
2987
2994
  background-color:var(--iui-color-background-1);
2995
+ transition:visibility 0s linear, opacity 0.2s ease-out;
2996
+ transition-delay:0.2s, 0s;
2988
2997
  }
2989
2998
  @media (forced-colors: active){
2990
2999
  .iui-dialog{
2991
3000
  border:1px solid;
2992
3001
  }
2993
3002
  }
3003
+ .iui-dialog:not(.iui-dialog-visible){
3004
+ visibility:hidden;
3005
+ opacity:0;
3006
+ }
3007
+ .iui-dialog.iui-dialog-visible{
3008
+ transition-delay:0s;
3009
+ }
2994
3010
 
2995
- .iui-dialog-default .iui-dialog{
3011
+ .iui-dialog-default{
2996
3012
  left:50%;
2997
3013
  top:33%;
2998
3014
  transform:translate(-50%, -33%);
2999
- max-width:50%;
3015
+ max-width:max(50%, 380px);
3000
3016
  min-width:380px;
3001
3017
  max-height:100vh;
3002
3018
  }
3003
- @media screen and (max-width: 400px){
3004
- .iui-dialog-default .iui-dialog{
3005
- max-width:95%;
3006
- width:95%;
3007
- min-width:95%;
3008
- }
3009
- }
3010
3019
 
3011
- @media (prefers-reduced-motion: no-preference){
3012
- .iui-dialog-full-page{
3013
- transition:visibility 0s linear 0.8s, opacity 0.4s ease-out 0.2s;
3014
- }
3015
- }
3016
- .iui-dialog-full-page .iui-dialog{
3020
+ .iui-dialog-full-page{
3017
3021
  border-radius:0;
3018
3022
  height:100vh;
3023
+ height:100dvh;
3019
3024
  width:100vw;
3020
3025
  top:0;
3021
3026
  left:0;
3022
- max-width:initial;
3023
- min-width:initial;
3024
3027
  display:flex;
3025
3028
  flex-direction:column;
3026
3029
  will-change:transform;
3027
3030
  }
3031
+ .iui-dialog-full-page:not(.iui-dialog-visible){
3032
+ transform:translateY(100%);
3033
+ }
3028
3034
  @media (prefers-reduced-motion: no-preference){
3029
- .iui-dialog-full-page .iui-dialog{
3030
- transform:translateY(100%);
3035
+ .iui-dialog-full-page{
3031
3036
  transition:visibility 0s linear 0.4s, opacity 0s linear 0.4s, transform 0.2s ease-in;
3032
3037
  }
3033
- }
3034
- .iui-dialog-full-page.iui-dialog-visible .iui-dialog{
3035
- transform:translateY(0);
3036
- }
3037
- @media (prefers-reduced-motion: no-preference){
3038
- .iui-dialog-full-page.iui-dialog-visible .iui-dialog{
3038
+ .iui-dialog-full-page.iui-dialog-visible{
3039
3039
  transition:transform 0.4s ease-out;
3040
3040
  }
3041
3041
  }
3042
3042
 
3043
3043
  .iui-dialog-draggable{
3044
- background-color:transparent;
3045
- pointer-events:none;
3046
- z-index:998;
3047
- }
3048
- .iui-dialog-draggable .iui-dialog{
3049
- pointer-events:initial;
3050
- max-width:100vw;
3044
+ max-width:100%;
3051
3045
  max-height:100vh;
3052
3046
  min-width:380px;
3053
3047
  min-height:144px;
3054
3048
  display:flex;
3055
3049
  flex-direction:column;
3056
- padding:0;
3057
- border:1px solid #c7ccd1;
3058
3050
  border:1px solid var(--iui-color-background-border);
3059
3051
  }
3060
3052
 
@@ -3074,21 +3066,17 @@ a.iui-breadcrumbs-text:focus{
3074
3066
  box-sizing:border-box;
3075
3067
  font-size:18px;
3076
3068
  }
3077
- .iui-dialog-draggable .iui-dialog-title-bar{
3078
- -webkit-user-select:none;
3079
- -moz-user-select:none;
3080
- -ms-user-select:none;
3081
- user-select:none;
3069
+
3070
+ .iui-dialog-title-bar-filled{
3082
3071
  font-size:16px;
3083
3072
  padding:6px 16px;
3073
+ margin:-11px -16px 11px -16px;
3084
3074
  cursor:-webkit-grab;
3085
3075
  cursor:grab;
3086
- background-color:#edeff2;
3087
- border-bottom:1px solid #c7ccd1;
3088
3076
  background-color:var(--iui-color-background-3);
3089
3077
  border-bottom:1px solid var(--iui-color-background-border);
3090
3078
  }
3091
- .iui-dialog-draggable .iui-dialog-title-bar:active{
3079
+ .iui-dialog-title-bar-filled:active{
3092
3080
  cursor:-webkit-grabbing;
3093
3081
  cursor:grabbing;
3094
3082
  }
@@ -3100,49 +3088,23 @@ a.iui-breadcrumbs-text:focus{
3100
3088
  overflow-y:auto;
3101
3089
  overflow-y:overlay;
3102
3090
  }
3103
- .iui-dialog-draggable .iui-dialog-content{
3104
- margin:0;
3105
- }
3106
3091
 
3107
3092
  .iui-dialog-button-bar{
3108
3093
  margin-top:11px;
3109
3094
  display:flex;
3110
3095
  align-items:center;
3111
3096
  justify-content:flex-end;
3112
- }
3113
- .iui-dialog-draggable .iui-dialog-button-bar{
3114
- padding:0 16px 11px 16px;
3115
- }
3116
-
3117
- .iui-dialog-button-bar > .iui-button:not(:last-child){
3118
- margin-right:8px;
3119
- }
3120
- @supports ((-moz-column-gap: 8px) or (column-gap: 8px)){
3121
- .iui-dialog-button-bar{
3122
- -moz-column-gap:8px;
3123
- column-gap:8px;
3124
- }
3125
- .iui-dialog-button-bar > .iui-button:not(:last-child){
3126
- margin-right:0;
3127
- }
3097
+ gap:8px;
3128
3098
  }
3129
3099
 
3130
- .iui-dialog-animation-enter .iui-dialog-full-page .iui-dialog{
3100
+ .iui-dialog-animation-enter{
3131
3101
  transform:translateY(100%);
3132
3102
  opacity:0;
3133
3103
  }
3134
- .iui-dialog-animation-enter-active .iui-dialog-full-page .iui-dialog{
3104
+ .iui-dialog-animation-enter-active{
3135
3105
  transform:translateY(0);
3136
3106
  opacity:1;
3137
3107
  }
3138
- .iui-dialog-animation-enter .iui-dialog-backdrop{
3139
- visibility:hidden;
3140
- opacity:0;
3141
- }
3142
- .iui-dialog-animation-enter-active .iui-dialog-backdrop{
3143
- visibility:visible;
3144
- opacity:1;
3145
- }
3146
3108
 
3147
3109
  .iui-expandable-block{
3148
3110
  margin:0;
@@ -0,0 +1,24 @@
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-backdrop{
6
+ z-index:998;
7
+ isolation:isolate;
8
+ position:absolute;
9
+ top:0;
10
+ left:0;
11
+ width:100%;
12
+ height:100%;
13
+ background-color:rgba(0, 0, 0, 0.4);
14
+ background-color:rgba(0, 0, 0, var(--iui-opacity-4));
15
+ transition:visibility 0s linear, opacity 0.2s ease-out;
16
+ transition-delay:0.2s, 0s;
17
+ }
18
+ .iui-backdrop:not(.iui-backdrop-visible){
19
+ visibility:hidden;
20
+ opacity:0;
21
+ }
22
+ .iui-backdrop.iui-backdrop-visible{
23
+ transition-delay:0s;
24
+ }
package/css/dialog.css CHANGED
@@ -2,115 +2,86 @@
2
2
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
- .iui-dialog-backdrop{
6
- margin:0;
7
- padding:0;
8
- border:none;
9
- vertical-align:baseline;
10
- z-index:999;
11
- isolation:isolate;
12
- position:fixed;
5
+ .iui-dialog-wrapper{
6
+ position:relative;
7
+ overflow:hidden;
13
8
  top:0;
14
9
  left:0;
15
10
  width:100%;
16
11
  height:100%;
17
- background-color:rgba(0, 0, 0, 0.4);
18
- background-color:rgba(0, 0, 0, var(--iui-opacity-4));
19
- visibility:hidden;
20
- opacity:0;
21
- transition:visibility 0s linear 0.2s, opacity 0.2s ease-out;
22
- }
23
- .iui-dialog-backdrop.iui-dialog-visible{
24
- visibility:visible;
25
- opacity:1;
26
- transition-delay:0s;
27
- }
28
- .iui-dialog-backdrop.iui-dialog-backdrop-relative{
29
- position:relative;
30
- overflow:hidden;
12
+ pointer-events:none;
13
+ transform:translateX(0);
31
14
  }
32
15
 
33
16
  .iui-dialog{
17
+ z-index:999;
18
+ isolation:isolate;
34
19
  border-radius:3px;
35
20
  box-shadow:0 9px 46px rgba(0, 0, 0, 0.25);
36
21
  box-sizing:border-box;
37
- position:absolute;
22
+ position:fixed;
38
23
  padding:11px 16px;
39
24
  box-sizing:border-box;
40
25
  padding:11px 16px;
41
26
  overflow:hidden;
42
- background-color:white;
27
+ pointer-events:auto;
28
+ background-color:#FFF;
43
29
  background-color:var(--iui-color-background-1);
30
+ transition:visibility 0s linear, opacity 0.2s ease-out;
31
+ transition-delay:0.2s, 0s;
44
32
  }
45
33
  @media (forced-colors: active){
46
34
  .iui-dialog{
47
35
  border:1px solid;
48
36
  }
49
37
  }
38
+ .iui-dialog:not(.iui-dialog-visible){
39
+ visibility:hidden;
40
+ opacity:0;
41
+ }
42
+ .iui-dialog.iui-dialog-visible{
43
+ transition-delay:0s;
44
+ }
50
45
 
51
- .iui-dialog-default .iui-dialog{
46
+ .iui-dialog-default{
52
47
  left:50%;
53
48
  top:33%;
54
49
  transform:translate(-50%, -33%);
55
- max-width:50%;
50
+ max-width:max(50%, 380px);
56
51
  min-width:380px;
57
52
  max-height:100vh;
58
53
  }
59
- @media screen and (max-width: 400px){
60
- .iui-dialog-default .iui-dialog{
61
- max-width:95%;
62
- width:95%;
63
- min-width:95%;
64
- }
65
- }
66
54
 
67
- @media (prefers-reduced-motion: no-preference){
68
- .iui-dialog-full-page{
69
- transition:visibility 0s linear 0.8s, opacity 0.4s ease-out 0.2s;
70
- }
71
- }
72
- .iui-dialog-full-page .iui-dialog{
55
+ .iui-dialog-full-page{
73
56
  border-radius:0;
74
57
  height:100vh;
58
+ height:100dvh;
75
59
  width:100vw;
76
60
  top:0;
77
61
  left:0;
78
- max-width:initial;
79
- min-width:initial;
80
62
  display:flex;
81
63
  flex-direction:column;
82
64
  will-change:transform;
83
65
  }
66
+ .iui-dialog-full-page:not(.iui-dialog-visible){
67
+ transform:translateY(100%);
68
+ }
84
69
  @media (prefers-reduced-motion: no-preference){
85
- .iui-dialog-full-page .iui-dialog{
86
- transform:translateY(100%);
70
+ .iui-dialog-full-page{
87
71
  transition:visibility 0s linear 0.4s, opacity 0s linear 0.4s, transform 0.2s ease-in;
88
72
  }
89
- }
90
- .iui-dialog-full-page.iui-dialog-visible .iui-dialog{
91
- transform:translateY(0);
92
- }
93
- @media (prefers-reduced-motion: no-preference){
94
- .iui-dialog-full-page.iui-dialog-visible .iui-dialog{
73
+ .iui-dialog-full-page.iui-dialog-visible{
95
74
  transition:transform 0.4s ease-out;
96
75
  }
97
76
  }
98
77
 
99
78
  .iui-dialog-draggable{
100
- background-color:transparent;
101
- pointer-events:none;
102
- z-index:998;
103
- }
104
- .iui-dialog-draggable .iui-dialog{
105
- pointer-events:initial;
106
- max-width:100vw;
79
+ max-width:100%;
107
80
  max-height:100vh;
108
81
  min-width:380px;
109
82
  min-height:144px;
110
83
  display:flex;
111
84
  flex-direction:column;
112
- padding:0;
113
- border:1px solid #c7ccd1;
114
85
  border:1px solid var(--iui-color-background-border);
115
86
  }
116
87
 
@@ -130,21 +101,17 @@
130
101
  box-sizing:border-box;
131
102
  font-size:18px;
132
103
  }
133
- .iui-dialog-draggable .iui-dialog-title-bar{
134
- -webkit-user-select:none;
135
- -moz-user-select:none;
136
- -ms-user-select:none;
137
- user-select:none;
104
+
105
+ .iui-dialog-title-bar-filled{
138
106
  font-size:16px;
139
107
  padding:6px 16px;
108
+ margin:-11px -16px 11px -16px;
140
109
  cursor:-webkit-grab;
141
110
  cursor:grab;
142
- background-color:#edeff2;
143
- border-bottom:1px solid #c7ccd1;
144
111
  background-color:var(--iui-color-background-3);
145
112
  border-bottom:1px solid var(--iui-color-background-border);
146
113
  }
147
- .iui-dialog-draggable .iui-dialog-title-bar:active{
114
+ .iui-dialog-title-bar-filled:active{
148
115
  cursor:-webkit-grabbing;
149
116
  cursor:grabbing;
150
117
  }
@@ -156,46 +123,20 @@
156
123
  overflow-y:auto;
157
124
  overflow-y:overlay;
158
125
  }
159
- .iui-dialog-draggable .iui-dialog-content{
160
- margin:0;
161
- }
162
126
 
163
127
  .iui-dialog-button-bar{
164
128
  margin-top:11px;
165
129
  display:flex;
166
130
  align-items:center;
167
131
  justify-content:flex-end;
168
- }
169
- .iui-dialog-draggable .iui-dialog-button-bar{
170
- padding:0 16px 11px 16px;
171
- }
172
-
173
- .iui-dialog-button-bar > .iui-button:not(:last-child){
174
- margin-right:8px;
175
- }
176
- @supports ((-moz-column-gap: 8px) or (column-gap: 8px)){
177
- .iui-dialog-button-bar{
178
- -moz-column-gap:8px;
179
- column-gap:8px;
180
- }
181
- .iui-dialog-button-bar > .iui-button:not(:last-child){
182
- margin-right:0;
183
- }
132
+ gap:8px;
184
133
  }
185
134
 
186
- .iui-dialog-animation-enter .iui-dialog-full-page .iui-dialog{
135
+ .iui-dialog-animation-enter{
187
136
  transform:translateY(100%);
188
137
  opacity:0;
189
138
  }
190
- .iui-dialog-animation-enter-active .iui-dialog-full-page .iui-dialog{
139
+ .iui-dialog-animation-enter-active{
191
140
  transform:translateY(0);
192
141
  opacity:1;
193
- }
194
- .iui-dialog-animation-enter .iui-dialog-backdrop{
195
- visibility:hidden;
196
- opacity:0;
197
- }
198
- .iui-dialog-animation-enter-active .iui-dialog-backdrop{
199
- visibility:visible;
200
- opacity:1;
201
142
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@itwin/itwinui-css",
3
- "version": "0.59.2",
3
+ "version": "0.60.0",
4
4
  "author": "Bentley Systems",
5
5
  "license": "MIT",
6
6
  "main": "src/index.scss",
@@ -0,0 +1,27 @@
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
+
5
+ @mixin iui-backdrop {
6
+ z-index: 998;
7
+ isolation: isolate;
8
+ position: absolute;
9
+ top: 0;
10
+ left: 0;
11
+ width: 100%;
12
+ height: 100%;
13
+ background-color: rgba(0, 0, 0, 0.4); // IE fallback
14
+ background-color: rgba(0, 0, 0, var(--iui-opacity-4));
15
+
16
+ &:not(.iui-backdrop-visible) {
17
+ visibility: hidden;
18
+ opacity: 0;
19
+ }
20
+
21
+ transition: visibility $iui-speed-instant linear, opacity $iui-speed-fast ease-out;
22
+ transition-delay: $iui-speed-fast, $iui-speed-instant;
23
+
24
+ &.iui-backdrop-visible {
25
+ transition-delay: $iui-speed-instant; // remove delay for entry animation
26
+ }
27
+ }
@@ -0,0 +1,7 @@
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-backdrop {
6
+ @include iui-backdrop;
7
+ }
@@ -0,0 +1,3 @@
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 './backdrop';
package/scss/classes.scss CHANGED
@@ -5,6 +5,7 @@
5
5
  @import './alert/classes';
6
6
  @import './anchor/classes';
7
7
  @import './badge/classes';
8
+ @import './backdrop/classes';
8
9
  @import './blockquote/classes';
9
10
  @import './breadcrumbs/classes';
10
11
  @import './button/classes';
@@ -2,12 +2,8 @@
2
2
  // See LICENSE.md in the project root for license terms and full copyright notice.
3
3
  @import './index';
4
4
 
5
- .iui-dialog-backdrop {
6
- @include iui-dialog-backdrop;
7
-
8
- &.iui-dialog-backdrop-relative {
9
- @include iui-dialog-backdrop-relative;
10
- }
5
+ .iui-dialog-wrapper {
6
+ @include iui-dialog-wrapper;
11
7
  }
12
8
 
13
9
  .iui-dialog {
@@ -34,6 +30,10 @@
34
30
  @include iui-dialog-title-bar;
35
31
  }
36
32
 
33
+ .iui-dialog-title-bar-filled {
34
+ @include iui-dialog-title-bar-filled;
35
+ }
36
+
37
37
  .iui-dialog-content {
38
38
  @include iui-dialog-content;
39
39
  }
@@ -3,144 +3,104 @@
3
3
  @import '../style/index';
4
4
  @import '../icon/index';
5
5
 
6
- @mixin iui-dialog-backdrop {
7
- @include iui-reset;
8
- z-index: 999;
9
- isolation: isolate;
10
- position: fixed;
6
+ $iui-dialog-width: 380px;
7
+
8
+ @mixin iui-dialog-wrapper {
9
+ position: relative;
10
+ overflow: hidden;
11
11
  top: 0;
12
12
  left: 0;
13
13
  width: 100%;
14
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;
15
+ pointer-events: none;
16
+ transform: translateX(0); // creates containing block for position: fixed
35
17
  }
36
18
 
37
19
  @mixin iui-dialog {
20
+ z-index: 999;
21
+ isolation: isolate;
38
22
  border-radius: $iui-border-radius;
39
23
  box-shadow: $iui-elevation-24;
40
24
  box-sizing: border-box;
41
- position: absolute;
25
+ position: fixed;
42
26
  padding: $iui-baseline $iui-m;
43
27
  box-sizing: border-box;
44
28
  padding: $iui-baseline $iui-m;
45
29
  overflow: hidden;
46
- @include themed {
47
- background-color: t(iui-color-background-1);
48
- }
30
+ pointer-events: auto;
31
+ background-color: #FFF; // IE fallback
32
+ background-color: var(--iui-color-background-1);
49
33
  @media (forced-colors: active) {
50
34
  border: 1px solid;
51
35
  }
36
+
37
+ &:not(.iui-dialog-visible) {
38
+ visibility: hidden;
39
+ opacity: 0;
40
+ }
41
+
42
+ transition: visibility $iui-speed-instant linear, opacity $iui-speed-fast ease-out;
43
+ transition-delay: $iui-speed-fast, $iui-speed-instant;
44
+
45
+ &.iui-dialog-visible {
46
+ transition-delay: $iui-speed-instant; // remove delay for entry animation
47
+ }
52
48
  }
53
49
 
54
50
  @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
- }
51
+ left: 50%;
52
+ top: 33%;
53
+ transform: translate(-50%, -33%);
54
+ max-width: Max(50%, $iui-dialog-width);
55
+ min-width: $iui-dialog-width;
56
+ max-height: 100vh;
69
57
  }
70
58
 
71
59
  @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
- }
60
+ border-radius: 0;
61
+ height: 100vh;
62
+ height: 100dvh;
63
+ width: 100vw;
64
+ top: 0;
65
+ left: 0;
66
+ display: flex;
67
+ flex-direction: column;
68
+ will-change: transform;
75
69
 
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
- }
70
+ &:not(.iui-dialog-visible) {
71
+ transform: translateY(100%);
92
72
  }
93
73
 
94
- &.iui-dialog-visible .iui-dialog {
95
- transform: translateY(0);
96
- @media (prefers-reduced-motion: no-preference) {
74
+ @media (prefers-reduced-motion: no-preference) {
75
+ transition: visibility $iui-speed-instant linear $iui-speed, opacity $iui-speed-instant linear $iui-speed,
76
+ transform $iui-speed-fast ease-in;
77
+
78
+ &.iui-dialog-visible {
97
79
  transition: transform $iui-speed ease-out;
98
80
  }
99
81
  }
100
82
  }
101
83
 
102
84
  @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
- }
85
+ max-width: 100%;
86
+ max-height: 100vh;
87
+ min-width: $iui-dialog-width;
88
+ min-height: 144px;
89
+ display: flex;
90
+ flex-direction: column;
91
+ border: 1px solid var(--iui-color-background-border);
120
92
  }
121
93
 
122
94
  @mixin iui-dialog-animation {
123
- // Full Page Dialog Animations for React
124
- &-enter .iui-dialog-full-page .iui-dialog {
95
+ &-enter {
125
96
  transform: translateY(100%);
126
97
  opacity: 0;
127
98
  }
128
99
 
129
- &-enter-active .iui-dialog-full-page .iui-dialog {
100
+ &-enter-active {
130
101
  transform: translateY(0);
131
102
  opacity: 1;
132
103
  }
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
104
  }
145
105
 
146
106
  @mixin iui-dialog-title {
@@ -158,20 +118,18 @@
158
118
  justify-content: space-between;
159
119
  box-sizing: border-box;
160
120
  font-size: $iui-font-size-subheading;
121
+ }
161
122
 
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
- }
123
+ @mixin iui-dialog-title-bar-filled {
124
+ font-size: $iui-font-size-leading;
125
+ padding: round($iui-baseline * 0.5) $iui-m;
126
+ margin: -#{$iui-baseline} -#{$iui-m} $iui-baseline -#{$iui-m}; // negative margin to counteract dialog padding
127
+ cursor: grab;
128
+ background-color: var(--iui-color-background-3);
129
+ border-bottom: 1px solid var(--iui-color-background-border);
171
130
 
172
- &:active {
173
- cursor: grabbing;
174
- }
131
+ &:active {
132
+ cursor: grabbing;
175
133
  }
176
134
  }
177
135
 
@@ -181,10 +139,6 @@
181
139
  padding: 0 $iui-m;
182
140
  overflow-y: auto;
183
141
  overflow-y: overlay;
184
-
185
- @at-root .iui-dialog-draggable & {
186
- margin: 0;
187
- }
188
142
  }
189
143
 
190
144
  @mixin iui-dialog-button-bar {
@@ -192,22 +146,5 @@
192
146
  display: flex;
193
147
  align-items: center;
194
148
  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
149
+ gap: $iui-s;
213
150
  }
package/scss/index.scss CHANGED
@@ -4,6 +4,7 @@
4
4
  @import './alert/index';
5
5
  @import './anchor/index';
6
6
  @import './badge/index';
7
+ @import './backdrop/index';
7
8
  @import './blockquote/index';
8
9
  @import './breadcrumbs/index';
9
10
  @import './button/index';
package/src/index.scss CHANGED
@@ -4,6 +4,7 @@
4
4
  @import './alert/index';
5
5
  @import './anchor/index';
6
6
  @import './badge/index';
7
+ @import './backdrop/index';
7
8
  @import './blockquote/index';
8
9
  @import './breadcrumbs/index';
9
10
  @import './button/index';