Changes for page Public Web Site
Last modified by Agnease on 2026/05/30 16:24
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Objects (2 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -146,7 +146,7 @@ 146 146 </div> 147 147 </section> 148 148 149 - <section class="resource-strip homepage-resource-strip" aria-labelledby="resources-title">149 + <section class="resource-strip" aria-labelledby="resources-title"> 150 150 <div class="container"> 151 151 <h2 id="resources-title">Useful XWiki resources</h2> 152 152 <p class="section-intro">
- XWiki.StyleSheetExtension[0]
-
- code
-
... ... @@ -329,6 +329,12 @@ 329 329 border: 1px solid @line; 330 330 border-radius: @radius; 331 331 box-shadow: @shadow-sm; 332 + transition: transform .18s ease, box-shadow .18s ease; 333 + 334 + &:hover { 335 + transform: translateY(-2px); 336 + box-shadow: @shadow; 337 + } 332 332 } 333 333 334 334 /* ========== Small Widgets ========== */ ... ... @@ -444,7 +444,13 @@ 444 444 border: 1px solid @line; 445 445 border-radius: @radius; 446 446 box-shadow: @shadow-sm; 453 + transition: transform .18s ease, box-shadow .18s ease; 447 447 455 + &:hover { 456 + transform: translateY(-2px); 457 + box-shadow: @shadow; 458 + } 459 + 448 448 .service-icon { 449 449 width: 46px; 450 450 height: 46px; ... ... @@ -605,6 +605,7 @@ 605 605 order: 0; 606 606 position: static; 607 607 width: 100%; 620 + margin-bottom: 24px; 608 608 } 609 609 610 610 .resource-content { ... ... @@ -612,77 +612,6 @@ 612 612 } 613 613 } 614 614 615 -/* ========== Homepage Resource Strip ========== */ 616 - 617 -.homepage-resource-strip { 618 - background: 619 - radial-gradient(42rem 16rem at 50% 0%, @brand-bg 0%, transparent 70%); 620 - 621 - .resource-grid { 622 - max-width: 1040px; 623 - margin: 26px auto 0; 624 - display: grid; 625 - grid-template-columns: repeat(2, minmax(0, 1fr)); 626 - grid-gap: 22px; 627 - align-items: stretch; 628 - } 629 - 630 - .resource-card { 631 - display: flex; 632 - flex-direction: column; 633 - min-width: 0; 634 - min-height: 100%; 635 - padding: 26px; 636 - } 637 - 638 - .resource-card h4 { 639 - margin: 0 0 10px; 640 - color: @text; 641 - font-size: 21px; 642 - line-height: 1.25; 643 - font-weight: 700; 644 - } 645 - 646 - .resource-card p { 647 - margin: 0 0 18px; 648 - color: @muted; 649 - font-size: 15px; 650 - line-height: 1.6; 651 - } 652 - 653 - .resource-card a { 654 - margin-top: auto; 655 - color: @brand; 656 - font-weight: 700; 657 - text-decoration: underline; 658 - 659 - &:hover, 660 - &:focus { 661 - color: @brand-strong; 662 - } 663 - } 664 -} 665 - 666 -@media (max-width: 980px) { 667 - .homepage-resource-strip { 668 - .resource-grid { 669 - grid-template-columns: 1fr; 670 - } 671 - } 672 -} 673 - 674 -@media (max-width: 640px) { 675 - .homepage-resource-strip { 676 - .resource-card { 677 - padding: 22px; 678 - } 679 - 680 - .resource-card h4 { 681 - font-size: 19px; 682 - } 683 - } 684 -} 685 - 686 686 /* ========== CTA ========== */ 687 687 688 688 .cta-section { ... ... @@ -998,7 +998,13 @@ 998 998 grid-template-columns: 68px 1fr; 999 999 grid-gap: 22px; 1000 1000 align-items: start; 943 + transition: transform .18s ease, box-shadow .18s ease; 1001 1001 945 + &:hover { 946 + transform: translateY(-2px); 947 + box-shadow: @shadow; 948 + } 949 + 1002 1002 .product-card-icon { 1003 1003 width: 58px; 1004 1004 height: 58px; ... ... @@ -1126,7 +1126,13 @@ 1126 1126 border-radius: @radius; 1127 1127 box-shadow: @shadow-sm; 1128 1128 padding: 22px; 1077 + transition: transform .18s ease, box-shadow .18s ease; 1129 1129 1079 + &:hover { 1080 + transform: translateY(-2px); 1081 + box-shadow: @shadow; 1082 + } 1083 + 1130 1130 .feature-icon { 1131 1131 width: 46px; 1132 1132 height: 46px;
- XWiki.StyleSheetExtension[1]
-
- code
-
... ... @@ -1,148 +1,273 @@ 1 1 /* ========== Agnease Public Top Menu ========== */ 2 2 3 -/* Desktop alignment */ 4 -#menuview .navbar-nav { 5 - float: right !important; 6 -} 3 +@brand: #00937D; 4 +@brand-strong: #007B6A; 5 +@text: #2D3A34; 6 +@muted: #5B6B64; 7 +@line: #E4ECE9; 8 +@brand-bg: #F4FCFA; 7 7 8 8 /* Top-level menu items */ 9 9 10 -.agnease-menu-item, 11 -.agnease-menu-link { 12 - > a, 13 - > .dropdown-toggle { 14 - color: @brand; 15 - font-size: 17px; 16 - font-weight: 600; 17 - padding-left: 16px; 18 - padding-right: 16px; 19 - text-decoration: none; 12 +.agnease-services-menu, 13 +.agnease-products-menu { 14 + .dropdown-toggle { 15 + font-weight: inherit; 16 + font-size: inherit; 20 20 } 21 21 22 - > a:hover, 23 - > a:focus, 24 - > a:active, 25 - &.open > a, 26 - &.active > a { 27 - color: @brand-strong; 28 - text-decoration: none; 29 - outline: none; 30 - } 31 - 32 32 .caret { 33 - margin-left: 5px; 34 - border-top-color: @brand; 35 - border-bottom-color: @brand; 20 + margin-left: 4px; 36 36 } 37 37 38 - > a:hover.caret,39 - > a:focus.caret,40 - > a:active.caret,41 - &.open>a .caret,42 - &.active>a.caret{43 - b order-top-color:@brand-strong;44 - bo rder-bottom-color:@brand-strong;23 + &.open > .dropdown-toggle, 24 + .dropdown-toggle:hover, 25 + .dropdown-toggle:focus { 26 + color: @brand-strong; 27 + background: transparent; 28 + background-color: transparent; 29 + box-shadow: none; 45 45 } 46 46 } 47 47 48 -/* Dropdown panel*/33 +/* Keep Agnease public top-level menu visually clean when hovered/open/focused */ 49 49 50 -.agnease-dropdown { 51 - min-width: 310px; 52 - padding: 10px 8px; 53 - border: 1px solid fade(@brand, 18%); 35 +.navbar-nav > li.agnease-services-menu > a, 36 +.navbar-nav > li.agnease-products-menu > a, 37 +.navbar-nav > li.agnease-services-menu > a:hover, 38 +.navbar-nav > li.agnease-products-menu > a:hover, 39 +.navbar-nav > li.agnease-services-menu > a:focus, 40 +.navbar-nav > li.agnease-products-menu > a:focus, 41 +.navbar-nav > li.agnease-services-menu.open > a, 42 +.navbar-nav > li.agnease-products-menu.open > a, 43 +.navbar-nav > li.agnease-services-menu.open > a:hover, 44 +.navbar-nav > li.agnease-products-menu.open > a:hover, 45 +.navbar-nav > li.agnease-services-menu.open > a:focus, 46 +.navbar-nav > li.agnease-products-menu.open > a:focus { 47 + background: transparent; 48 + background-color: transparent; 49 + color: @brand-strong; 50 + box-shadow: none; 51 +} 52 + 53 +/* Dropdown panels */ 54 + 55 +.agnease-services-dropdown, 56 +.agnease-resources-dropdown, 57 +.agnease-products-dropdown { 58 + min-width: 360px; 59 + padding: 10px; 60 + border: 1px solid @line; 54 54 border-radius: 12px; 55 - background: #fff; 56 - box-shadow: 0 12px 32px fade(@brand-strong, 12%); 62 + box-shadow: 0 12px 36px rgba(0, 0, 0, .10); 57 57 58 58 > li > a { 59 59 display: flex; 60 - align-items: center;66 + align-items: flex-start; 61 61 gap: 12px; 62 - padding: 11px 14px; 63 - color: @brand; 64 - white-space: nowrap; 65 - font-size: 16px; 66 - font-weight: 600; 67 - line-height: 1.3; 68 - text-decoration: none; 68 + padding: 10px 12px; 69 + border-radius: 10px; 70 + color: @text; 71 + white-space: normal; 69 69 70 - i { 71 - width: 20px; 72 - flex: 0 0 20px; 73 - color: @brand; 74 - text-align: center; 75 - font-size: 15px; 76 - } 77 - 78 78 &:hover, 79 - &:focus, 80 - &:active { 74 + &:focus { 81 81 color: @brand-strong; 76 + background: @brand-bg; 82 82 text-decoration: none; 83 - outline: none; 84 84 85 - i { 79 + .menu-icon { 86 86 color: @brand-strong; 81 + background: fade(@brand, 14%); 82 + border-color: fade(@brand, 28%); 87 87 } 88 - } 89 - } 90 90 91 - > .active > a { 92 - color: @brand-strong; 85 + strong { 86 + color: @brand-strong; 87 + } 93 93 94 - i { 95 - color: @brand-strong; 89 + small { 90 + color: @muted; 91 + } 96 96 } 97 97 } 98 98 99 99 .divider { 100 100 margin: 8px 0; 101 - background-color: fade(@brand, 16%);97 + background-color: @line; 102 102 } 99 + 100 + .menu-icon { 101 + width: 34px; 102 + height: 34px; 103 + border-radius: 50%; 104 + background: fade(@brand, 8%); 105 + border: 1px solid fade(@brand, 18%); 106 + color: @brand; 107 + display: flex; 108 + align-items: center; 109 + justify-content: center; 110 + flex-shrink: 0; 111 + transition: color .15s ease, background .15s ease, border-color .15s ease; 112 + } 113 + 114 + .menu-text { 115 + display: flex; 116 + flex-direction: column; 117 + line-height: 1.25; 118 + 119 + strong { 120 + color: @brand; 121 + font-size: 14px; 122 + font-weight: 600; 123 + } 124 + 125 + small { 126 + color: @muted; 127 + font-size: 12px; 128 + margin-top: 2px; 129 + font-weight: 400; 130 + } 131 + } 103 103 } 104 104 134 +/* Products dropdown can be slightly narrower for now */ 135 + 136 +.agnease-products-dropdown { 137 + min-width: 340px; 138 +} 139 + 105 105 /* Mobile */ 106 106 107 107 @media (max-width: 767px) { 108 - .site-nav { 109 - margin-left: 0; 110 - justify-content: center; 111 - flex-wrap: wrap; 112 - } 143 + .agnease-services-dropdown, 144 + .agnease-resources-dropdown, 145 + .agnease-products-dropdown { 146 + min-width: 0; 147 + width: 100%; 148 + padding: 6px; 149 + border-radius: 0; 150 + border-left: 0; 151 + border-right: 0; 152 + box-shadow: none; 113 113 114 - .agnease-menu-item, 115 - .agnease-menu-link { 116 - > a, 117 - > .dropdown-toggle { 118 - font-size: 16px; 119 - padding-top: 9px; 120 - padding-bottom: 9px; 154 + > li > a { 155 + padding: 10px; 121 121 } 122 122 } 158 +} 123 123 124 - .agnease-dropdown { 125 - min-width: 0; 160 +/* ========== Compact Public Menu on Mobile ========== */ 161 + 162 +@media (max-width: 767px) { 163 + /* Prevent any menu element from creating horizontal scroll */ 164 + html, 165 + body { 166 + overflow-x: hidden; 167 + } 168 + 169 + .navbar, 170 + .navbar-collapse, 171 + .navbar-nav, 172 + .navbar-nav > li, 173 + .navbar-nav .dropdown-menu { 174 + max-width: 100%; 175 + } 176 + 177 + /* Make the main menu vertical inside the burger menu */ 178 + .navbar-nav { 179 + float: none !important; 126 126 width: 100%; 127 - padding: 4px 8px 8px 18px; 181 + margin: 0; 182 + } 183 + 184 + .navbar-nav > li { 185 + float: none !important; 186 + display: block; 187 + width: 100%; 188 + } 189 + 190 + .navbar-nav > li > a { 191 + display: block; 192 + width: 100%; 193 + padding: 11px 16px; 194 + font-size: 14px; 195 + font-weight: 600; 196 + line-height: 1.3; 197 + white-space: normal; 198 + } 199 + 200 + .navbar-nav > li > a .caret { 201 + float: right; 202 + margin-top: 7px; 203 + } 204 + 205 + /* Dropdowns become compact nested sections */ 206 + .navbar-nav .dropdown-menu { 207 + position: static !important; 208 + float: none !important; 209 + width: 100% !important; 210 + min-width: 0 !important; 211 + max-width: 100% !important; 212 + margin: 0; 213 + padding: 4px 0 8px; 128 128 border: 0; 129 129 border-radius: 0; 130 130 box-shadow: none; 131 - background: transparent; 217 + background: @brand-bg; 218 + } 132 132 133 - > li > a { 134 - padding: 8px 10px; 135 - white-space: normal; 136 - font-size: 15px; 220 + .navbar-nav .dropdown-menu > li { 221 + width: 100%; 222 + } 137 137 138 - i { 139 - width: 18px; 140 - flex-basis: 18px; 141 - } 142 - } 224 + .navbar-nav .dropdown-menu > li > a { 225 + display: block; 226 + width: 100%; 227 + padding: 8px 16px 8px 28px; 228 + white-space: normal; 229 + overflow-wrap: anywhere; 230 + color: @text; 231 + } 143 143 144 - .divider { 145 - margin: 5px 0; 146 - } 233 + .navbar-nav .dropdown-menu > li > a:hover, 234 + .navbar-nav .dropdown-menu > li > a:focus { 235 + background: @brand-soft; 236 + color: @brand-strong; 147 147 } 238 + 239 + /* Compact the rich dropdown layout on mobile */ 240 + .navbar-nav .dropdown-menu .menu-icon { 241 + display: none; 242 + } 243 + 244 + .navbar-nav .dropdown-menu .menu-text { 245 + display: block; 246 + min-width: 0; 247 + } 248 + 249 + .navbar-nav .dropdown-menu .menu-text strong { 250 + display: block; 251 + font-size: 13px; 252 + line-height: 1.25; 253 + font-weight: 600; 254 + color: @text; 255 + } 256 + 257 + /* Hide descriptions on mobile to avoid a very tall / wide menu */ 258 + .navbar-nav .dropdown-menu .menu-text small { 259 + display: none; 260 + } 261 + 262 + .navbar-nav .dropdown-menu .divider { 263 + margin: 4px 16px; 264 + background-color: @line; 265 + } 266 + 267 + .navbar-nav .open > a, 268 + .navbar-nav .open > a:hover, 269 + .navbar-nav .open > a:focus { 270 + background: @brand-bg; 271 + color: @brand-strong; 272 + } 148 148 }