@@ -476,4 +476,117 @@ a.gd-404__ai-card:hover { border-color: var(--gd404-link); box-shadow: 0 6px 16p
476476 .gd-404__title { font-size : 1.8rem ; }
477477 .gd-404__ai { padding : 1.25rem ; }
478478 .gd-404__rpath { display : none; }
479+ }
480+
481+ /* ============================ Home (gd-home) ============================
482+ Functional landing: hero live-search (same /search-index.json as the 404),
483+ a platform-filterable product grid, a dark AI/LLM panel, and developer
484+ resources. Reuses the 404 tokens (--gd404-blue #0054FA / --gd404-link #558FFF);
485+ the `.gd-home ` prefix raises specificity over the theme's `h1..h6{display:flex}`
486+ and `.gdoc-page h2` so headings render as designed. */
487+ .gd-home { max-width : 75rem ; margin : 0 auto; padding-bottom : 3rem ; }
488+
489+ /* Full-width gradient band behind the hero (matches the design), replacing the theme's
490+ decorative rounded wrapper background image. `:has()` scopes it to the redesigned home
491+ and 404 pages; other nav-disabled pages keep the theme background. */
492+ .wrapper-bg : has (.gd-home ),
493+ .wrapper-bg : has (.gd-404 ) {
494+ background-image : linear-gradient (180deg , # eef3fc 0% , # f6f9ff 55% , # ffffff 100% );
495+ background-repeat : no-repeat;
496+ background-position : top center;
497+ background-size : 100% 32rem ;
498+ }
499+
500+ /* Hero */
501+ .gd-home__hero { text-align : center; max-width : 44rem ; margin : 0 auto; padding : 2rem 0 1.5rem ; }
502+ .gd-home .gd-home__title { display : block; margin : 0 0 1rem ; font-size : 2.6rem ; line-height : 1.08 ; font-weight : 800 ; letter-spacing : -.03em ; text-align : center; }
503+ .gd-home__lead { color : rgba (15 , 23 , 39 , .65 ); font-size : 1.1rem ; line-height : 1.6 ; margin : 0 auto 1.75rem ; max-width : 38rem ; }
504+
505+ /* Hero search (mirrors the 404 search component) */
506+ .gd-home__search { max-width : 38rem ; margin : 0 auto; position : relative; }
507+ .gd-home__searchbar {
508+ display : flex; align-items : center; gap : .5rem ;
509+ background : # fff ; border : 1.5px solid # EBEBEC ; border-radius : 14px ;
510+ padding : .4rem .4rem .4rem 1rem ; box-shadow : 0 6px 22px rgba (15 , 23 , 39 , .08 );
511+ transition : border-color .15s ease, box-shadow .15s ease;
512+ }
513+ .gd-home__searchbar : focus-within { border-color : var (--gd404-link ); box-shadow : 0 0 0 4px rgba (85 , 143 , 255 , .15 ); }
514+ .gd-home__search-icon { color : # 94a3b8 ; flex : none; }
515+ .gd-home__input { flex : 1 ; border : none; outline : none; background : transparent; font-family : inherit; font-size : 1rem ; color : var (--body-font-color , # 0f1727 ); padding : .45rem 0 ; }
516+ .gd-home__search-btn { flex : none; border : none; cursor : pointer; background : var (--gd404-blue ); color : # fff ; font-family : inherit; font-size : .95rem ; font-weight : 600 ; padding : .6rem 1.3rem ; border-radius : 9px ; transition : background-color .15s ease; }
517+ .gd-home__search-btn : hover { background : # 003fbd ; }
518+
519+ /* Search results dropdown */
520+ .gd-home__results { position : absolute; left : 0 ; right : 0 ; top : calc (100% + .5rem ); z-index : 20 ; background : # fff ; border : 1px solid # EBEBEC ; border-radius : 12px ; box-shadow : 0 16px 40px rgba (15 , 23 , 39 , .14 ); overflow : hidden; max-height : 26rem ; overflow-y : auto; text-align : left; }
521+ .gd-home__result { display : flex; align-items : center; gap : .75rem ; padding : .7rem 1rem ; text-decoration : none; border-left : 3px solid transparent; cursor : pointer; }
522+ .gd-home__result .is-active { background : # f4f8ff ; border-left-color : var (--gd404-link ); }
523+ .gd-home__rk { flex : none; font-family : "Roboto Mono" , monospace; font-size : .65rem ; font-weight : 600 ; text-transform : uppercase; letter-spacing : .03em ; padding : .15rem .45rem ; border-radius : 5px ; width : 5.4rem ; text-align : center; }
524+ .gd-home__rk--ty { background : # eaf1ff ; color : # 1d4ed8 ; }
525+ .gd-home__rk--ns { background : # f1ecfe ; color : # 6d28d9 ; }
526+ .gd-home__rk--g { background : # e8f7ee ; color : # 15803d ; }
527+ .gd-home__rk--pr { background : # e6f6f6 ; color : # 0e7490 ; }
528+ .gd-home__rk--pg { background : # f1f5f9 ; color : # 64748b ; }
529+ .gd-home__rmain { flex : 1 ; min-width : 0 ; }
530+ .gd-home__rname { display : block; font-size : .95rem ; color : var (--body-font-color , # 0f1727 ); white-space : nowrap; overflow : hidden; text-overflow : ellipsis; }
531+ .gd-home__rname mark { background : # fff2a8 ; color : inherit; padding : 0 .05em ; border-radius : 2px ; }
532+ .gd-home__rpath { display : block; font-family : "Roboto Mono" , monospace; font-size : .72rem ; color : # 94a3b8 ; white-space : nowrap; overflow : hidden; text-overflow : ellipsis; }
533+ .gd-home__rplat { flex : none; font-size : .72rem ; font-weight : 600 ; color : var (--gd404-link ); background : # EDF0F1 ; border-radius : 1rem ; padding : .15rem .55rem ; }
534+ .gd-home__more , .gd-home__noresult { padding : .75rem 1rem ; font-size : .85rem ; color : # 64748b ; }
535+ .gd-home__more { border-top : 1px solid # f1f5f9 ; background : # fbfdff ; }
536+
537+ /* Browse + platform filter */
538+ .gd-home__browse { margin-top : 3rem ; }
539+ .gd-home__browse-head { display : flex; align-items : center; justify-content : space-between; gap : 1rem 1.5rem ; flex-wrap : wrap; margin-bottom : 1.5rem ; }
540+ .gd-home__browse-title { display : flex; align-items : baseline; gap : .75rem ; }
541+ .gd-home .gd-home__h2 { display : block; font-size : 1.4rem ; font-weight : 700 ; letter-spacing : -.02em ; margin : 0 ; line-height : 1.3 ; }
542+ .gd-home__count { font-family : "Roboto Mono" , monospace; font-size : .8rem ; color : # 94a3b8 ; flex : none; }
543+ .gd-home__filter { display : flex; flex-wrap : wrap; gap : .35rem ; background : # f1f5f9 ; padding : .3rem ; border-radius : 11px ; }
544+ .gd-home__seg { display : inline-flex; align-items : center; gap : .45rem ; border : none; cursor : pointer; font-family : inherit; font-size : .85rem ; font-weight : 600 ; color : # 64748b ; padding : .45rem .85rem ; border-radius : 8px ; background : transparent; transition : background-color .15s ease, color .15s ease, box-shadow .15s ease; }
545+ .gd-home__seg : hover { color : var (--body-font-color , # 0f1727 ); }
546+ .gd-home__seg .is-active { background : # fff ; color : var (--body-font-color , # 0f1727 ); box-shadow : 0 1px 3px rgba (15 , 23 , 39 , .12 ); }
547+ .gd-home__seg-dot { width : .5rem ; height : .5rem ; border-radius : 50% ; flex : none; }
548+
549+ /* Product grid + cards */
550+ .gd-home__grid { display : grid; grid-template-columns : repeat (auto-fill, minmax (21rem , 1fr )); gap : .9rem ; }
551+ .gd-home__card { display : flex; flex-direction : column; gap : .7rem ; padding : 1.15rem 1.25rem ; border : 1px solid # EBEBEC ; border-radius : 14px ; background : # fff ; text-decoration : none; transition : border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
552+ .gd-home__card : hover { border-color : var (--gd404-link ); box-shadow : 0 8px 22px rgba (85 , 143 , 255 , .12 ); transform : translateY (-2px ); }
553+ .gd-home__card-top { display : flex; align-items : center; gap : .8rem ; }
554+ .gd-home__card-icon { width : 2.4rem ; height : 2.4rem ; flex : none; }
555+ .gd-home__card-name { flex : 1 ; min-width : 0 ; font-size : 1.05rem ; letter-spacing : -.01em ; color : var (--body-font-color , # 0f1727 ); font-weight : 700 ; }
556+ .gd-home__brand { color : # 94a3b8 ; font-weight : 500 ; }
557+ .gd-home__card-arrow { color : # cbd5e1 ; flex : none; }
558+ .gd-home__card : hover .gd-home__card-arrow { color : var (--gd404-link ); }
559+ .gd-home__card-desc { font-size : .88rem ; line-height : 1.5 ; color : rgba (15 , 23 , 39 , .6 ); min-height : 2.6rem ; }
560+ .gd-home__pills { display : flex; flex-wrap : wrap; gap : .4rem ; }
561+ .gd-home__pill { display : inline-flex; align-items : center; gap : .4rem ; font-size : .75rem ; font-weight : 600 ; color : # 475569 ; background : # f6f8fb ; border : 1px solid # EBEBEC ; border-radius : 7px ; padding : .25rem .6rem ; transition : background-color .15s ease, border-color .15s ease, color .15s ease; }
562+ .gd-home__pill-dot { width : .45rem ; height : .45rem ; border-radius : 50% ; flex : none; }
563+ .gd-home__pill .is-match { background : # eaf1ff ; border-color : # cdddff ; color : # 1d4ed8 ; }
564+
565+ /* AI / LLM panel — dark */
566+ .gd-home__ai { margin-top : 3.5rem ; background : # 0b1220 ; border-radius : 20px ; padding : 2.25rem ; }
567+ .gd-home__ai-eyebrow { font-family : "Roboto Mono" , monospace; font-size : .75rem ; font-weight : 500 ; letter-spacing : .15em ; text-transform : uppercase; color : # 7aa7ff ; margin-bottom : .6rem ; }
568+ .gd-home .gd-home__ai-title { color : # fff ; font-size : 1.6rem ; font-weight : 800 ; letter-spacing : -.02em ; margin : 0 0 .5rem ; }
569+ .gd-home__ai-lead { color : # 9fb0c9 ; font-size : .98rem ; line-height : 1.6 ; margin : 0 0 1.5rem ; max-width : 40rem ; }
570+ .gd-home__ai-cards { display : grid; grid-template-columns : repeat (auto-fit, minmax (15rem , 1fr )); gap : .85rem ; }
571+ .gd-home__ai-card { display : flex; flex-direction : column; gap : .6rem ; background : # 131c2e ; border : 1px solid # 1f2a3f ; border-radius : 12px ; padding : 1.1rem 1.2rem ; text-decoration : none; transition : border-color .15s ease, box-shadow .15s ease; }
572+ a .gd-home__ai-card : hover { border-color : # 2563eb ; box-shadow : 0 6px 18px rgba (37 , 99 , 235 , .25 ); }
573+ .gd-home__token { align-self : flex-start; font-family : "Roboto Mono" , monospace; font-size : .82rem ; font-weight : 500 ; color : # bcd0ff ; background : # 1b2740 ; border : 1px solid # 2a3a57 ; border-radius : 7px ; padding : .25rem .6rem ; }
574+ .gd-home__ai-desc { font-size : .88rem ; line-height : 1.5 ; color : # 9fb0c9 ; }
575+ .gd-home__ai-desc code { background : # 1b2740 ; border : 1px solid # 2a3a57 ; border-radius : 4px ; padding : .1em .4em ; font-size : .85em ; color : # d6e2ff ; }
576+
577+ /* Developer resources */
578+ .gd-home__res { margin-top : 3.5rem ; }
579+ .gd-home__res .gd-home__h2 { margin-bottom : 1.25rem ; }
580+ .gd-home__res-cards { display : grid; grid-template-columns : repeat (auto-fit, minmax (12rem , 1fr )); gap : .85rem ; }
581+ .gd-home__res-card { display : flex; align-items : center; gap : .85rem ; padding : 1rem 1.2rem ; border : 1px solid # EBEBEC ; border-radius : 12px ; background : # fff ; text-decoration : none; transition : border-color .15s ease, box-shadow .15s ease, transform .15s ease; }
582+ .gd-home__res-card : hover { border-color : var (--gd404-link ); box-shadow : 0 6px 16px rgba (85 , 143 , 255 , .1 ); transform : translateY (-2px ); }
583+ .gd-home__res-icon-box { width : 2.6rem ; height : 2.6rem ; border-radius : 50% ; background : var (--info-bg-color , # f1f7ff ); display : flex; align-items : center; justify-content : center; flex : none; }
584+ .gd-home__res-icon { width : 1.25rem ; height : 1.25rem ; }
585+ .gd-home__res-label { font-weight : 600 ; font-size : .95rem ; color : var (--body-font-color , # 0f1727 ); }
586+
587+ @media (max-width : 48rem ) {
588+ .gd-home .gd-home__title { font-size : 1.9rem ; }
589+ .gd-home__lead { font-size : 1rem ; }
590+ .gd-home__ai { padding : 1.5rem ; }
591+ .gd-home__rpath { display : none; }
479592}
0 commit comments