feat: batch update - gift card breakdown spec, backend APIs, miniprogram pages, ETL finance recharge, docs & migrations
BIN
apps/DEMO-miniprogram/miniprogram/assets/images/avatar-coach.png
Normal file
|
After Width: | Height: | Size: 596 KiB |
@@ -0,0 +1,76 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 580" preserveAspectRatio="xMidYMid slice">
|
||||
<defs>
|
||||
<linearGradient id="main" x1="0" y1="1" x2="0.8" y2="0">
|
||||
<stop offset="0%" stop-color="#1a6dd9"/>
|
||||
<stop offset="15%" stop-color="#1a6dd9"/>
|
||||
<stop offset="40%" stop-color="#4087e9"/>
|
||||
<stop offset="60%" stop-color="#4087e9"/>
|
||||
<stop offset="85%" stop-color="#6ba8f8"/>
|
||||
<stop offset="100%" stop-color="#6ba8f8"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="silk" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="20%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="45%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="80%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="darkTL" cx="-0.1" cy="-0.05" r="0.75" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.25"/>
|
||||
<stop offset="45%" stop-color="black" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="darkTop" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.18"/>
|
||||
<stop offset="40%" stop-color="black" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowL" cx="0.05" cy="0.4" r="0.65" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="glowBR" cx="0.85" cy="0.95" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.25"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="edgeHL" x1="0" y1="1" x2="0" y2="0">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="25%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowTR" cx="0.85" cy="0.1" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="40%" stop-color="white" stop-opacity="0.1"/>
|
||||
<stop offset="65%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="r1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0.3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r2" x1="0%" y1="100%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.15"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.2"/>
|
||||
<stop offset="100%" stop-color="black" stop-opacity="0.1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r3" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="30%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="70%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<filter id="aBlur"><feGaussianBlur stdDeviation="2"/></filter>
|
||||
</defs>
|
||||
<rect width="750" height="580" fill="url(#main)"/>
|
||||
<rect width="750" height="580" fill="url(#silk)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTL)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTop)"/>
|
||||
<rect width="750" height="580" fill="url(#glowL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowBR)"/>
|
||||
<rect width="750" height="580" fill="url(#edgeHL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowTR)"/>
|
||||
<g opacity="0.5" transform="translate(-62,73) scale(2.184,1.456)">
|
||||
<path d="M-50 180 Q80 100 180 140 T350 100 T500 140" fill="none" stroke="url(#r2)" stroke-width="60" stroke-linecap="round" filter="url(#aBlur)"/>
|
||||
<path d="M-30 50 Q100 120 200 70 T380 110 T520 60" fill="none" stroke="url(#r1)" stroke-width="45" stroke-linecap="round"/>
|
||||
<path d="M0 120 Q120 60 220 100 T420 70" fill="none" stroke="url(#r3)" stroke-width="25" stroke-linecap="round"/>
|
||||
<path d="M50 90 Q150 150 280 90 T450 120" fill="none" stroke="white" stroke-opacity="0.25" stroke-width="8" stroke-linecap="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,103 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 580" preserveAspectRatio="xMidYMid slice">
|
||||
<defs>
|
||||
<!-- 主渐变 theme-blue -->
|
||||
<linearGradient id="main" x1="0" y1="1" x2="0.8" y2="0">
|
||||
<stop offset="0%" stop-color="#002d80"/>
|
||||
<stop offset="15%" stop-color="#002d80"/>
|
||||
<stop offset="40%" stop-color="#0052d9"/>
|
||||
<stop offset="60%" stop-color="#0052d9"/>
|
||||
<stop offset="85%" stop-color="#2b7de9"/>
|
||||
<stop offset="100%" stop-color="#2b7de9"/>
|
||||
</linearGradient>
|
||||
<!-- 丝绸光带 -->
|
||||
<linearGradient id="silk" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="20%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="45%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="80%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<!-- 左上角深色 -->
|
||||
<radialGradient id="darkTL" cx="-0.1" cy="-0.05" r="0.75" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.25"/>
|
||||
<stop offset="45%" stop-color="black" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<!-- 顶部深色 -->
|
||||
<linearGradient id="darkTop" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.18"/>
|
||||
<stop offset="40%" stop-color="black" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<!-- 左侧光晕 -->
|
||||
<radialGradient id="glowL" cx="0.05" cy="0.4" r="0.65" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<!-- 右下角光晕 -->
|
||||
<radialGradient id="glowBR" cx="0.85" cy="0.95" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.25"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<!-- 底部高光 -->
|
||||
<linearGradient id="edgeHL" x1="0" y1="1" x2="0" y2="0">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="25%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<!-- 右上角光晕 -->
|
||||
<radialGradient id="glowTR" cx="0.85" cy="0.1" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="40%" stop-color="white" stop-opacity="0.1"/>
|
||||
<stop offset="65%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<!-- Aurora 丝带渐变 -->
|
||||
<linearGradient id="r1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0.3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r2" x1="0%" y1="100%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.15"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.2"/>
|
||||
<stop offset="100%" stop-color="black" stop-opacity="0.1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r3" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="30%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="70%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<filter id="aBlur"><feGaussianBlur stdDeviation="2"/></filter>
|
||||
</defs>
|
||||
|
||||
<!-- 主渐变 -->
|
||||
<rect width="750" height="580" fill="url(#main)"/>
|
||||
<!-- 丝绸光带 -->
|
||||
<rect width="750" height="580" fill="url(#silk)"/>
|
||||
<!-- 左上角深色 -->
|
||||
<rect width="750" height="580" fill="url(#darkTL)"/>
|
||||
<!-- 顶部深色 -->
|
||||
<rect width="750" height="580" fill="url(#darkTop)"/>
|
||||
<!-- 左侧光晕 -->
|
||||
<rect width="750" height="580" fill="url(#glowL)"/>
|
||||
<!-- 右下角光晕 -->
|
||||
<rect width="750" height="580" fill="url(#glowBR)"/>
|
||||
<!-- 底部高光 -->
|
||||
<rect width="750" height="580" fill="url(#edgeHL)"/>
|
||||
<!-- 右上角光晕 -->
|
||||
<rect width="750" height="580" fill="url(#glowTR)"/>
|
||||
|
||||
<!-- Aurora 丝带
|
||||
原始 CSS: viewBox 400×200, background-size:480px 160px, background-position:center 40px, opacity:0.5
|
||||
H5 画布 412px 宽 → 小程序 750rpx 宽,缩放比 750/412=1.820
|
||||
x: (412-480)/2=-34 → -34×1.820=-61.9
|
||||
y: 40px → 40×1.820=72.8
|
||||
scale.x: 1.2×1.820=2.184
|
||||
scale.y: 0.8×1.820=1.456
|
||||
-->
|
||||
<g opacity="0.5" transform="translate(-62,73) scale(2.184,1.456)">
|
||||
<path d="M-50 180 Q80 100 180 140 T350 100 T500 140" fill="none" stroke="url(#r2)" stroke-width="60" stroke-linecap="round" filter="url(#aBlur)"/>
|
||||
<path d="M-30 50 Q100 120 200 70 T380 110 T520 60" fill="none" stroke="url(#r1)" stroke-width="45" stroke-linecap="round"/>
|
||||
<path d="M0 120 Q120 60 220 100 T420 70" fill="none" stroke="url(#r3)" stroke-width="25" stroke-linecap="round"/>
|
||||
<path d="M50 90 Q150 150 280 90 T450 120" fill="none" stroke="white" stroke-opacity="0.25" stroke-width="8" stroke-linecap="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 5.2 KiB |
@@ -0,0 +1,76 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 580" preserveAspectRatio="xMidYMid slice">
|
||||
<defs>
|
||||
<linearGradient id="main" x1="0" y1="1" x2="0.8" y2="0">
|
||||
<stop offset="0%" stop-color="#be4a62"/>
|
||||
<stop offset="15%" stop-color="#be4a62"/>
|
||||
<stop offset="40%" stop-color="#d4617a"/>
|
||||
<stop offset="60%" stop-color="#d4617a"/>
|
||||
<stop offset="85%" stop-color="#e8899a"/>
|
||||
<stop offset="100%" stop-color="#e8899a"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="silk" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="20%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="45%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="80%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="darkTL" cx="-0.1" cy="-0.05" r="0.75" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.25"/>
|
||||
<stop offset="45%" stop-color="black" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="darkTop" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.18"/>
|
||||
<stop offset="40%" stop-color="black" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowL" cx="0.05" cy="0.4" r="0.65" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="glowBR" cx="0.85" cy="0.95" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.25"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="edgeHL" x1="0" y1="1" x2="0" y2="0">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="25%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowTR" cx="0.85" cy="0.1" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="40%" stop-color="white" stop-opacity="0.1"/>
|
||||
<stop offset="65%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="r1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0.3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r2" x1="0%" y1="100%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.15"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.2"/>
|
||||
<stop offset="100%" stop-color="black" stop-opacity="0.1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r3" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="30%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="70%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<filter id="aBlur"><feGaussianBlur stdDeviation="2"/></filter>
|
||||
</defs>
|
||||
<rect width="750" height="580" fill="url(#main)"/>
|
||||
<rect width="750" height="580" fill="url(#silk)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTL)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTop)"/>
|
||||
<rect width="750" height="580" fill="url(#glowL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowBR)"/>
|
||||
<rect width="750" height="580" fill="url(#edgeHL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowTR)"/>
|
||||
<g opacity="0.5" transform="translate(-62,73) scale(2.184,1.456)">
|
||||
<path d="M-50 180 Q80 100 180 140 T350 100 T500 140" fill="none" stroke="url(#r2)" stroke-width="60" stroke-linecap="round" filter="url(#aBlur)"/>
|
||||
<path d="M-30 50 Q100 120 200 70 T380 110 T520 60" fill="none" stroke="url(#r1)" stroke-width="45" stroke-linecap="round"/>
|
||||
<path d="M0 120 Q120 60 220 100 T420 70" fill="none" stroke="url(#r3)" stroke-width="25" stroke-linecap="round"/>
|
||||
<path d="M50 90 Q150 150 280 90 T450 120" fill="none" stroke="white" stroke-opacity="0.25" stroke-width="8" stroke-linecap="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,78 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 580" preserveAspectRatio="xMidYMid slice">
|
||||
<defs>
|
||||
<!-- theme-dark-gold: 深色黑金,右下角金色光晕 -->
|
||||
<linearGradient id="main" x1="0" y1="1" x2="0.8" y2="0">
|
||||
<stop offset="0%" stop-color="#1a1a1a"/>
|
||||
<stop offset="40%" stop-color="#2a2520"/>
|
||||
<stop offset="100%" stop-color="#1f1c18"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="silk" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="20%" stop-color="white" stop-opacity="0.03"/>
|
||||
<stop offset="45%" stop-color="white" stop-opacity="0.08"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0.08"/>
|
||||
<stop offset="80%" stop-color="white" stop-opacity="0.03"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="darkTL" cx="-0.1" cy="-0.05" r="0.75" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.3"/>
|
||||
<stop offset="45%" stop-color="black" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="darkTop" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.2"/>
|
||||
<stop offset="40%" stop-color="black" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowL" cx="0.05" cy="0.4" r="0.65" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.06"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<!-- 金色右下光晕 (::after dark-gold 特殊处理) -->
|
||||
<radialGradient id="glowGold" cx="0.6" cy="0.7" r="0.6" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="#ffc400" stop-opacity="0.25"/>
|
||||
<stop offset="50%" stop-color="#ffbb00" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="goldDiag" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0%" stop-color="#ffbb00" stop-opacity="0"/>
|
||||
<stop offset="30%" stop-color="#ffbb00" stop-opacity="0.15"/>
|
||||
<stop offset="60%" stop-color="#ffb700" stop-opacity="0.2"/>
|
||||
<stop offset="100%" stop-color="#ffb700" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="edgeHL" x1="0" y1="1" x2="0" y2="0">
|
||||
<stop offset="0%" stop-color="#ffc400" stop-opacity="0.1"/>
|
||||
<stop offset="25%" stop-color="#ffc400" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.3"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.1"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0.2"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r2" x1="0%" y1="100%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.2"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="black" stop-opacity="0.1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r3" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="30%" stop-color="white" stop-opacity="0.25"/>
|
||||
<stop offset="70%" stop-color="white" stop-opacity="0.25"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<filter id="aBlur"><feGaussianBlur stdDeviation="2"/></filter>
|
||||
</defs>
|
||||
<rect width="750" height="580" fill="url(#main)"/>
|
||||
<rect width="750" height="580" fill="url(#silk)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTL)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTop)"/>
|
||||
<rect width="750" height="580" fill="url(#glowL)"/>
|
||||
<!-- 金色光晕 -->
|
||||
<rect width="750" height="580" fill="url(#glowGold)"/>
|
||||
<rect width="750" height="580" fill="url(#goldDiag)"/>
|
||||
<rect width="750" height="580" fill="url(#edgeHL)"/>
|
||||
<!-- Aurora 丝带(opacity 降低,配合深色主题) -->
|
||||
<g opacity="0.35" transform="translate(-62,73) scale(2.184,1.456)">
|
||||
<path d="M-50 180 Q80 100 180 140 T350 100 T500 140" fill="none" stroke="url(#r2)" stroke-width="60" stroke-linecap="round" filter="url(#aBlur)"/>
|
||||
<path d="M-30 50 Q100 120 200 70 T380 110 T520 60" fill="none" stroke="url(#r1)" stroke-width="45" stroke-linecap="round"/>
|
||||
<path d="M0 120 Q120 60 220 100 T420 70" fill="none" stroke="url(#r3)" stroke-width="25" stroke-linecap="round"/>
|
||||
<path d="M50 90 Q150 150 280 90 T450 120" fill="none" stroke="white" stroke-opacity="0.15" stroke-width="8" stroke-linecap="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.5 KiB |
@@ -0,0 +1,76 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 580" preserveAspectRatio="xMidYMid slice">
|
||||
<defs>
|
||||
<linearGradient id="main" x1="0" y1="1" x2="0.8" y2="0">
|
||||
<stop offset="0%" stop-color="#9a3412"/>
|
||||
<stop offset="15%" stop-color="#9a3412"/>
|
||||
<stop offset="40%" stop-color="#ea580c"/>
|
||||
<stop offset="60%" stop-color="#ea580c"/>
|
||||
<stop offset="85%" stop-color="#f97316"/>
|
||||
<stop offset="100%" stop-color="#f97316"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="silk" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="20%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="45%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="80%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="darkTL" cx="-0.1" cy="-0.05" r="0.75" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.25"/>
|
||||
<stop offset="45%" stop-color="black" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="darkTop" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.18"/>
|
||||
<stop offset="40%" stop-color="black" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowL" cx="0.05" cy="0.4" r="0.65" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="glowBR" cx="0.85" cy="0.95" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.25"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="edgeHL" x1="0" y1="1" x2="0" y2="0">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="25%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowTR" cx="0.85" cy="0.1" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="40%" stop-color="white" stop-opacity="0.1"/>
|
||||
<stop offset="65%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="r1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0.3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r2" x1="0%" y1="100%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.15"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.2"/>
|
||||
<stop offset="100%" stop-color="black" stop-opacity="0.1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r3" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="30%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="70%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<filter id="aBlur"><feGaussianBlur stdDeviation="2"/></filter>
|
||||
</defs>
|
||||
<rect width="750" height="580" fill="url(#main)"/>
|
||||
<rect width="750" height="580" fill="url(#silk)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTL)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTop)"/>
|
||||
<rect width="750" height="580" fill="url(#glowL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowBR)"/>
|
||||
<rect width="750" height="580" fill="url(#edgeHL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowTR)"/>
|
||||
<g opacity="0.5" transform="translate(-62,73) scale(2.184,1.456)">
|
||||
<path d="M-50 180 Q80 100 180 140 T350 100 T500 140" fill="none" stroke="url(#r2)" stroke-width="60" stroke-linecap="round" filter="url(#aBlur)"/>
|
||||
<path d="M-30 50 Q100 120 200 70 T380 110 T520 60" fill="none" stroke="url(#r1)" stroke-width="45" stroke-linecap="round"/>
|
||||
<path d="M0 120 Q120 60 220 100 T420 70" fill="none" stroke="url(#r3)" stroke-width="25" stroke-linecap="round"/>
|
||||
<path d="M50 90 Q150 150 280 90 T450 120" fill="none" stroke="white" stroke-opacity="0.25" stroke-width="8" stroke-linecap="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,76 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 580" preserveAspectRatio="xMidYMid slice">
|
||||
<defs>
|
||||
<linearGradient id="main" x1="0" y1="1" x2="0.8" y2="0">
|
||||
<stop offset="0%" stop-color="#9d174d"/>
|
||||
<stop offset="15%" stop-color="#9d174d"/>
|
||||
<stop offset="40%" stop-color="#db2777"/>
|
||||
<stop offset="60%" stop-color="#db2777"/>
|
||||
<stop offset="85%" stop-color="#ec4899"/>
|
||||
<stop offset="100%" stop-color="#ec4899"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="silk" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="20%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="45%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="80%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="darkTL" cx="-0.1" cy="-0.05" r="0.75" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.25"/>
|
||||
<stop offset="45%" stop-color="black" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="darkTop" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.18"/>
|
||||
<stop offset="40%" stop-color="black" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowL" cx="0.05" cy="0.4" r="0.65" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="glowBR" cx="0.85" cy="0.95" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.25"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="edgeHL" x1="0" y1="1" x2="0" y2="0">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="25%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowTR" cx="0.85" cy="0.1" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="40%" stop-color="white" stop-opacity="0.1"/>
|
||||
<stop offset="65%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="r1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0.3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r2" x1="0%" y1="100%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.15"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.2"/>
|
||||
<stop offset="100%" stop-color="black" stop-opacity="0.1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r3" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="30%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="70%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<filter id="aBlur"><feGaussianBlur stdDeviation="2"/></filter>
|
||||
</defs>
|
||||
<rect width="750" height="580" fill="url(#main)"/>
|
||||
<rect width="750" height="580" fill="url(#silk)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTL)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTop)"/>
|
||||
<rect width="750" height="580" fill="url(#glowL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowBR)"/>
|
||||
<rect width="750" height="580" fill="url(#edgeHL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowTR)"/>
|
||||
<g opacity="0.5" transform="translate(-62,73) scale(2.184,1.456)">
|
||||
<path d="M-50 180 Q80 100 180 140 T350 100 T500 140" fill="none" stroke="url(#r2)" stroke-width="60" stroke-linecap="round" filter="url(#aBlur)"/>
|
||||
<path d="M-30 50 Q100 120 200 70 T380 110 T520 60" fill="none" stroke="url(#r1)" stroke-width="45" stroke-linecap="round"/>
|
||||
<path d="M0 120 Q120 60 220 100 T420 70" fill="none" stroke="url(#r3)" stroke-width="25" stroke-linecap="round"/>
|
||||
<path d="M50 90 Q150 150 280 90 T450 120" fill="none" stroke="white" stroke-opacity="0.25" stroke-width="8" stroke-linecap="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,76 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 580" preserveAspectRatio="xMidYMid slice">
|
||||
<defs>
|
||||
<linearGradient id="main" x1="0" y1="1" x2="0.8" y2="0">
|
||||
<stop offset="0%" stop-color="#991b1b"/>
|
||||
<stop offset="15%" stop-color="#991b1b"/>
|
||||
<stop offset="40%" stop-color="#dc2626"/>
|
||||
<stop offset="60%" stop-color="#dc2626"/>
|
||||
<stop offset="85%" stop-color="#ef4444"/>
|
||||
<stop offset="100%" stop-color="#ef4444"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="silk" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="20%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="45%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="80%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="darkTL" cx="-0.1" cy="-0.05" r="0.75" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.25"/>
|
||||
<stop offset="45%" stop-color="black" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="darkTop" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.18"/>
|
||||
<stop offset="40%" stop-color="black" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowL" cx="0.05" cy="0.4" r="0.65" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="glowBR" cx="0.85" cy="0.95" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.25"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="edgeHL" x1="0" y1="1" x2="0" y2="0">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="25%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowTR" cx="0.85" cy="0.1" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="40%" stop-color="white" stop-opacity="0.1"/>
|
||||
<stop offset="65%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="r1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0.3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r2" x1="0%" y1="100%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.15"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.2"/>
|
||||
<stop offset="100%" stop-color="black" stop-opacity="0.1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r3" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="30%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="70%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<filter id="aBlur"><feGaussianBlur stdDeviation="2"/></filter>
|
||||
</defs>
|
||||
<rect width="750" height="580" fill="url(#main)"/>
|
||||
<rect width="750" height="580" fill="url(#silk)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTL)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTop)"/>
|
||||
<rect width="750" height="580" fill="url(#glowL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowBR)"/>
|
||||
<rect width="750" height="580" fill="url(#edgeHL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowTR)"/>
|
||||
<g opacity="0.5" transform="translate(-62,73) scale(2.184,1.456)">
|
||||
<path d="M-50 180 Q80 100 180 140 T350 100 T500 140" fill="none" stroke="url(#r2)" stroke-width="60" stroke-linecap="round" filter="url(#aBlur)"/>
|
||||
<path d="M-30 50 Q100 120 200 70 T380 110 T520 60" fill="none" stroke="url(#r1)" stroke-width="45" stroke-linecap="round"/>
|
||||
<path d="M0 120 Q120 60 220 100 T420 70" fill="none" stroke="url(#r3)" stroke-width="25" stroke-linecap="round"/>
|
||||
<path d="M50 90 Q150 150 280 90 T450 120" fill="none" stroke="white" stroke-opacity="0.25" stroke-width="8" stroke-linecap="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,76 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 750 580" preserveAspectRatio="xMidYMid slice">
|
||||
<defs>
|
||||
<linearGradient id="main" x1="0" y1="1" x2="0.8" y2="0">
|
||||
<stop offset="0%" stop-color="#0f766e"/>
|
||||
<stop offset="15%" stop-color="#0f766e"/>
|
||||
<stop offset="40%" stop-color="#14b8a6"/>
|
||||
<stop offset="60%" stop-color="#14b8a6"/>
|
||||
<stop offset="85%" stop-color="#2dd4bf"/>
|
||||
<stop offset="100%" stop-color="#2dd4bf"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="silk" x1="0" y1="0" x2="1" y2="1">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="20%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="45%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="80%" stop-color="white" stop-opacity="0.04"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="darkTL" cx="-0.1" cy="-0.05" r="0.75" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.25"/>
|
||||
<stop offset="45%" stop-color="black" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="darkTop" x1="0" y1="0" x2="0" y2="1">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.18"/>
|
||||
<stop offset="40%" stop-color="black" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowL" cx="0.05" cy="0.4" r="0.65" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.12"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="glowBR" cx="0.85" cy="0.95" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.25"/>
|
||||
<stop offset="55%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="edgeHL" x1="0" y1="1" x2="0" y2="0">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="25%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<radialGradient id="glowTR" cx="0.85" cy="0.1" r="0.55" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="40%" stop-color="white" stop-opacity="0.1"/>
|
||||
<stop offset="65%" stop-color="white" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="r1" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0.4"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0.3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r2" x1="0%" y1="100%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="black" stop-opacity="0.15"/>
|
||||
<stop offset="50%" stop-color="white" stop-opacity="0.2"/>
|
||||
<stop offset="100%" stop-color="black" stop-opacity="0.1"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="r3" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="30%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="70%" stop-color="white" stop-opacity="0.35"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<filter id="aBlur"><feGaussianBlur stdDeviation="2"/></filter>
|
||||
</defs>
|
||||
<rect width="750" height="580" fill="url(#main)"/>
|
||||
<rect width="750" height="580" fill="url(#silk)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTL)"/>
|
||||
<rect width="750" height="580" fill="url(#darkTop)"/>
|
||||
<rect width="750" height="580" fill="url(#glowL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowBR)"/>
|
||||
<rect width="750" height="580" fill="url(#edgeHL)"/>
|
||||
<rect width="750" height="580" fill="url(#glowTR)"/>
|
||||
<g opacity="0.5" transform="translate(-62,73) scale(2.184,1.456)">
|
||||
<path d="M-50 180 Q80 100 180 140 T350 100 T500 140" fill="none" stroke="url(#r2)" stroke-width="60" stroke-linecap="round" filter="url(#aBlur)"/>
|
||||
<path d="M-30 50 Q100 120 200 70 T380 110 T520 60" fill="none" stroke="url(#r1)" stroke-width="45" stroke-linecap="round"/>
|
||||
<path d="M0 120 Q120 60 220 100 T420 70" fill="none" stroke="url(#r3)" stroke-width="25" stroke-linecap="round"/>
|
||||
<path d="M50 90 Q150 150 280 90 T450 120" fill="none" stroke="white" stroke-opacity="0.25" stroke-width="8" stroke-linecap="round"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.4 KiB |
@@ -0,0 +1,122 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="750" height="1334" viewBox="0 0 750 1334" fill="none">
|
||||
<defs>
|
||||
<linearGradient id="bgGrad" x1="0" y1="0" x2="750" y2="1334" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0%" stop-color="#dbeafe"/>
|
||||
<stop offset="50%" stop-color="#eff6ff"/>
|
||||
<stop offset="100%" stop-color="#dbeafe"/>
|
||||
</linearGradient>
|
||||
<!-- orb gradients -->
|
||||
<radialGradient id="orb1" cx="50%" cy="50%" r="50%">
|
||||
<stop offset="0%" stop-color="#93c5fd" stop-opacity="0.55"/>
|
||||
<stop offset="100%" stop-color="#3b82f6" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="orb2" cx="50%" cy="50%" r="50%">
|
||||
<stop offset="0%" stop-color="#67e8f9" stop-opacity="0.45"/>
|
||||
<stop offset="100%" stop-color="#06b6d4" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="orb3" cx="50%" cy="50%" r="50%">
|
||||
<stop offset="0%" stop-color="#a5b4fc" stop-opacity="0.4"/>
|
||||
<stop offset="100%" stop-color="#6366f1" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
<radialGradient id="orb4" cx="50%" cy="50%" r="50%">
|
||||
<stop offset="0%" stop-color="#bfdbfe" stop-opacity="0.5"/>
|
||||
<stop offset="100%" stop-color="#2563eb" stop-opacity="0"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
|
||||
<!-- base gradient fill -->
|
||||
<rect width="750" height="1334" fill="url(#bgGrad)"/>
|
||||
|
||||
<!-- mesh grid (subtle) -->
|
||||
<g opacity="0.06" stroke="#3b82f6" stroke-width="1">
|
||||
<line x1="0" y1="133" x2="750" y2="133"/>
|
||||
<line x1="0" y1="267" x2="750" y2="267"/>
|
||||
<line x1="0" y1="400" x2="750" y2="400"/>
|
||||
<line x1="0" y1="534" x2="750" y2="534"/>
|
||||
<line x1="0" y1="667" x2="750" y2="667"/>
|
||||
<line x1="0" y1="800" x2="750" y2="800"/>
|
||||
<line x1="0" y1="934" x2="750" y2="934"/>
|
||||
<line x1="0" y1="1067" x2="750" y2="1067"/>
|
||||
<line x1="0" y1="1200" x2="750" y2="1200"/>
|
||||
<line x1="75" y1="0" x2="75" y2="1334"/>
|
||||
<line x1="150" y1="0" x2="150" y2="1334"/>
|
||||
<line x1="225" y1="0" x2="225" y2="1334"/>
|
||||
<line x1="300" y1="0" x2="300" y2="1334"/>
|
||||
<line x1="375" y1="0" x2="375" y2="1334"/>
|
||||
<line x1="450" y1="0" x2="450" y2="1334"/>
|
||||
<line x1="525" y1="0" x2="525" y2="1334"/>
|
||||
<line x1="600" y1="0" x2="600" y2="1334"/>
|
||||
<line x1="675" y1="0" x2="675" y2="1334"/>
|
||||
</g>
|
||||
|
||||
<!-- floating orb 1 (top-left) -->
|
||||
<ellipse cx="120" cy="220" rx="200" ry="200" fill="url(#orb1)">
|
||||
<animateTransform attributeName="transform" type="translate" values="0,0; 30,25; -15,40; 0,0" dur="8s" repeatCount="indefinite" calcMode="spline" keySplines="0.4 0 0.6 1;0.4 0 0.6 1;0.4 0 0.6 1"/>
|
||||
<animate attributeName="opacity" values="0.7;1;0.6;0.7" dur="8s" repeatCount="indefinite"/>
|
||||
</ellipse>
|
||||
|
||||
<!-- floating orb 2 (top-right) -->
|
||||
<ellipse cx="650" cy="300" rx="180" ry="180" fill="url(#orb2)">
|
||||
<animateTransform attributeName="transform" type="translate" values="0,0; -25,20; 10,-30; 0,0" dur="9s" begin="-2s" repeatCount="indefinite" calcMode="spline" keySplines="0.4 0 0.6 1;0.4 0 0.6 1;0.4 0 0.6 1"/>
|
||||
<animate attributeName="opacity" values="0.6;0.9;0.5;0.6" dur="9s" begin="-2s" repeatCount="indefinite"/>
|
||||
</ellipse>
|
||||
|
||||
<!-- floating orb 3 (mid) -->
|
||||
<ellipse cx="375" cy="700" rx="240" ry="160" fill="url(#orb3)">
|
||||
<animateTransform attributeName="transform" type="translate" values="0,0; 20,-20; -20,15; 0,0" dur="11s" begin="-4s" repeatCount="indefinite" calcMode="spline" keySplines="0.4 0 0.6 1;0.4 0 0.6 1;0.4 0 0.6 1"/>
|
||||
<animate attributeName="opacity" values="0.5;0.8;0.4;0.5" dur="11s" begin="-4s" repeatCount="indefinite"/>
|
||||
</ellipse>
|
||||
|
||||
<!-- floating orb 4 (bottom) -->
|
||||
<ellipse cx="200" cy="1100" rx="220" ry="220" fill="url(#orb4)">
|
||||
<animateTransform attributeName="transform" type="translate" values="0,0; 35,-15; -10,25; 0,0" dur="10s" begin="-6s" repeatCount="indefinite" calcMode="spline" keySplines="0.4 0 0.6 1;0.4 0 0.6 1;0.4 0 0.6 1"/>
|
||||
<animate attributeName="opacity" values="0.6;0.9;0.5;0.6" dur="10s" begin="-6s" repeatCount="indefinite"/>
|
||||
</ellipse>
|
||||
|
||||
<!-- floating orb 5 (bottom-right) -->
|
||||
<ellipse cx="600" cy="1050" rx="170" ry="170" fill="url(#orb2)">
|
||||
<animateTransform attributeName="transform" type="translate" values="0,0; -20,30; 15,-20; 0,0" dur="7s" begin="-3s" repeatCount="indefinite" calcMode="spline" keySplines="0.4 0 0.6 1;0.4 0 0.6 1;0.4 0 0.6 1"/>
|
||||
<animate attributeName="opacity" values="0.5;0.8;0.45;0.5" dur="7s" begin="-3s" repeatCount="indefinite"/>
|
||||
</ellipse>
|
||||
|
||||
<!-- decorative ring 1 -->
|
||||
<circle cx="100" cy="450" r="60" stroke="#3b82f6" stroke-width="1.5" fill="none" opacity="0.12">
|
||||
<animate attributeName="r" values="60;72;60" dur="6s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="0.12;0.22;0.12" dur="6s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="100" cy="450" r="40" stroke="#3b82f6" stroke-width="1" fill="none" opacity="0.08">
|
||||
<animate attributeName="r" values="40;50;40" dur="6s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
|
||||
<!-- decorative ring 2 -->
|
||||
<circle cx="660" cy="900" r="55" stroke="#06b6d4" stroke-width="1.5" fill="none" opacity="0.12">
|
||||
<animate attributeName="r" values="55;67;55" dur="7s" begin="-2s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="0.12;0.2;0.12" dur="7s" begin="-2s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
|
||||
<!-- floating particles -->
|
||||
<circle cx="180" cy="580" r="4" fill="#3b82f6" opacity="0.3">
|
||||
<animate attributeName="cy" values="580;555;580" dur="5s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="0.3;0.6;0.3" dur="5s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="560" cy="480" r="3" fill="#06b6d4" opacity="0.25">
|
||||
<animate attributeName="cy" values="480;460;480" dur="6s" begin="-1s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="0.25;0.5;0.25" dur="6s" begin="-1s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="330" cy="900" r="3.5" fill="#6366f1" opacity="0.25">
|
||||
<animate attributeName="cy" values="900;880;900" dur="7s" begin="-3s" repeatCount="indefinite"/>
|
||||
<animate attributeName="opacity" values="0.25;0.5;0.25" dur="7s" begin="-3s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="500" cy="750" r="2.5" fill="#3b82f6" opacity="0.2">
|
||||
<animate attributeName="cy" values="750;732;750" dur="4.5s" begin="-2s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
<circle cx="80" cy="830" r="3" fill="#93c5fd" opacity="0.3">
|
||||
<animate attributeName="cy" values="830;812;830" dur="8s" begin="-5s" repeatCount="indefinite"/>
|
||||
</circle>
|
||||
|
||||
<!-- diamond sparkles -->
|
||||
<g opacity="0.18">
|
||||
<polygon points="420,150 425,160 420,170 415,160" fill="#3b82f6">
|
||||
<animate attributeName="opacity" values="0.18;0.4;0.18" dur="3s" repeatCount="indefinite"/>
|
||||
</polygon>
|
||||
<polygon points="670,550 674,558 670,566 666,558"
|
||||
|
After Width: | Height: | Size: 6.7 KiB |
@@ -0,0 +1,69 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 95 95" width="95" height="95">
|
||||
<defs>
|
||||
<filter id="textBlur">
|
||||
<feGaussianBlur stdDeviation="0.73"/>
|
||||
</filter>
|
||||
<!-- 内圆填充:从边框向圆心的单向光路,边缘不透明→圆心透明 -->
|
||||
<radialGradient id="innerLight" cx="50%" cy="50%" r="50%" gradientUnits="objectBoundingBox">
|
||||
<stop offset="0%" stop-color="white" stop-opacity="0"/>
|
||||
<stop offset="60%" stop-color="white" stop-opacity="0.18"/>
|
||||
<stop offset="82%" stop-color="white" stop-opacity="0.38"/>
|
||||
<stop offset="95%" stop-color="white" stop-opacity="0.75"/>
|
||||
<stop offset="100%" stop-color="white" stop-opacity="0.95"/>
|
||||
</radialGradient>
|
||||
</defs>
|
||||
|
||||
<rect width="95" height="95" fill="transparent"/>
|
||||
|
||||
<!-- 外圆:更鲜艳红色 -->
|
||||
<circle cx="47.5" cy="47.5" r="44.75"
|
||||
fill="transparent"
|
||||
stroke="rgb(255, 45, 45)"
|
||||
stroke-width="5.5"/>
|
||||
|
||||
<!-- 内圆填充:从边框向圆心的光路渐变 -->
|
||||
<circle cx="47.5" cy="47.5" r="40.25"
|
||||
fill="url(#innerLight)"/>
|
||||
|
||||
<!-- 内圆:纯白描边,无发光 -->
|
||||
<circle cx="47.5" cy="47.5" r="40.25"
|
||||
fill="none"
|
||||
stroke="rgb(255, 255, 255)"
|
||||
stroke-width="3.65"/>
|
||||
|
||||
<!-- 👍 Emoji -->
|
||||
<text x="47.5" y="33"
|
||||
font-size="33"
|
||||
text-anchor="middle"
|
||||
dominant-baseline="middle"
|
||||
fill="#000">👍</text>
|
||||
|
||||
<!-- 白色描边层 -->
|
||||
<text x="47.5" y="72"
|
||||
font-family="sans-serif, -apple-system, BlinkMacSystemFont"
|
||||
font-size="20"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
fill="rgba(255,255,255,0.95)"
|
||||
stroke="rgba(255,255,255,0.95)"
|
||||
stroke-width="4"
|
||||
paint-order="stroke">已完成</text>
|
||||
|
||||
<!-- 模糊白色光晕层 -->
|
||||
<text x="47.5" y="72"
|
||||
font-family="sans-serif, -apple-system, BlinkMacSystemFont"
|
||||
font-size="20"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
fill="rgba(255,255,255,0.9)"
|
||||
opacity="0.9"
|
||||
filter="url(#textBlur)">已完成</text>
|
||||
|
||||
<!-- 红色文字主体:更鲜艳 -->
|
||||
<text x="47.5" y="72"
|
||||
font-family="sans-serif, -apple-system, BlinkMacSystemFont"
|
||||
font-size="20"
|
||||
font-weight="bold"
|
||||
text-anchor="middle"
|
||||
fill="rgb(235, 25, 25)">已完成</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |