-
-
Notifications
You must be signed in to change notification settings - Fork 157
Expand file tree
/
Copy pathanimations.css
More file actions
175 lines (151 loc) · 4.39 KB
/
animations.css
File metadata and controls
175 lines (151 loc) · 4.39 KB
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
/* Islands Dark — Living Glass
Ambient aurora light, liquid motion, breathing panels */
/* ===== Animatable Custom Properties ===== */
@property --border-angle {
syntax: '<angle>';
initial-value: 0deg;
inherits: false;
}
/* ===== Keyframes ===== */
/* Aurora: colored light traveling along panel borders */
@keyframes islands-aurora {
to { --border-angle: 360deg; }
}
/* Activity bar: liquid drop funnels into the new divot */
@keyframes islands-drop-morph {
0% {
transform: scaleX(0.45) scaleY(2);
opacity: 0;
border-radius: 35%;
}
20% {
opacity: 0.7;
border-radius: 40%;
transform: scaleX(0.5) scaleY(1.5);
}
50% {
transform: scaleX(1.2) scaleY(0.8);
opacity: 1;
border-radius: 50%;
}
70% { transform: scaleX(0.92) scaleY(1.08); }
85% { transform: scaleX(1.04) scaleY(0.96); }
100% {
transform: scaleX(1) scaleY(1);
opacity: 1;
border-radius: 50%;
}
}
/* Soft breathing glow on active indicator */
@keyframes islands-breathe {
0%, 100% { filter: drop-shadow(0 0 2px rgba(13,188,121,0)); }
50% { filter: drop-shadow(0 0 8px rgba(13,188,121,0.3)); }
}
/* Widget entrance — lift into place */
@keyframes islands-emerge {
from {
opacity: 0;
transform: translateY(-4px) scale(0.98);
}
to {
opacity: 1;
transform: translateY(0) scale(1);
}
}
/* Notification entrance — slide + scale from right */
@keyframes islands-notify {
from {
opacity: 0;
transform: translateX(20px) scale(0.96);
}
to {
opacity: 1;
transform: translateX(0) scale(1);
}
}
/* =============================================================
AURORA BORDERS — Living Glass
A subtle colored light continuously travels along panel edges,
making the glass borders feel alive.
============================================================= */
.part.sidebar::after,
.part.editor::after,
.part.auxiliarybar::after,
.part.panel.bottom::after {
content: '' !important;
display: block !important;
position: absolute !important;
inset: 0 !important;
border-radius: inherit !important;
padding: 1px !important;
background: conic-gradient(
from var(--border-angle),
transparent 0%,
transparent 20%,
rgba(13,188,121,0.35) 27%,
rgba(125,200,160,0.2) 33%,
rgba(13,188,121,0.12) 38%,
transparent 45%,
transparent 100%
) !important;
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0) !important;
-webkit-mask-composite: xor !important;
pointer-events: none !important;
z-index: 999 !important;
animation: islands-aurora 8s linear infinite !important;
}
/* Stagger panels so the light is out of phase */
.part.editor::after {
animation-delay: -2s !important;
}
.part.auxiliarybar::after {
animation-delay: -4s !important;
}
.part.panel.bottom::after {
animation-delay: -6s !important;
}
/* =============================================================
ACTIVITY BAR — Liquid Motion
============================================================= */
/* Drop morph when switching, then settle into a breathing glow */
.part.activitybar .action-item.checked .action-label {
animation:
islands-drop-morph 0.4s cubic-bezier(0.22, 1, 0.36, 1),
islands-breathe 4s ease-in-out 0.5s infinite !important;
}
/* Hover glow on all activity bar icons */
.part.activitybar .action-item .action-label {
transition: filter 0.3s ease !important;
}
.part.activitybar .action-item:hover .action-label {
filter: drop-shadow(0 0 5px rgba(13,188,121,0.25)) !important;
}
/* =============================================================
WIDGET ENTRANCES
============================================================= */
/* Command palette — lifts into view */
.quick-input-widget {
animation: islands-emerge 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
/* Notifications — slide from right with scale */
.notification-toast {
animation: islands-notify 0.35s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
/* Dialog boxes */
.monaco-dialog-box {
animation: islands-emerge 0.25s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
/* Hover tooltips */
.monaco-hover {
animation: islands-emerge 0.15s ease-out !important;
}
/* Autocomplete */
.editor-widget.suggest-widget {
animation: islands-emerge 0.12s cubic-bezier(0.16, 1, 0.3, 1) !important;
}
/* Notification center */
.notifications-center {
animation: islands-emerge 0.2s cubic-bezier(0.16, 1, 0.3, 1) !important;
}