result-card-dark.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Darwin Skill - 暗夜成就</title>
  7. <link rel="preconnect" href="https://fonts.googleapis.com">
  8. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  9. <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Noto+Sans+SC:wght@400;500;700;900&display=swap" rel="stylesheet">
  10. <style>
  11. *, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
  12. body {
  13. display: flex;
  14. justify-content: center;
  15. align-items: flex-start;
  16. min-height: 100vh;
  17. background: #0D0D0F;
  18. font-family: 'Noto Sans SC', 'Inter', sans-serif;
  19. padding: 0;
  20. }
  21. .card {
  22. width: 900px;
  23. min-height: 600px;
  24. position: relative;
  25. display: flex;
  26. flex-direction: column;
  27. background: #0D0D0F;
  28. color: #FFFFFF;
  29. overflow: hidden;
  30. }
  31. /* ===== 全局光效底层 ===== */
  32. .card::before {
  33. content: '';
  34. position: absolute;
  35. top: 80px;
  36. left: 50%;
  37. transform: translateX(-50%);
  38. width: 600px;
  39. height: 600px;
  40. background: radial-gradient(circle, rgba(232,89,12,0.12) 0%, rgba(232,89,12,0.04) 35%, transparent 70%);
  41. pointer-events: none;
  42. z-index: 0;
  43. }
  44. .card > * {
  45. position: relative;
  46. z-index: 1;
  47. }
  48. /* ===== 1. 顶部品牌条 ===== */
  49. .brand-bar {
  50. padding: 24px 48px;
  51. display: flex;
  52. justify-content: space-between;
  53. align-items: center;
  54. border-bottom: 1px solid rgba(255,255,255,0.06);
  55. }
  56. .brand-name {
  57. font-size: 22px;
  58. font-weight: 800;
  59. color: #fff;
  60. letter-spacing: 0.02em;
  61. font-family: 'Inter', 'Noto Sans SC', sans-serif;
  62. }
  63. .brand-name .dot { color: #E8590C; }
  64. .brand-date {
  65. font-size: 15px;
  66. font-weight: 500;
  67. color: #555;
  68. font-family: 'Inter', sans-serif;
  69. }
  70. /* ===== 2. 成就徽章区(视觉焦点) ===== */
  71. .achievement-section {
  72. padding: 36px 48px 24px;
  73. display: flex;
  74. flex-direction: column;
  75. align-items: center;
  76. text-align: center;
  77. position: relative;
  78. }
  79. /* 徽章容器 */
  80. .badge-container {
  81. position: relative;
  82. width: 220px;
  83. height: 220px;
  84. margin-bottom: 20px;
  85. }
  86. /* 外圈光晕 */
  87. .badge-container::before {
  88. content: '';
  89. position: absolute;
  90. top: -30px;
  91. left: -30px;
  92. right: -30px;
  93. bottom: -30px;
  94. border-radius: 50%;
  95. background: radial-gradient(circle, rgba(232,89,12,0.25) 0%, rgba(255,107,53,0.08) 50%, transparent 75%);
  96. pointer-events: none;
  97. }
  98. .badge-svg {
  99. width: 240px;
  100. height: 240px;
  101. filter: drop-shadow(0 0 30px rgba(232,89,12,0.35)) drop-shadow(0 0 60px rgba(232,89,12,0.15));
  102. }
  103. .badge-ring-bg {
  104. fill: none;
  105. stroke: rgba(255,255,255,0.06);
  106. stroke-width: 14;
  107. }
  108. .badge-ring-glow {
  109. fill: none;
  110. stroke: url(#darkOrangeGradient);
  111. stroke-width: 16;
  112. stroke-linecap: round;
  113. /* 周长 = 2 * PI * 85 ≈ 534, 87% → dashoffset = 534 * 0.13 ≈ 69 */
  114. stroke-dasharray: 534;
  115. stroke-dashoffset: 69;
  116. transform: rotate(-90deg);
  117. transform-origin: center;
  118. }
  119. .badge-ring-track {
  120. fill: none;
  121. stroke: rgba(255,255,255,0.03);
  122. stroke-width: 14;
  123. stroke-dasharray: 6 6;
  124. }
  125. .badge-center {
  126. position: absolute;
  127. top: 50%;
  128. left: 50%;
  129. transform: translate(-50%, -50%);
  130. text-align: center;
  131. }
  132. .badge-score {
  133. font-size: 80px;
  134. font-weight: 900;
  135. color: #FFFFFF;
  136. line-height: 1;
  137. font-family: 'Inter', sans-serif;
  138. letter-spacing: -0.04em;
  139. text-shadow: 0 0 40px rgba(232,89,12,0.4);
  140. }
  141. .badge-max {
  142. font-size: 22px;
  143. font-weight: 600;
  144. color: #555;
  145. font-family: 'Inter', sans-serif;
  146. margin-left: 2px;
  147. }
  148. .badge-label {
  149. font-size: 13px;
  150. font-weight: 600;
  151. color: #666;
  152. margin-top: 4px;
  153. letter-spacing: 0.1em;
  154. }
  155. .achievement-title {
  156. font-size: 30px;
  157. font-weight: 900;
  158. line-height: 1.3;
  159. color: #FFFFFF;
  160. margin-bottom: 6px;
  161. }
  162. .achievement-skill {
  163. color: #FF6B35;
  164. text-shadow: 0 0 20px rgba(232,89,12,0.3);
  165. }
  166. .achievement-subtitle {
  167. font-size: 15px;
  168. color: #555;
  169. font-weight: 500;
  170. font-family: 'Inter', sans-serif;
  171. }
  172. /* ===== 3. 经验条区 ===== */
  173. .xp-section {
  174. padding: 28px 48px 32px;
  175. }
  176. .xp-bar-wrapper {
  177. background: rgba(255,255,255,0.04);
  178. border-radius: 16px;
  179. padding: 24px 28px;
  180. }
  181. .xp-labels {
  182. display: flex;
  183. justify-content: space-between;
  184. align-items: baseline;
  185. margin-bottom: 14px;
  186. }
  187. .xp-old {
  188. font-size: 20px;
  189. font-weight: 500;
  190. color: #555;
  191. font-family: 'Inter', sans-serif;
  192. text-decoration: line-through;
  193. text-decoration-color: #444;
  194. }
  195. .xp-new {
  196. font-size: 28px;
  197. font-weight: 900;
  198. color: #FFFFFF;
  199. font-family: 'Inter', sans-serif;
  200. }
  201. .xp-track {
  202. position: relative;
  203. width: 100%;
  204. height: 20px;
  205. background: rgba(255,255,255,0.06);
  206. border-radius: 10px;
  207. overflow: visible;
  208. }
  209. .xp-fill {
  210. height: 100%;
  211. width: 87%;
  212. background: linear-gradient(90deg, #E8590C 0%, #FF6B35 100%);
  213. border-radius: 10px;
  214. box-shadow: 0 0 20px rgba(232,89,12,0.4), 0 0 6px rgba(232,89,12,0.6);
  215. position: relative;
  216. }
  217. .xp-delta-badge {
  218. position: absolute;
  219. top: -32px;
  220. right: -8px;
  221. background: linear-gradient(135deg, #E8590C, #FF6B35);
  222. color: #fff;
  223. font-size: 16px;
  224. font-weight: 800;
  225. font-family: 'Inter', sans-serif;
  226. padding: 4px 14px;
  227. border-radius: 8px;
  228. box-shadow: 0 4px 16px rgba(232,89,12,0.4);
  229. white-space: nowrap;
  230. }
  231. .xp-delta-badge::after {
  232. content: '';
  233. position: absolute;
  234. bottom: -5px;
  235. left: 50%;
  236. transform: translateX(-50%);
  237. width: 0;
  238. height: 0;
  239. border-left: 6px solid transparent;
  240. border-right: 6px solid transparent;
  241. border-top: 6px solid #FF6B35;
  242. }
  243. /* ===== 4. 最大突破卡片 ===== */
  244. .breakthrough-section {
  245. padding: 0 48px 20px;
  246. }
  247. .breakthrough-card {
  248. position: relative;
  249. border-radius: 16px;
  250. padding: 28px 32px;
  251. background: rgba(255,255,255,0.03);
  252. overflow: hidden;
  253. }
  254. /* 渐变边框效果 */
  255. .breakthrough-card::before {
  256. content: '';
  257. position: absolute;
  258. inset: 0;
  259. border-radius: 16px;
  260. padding: 2px;
  261. background: linear-gradient(135deg, #E8590C 0%, #FF6B35 40%, rgba(255,107,53,0.2) 100%);
  262. -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  263. -webkit-mask-composite: xor;
  264. mask-composite: exclude;
  265. pointer-events: none;
  266. }
  267. .breakthrough-label {
  268. font-size: 12px;
  269. font-weight: 700;
  270. letter-spacing: 0.12em;
  271. color: #FF6B35;
  272. margin-bottom: 12px;
  273. text-transform: uppercase;
  274. }
  275. .breakthrough-content {
  276. display: flex;
  277. align-items: center;
  278. gap: 24px;
  279. }
  280. .breakthrough-scores {
  281. display: flex;
  282. align-items: baseline;
  283. gap: 12px;
  284. flex-shrink: 0;
  285. }
  286. .bt-from {
  287. font-size: 36px;
  288. font-weight: 400;
  289. color: #444;
  290. font-family: 'Inter', sans-serif;
  291. text-decoration: line-through;
  292. text-decoration-color: #444;
  293. }
  294. .bt-arrow {
  295. font-size: 20px;
  296. color: #555;
  297. }
  298. .bt-to {
  299. font-size: 52px;
  300. font-weight: 900;
  301. font-family: 'Inter', sans-serif;
  302. color: #FF6B35;
  303. line-height: 1;
  304. text-shadow: 0 0 24px rgba(232,89,12,0.3);
  305. }
  306. .bt-pct {
  307. font-size: 16px;
  308. font-weight: 800;
  309. font-family: 'Inter', sans-serif;
  310. color: #4ADE80;
  311. margin-left: 4px;
  312. }
  313. .breakthrough-text {
  314. flex: 1;
  315. }
  316. .bt-dim-name {
  317. font-size: 22px;
  318. font-weight: 800;
  319. color: #fff;
  320. margin-bottom: 4px;
  321. }
  322. .bt-story {
  323. font-size: 15px;
  324. font-weight: 500;
  325. color: #777;
  326. line-height: 1.5;
  327. }
  328. /* ===== 5. 维度网格 2x4 ===== */
  329. .dims-section {
  330. padding: 0 48px 16px;
  331. }
  332. .dims-header {
  333. font-size: 13px;
  334. font-weight: 700;
  335. color: #555;
  336. letter-spacing: 0.1em;
  337. margin-bottom: 16px;
  338. text-transform: uppercase;
  339. }
  340. .dims-grid {
  341. display: grid;
  342. grid-template-columns: repeat(4, 1fr);
  343. gap: 10px;
  344. }
  345. .dim-cell {
  346. background: rgba(255,255,255,0.04);
  347. border-radius: 12px;
  348. padding: 16px 12px;
  349. display: flex;
  350. flex-direction: column;
  351. align-items: center;
  352. gap: 6px;
  353. position: relative;
  354. border: 1px solid rgba(255,255,255,0.04);
  355. }
  356. .dim-cell.hot {
  357. background: rgba(232,89,12,0.08);
  358. border: 1px solid rgba(232,89,12,0.2);
  359. box-shadow: 0 0 20px rgba(232,89,12,0.1);
  360. }
  361. .dim-cell.warm {
  362. background: rgba(255,255,255,0.05);
  363. border: 1px solid rgba(255,255,255,0.06);
  364. }
  365. .dim-name {
  366. font-size: 12px;
  367. font-weight: 700;
  368. color: #666;
  369. text-align: center;
  370. white-space: nowrap;
  371. }
  372. .dim-cell.hot .dim-name {
  373. color: #888;
  374. }
  375. .dim-score-row {
  376. display: flex;
  377. align-items: baseline;
  378. gap: 6px;
  379. }
  380. .dim-old-score {
  381. font-size: 14px;
  382. font-weight: 500;
  383. color: #444;
  384. font-family: 'Inter', sans-serif;
  385. text-decoration: line-through;
  386. text-decoration-color: #444;
  387. }
  388. .dim-score {
  389. font-size: 30px;
  390. font-weight: 900;
  391. font-family: 'Inter', sans-serif;
  392. color: #FFFFFF;
  393. line-height: 1;
  394. }
  395. .dim-cell.hot .dim-score {
  396. color: #FF6B35;
  397. text-shadow: 0 0 12px rgba(232,89,12,0.3);
  398. }
  399. .dim-arrow {
  400. display: inline-flex;
  401. align-items: center;
  402. justify-content: center;
  403. font-size: 11px;
  404. font-weight: 800;
  405. font-family: 'Inter', sans-serif;
  406. padding: 2px 8px;
  407. border-radius: 6px;
  408. line-height: 1;
  409. }
  410. .dim-arrow.up-big {
  411. background: rgba(232,89,12,0.9);
  412. color: #fff;
  413. box-shadow: 0 0 8px rgba(232,89,12,0.3);
  414. }
  415. .dim-arrow.up-mid {
  416. background: rgba(232,89,12,0.2);
  417. color: #FF6B35;
  418. }
  419. .dim-arrow.up-small {
  420. background: rgba(74,222,128,0.12);
  421. color: #4ADE80;
  422. }
  423. /* ===== 6. 改进摘要 ===== */
  424. .summary-section {
  425. padding: 0 48px 32px;
  426. }
  427. .summary-header {
  428. font-size: 13px;
  429. font-weight: 700;
  430. color: #555;
  431. letter-spacing: 0.1em;
  432. margin-bottom: 14px;
  433. text-transform: uppercase;
  434. }
  435. .summary-items {
  436. display: flex;
  437. flex-direction: column;
  438. gap: 8px;
  439. }
  440. .summary-item {
  441. font-size: 15px;
  442. font-weight: 500;
  443. color: #888;
  444. line-height: 1.6;
  445. padding-left: 20px;
  446. position: relative;
  447. }
  448. .summary-item::before {
  449. content: '';
  450. position: absolute;
  451. left: 0;
  452. top: 9px;
  453. width: 8px;
  454. height: 8px;
  455. background: #E8590C;
  456. border-radius: 50%;
  457. box-shadow: 0 0 8px rgba(232,89,12,0.5);
  458. }
  459. /* ===== 7. 底部品牌条 ===== */
  460. .footer {
  461. margin-top: auto;
  462. padding: 28px 48px;
  463. display: flex;
  464. justify-content: space-between;
  465. align-items: center;
  466. border-top: 1px solid rgba(255,255,255,0.06);
  467. }
  468. .footer-left {
  469. display: flex;
  470. flex-direction: column;
  471. gap: 6px;
  472. }
  473. .footer-brand {
  474. font-size: 20px;
  475. font-weight: 800;
  476. color: #fff;
  477. font-family: 'Inter', 'Noto Sans SC', sans-serif;
  478. }
  479. .footer-brand .dot { color: #E8590C; }
  480. .footer-slogan {
  481. font-size: 14px;
  482. color: #444;
  483. font-weight: 500;
  484. }
  485. .footer-right {
  486. text-align: right;
  487. display: flex;
  488. flex-direction: column;
  489. gap: 4px;
  490. }
  491. .footer-url {
  492. font-size: 14px;
  493. color: #555;
  494. font-family: 'Inter', monospace;
  495. font-weight: 600;
  496. }
  497. .footer-by {
  498. font-size: 13px;
  499. color: #444;
  500. }
  501. </style>
  502. </head>
  503. <body>
  504. <div class="card">
  505. <!-- 1. 顶部品牌条 -->
  506. <div class="brand-bar">
  507. <div class="brand-name">Darwin<span class="dot">.</span>skill</div>
  508. <div class="brand-date" data-field="date">2026.04.14</div>
  509. </div>
  510. <!-- 2. 成就徽章区 -->
  511. <div class="achievement-section">
  512. <div class="badge-container">
  513. <svg class="badge-svg" viewBox="0 0 200 200">
  514. <defs>
  515. <linearGradient id="darkOrangeGradient" x1="0%" y1="0%" x2="100%" y2="100%">
  516. <stop offset="0%" stop-color="#E8590C"/>
  517. <stop offset="100%" stop-color="#FF6B35"/>
  518. </linearGradient>
  519. <filter id="glow">
  520. <feGaussianBlur stdDeviation="3" result="coloredBlur"/>
  521. <feMerge>
  522. <feMergeNode in="coloredBlur"/>
  523. <feMergeNode in="SourceGraphic"/>
  524. </feMerge>
  525. </filter>
  526. </defs>
  527. <!-- 底层虚线轨道 -->
  528. <circle cx="100" cy="100" r="85" class="badge-ring-track"/>
  529. <!-- 背景环 -->
  530. <circle cx="100" cy="100" r="85" class="badge-ring-bg"/>
  531. <!-- 发光进度环 -->
  532. <circle cx="100" cy="100" r="85" class="badge-ring-glow" filter="url(#glow)"/>
  533. </svg>
  534. <div class="badge-center">
  535. <div>
  536. <span class="badge-score" data-field="score-after">87</span><span class="badge-max">/100</span>
  537. </div>
  538. <div class="badge-label">质量总分</div>
  539. </div>
  540. </div>
  541. <div class="achievement-title">
  542. 我的Skill进化报告<br>
  543. <span class="achievement-skill" data-field="skill-name">审校降AI味</span>
  544. </div>
  545. <div class="achievement-subtitle" data-field="skill-id">huashu-proofreading</div>
  546. </div>
  547. <!-- 3. 经验条 -->
  548. <div class="xp-section">
  549. <div class="xp-bar-wrapper">
  550. <div class="xp-labels">
  551. <span class="xp-old" data-field="score-before">72</span>
  552. <span class="xp-new" data-field="score-after-2">87</span>
  553. </div>
  554. <div class="xp-track">
  555. <div class="xp-fill">
  556. <div class="xp-delta-badge" data-field="score-delta">+15</div>
  557. </div>
  558. </div>
  559. </div>
  560. </div>
  561. <!-- 4. 最大突破 -->
  562. <div class="breakthrough-section">
  563. <div class="breakthrough-card">
  564. <div class="breakthrough-label">最大突破</div>
  565. <div class="breakthrough-content">
  566. <div class="breakthrough-scores">
  567. <span class="bt-from" data-field="top1-from">5</span>
  568. <span class="bt-arrow">&rarr;</span>
  569. <span class="bt-to" data-field="top1-to">9</span>
  570. <span class="bt-pct" data-field="top1-pct">+80%</span>
  571. </div>
  572. <div class="breakthrough-text">
  573. <div class="bt-dim-name" data-field="top1-name">指令精度</div>
  574. <div class="bt-story" data-field="top1-story">从模糊指令到精确可执行,指令精度翻了将近一倍</div>
  575. </div>
  576. </div>
  577. </div>
  578. </div>
  579. <!-- 5. 八维度网格 -->
  580. <div class="dims-section">
  581. <div class="dims-header">八维度全景</div>
  582. <div class="dims-grid">
  583. <div class="dim-cell warm">
  584. <div class="dim-name">元数据</div>
  585. <div class="dim-score-row">
  586. <span class="dim-old-score">6</span>
  587. <span class="dim-score">8</span>
  588. </div>
  589. <span class="dim-arrow up-mid">+2</span>
  590. </div>
  591. <div class="dim-cell hot">
  592. <div class="dim-name">工作流</div>
  593. <div class="dim-score-row">
  594. <span class="dim-old-score">5</span>
  595. <span class="dim-score">8</span>
  596. </div>
  597. <span class="dim-arrow up-big">+3</span>
  598. </div>
  599. <div class="dim-cell hot">
  600. <div class="dim-name">边界覆盖</div>
  601. <div class="dim-score-row">
  602. <span class="dim-old-score">4</span>
  603. <span class="dim-score">7</span>
  604. </div>
  605. <span class="dim-arrow up-big">+3</span>
  606. </div>
  607. <div class="dim-cell">
  608. <div class="dim-name">检查点</div>
  609. <div class="dim-score-row">
  610. <span class="dim-old-score">6</span>
  611. <span class="dim-score">7</span>
  612. </div>
  613. <span class="dim-arrow up-small">+1</span>
  614. </div>
  615. <div class="dim-cell hot">
  616. <div class="dim-name">指令精度</div>
  617. <div class="dim-score-row">
  618. <span class="dim-old-score">5</span>
  619. <span class="dim-score">9</span>
  620. </div>
  621. <span class="dim-arrow up-big">+4</span>
  622. </div>
  623. <div class="dim-cell">
  624. <div class="dim-name">资源整合</div>
  625. <div class="dim-score-row">
  626. <span class="dim-old-score">7</span>
  627. <span class="dim-score">8</span>
  628. </div>
  629. <span class="dim-arrow up-small">+1</span>
  630. </div>
  631. <div class="dim-cell warm">
  632. <div class="dim-name">整体架构</div>
  633. <div class="dim-score-row">
  634. <span class="dim-old-score">6</span>
  635. <span class="dim-score">8</span>
  636. </div>
  637. <span class="dim-arrow up-mid">+2</span>
  638. </div>
  639. <div class="dim-cell hot">
  640. <div class="dim-name">实测表现</div>
  641. <div class="dim-score-row">
  642. <span class="dim-old-score">5</span>
  643. <span class="dim-score">8</span>
  644. </div>
  645. <span class="dim-arrow up-big">+3</span>
  646. </div>
  647. </div>
  648. </div>
  649. <!-- 6. 改进摘要 -->
  650. <div class="summary-section">
  651. <div class="summary-header">关键改进</div>
  652. <div class="summary-items">
  653. <div class="summary-item" data-field="improve-1">补充异常处理fallback路径,边界覆盖从4飙升到7</div>
  654. <div class="summary-item" data-field="improve-2">工作流重组为线性可执行步骤,每步可验证</div>
  655. <div class="summary-item" data-field="improve-3">测试prompt覆盖率从60%提升到95%,实测表现大幅进化</div>
  656. </div>
  657. </div>
  658. <!-- 7. 底部品牌条 -->
  659. <div class="footer">
  660. <div class="footer-left">
  661. <div class="footer-brand">Darwin<span class="dot">.</span>skill</div>
  662. <div class="footer-slogan">像训练模型一样进化你的Skills</div>
  663. </div>
  664. <div class="footer-right">
  665. <div class="footer-url">github.com/alchaincyf/darwin-skill</div>
  666. <div class="footer-by">by 花叔</div>
  667. </div>
  668. </div>
  669. </div>
  670. </body>
  671. </html>