@@ -400,7 +400,7 @@ body {
400400 grid-template-columns : 1fr ;
401401}
402402
403- /* ===== 首页:两屏全屏滚动 (口号区 + 文章区) ===== */
403+ /* ===== 首页:多屏全屏滚动 (口号区 + 文章区 + 项目推荐… ) ===== */
404404/* 进入首页时 HomeView 给 <html> 加此 class,开启滚动吸附;离开移除 */
405405html .homepage-scroll-snap {
406406 scroll-snap-type : y proximity;
@@ -492,7 +492,284 @@ html.homepage-scroll-snap {
492492 }
493493}
494494
495- /* ===== 第 3 屏:网站时间线(横向交替,随全屏滚动吸附) ===== */
495+ /* ===== 第 3 屏:项目推荐(整屏,bento 网格 + 渐变点缀,区别于纯白卡片模块) ===== */
496+ .home-screen-projects {
497+ background :
498+ radial-gradient (1100px 460px at 50% -140px , rgba (51 , 112 , 255 , 0.10 ), transparent 62% ),
499+ var (--bg );
500+ display : flex;
501+ align-items : center;
502+ padding : 48px 24px ;
503+ }
504+
505+ .home-projects {
506+ width : 100% ;
507+ max-width : 1080px ;
508+ margin : 0 auto;
509+ }
510+
511+ .home-projects-head {
512+ text-align : center;
513+ margin-bottom : 30px ;
514+ }
515+
516+ .home-projects-badge {
517+ display : inline-flex;
518+ align-items : center;
519+ gap : 6px ;
520+ padding : 4px 12px ;
521+ border-radius : 999px ;
522+ font-size : 12px ;
523+ font-weight : 650 ;
524+ letter-spacing : 0.08em ;
525+ color : var (--accent );
526+ background : rgba (51 , 112 , 255 , 0.10 );
527+ border : 1px solid rgba (51 , 112 , 255 , 0.25 );
528+ }
529+ [data-theme = 'dark' ] .home-projects-badge {
530+ color : # 7da2ff ;
531+ background : rgba (74 , 127 , 255 , 0.14 );
532+ border-color : rgba (74 , 127 , 255 , 0.35 );
533+ }
534+
535+ .home-projects-title {
536+ margin : 12px 0 0 ;
537+ font-size : clamp (24px , 3.5vw , 34px );
538+ font-weight : 700 ;
539+ letter-spacing : 0.06em ;
540+ color : var (--text );
541+ }
542+
543+ .home-projects-sub {
544+ margin : 10px 0 0 ;
545+ font-size : 15px ;
546+ line-height : 1.7 ;
547+ color : var (--muted );
548+ }
549+
550+ /* bento 网格:首个项目横跨整行(大卡),其余三列排开 */
551+ .home-projects-grid {
552+ display : grid;
553+ grid-template-columns : repeat (3 , 1fr );
554+ gap : 18px ;
555+ }
556+
557+ .home-project-card {
558+ border-radius : 16px ;
559+ background : var (--surface );
560+ border : 1px solid var (--border );
561+ box-shadow : 0 1px 3px rgba (0 , 0 , 0 , 0.04 );
562+ cursor : pointer;
563+ overflow : hidden;
564+ display : flex;
565+ flex-direction : column;
566+ transition : transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
567+ }
568+ .home-project-card : hover {
569+ transform : translateY (-3px );
570+ border-color : rgba (51 , 112 , 255 , 0.45 );
571+ box-shadow : 0 12px 28px rgba (51 , 112 , 255 , 0.14 );
572+ }
573+
574+ .home-project-card--featured {
575+ grid-column : 1 / -1 ;
576+ flex-direction : row;
577+ }
578+ .home-project-card--featured .home-project-cover {
579+ width : 42% ;
580+ flex : 0 0 42% ;
581+ aspect-ratio : auto;
582+ align-self : stretch;
583+ }
584+
585+ .home-project-cover {
586+ position : relative;
587+ aspect-ratio : 16 / 9 ;
588+ overflow : hidden;
589+ background : var (--surface-soft );
590+ }
591+ .home-project-cover img {
592+ width : 100% ;
593+ height : 100% ;
594+ object-fit : cover;
595+ display : block;
596+ }
597+ /* 封面底部渐变压暗,让角标与"精选"标签更清晰 */
598+ .home-project-cover ::after {
599+ content : '' ;
600+ position : absolute;
601+ inset : 0 ;
602+ background : linear-gradient (180deg , transparent 52% , rgba (15 , 20 , 30 , 0.55 ));
603+ }
604+ .home-project-index {
605+ position : absolute;
606+ top : 10px ;
607+ left : 10px ;
608+ z-index : 1 ;
609+ min-width : 30px ;
610+ padding : 3px 8px ;
611+ border-radius : 8px ;
612+ text-align : center;
613+ font-size : 13px ;
614+ font-weight : 700 ;
615+ letter-spacing : 0.05em ;
616+ color : # fff ;
617+ background : rgba (15 , 20 , 30 , 0.55 );
618+ backdrop-filter : blur (4px );
619+ }
620+ .home-project-pick {
621+ position : absolute;
622+ top : 10px ;
623+ right : 10px ;
624+ z-index : 1 ;
625+ padding : 3px 10px ;
626+ border-radius : 8px ;
627+ font-size : 12px ;
628+ font-weight : 700 ;
629+ letter-spacing : 0.06em ;
630+ color : # fff ;
631+ background : linear-gradient (135deg , # 3370ff, # 7a5cff );
632+ box-shadow : 0 2px 8px rgba (51 , 112 , 255 , 0.4 );
633+ }
634+
635+ .home-project-body {
636+ display : flex;
637+ flex-direction : column;
638+ flex : 1 ;
639+ gap : 8px ;
640+ padding : 16px 18px 18px ;
641+ }
642+ .home-project-card--featured .home-project-body {
643+ padding : 22px 26px ;
644+ justify-content : center;
645+ }
646+
647+ .home-project-title {
648+ font-size : 18px ;
649+ font-weight : 700 ;
650+ letter-spacing : -0.01em ;
651+ color : var (--text );
652+ }
653+ .home-project-card--featured .home-project-title {
654+ font-size : 26px ;
655+ }
656+
657+ .home-project-summary {
658+ font-size : 14px ;
659+ line-height : 1.7 ;
660+ color : var (--muted );
661+ }
662+ .home-project-card--featured .home-project-summary {
663+ font-size : 15px ;
664+ }
665+
666+ /* 技术栈标签:四色轮转,与全站统一的蓝色小标签区分开 */
667+ .home-project-tags {
668+ display : flex;
669+ flex-wrap : wrap;
670+ gap : 6px ;
671+ margin-top : 2px ;
672+ }
673+ .home-project-tag {
674+ padding : 3px 9px ;
675+ border-radius : 999px ;
676+ font-size : 11px ;
677+ font-weight : 600 ;
678+ color : # 3370ff ;
679+ background : rgba (51 , 112 , 255 , 0.10 );
680+ }
681+ .home-project-tag : nth-child (4n + 2) {
682+ color : # 16a34a ;
683+ background : rgba (22 , 163 , 74 , 0.12 );
684+ }
685+ .home-project-tag : nth-child (4n + 3) {
686+ color : # d97706 ;
687+ background : rgba (217 , 119 , 6 , 0.12 );
688+ }
689+ .home-project-tag : nth-child (4n + 4) {
690+ color : # 9333ea ;
691+ background : rgba (147 , 51 , 234 , 0.12 );
692+ }
693+ [data-theme = 'dark' ] .home-project-tag {
694+ color : # 7da2ff ;
695+ background : rgba (74 , 127 , 255 , 0.16 );
696+ }
697+ [data-theme = 'dark' ] .home-project-tag : nth-child (4n + 2) {
698+ color : # 4ade80 ;
699+ background : rgba (74 , 222 , 128 , 0.14 );
700+ }
701+ [data-theme = 'dark' ] .home-project-tag : nth-child (4n + 3) {
702+ color : # fbbf24 ;
703+ background : rgba (251 , 191 , 36 , 0.14 );
704+ }
705+ [data-theme = 'dark' ] .home-project-tag : nth-child (4n + 4) {
706+ color : # c084fc ;
707+ background : rgba (192 , 132 , 252 , 0.14 );
708+ }
709+
710+ .home-project-links {
711+ margin-top : auto;
712+ padding-top : 6px ;
713+ display : flex;
714+ flex-wrap : wrap;
715+ gap : 10px ;
716+ }
717+ .home-project-links a {
718+ display : inline-flex;
719+ align-items : center;
720+ gap : 4px ;
721+ padding : 5px 12px ;
722+ border-radius : 999px ;
723+ font-size : 12px ;
724+ font-weight : 600 ;
725+ color : var (--accent );
726+ border : 1px solid rgba (51 , 112 , 255 , 0.35 );
727+ text-decoration : none;
728+ transition : background 0.15s ease;
729+ }
730+ .home-project-links a : hover {
731+ background : rgba (51 , 112 , 255 , 0.10 );
732+ text-decoration : none;
733+ }
734+
735+ .home-projects-more {
736+ display : block;
737+ margin-top : 26px ;
738+ text-align : center;
739+ font-size : 14px ;
740+ font-weight : 600 ;
741+ color : var (--accent );
742+ text-decoration : none;
743+ }
744+ .home-projects-more : hover {
745+ text-decoration : underline;
746+ }
747+
748+ @media (max-width : 900px ) {
749+ .home-project-card--featured {
750+ flex-direction : column;
751+ }
752+ .home-project-card--featured .home-project-cover {
753+ width : 100% ;
754+ flex : none;
755+ aspect-ratio : 16 / 9 ;
756+ align-self : auto;
757+ }
758+ .home-projects-grid {
759+ grid-template-columns : repeat (2 , 1fr );
760+ }
761+ }
762+
763+ @media (max-width : 620px ) {
764+ .home-screen-projects {
765+ padding : 40px 20px ;
766+ }
767+ .home-projects-grid {
768+ grid-template-columns : 1fr ;
769+ }
770+ }
771+
772+ /* ===== 第 4 屏:网站时间线(横向交替,随全屏滚动吸附) ===== */
496773.home-screen-timeline {
497774 background : var (--bg );
498775 display : flex;
@@ -638,7 +915,7 @@ html.homepage-scroll-snap {
638915 }
639916}
640917
641- /* ===== 第 4 屏:Bug 案例入口(整屏,展示最新一篇 Bug 复盘) ===== */
918+ /* ===== 第 5 屏:Bug 案例入口(整屏,展示最新一篇 Bug 复盘) ===== */
642919.home-screen-bugs {
643920 background : var (--bg );
644921 display : flex;
0 commit comments