|
813 | 813 | margin-top: 0.25rem; |
814 | 814 | } |
815 | 815 |
|
816 | | -.mx-total-scenarios { flex: 1; } |
| 816 | +.mx-scenarios { |
| 817 | + display: grid; |
| 818 | + grid-template-columns: repeat(6, 1fr); |
| 819 | + gap: 2px; |
| 820 | + margin-top: 2px; |
| 821 | +} |
817 | 822 |
|
818 | | -.mx-scenario-tags { |
819 | | - display: flex; |
820 | | - flex-wrap: wrap; |
821 | | - gap: 0.4rem; |
822 | | - margin-top: 0.5rem; |
823 | | - justify-content: center; |
| 823 | +.mx-sc { |
| 824 | + --sc: var(--text-3); |
| 825 | + padding: 1rem 1.1rem; |
| 826 | + background: var(--surface); |
| 827 | + border: 1px solid var(--border); |
| 828 | + clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 8px 100%, 0 calc(100% - 8px)); |
| 829 | + text-align: center; |
| 830 | + transition: all 0.3s ease; |
| 831 | + position: relative; |
| 832 | +} |
| 833 | + |
| 834 | +.mx-sc::before { |
| 835 | + content: ""; |
| 836 | + position: absolute; |
| 837 | + top: 0; |
| 838 | + left: 0; |
| 839 | + width: 100%; |
| 840 | + height: 2px; |
| 841 | + background: var(--sc); |
| 842 | + opacity: 0.5; |
| 843 | +} |
| 844 | + |
| 845 | +.mx-sc:hover { |
| 846 | + background: var(--surface-2); |
| 847 | + border-color: color-mix(in srgb, var(--sc), transparent 70%); |
824 | 848 | } |
825 | 849 |
|
826 | | -.mx-scenario-tag { |
| 850 | +.mx-sc-name { |
827 | 851 | font-family: var(--heading); |
828 | | - font-size: 0.72rem; |
829 | | - font-weight: 600; |
830 | | - letter-spacing: 0.08em; |
| 852 | + font-size: 0.78rem; |
| 853 | + font-weight: 700; |
| 854 | + letter-spacing: 0.1em; |
831 | 855 | text-transform: uppercase; |
832 | | - padding: 0.2rem 0.55rem; |
833 | 856 | color: var(--sc); |
834 | | - background: color-mix(in srgb, var(--sc), transparent 90%); |
835 | | - border: 1px solid color-mix(in srgb, var(--sc), transparent 75%); |
836 | | - clip-path: polygon(0 0, calc(100% - 4px) 0, 100% 4px, 100% 100%, 4px 100%, 0 calc(100% - 4px)); |
| 857 | +} |
| 858 | + |
| 859 | +.mx-sc-desc { |
| 860 | + margin-top: 0.35rem; |
| 861 | + font-size: 0.82rem; |
| 862 | + color: var(--text-2); |
| 863 | + line-height: 1.45; |
837 | 864 | } |
838 | 865 |
|
839 | 866 | /* ── footer ── */ |
|
902 | 929 | .timeline { grid-template-columns: repeat(3, 1fr); gap: 1.5rem 0; } |
903 | 930 | .timeline::before { display: none; } |
904 | 931 | .matrix { grid-template-columns: repeat(2, 1fr); } |
| 932 | + .mx-scenarios { grid-template-columns: repeat(3, 1fr); } |
905 | 933 | } |
906 | 934 |
|
907 | 935 | @media (max-width: 760px) { |
|
933 | 961 | .stats { flex-direction: column; } |
934 | 962 | .stat { border-right: none; border-bottom: 1px solid var(--border); } |
935 | 963 | .stat:last-child { border-bottom: none; } |
936 | | - .timeline, .products, .matrix { grid-template-columns: 1fr !important; } |
| 964 | + .timeline, .products, .matrix, .mx-scenarios { grid-template-columns: 1fr !important; } |
937 | 965 | .mx-total { flex-direction: column; gap: 1.25rem; } |
938 | 966 | .foot-in { flex-direction: column; gap: 0.75rem; align-items: flex-start; } |
939 | 967 | } |
@@ -1061,22 +1089,37 @@ <h2 class="sec-title">开源项目</h2> |
1061 | 1089 | <div class="mx-meta"><span class="mx-lang">Go</span><span class="mx-cat">Pre-Exploit</span></div> |
1062 | 1090 | </a> |
1063 | 1091 | </div> |
| 1092 | + <div class="mx-scenarios rv"> |
| 1093 | + <div class="mx-sc" style="--sc:var(--blue)"> |
| 1094 | + <div class="mx-sc-name">Pre-Exploit</div> |
| 1095 | + <div class="mx-sc-desc">攻击面发现与漏洞检测</div> |
| 1096 | + </div> |
| 1097 | + <div class="mx-sc" style="--sc:var(--red)"> |
| 1098 | + <div class="mx-sc-name">Post-Exploit</div> |
| 1099 | + <div class="mx-sc-desc">权限维持与横向移动</div> |
| 1100 | + </div> |
| 1101 | + <div class="mx-sc" style="--sc:var(--green)"> |
| 1102 | + <div class="mx-sc-name">Network</div> |
| 1103 | + <div class="mx-sc-desc">隧道穿透与流量代理</div> |
| 1104 | + </div> |
| 1105 | + <div class="mx-sc" style="--sc:var(--violet)"> |
| 1106 | + <div class="mx-sc-name">AI Agent</div> |
| 1107 | + <div class="mx-sc-desc">意图驱动的自主执行</div> |
| 1108 | + </div> |
| 1109 | + <div class="mx-sc" style="--sc:var(--amber)"> |
| 1110 | + <div class="mx-sc-name">Library</div> |
| 1111 | + <div class="mx-sc-desc">指纹、模板与基础库</div> |
| 1112 | + </div> |
| 1113 | + <div class="mx-sc" style="--sc:var(--text-3)"> |
| 1114 | + <div class="mx-sc-name">Tool</div> |
| 1115 | + <div class="mx-sc-desc">情报聚合与社区协作</div> |
| 1116 | + </div> |
| 1117 | + </div> |
1064 | 1118 | <div class="mx-total rv"> |
1065 | 1119 | <div class="mx-total-item"> |
1066 | 1120 | <div class="mx-total-num">5,400+</div> |
1067 | 1121 | <div class="mx-total-label">Total Stars</div> |
1068 | 1122 | </div> |
1069 | | - <div class="mx-total-item mx-total-scenarios"> |
1070 | | - <div class="mx-total-label" style="margin-top:0">覆盖场景</div> |
1071 | | - <div class="mx-scenario-tags"> |
1072 | | - <span class="mx-scenario-tag" style="--sc:var(--blue)">Pre-Exploit</span> |
1073 | | - <span class="mx-scenario-tag" style="--sc:var(--red)">Post-Exploit</span> |
1074 | | - <span class="mx-scenario-tag" style="--sc:var(--green)">Network</span> |
1075 | | - <span class="mx-scenario-tag" style="--sc:var(--violet)">AI Agent</span> |
1076 | | - <span class="mx-scenario-tag" style="--sc:var(--amber)">Library</span> |
1077 | | - <span class="mx-scenario-tag" style="--sc:var(--text-3)">Tool</span> |
1078 | | - </div> |
1079 | | - </div> |
1080 | 1123 | </div> |
1081 | 1124 | </div> |
1082 | 1125 | </section> |
|
0 commit comments