@@ -91,6 +91,132 @@ body {
9191 /* background: url('../images/bg.svg'); */
9292}
9393
94+ /*--------------------------------------------------------------
95+ # Disconnect banner
96+ --------------------------------------------------------------*/
97+
98+ .disconnect-banner {
99+ position : fixed;
100+ top : 18px ;
101+ left : 50% ;
102+ transform : translateX (-50% ) translateY (calc (-100% - 30px ));
103+ z-index : 99999 ;
104+ opacity : 0 ;
105+ pointer-events : none;
106+ transition :
107+ transform 0.4s cubic-bezier (0.34 , 1.56 , 0.64 , 1 ),
108+ opacity 0.35s ease;
109+ will-change : transform, opacity;
110+ }
111+
112+ .disconnect-banner .visible {
113+ transform : translateX (-50% ) translateY (0 );
114+ opacity : 1 ;
115+ pointer-events : auto;
116+ }
117+
118+ .disconnect-banner-inner {
119+ display : flex;
120+ align-items : center;
121+ gap : 14px ;
122+ padding : 11px 22px 11px 16px ;
123+ background : linear-gradient (135deg , rgba (28 , 28 , 32 , 0.82 ), rgba (18 , 18 , 20 , 0.9 ));
124+ backdrop-filter : blur (18px ) saturate (160% );
125+ -webkit-backdrop-filter : blur (18px ) saturate (160% );
126+ border : 1px solid rgba (255 , 80 , 80 , 0.4 );
127+ border-radius : 50px ;
128+ box-shadow :
129+ 0 4px 24px rgba (0 , 0 , 0 , 0.55 ),
130+ 0 0 0 1px rgba (255 , 80 , 80 , 0.12 ) inset,
131+ 0 0 28px rgba (220 , 50 , 50 , 0.18 );
132+ color : # fff ;
133+ white-space : nowrap;
134+ transition :
135+ border-color 0.4s ease,
136+ box-shadow 0.4s ease;
137+ }
138+
139+ .disconnect-banner .reconnected .disconnect-banner-inner {
140+ border-color : rgba (52 , 211 , 100 , 0.45 );
141+ box-shadow :
142+ 0 4px 24px rgba (0 , 0 , 0 , 0.55 ),
143+ 0 0 0 1px rgba (52 , 211 , 100 , 0.12 ) inset,
144+ 0 0 28px rgba (30 , 180 , 80 , 0.22 );
145+ }
146+
147+ .disconnect-banner-icon-wrap {
148+ display : flex;
149+ align-items : center;
150+ justify-content : center;
151+ width : 34px ;
152+ height : 34px ;
153+ border-radius : 50% ;
154+ background : rgba (220 , 50 , 50 , 0.22 );
155+ border : 1px solid rgba (255 , 80 , 80 , 0.3 );
156+ font-size : 15px ;
157+ color : # ff6b6b ;
158+ flex-shrink : 0 ;
159+ transition :
160+ background 0.4s ease,
161+ border-color 0.4s ease,
162+ color 0.4s ease;
163+ animation : bannerIconPulse 1.8s ease-in-out infinite;
164+ }
165+
166+ .disconnect-banner .reconnected .disconnect-banner-icon-wrap {
167+ background : rgba (30 , 180 , 80 , 0.22 );
168+ border-color : rgba (52 , 211 , 100 , 0.35 );
169+ color : # 4ade80 ;
170+ animation : none;
171+ }
172+
173+ .disconnect-banner-text {
174+ display : flex;
175+ flex-direction : column;
176+ gap : 2px ;
177+ line-height : 1.3 ;
178+ }
179+
180+ # disconnectBannerTitle {
181+ font-size : 13px ;
182+ font-weight : 700 ;
183+ letter-spacing : 0.02em ;
184+ color : # ff6b6b ;
185+ transition : color 0.4s ease;
186+ }
187+
188+ .disconnect-banner .reconnected # disconnectBannerTitle {
189+ color : # 4ade80 ;
190+ }
191+
192+ # disconnectBannerMsg {
193+ font-size : 11.5px ;
194+ font-weight : 500 ;
195+ color : rgba (220 , 220 , 230 , 0.75 );
196+ letter-spacing : 0.01em ;
197+ }
198+
199+ .disconnect-banner-spinner {
200+ font-size : 15px ;
201+ color : rgba (255 , 255 , 255 , 0.45 );
202+ flex-shrink : 0 ;
203+ transition : opacity 0.3s ease;
204+ }
205+
206+ .disconnect-banner .reconnected .disconnect-banner-spinner {
207+ opacity : 0 ;
208+ }
209+
210+ @keyframes bannerIconPulse {
211+ 0% ,
212+ 100% {
213+ box-shadow : 0 0 0 0 rgba (220 , 50 , 50 , 0.35 );
214+ }
215+ 50% {
216+ box-shadow : 0 0 0 6px rgba (220 , 50 , 50 , 0 );
217+ }
218+ }
219+
94220/*--------------------------------------------------------------
95221# Google Translate
96222--------------------------------------------------------------*/
0 commit comments