@swisspost/design-system-styles 8.2.2 → 8.3.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/components/_index.scss +1 -0
- package/components/dialog.css +1 -0
- package/components/dialog.scss +249 -0
- package/index.css +1 -1
- package/intranet.css +1 -1
- package/package.json +3 -3
- package/post-external.css +1 -1
- package/post-internal.css +1 -1
- package/tokens/temp/channel.scss +1 -1
- package/tokens/temp/components.scss +1 -1
- package/tokens/temp/core.scss +1 -1
- package/tokens/temp/device.scss +1 -1
- package/tokens/temp/index.scss +1 -1
- package/tokens/temp/mode.scss +1 -1
- package/tokens/temp/theme.scss +1 -1
- package/variables/_animation.scss +19 -0
package/components/_index.scss
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
dialog{box-shadow:1px 6px 8px rgba(0,0,0,.1),2px 8px 20px 8px rgba(0,0,0,.14);padding:0;min-width:min(389px,90vw);max-width:590px;max-height:90vh;overflow:auto;margin:revert;overscroll-behavior:contain;border:2px solid var(--post-contrast-color)}dialog::backdrop{background-color:rgba(0,0,0,.8);-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}@media(forced-colors: active),(-ms-high-contrast: active),(-ms-high-contrast: white-on-black){dialog{border-width:2px}dialog::backdrop{background-image:linear-gradient(135deg, CanvasText 4.55%, transparent 4.55%, transparent 50%, CanvasText 50%, CanvasText 54.55%, transparent 54.55%, transparent 100%);background-size:22px 22px;-webkit-backdrop-filter:none;backdrop-filter:none;background-color:rgba(0,0,0,0);forced-color-adjust:none}}dialog[data-size=small]{min-width:296px;max-width:388px}dialog[data-size=large]{min-width:min(600px,90vw);max-width:792px}dialog[data-position=top]{top:2rem;bottom:auto}dialog[data-position=bottom]{top:auto;bottom:2rem}dialog>.dialog-grid{margin:1rem 1rem 0 1rem;display:grid;column-gap:1rem;grid-template-columns:auto 1fr auto;grid-template-areas:"icon header close-button" "icon body close-button" "controls controls controls";background-color:inherit}:where(.dialog-icon,.dialog-header,.dialog-body,.dialog-controls,.dialog-close):empty{display:none}.dialog-grid>post-icon{grid-area:icon;display:block;width:2rem;height:2rem}@media(min-width: 600px){dialog:not([size=small]) .dialog-grid>post-icon{width:3rem;height:3rem}}.dialog-header{grid-area:header;margin-top:0}.dialog-body{grid-area:body;margin-bottom:0}.dialog-body>*:last-child{margin-bottom:0}.dialog-controls{grid-area:controls;position:sticky;bottom:0;padding-block:1rem;display:flex;flex-wrap:wrap;flex-direction:row-reverse;gap:1rem;background-color:inherit}@media(max-width: 399.98px){.dialog-controls button{width:100%}}.dialog-grid>.btn-close{position:sticky;top:0;grid-area:close-button;width:1.5rem;height:1.5rem;min-height:0}dialog:not([data-animation=none]){--_dialog-transition-duration: var(--dialog-transition-duration, 0.5s);transform:scale(0.8);opacity:0;transition-property:transform,opacity,overlay,display;transition-behavior:allow-discrete;transition-duration:var(--_dialog-transition-duration);transition-timing-function:linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1)}dialog:not([data-animation=none])::backdrop{opacity:0;transition:opacity var(--_dialog-transition-duration),overlay var(--_dialog-transition-duration) allow-discrete,display var(--_dialog-transition-duration) allow-discrete,-webkit-backdrop-filter var(--_dialog-transition-duration);transition:backdrop-filter var(--_dialog-transition-duration),opacity var(--_dialog-transition-duration),overlay var(--_dialog-transition-duration) allow-discrete,display var(--_dialog-transition-duration) allow-discrete;transition:backdrop-filter var(--_dialog-transition-duration),opacity var(--_dialog-transition-duration),overlay var(--_dialog-transition-duration) allow-discrete,display var(--_dialog-transition-duration) allow-discrete,-webkit-backdrop-filter var(--_dialog-transition-duration)}dialog:not([data-animation=none])[open]{transform:scale(1);opacity:1}@starting-style{dialog:not([data-animation=none])[open]{opacity:0;transform:scale(0.8)}}dialog:not([data-animation=none])[open]::backdrop{opacity:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}@starting-style{dialog:not([data-animation=none])[open]::backdrop{opacity:0;-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0)}}@media(forced-colors: active){dialog:not([data-animation=none])[open]::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}dialog:not([data-animation=none])[data-animation=slide-in]{transform:translateY(calc(var(--_dialog-slide-in-offset)))}dialog:not([data-animation=none])[data-animation=slide-in][data-position=top]{--_dialog-slide-in-offset: -3rem}dialog:not([data-animation=none])[data-animation=slide-in][data-position=bottom]{--_dialog-slide-in-offset: 3rem}dialog:not([data-animation=none])[data-animation=slide-in][open]{transform:translateY(0)}@starting-style{dialog:not([data-animation=none])[data-animation=slide-in][open]{transform:translateY(calc(var(--_dialog-slide-in-offset)))}}
|
|
@@ -0,0 +1,249 @@
|
|
|
1
|
+
@use '../mixins/elevation';
|
|
2
|
+
@use '../mixins/utilities';
|
|
3
|
+
@use '../variables/spacing';
|
|
4
|
+
@use '../variables/color';
|
|
5
|
+
@use '../variables/animation';
|
|
6
|
+
|
|
7
|
+
@use './../themes/bootstrap/core' as *;
|
|
8
|
+
|
|
9
|
+
dialog {
|
|
10
|
+
@include elevation.elevation('elevation-5');
|
|
11
|
+
|
|
12
|
+
padding: 0;
|
|
13
|
+
min-width: min(389px, 90vw);
|
|
14
|
+
max-width: 590px;
|
|
15
|
+
max-height: 90vh;
|
|
16
|
+
overflow: auto;
|
|
17
|
+
margin: revert;
|
|
18
|
+
overscroll-behavior: contain;
|
|
19
|
+
border: 2px solid var(--post-contrast-color); // Ensures good contrast when bg is dark against dark backdrop
|
|
20
|
+
|
|
21
|
+
&::backdrop {
|
|
22
|
+
background-color: rgba(0, 0, 0, 0.8);
|
|
23
|
+
-webkit-backdrop-filter: blur(0);
|
|
24
|
+
backdrop-filter: blur(0);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@include utilities.high-contrast-mode {
|
|
28
|
+
// Show the border in HCM
|
|
29
|
+
border-width: 2px;
|
|
30
|
+
|
|
31
|
+
// Mark the backdrop as inactive in HCM
|
|
32
|
+
&::backdrop {
|
|
33
|
+
background-image: linear-gradient(
|
|
34
|
+
135deg,
|
|
35
|
+
CanvasText 4.55%,
|
|
36
|
+
transparent 4.55%,
|
|
37
|
+
transparent 50%,
|
|
38
|
+
CanvasText 50%,
|
|
39
|
+
CanvasText 54.55%,
|
|
40
|
+
transparent 54.55%,
|
|
41
|
+
transparent 100%
|
|
42
|
+
);
|
|
43
|
+
background-size: 22px 22px;
|
|
44
|
+
-webkit-backdrop-filter: none;
|
|
45
|
+
backdrop-filter: none;
|
|
46
|
+
background-color: transparent;
|
|
47
|
+
forced-color-adjust: none;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Sizes
|
|
52
|
+
// [small, medium (default), large]
|
|
53
|
+
&[data-size='small'] {
|
|
54
|
+
min-width: 296px;
|
|
55
|
+
max-width: 388px;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
&[data-size='large'] {
|
|
59
|
+
min-width: min(600px, 90vw);
|
|
60
|
+
max-width: 792px;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Positioning
|
|
64
|
+
// [top, center (default), bottom]
|
|
65
|
+
&[data-position='top'] {
|
|
66
|
+
top: 2rem;
|
|
67
|
+
bottom: auto;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
&[data-position='bottom'] {
|
|
71
|
+
top: auto;
|
|
72
|
+
bottom: 2rem;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
dialog > .dialog-grid {
|
|
77
|
+
margin: spacing.$size-regular spacing.$size-regular 0 spacing.$size-regular;
|
|
78
|
+
display: grid;
|
|
79
|
+
column-gap: spacing.$size-regular;
|
|
80
|
+
grid-template-columns: auto 1fr auto;
|
|
81
|
+
grid-template-areas:
|
|
82
|
+
'icon header close-button'
|
|
83
|
+
'icon body close-button'
|
|
84
|
+
'controls controls controls';
|
|
85
|
+
|
|
86
|
+
// Propagate bg color to the controls
|
|
87
|
+
background-color: inherit;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
:where(.dialog-icon, .dialog-header, .dialog-body, .dialog-controls, .dialog-close):empty {
|
|
91
|
+
display: none;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.dialog-grid > post-icon {
|
|
95
|
+
grid-area: icon;
|
|
96
|
+
display: block;
|
|
97
|
+
|
|
98
|
+
width: spacing.$size-big;
|
|
99
|
+
height: spacing.$size-big;
|
|
100
|
+
|
|
101
|
+
// Larger icon for bigger notification dialogs
|
|
102
|
+
dialog:not([size='small']) & {
|
|
103
|
+
@include media-breakpoint-up(rg) {
|
|
104
|
+
width: spacing.$size-small-huge;
|
|
105
|
+
height: spacing.$size-small-huge;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.dialog-header {
|
|
111
|
+
grid-area: header;
|
|
112
|
+
margin-top: 0;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.dialog-body {
|
|
116
|
+
grid-area: body;
|
|
117
|
+
margin-bottom: 0;
|
|
118
|
+
|
|
119
|
+
> *:last-child {
|
|
120
|
+
margin-bottom: 0;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.dialog-controls {
|
|
125
|
+
grid-area: controls;
|
|
126
|
+
position: sticky;
|
|
127
|
+
bottom: 0;
|
|
128
|
+
padding-block: spacing.$size-regular;
|
|
129
|
+
display: flex;
|
|
130
|
+
flex-wrap: wrap;
|
|
131
|
+
flex-direction: row-reverse;
|
|
132
|
+
gap: spacing.$size-regular;
|
|
133
|
+
background-color: inherit;
|
|
134
|
+
|
|
135
|
+
button {
|
|
136
|
+
@include media-breakpoint-down(sm) {
|
|
137
|
+
width: 100%;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.dialog-grid > .btn-close {
|
|
143
|
+
position: sticky;
|
|
144
|
+
top: 0;
|
|
145
|
+
grid-area: close-button;
|
|
146
|
+
width: spacing.$size-large;
|
|
147
|
+
height: spacing.$size-large;
|
|
148
|
+
min-height: 0;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Animations
|
|
152
|
+
// [slide-in, pop-in, none]
|
|
153
|
+
// Progressively enhanced with currently experimental @starting-style which allows to animate stuff appearing in the top layer
|
|
154
|
+
// https://developer.mozilla.org/en-US/docs/Web/CSS/@starting-style
|
|
155
|
+
dialog:not([data-animation='none']) {
|
|
156
|
+
--_dialog-transition-duration: var(--dialog-transition-duration, 0.5s);
|
|
157
|
+
|
|
158
|
+
transform: scale(0.8);
|
|
159
|
+
opacity: 0;
|
|
160
|
+
transition-property: transform, opacity, overlay, display;
|
|
161
|
+
transition-behavior: allow-discrete;
|
|
162
|
+
transition-duration: var(--_dialog-transition-duration);
|
|
163
|
+
transition-timing-function: linear(
|
|
164
|
+
0,
|
|
165
|
+
0.007,
|
|
166
|
+
0.029 2.2%,
|
|
167
|
+
0.118 4.7%,
|
|
168
|
+
0.625 14.4%,
|
|
169
|
+
0.826 19%,
|
|
170
|
+
0.902,
|
|
171
|
+
0.962,
|
|
172
|
+
1.008 26.1%,
|
|
173
|
+
1.041 28.7%,
|
|
174
|
+
1.064 32.1%,
|
|
175
|
+
1.07 36%,
|
|
176
|
+
1.061 40.5%,
|
|
177
|
+
1.015 53.4%,
|
|
178
|
+
0.999 61.6%,
|
|
179
|
+
0.995 71.2%,
|
|
180
|
+
1
|
|
181
|
+
);
|
|
182
|
+
|
|
183
|
+
&::backdrop {
|
|
184
|
+
opacity: 0;
|
|
185
|
+
transition:
|
|
186
|
+
opacity var(--_dialog-transition-duration),
|
|
187
|
+
overlay var(--_dialog-transition-duration) allow-discrete,
|
|
188
|
+
display var(--_dialog-transition-duration) allow-discrete,
|
|
189
|
+
-webkit-backdrop-filter var(--_dialog-transition-duration);
|
|
190
|
+
transition:
|
|
191
|
+
backdrop-filter var(--_dialog-transition-duration),
|
|
192
|
+
opacity var(--_dialog-transition-duration),
|
|
193
|
+
overlay var(--_dialog-transition-duration) allow-discrete,
|
|
194
|
+
display var(--_dialog-transition-duration) allow-discrete;
|
|
195
|
+
transition:
|
|
196
|
+
backdrop-filter var(--_dialog-transition-duration),
|
|
197
|
+
opacity var(--_dialog-transition-duration),
|
|
198
|
+
overlay var(--_dialog-transition-duration) allow-discrete,
|
|
199
|
+
display var(--_dialog-transition-duration) allow-discrete,
|
|
200
|
+
-webkit-backdrop-filter var(--_dialog-transition-duration);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
&[open] {
|
|
204
|
+
transform: scale(1);
|
|
205
|
+
opacity: 1;
|
|
206
|
+
|
|
207
|
+
@starting-style {
|
|
208
|
+
opacity: 0;
|
|
209
|
+
transform: scale(0.8);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
&::backdrop {
|
|
213
|
+
opacity: 1;
|
|
214
|
+
-webkit-backdrop-filter: blur(10px);
|
|
215
|
+
backdrop-filter: blur(10px);
|
|
216
|
+
|
|
217
|
+
@starting-style {
|
|
218
|
+
opacity: 0;
|
|
219
|
+
-webkit-backdrop-filter: blur(0);
|
|
220
|
+
backdrop-filter: blur(0);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
@media (forced-colors: active) {
|
|
224
|
+
-webkit-backdrop-filter: none;
|
|
225
|
+
backdrop-filter: none;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
&[data-animation='slide-in'] {
|
|
231
|
+
&[data-position='top'] {
|
|
232
|
+
--_dialog-slide-in-offset: -3rem;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
&[data-position='bottom'] {
|
|
236
|
+
--_dialog-slide-in-offset: 3rem;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
transform: translateY(calc(var(--_dialog-slide-in-offset)));
|
|
240
|
+
|
|
241
|
+
&[open] {
|
|
242
|
+
transform: translateY(0);
|
|
243
|
+
|
|
244
|
+
@starting-style {
|
|
245
|
+
transform: translateY(calc(var(--_dialog-slide-in-offset)));
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|