@@ -233,6 +233,36 @@ img{max-width:100%;display:block}
233233.btt-progress circle {fill : none;stroke : var (--red );stroke-width : 2 ;stroke-linecap : round;
234234 transition : stroke-dashoffset .15s }
235235
236+ /* === CONTRIBUTE FLOATING WIDGET === */
237+ .contribute-fab {position : fixed;bottom : 140px ;right : 32px ;width : 42px ;height : 42px ;border-radius : 50% ;
238+ background : var (--card );color : var (--red );border : 1px solid var (--border );cursor : pointer;
239+ display : flex;align-items : center;justify-content : center;font-size : 1.2rem ;
240+ box-shadow : 0 4px 20px rgba (0 , 0 , 0 , .2 );transition : all .3s ;z-index : 900 ;text-decoration : none}
241+ .contribute-fab : hover {border-color : var (--red );box-shadow : 0 4px 24px rgba (199 , 70 , 52 , .25 );transform : translateY (-2px )}
242+ .contribute-fab .active {border-color : var (--red );background : var (--bg3 )}
243+ .contribute-fab svg {width : 22px ;height : 22px ;fill : currentColor}
244+
245+ .contribute-popup {position : fixed;bottom : 194px ;right : 32px ;width : 260px ;background : var (--card );
246+ border : 1px solid var (--border );border-radius : var (--r-lg );padding : 20px ;z-index : 901 ;
247+ box-shadow : 0 12px 48px rgba (0 , 0 , 0 , .35 );opacity : 0 ;visibility : hidden;
248+ transform : translateY (12px ) scale (.95 );transition : all .3s ease}
249+ .contribute-popup .show {opacity : 1 ;visibility : visible;transform : translateY (0 ) scale (1 )}
250+ .contribute-popup ::after {content : '' ;position : absolute;bottom : -7px ;right : 20px ;width : 14px ;height : 14px ;
251+ background : var (--card );border-right : 1px solid var (--border );border-bottom : 1px solid var (--border );
252+ transform : rotate (45deg )}
253+ .contribute-popup-close {position : absolute;top : 8px ;right : 10px ;background : none;border : none;
254+ color : var (--text-muted );cursor : pointer;font-size : .9rem ;padding : 4px ;line-height : 1 ;transition : color .2s }
255+ .contribute-popup-close : hover {color : var (--text )}
256+ .contribute-popup-icon {text-align : center;font-size : 1.6rem ;margin-bottom : 6px }
257+ .contribute-popup-title {text-align : center;font-size : .92rem ;font-weight : 700 ;color : var (--text );margin-bottom : 8px }
258+ .contribute-popup-desc {text-align : center;font-size : .78rem ;color : var (--text-dim );line-height : 1.6 ;margin-bottom : 12px }
259+ .contribute-popup-steps {display : flex;justify-content : center;gap : 8px ;margin-bottom : 14px }
260+ .contribute-popup-steps span {font-size : .7rem ;color : var (--text-muted );background : var (--bg2 );
261+ padding : 4px 8px ;border-radius : var (--r );border : 1px solid var (--border );white-space : nowrap}
262+ .contribute-popup-btn {display : block;text-align : center;padding : 8px 16px ;background : var (--red );
263+ color : # fff ;border-radius : var (--r );font-size : .82rem ;font-weight : 600 ;text-decoration : none;transition : opacity .2s }
264+ .contribute-popup-btn : hover {opacity : .85 }
265+
236266/* === WECHAT CONSULT WIDGET === */
237267.wechat-fab {position : fixed;bottom : 86px ;right : 32px ;width : 42px ;height : 42px ;border-radius : 50% ;
238268 background : var (--card );color : var (--green );border : 1px solid var (--border );cursor : pointer;
@@ -337,6 +367,8 @@ img{max-width:100%;display:block}
337367 .back-to-top {bottom : 80px ;right : 16px ;width : 44px ;height : 44px }
338368 .wechat-fab {bottom : 136px ;right : 16px ;width : 44px ;height : 44px }
339369 .wechat-popup {bottom : 186px ;right : 16px ;width : 240px ;padding : 14px }
370+ .contribute-fab {bottom : 192px ;right : 16px ;width : 44px ;height : 44px }
371+ .contribute-popup {bottom : 246px ;right : 16px ;width : 240px ;padding : 16px }
340372
341373 .footer-inner {grid-template-columns : 1fr }
342374 .section {padding : 56px 0 }
@@ -390,6 +422,7 @@ img{max-width:100%;display:block}
390422 .trust-quote {padding : 20px 16px }
391423 .trust-quote-text {font-size : .85rem }
392424 .wechat-popup {width : calc (100vw - 32px );right : 16px }
425+ .contribute-popup {width : calc (100vw - 32px );right : 16px }
393426 .search-footer {font-size : .7rem }
394427 .mode-card {padding : 16px 14px }
395428 .cmd-btns {gap : 6px }
@@ -407,6 +440,8 @@ img{max-width:100%;display:block}
407440 .back-to-top {bottom : 64px }
408441 .wechat-fab {bottom : 120px }
409442 .wechat-popup {bottom : 170px }
443+ .contribute-fab {bottom : 176px }
444+ .contribute-popup {bottom : 230px }
410445}
411446
412447/* === macOS Terminal Code Blocks === */
@@ -450,7 +485,7 @@ img{max-width:100%;display:block}
450485
451486/* === PERFORMANCE HINTS === */
452487.card : hover {will-change : transform}
453- .back-to-top : hover , .wechat-fab : hover , .wechat-popup .show {will-change : transform}
488+ .back-to-top : hover , .wechat-fab : hover , .wechat-popup .show , . contribute-fab : hover , . contribute-popup . show {will-change : transform}
454489
455490/* === HERO FLOATING ORBS === */
456491@keyframes floatOrb1{0% , 100%{transform : translate (0 , 0 ) scale (1 )}25% {transform : translate (30px , -20px ) scale (1.1 )}50% {transform : translate (-15px , -40px ) scale (.95 )}75% {transform : translate (-30px , -10px ) scale (1.05 )}}
@@ -640,7 +675,7 @@ img{max-width:100%;display:block}
640675
641676/* === PRINT STYLES === */
642677@media print{
643- .nav , .mobile-tabbar , .back-to-top , .wechat-fab , .wechat-popup , .search-overlay , .nav-actions , .noise-overlay , .btt-progress , .hero-orb , .page-progress {display : none!important }
678+ .nav , .mobile-tabbar , .back-to-top , .wechat-fab , .wechat-popup , .contribute-fab , . contribute-popup , . search-overlay , .nav-actions , .noise-overlay , .btt-progress , .hero-orb , .page-progress {display : none!important }
644679 body {background : # fff ;color : # 000 ;font-size : 12pt ;line-height : 1.5 ;padding-top : 0 }
645680 a {color : # 000 ;text-decoration : underline}
646681 .footer {background : # f5f5f5 ;color : # 333 ;border-top : 1px solid # ccc }
0 commit comments