-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Copy pathtoasts.scss
129 lines (105 loc) · 3.23 KB
/
toasts.scss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
// Toast
.Toast {
display: flex;
margin: var(--base-size-8);
color: var(--fgColor-default, var(--color-fg-default));
background-color: var(--bgColor-default, var(--color-canvas-default));
// stylelint-disable-next-line primer/borders
border-radius: $border-radius;
box-shadow: inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)), var(--shadow-floating-legacy, var(--color-overlay-shadow));
@include breakpoint(sm) {
width: max-content;
max-width: 450px;
margin: var(--base-size-16);
}
}
.Toast-icon {
display: flex;
align-items: center;
justify-content: center;
width: calc(var(--base-size-16) * 3);
flex-shrink: 0;
color: var(--fgColor-onEmphasis, var(--color-fg-on-emphasis));
background-color: var(--bgColor-accent-emphasis, var(--color-accent-emphasis));
// stylelint-disable-next-line primer/borders, primer/colors
border: $border-width $border-style transparent;
border-right: 0;
border-top-left-radius: inherit;
border-bottom-left-radius: inherit;
}
.Toast-content {
padding: var(--base-size-16);
}
.Toast-dismissButton {
max-height: 54px; // keeps button aligned to the top
padding: var(--base-size-16);
color: inherit;
background-color: transparent;
border: 0;
&:hover {
opacity: 0.7;
}
&:active {
opacity: 0.5;
}
}
// Modifier
.Toast--loading {
color: var(--fgColor-default, var(--color-fg-default));
box-shadow: inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)), var(--shadow-floating-legacy, var(--color-overlay-shadow));
.Toast-icon {
background-color: var(--bgColor-neutral-emphasis, var(--color-neutral-emphasis));
}
}
.Toast--error {
color: var(--fgColor-default, var(--color-fg-default));
box-shadow: inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)), var(--shadow-floating-legacy, var(--color-overlay-shadow));
.Toast-icon {
background-color: var(--bgColor-danger-emphasis, var(--color-danger-emphasis));
}
}
.Toast--warning {
color: var(--fgColor-default, var(--color-fg-default));
box-shadow: inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)), var(--shadow-floating-legacy, var(--color-overlay-shadow));
.Toast-icon {
background-color: var(--bgColor-attention-emphasis, var(--color-attention-emphasis));
}
}
.Toast--success {
color: var(--fgColor-default, var(--color-fg-default));
box-shadow: inset 0 0 0 1px var(--borderColor-default, var(--color-border-default)), var(--shadow-floating-legacy, var(--color-overlay-shadow));
.Toast-icon {
background-color: var(--bgColor-success-emphasis, var(--color-success-emphasis));
}
}
// Animations
.Toast--animateIn {
animation: Toast--animateIn 0.18s cubic-bezier(0.22, 0.61, 0.36, 1) backwards;
}
@keyframes Toast--animateIn {
0% {
opacity: 0;
transform: translateY(100%);
}
}
.Toast--animateOut {
animation: Toast--animateOut 0.18s cubic-bezier(0.55, 0.06, 0.68, 0.19) forwards;
}
@keyframes Toast--animateOut {
100% {
pointer-events: none;
opacity: 0;
transform: translateY(100%);
}
}
.Toast--spinner {
animation: Toast--spinner 1000ms linear infinite;
}
@keyframes Toast--spinner {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}