前端代码

This commit is contained in:
2026-08-13 22:35:13 +08:00
parent 9044bafdff
commit f1a0b17bb0
412 changed files with 36769 additions and 6617 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

+208
View File
@@ -0,0 +1,208 @@
<svg xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 1080 1350"
preserveAspectRatio="xMidYMid meet"
role="img" aria-label="KRA cover">
<!-- ════════════════════════════════════════════════
GIN Cover Redesign — SVG 版
品牌色 #2264f2 · viewBox 矢量缩放,2K/4K 无损
字体:JetBrains Mono(页面已加载则自动继承,
否则回退到系统等宽字体)
═════════════════════════════════════════════════ -->
<style>
text {
font-family: 'JetBrains Mono', ui-monospace, SFMono-Regular,
'SF Mono', Menlo, Consolas, 'Liberation Mono', monospace;
}
.cursor { animation: blink 1.2s steps(1) infinite; }
@keyframes blink { 50% { opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
.cursor { animation: none; }
}
</style>
<defs>
<!-- 整体圆角裁切(对应 overflow:hidden + border-radius:4px) -->
<clipPath id="posterClip">
<rect x="0" y="0" width="1080" height="1350" rx="4"/>
</clipPath>
<!-- 细网格 30px -->
<pattern id="gridFine" width="30" height="30" patternUnits="userSpaceOnUse">
<path d="M 30 0 L 0 0 0 30" fill="none"
stroke="rgba(255,255,255,.07)" stroke-width="1"/>
</pattern>
<!-- 粗网格 150px -->
<pattern id="gridCoarse" width="150" height="150" patternUnits="userSpaceOnUse">
<path d="M 150 0 L 0 0 0 150" fill="none"
stroke="rgba(255,255,255,.12)" stroke-width="1"/>
</pattern>
<!-- 网格径向渐隐遮罩
mask: radial-gradient(85% 75% at 50% 45%, #000 30%, transparent 100%) -->
<radialGradient id="gridMaskGrad" gradientUnits="userSpaceOnUse"
cx="540" cy="607.5" r="918"
gradientTransform="translate(540 607.5) scale(1 1.103) translate(-540 -607.5)">
<stop offset="0%" stop-color="#ffffff"/>
<stop offset="30%" stop-color="#ffffff"/>
<stop offset="100%" stop-color="#000000"/>
</radialGradient>
<mask id="gridMask">
<rect x="0" y="0" width="1080" height="1350" fill="url(#gridMaskGrad)"/>
</mask>
<!-- 环境光斑
radial-gradient(50% 50%, rgba(120,165,255,.25), transparent 70%) -->
<radialGradient id="glowGrad">
<stop offset="0%" stop-color="rgba(120,165,255,.25)"/>
<stop offset="70%" stop-color="rgba(120,165,255,0)"/>
</radialGradient>
<!-- 编辑器卡片渐变
linear-gradient(160deg, rgba(10,24,64,.92), rgba(13,30,80,.88)) -->
<linearGradient id="editorGrad" x1="0" y1="0" x2="0.342" y2="0.94">
<stop offset="0%" stop-color="rgba(10,24,64,.92)"/>
<stop offset="100%" stop-color="rgba(13,30,80,.88)"/>
</linearGradient>
<!-- 编辑器投影:单层贴身软阴影(纯色块上不分层) -->
<filter id="editorShadow" x="-30%" y="-30%" width="160%" height="170%">
<feDropShadow dx="0" dy="20" stdDeviation="24"
flood-color="#08143c" flood-opacity="0.35"/>
</filter>
<!-- 基线水平渐变
linear-gradient(90deg, transparent, w40 20%, w40 80%, transparent) -->
<linearGradient id="baselineGrad" x1="0" y1="0" x2="1" y2="0">
<stop offset="0%" stop-color="rgba(255,255,255,0)"/>
<stop offset="20%" stop-color="rgba(255,255,255,.4)"/>
<stop offset="80%" stop-color="rgba(255,255,255,.4)"/>
<stop offset="100%" stop-color="rgba(255,255,255,0)"/>
</linearGradient>
</defs>
<!-- ═══ 全部内容裁切在圆角画布内 ═══ -->
<g clip-path="url(#posterClip)">
<!-- ── 透明底:背景渐变已移除,元素直接叠在页面色块上 ── -->
<!-- ── 蓝图网格(细 + 粗,径向渐隐)── -->
<g mask="url(#gridMask)">
<rect x="0" y="0" width="1080" height="1350" fill="url(#gridFine)"/>
<rect x="0" y="0" width="1080" height="1350" fill="url(#gridCoarse)"/>
</g>
<!-- ── 环境光斑 ── -->
<ellipse cx="540" cy="540" rx="450" ry="250" fill="url(#glowGrad)"/>
<!-- ── 工程图角标(26×26,1.5px,w40)── -->
<path d="M 44 70 V 44 H 70" fill="none" stroke="rgba(255,255,255,.4)" stroke-width="1.5"/>
<path d="M 1010 44 H 1036 V 70" fill="none" stroke="rgba(255,255,255,.4)" stroke-width="1.5"/>
<path d="M 44 1280 V 1306 H 70" fill="none" stroke="rgba(255,255,255,.4)" stroke-width="1.5"/>
<path d="M 1010 1306 H 1036 V 1280" fill="none" stroke="rgba(255,255,255,.4)" stroke-width="1.5"/>
<!-- ── 顶部元信息行 ── -->
<text x="96" y="63" font-size="12.5" letter-spacing="2.75"
fill="rgba(255,255,255,.6)">KRA</text>
<text x="984" y="63" text-anchor="end" font-size="12.5" letter-spacing="2.75"
fill="rgba(255,255,255,.6)">KRA 3.0</text>
<!-- ── 中央视觉簇(标题 + 代码卡片 + 基线)整体下移 112px,
使其落在画面光学中心附近 ── -->
<g transform="translate(0 112)">
<!-- ── 标题区 ── -->
<!-- [GIN] 主标:92px / 700 / ls .04em -->
<text x="540" y="243" text-anchor="middle"
font-size="92" font-weight="700" letter-spacing="3.68"
fill="#ffffff"><tspan fill="rgba(255,255,255,.4)" font-weight="400">[</tspan>GIN<tspan fill="rgba(255,255,255,.4)" font-weight="400">]</tspan></text>
<!-- 副标:HELLO, WORLD + 两侧短线 + 闪烁光标 -->
<line x1="365" y1="290" x2="421" y2="290"
stroke="rgba(255,255,255,.25)" stroke-width="1"/>
<text x="533" y="296" text-anchor="middle"
font-size="17" letter-spacing="5.78"
fill="rgba(255,255,255,.6)">HELLO, WORLD</text>
<rect class="cursor" x="633" y="280" width="9" height="19"
fill="rgba(255,255,255,.9)"/>
<line x1="660" y1="290" x2="716" y2="290"
stroke="rgba(255,255,255,.25)" stroke-width="1"/>
<!-- ── 主视觉:代码编辑器窗口(680×380)── -->
<g filter="url(#editorShadow)">
<rect x="200" y="420" width="680" height="380" rx="14"
fill="url(#editorGrad)"
stroke="rgba(255,255,255,.25)" stroke-width="1"/>
</g>
<!-- 内侧 1px 高光 -->
<rect x="201.5" y="421.5" width="677" height="377" rx="13"
fill="none" stroke="rgba(255,255,255,.04)" stroke-width="1"/>
<!-- 标题栏 -->
<g>
<!-- 三个圆点 -->
<circle cx="228" cy="447" r="6" fill="rgba(255,255,255,.25)"/>
<circle cx="248" cy="447" r="6" fill="rgba(255,255,255,.25)"/>
<circle cx="268" cy="447" r="6" fill="rgba(255,255,255,.25)"/>
<!-- GO 徽标 -->
<rect x="290" y="437" width="33" height="20" rx="4"
fill="rgba(255,255,255,.12)"/>
<text x="306.5" y="451.5" text-anchor="middle"
font-size="11" font-weight="700" letter-spacing="0.9"
fill="rgba(255,255,255,.9)">GO</text>
<!-- 文件路径 -->
<text x="333" y="452" font-size="14" letter-spacing="0.7"
fill="rgba(255,255,255,.6)">images / GinVueAdmin.go</text>
<!-- 分隔线 -->
<line x1="201" y1="474" x2="879" y2="474"
stroke="rgba(255,255,255,.12)" stroke-width="1"/>
</g>
<!-- 代码区:19px · 行距 44 -->
<g font-size="19">
<!-- 行号列 -->
<text x="270" y="530" text-anchor="end" fill="rgba(255,255,255,.25)">1</text>
<text x="270" y="574" text-anchor="end" fill="rgba(255,255,255,.25)">2</text>
<text x="270" y="618" text-anchor="end" fill="rgba(255,255,255,.25)">3</text>
<text x="270" y="662" text-anchor="end" fill="rgba(255,255,255,.25)">4</text>
<text x="270" y="706" text-anchor="end" fill="rgba(255,255,255,.25)">5</text>
<!-- 代码行 -->
<text x="298" y="530" xml:space="preserve"><tspan fill="#9db8ff">type</tspan><tspan fill="#ffffff" font-weight="500"> GinVueAdmin </tspan><tspan fill="#9db8ff">struct</tspan><tspan fill="rgba(220,230,255,.75)"> {</tspan></text>
<text x="298" y="574" xml:space="preserve"><tspan fill="#7fa5ff"> gorm.Model</tspan></text>
<text x="298" y="618" xml:space="preserve"><tspan fill="#e8eeff"> Name </tspan><tspan fill="#7fa5ff">string</tspan><tspan fill="rgba(190,208,255,.55)" font-style="italic"> `mapstructure:"name"`</tspan></text>
<text x="298" y="662" xml:space="preserve"><tspan fill="#e8eeff"> Version </tspan><tspan fill="#7fa5ff">string</tspan><tspan fill="rgba(190,208,255,.55)" font-style="italic"> `mapstructure:"version"`</tspan></text>
<text x="298" y="706" xml:space="preserve"><tspan fill="rgba(220,230,255,.75)">}</tspan></text>
</g>
<!-- ── 基线 + 尺寸标注 ── -->
<rect x="200" y="844" width="680" height="1" fill="url(#baselineGrad)"/>
<line x1="336" y1="839.5" x2="336" y2="850.5"
stroke="rgba(255,255,255,.4)" stroke-width="1"/>
<line x1="744" y1="839.5" x2="744" y2="850.5"
stroke="rgba(255,255,255,.4)" stroke-width="1"/>
<text x="540" y="872" text-anchor="middle"
font-size="11.5" letter-spacing="3.45"
fill="rgba(255,255,255,.4)">STRUCT · 5 LINES · UTF-8</text>
</g>
<!-- ── 中央视觉簇结束 ── -->
<!-- ── 底部信息 ── -->
<text x="96" y="1291" font-size="13" letter-spacing="2.34"
fill="rgba(255,255,255,.6)">GIN <tspan fill="rgba(255,255,255,.9)" font-weight="500">+</tspan> VUE <tspan fill="rgba(255,255,255,.9)" font-weight="500">+</tspan> GORM</text>
<!-- v2.x 胶囊徽标 -->
<rect x="911" y="1261" width="73" height="33" rx="16.5"
fill="none" stroke="rgba(255,255,255,.25)" stroke-width="1"/>
<text x="947.5" y="1282.5" text-anchor="middle"
font-size="13" letter-spacing="2.34"
fill="rgba(255,255,255,.6)">3.0</text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 9.8 KiB

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16"/></svg>

After

Width:  |  Height:  |  Size: 224 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024"><path fill="currentColor" d="M195.2 195.2a64 64 0 0 1 90.496 0L512 421.504L738.304 195.2a64 64 0 0 1 90.496 90.496L602.496 512L828.8 738.304a64 64 0 0 1-90.496 90.496L512 602.496L285.696 828.8a64 64 0 0 1-90.496-90.496L421.504 512L195.2 285.696a64 64 0 0 1 0-90.496"/></svg>

After

Width:  |  Height:  |  Size: 366 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M15 8a1 1 0 0 1-1-1V2a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8zm5 0v12a2 2 0 0 1-2 2h-4.182M3.305 19.53l.923-.382M4 10.592V4a2 2 0 0 1 2-2h8M4.228 16.852l-.924-.383m2.548-1.241l-.383-.923m.383 6.467l-.383.924m2.679-6.468l.383-.923m-.001 7.391l-.382-.924m1.625-3.92l.922-.383m-.922 2.679l.922.383"/><circle cx="7" cy="18" r="3"/></svg>

After

Width:  |  Height:  |  Size: 522 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0a2.34 2.34 0 0 0 3.319 1.915a2.34 2.34 0 0 1 2.33 4.033a2.34 2.34 0 0 0 0 3.831a2.34 2.34 0 0 1-2.33 4.033a2.34 2.34 0 0 0-3.319 1.915a2.34 2.34 0 0 1-4.659 0a2.34 2.34 0 0 0-3.32-1.915a2.34 2.34 0 0 1-2.33-4.033a2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"/><circle cx="12" cy="12" r="3"/></svg>

After

Width:  |  Height:  |  Size: 541 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="m10.586 5.414l-5.172 5.172m13.172 2.828l-5.172 5.172M6 12h12"/><circle cx="12" cy="20" r="2"/><circle cx="12" cy="4" r="2"/><circle cx="20" cy="12" r="2"/><circle cx="4" cy="12" r="2"/></svg>

After

Width:  |  Height:  |  Size: 365 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Zm-3 7v4m0 4h.01"/></svg>

After

Width:  |  Height:  |  Size: 256 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect width="7" height="7" x="3" y="3" rx="1"/><rect width="7" height="7" x="14" y="3" rx="1"/><rect width="7" height="7" x="14" y="14" rx="1"/><rect width="7" height="7" x="3" y="14" rx="1"/></svg>

After

Width:  |  Height:  |  Size: 363 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" d="M6.09 14.999a6.9 6.9 0 0 1-.59-2.794C5.5 8.5 8.41 5.499 12 5.499s6.5 3.002 6.5 6.706a6.9 6.9 0 0 1-.59 2.794m-5.91-13v1m10 9h-1m-18 0H2m17.07-7.071l-.707.707m-12.726.001l-.707-.707m9.587 14.377c1.01-.327 1.416-1.252 1.53-2.182c.034-.278-.195-.509-.475-.509H8.477a.483.483 0 0 0-.488.534c.112.928.394 1.606 1.464 2.156m5.064 0H9.453m5.064 0c-.121 1.945-.683 2.716-2.51 2.694c-1.954.036-2.404-.916-2.554-2.693"/></svg>

After

Width:  |  Height:  |  Size: 590 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="currentColor" d="M12 2a5 5 0 0 1 5 5v3a3 3 0 0 1 3 3v6a3 3 0 0 1-3 3H7a3 3 0 0 1-3-3v-6a3 3 0 0 1 3-3V7a5 5 0 0 1 5-5m0 12a2 2 0 0 0-1.995 1.85L10 16a2 2 0 1 0 2-2m0-10a3 3 0 0 0-3 3v3h6V7a3 3 0 0 0-3-3"/></svg>

After

Width:  |  Height:  |  Size: 307 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"/></svg>

After

Width:  |  Height:  |  Size: 305 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="14" x="2" y="3" rx="2"/><path d="M8 21h8m-4-4v4"/></svg>

After

Width:  |  Height:  |  Size: 246 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"/><path d="m9 12l2 2l4-4"/></svg>

After

Width:  |  Height:  |  Size: 370 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M16 3.128a4 4 0 0 1 0 7.744M22 21v-2a4 4 0 0 0-3-3.87"/><circle cx="9" cy="7" r="4"/></svg>

After

Width:  |  Height:  |  Size: 306 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect width="18" height="11" x="3" y="11" rx="2" ry="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>

After

Width:  |  Height:  |  Size: 264 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"/><rect width="20" height="8" x="2" y="14" rx="2" ry="2"/><path d="M6 6h.01M6 18h.01"/></svg>

After

Width:  |  Height:  |  Size: 311 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><circle cx="18" cy="5" r="3"/><circle cx="6" cy="12" r="3"/><circle cx="18" cy="19" r="3"/><path d="m8.59 13.51l6.83 3.98m-.01-10.98l-6.82 3.98"/></svg>

After

Width:  |  Height:  |  Size: 317 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M15 21v-5a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v5m8.774-10.69a1.12 1.12 0 0 0-1.549 0a2.5 2.5 0 0 1-3.451 0a1.12 1.12 0 0 0-1.548 0a2.5 2.5 0 0 1-3.452 0a1.12 1.12 0 0 0-1.549 0a2.5 2.5 0 0 1-3.77-3.248l2.889-4.184A2 2 0 0 1 7 2h10a2 2 0 0 1 1.653.873l2.895 4.192a2.5 2.5 0 0 1-3.774 3.244"/><path d="M4 10.95V19a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8.05"/></svg>

After

Width:  |  Height:  |  Size: 525 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M15 6a9 9 0 0 0-9 9V3"/><circle cx="18" cy="6" r="3"/><circle cx="6" cy="18" r="3"/></svg>

After

Width:  |  Height:  |  Size: 264 B

+1
View File
@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="1024" height="1024" viewBox="0 0 1024 1024"><path fill="currentColor" d="M928.99 755.83L574.6 203.25c-12.89-20.16-36.76-32.58-62.6-32.58s-49.71 12.43-62.6 32.58L95.01 755.83c-12.91 20.12-12.9 44.91.01 65.03c12.92 20.12 36.78 32.51 62.59 32.49h708.78c25.82.01 49.68-12.37 62.59-32.49s12.92-44.91.01-65.03M554.67 768h-85.33v-85.33h85.33zm0-426.67v298.66h-85.33V341.32z"/></svg>

After

Width:  |  Height:  |  Size: 423 B

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="Kra">
<rect width="128" height="128" rx="28" fill="#2264f2"/>
<path d="M34 26v76h16V72l33 30h22L65 64l38-38H82L50 59V26H34z" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB