ui-design-mockups-v3.html 29 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040
  1. <!-- Generated by Trae Work -->
  2. <!DOCTYPE html>
  3. <html lang="zh-CN">
  4. <head>
  5. <meta charset="UTF-8">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>青幕AI写作 · UI 高保真设计稿 v3</title>
  8. <style>
  9. :root {
  10. --bg: #fafaf8;
  11. --surface: #ffffff;
  12. --ink: #1c1c1c;
  13. --ink-secondary: #4a4a48;
  14. --muted: #8c8a86;
  15. --rule: #e5e3de;
  16. --rule-strong: #d4d0c8;
  17. /* LOGO 色系提升饱和度后的东方青 */
  18. --qing: #0d7377;
  19. --qing-deep: #095c5f;
  20. --qing-light: rgba(13, 115, 119, 0.08);
  21. --cinnabar: #b85450;
  22. --paper: #f5f3ed;
  23. --paper-warm: #faf8f2;
  24. --radius-sm: 4px;
  25. --radius-md: 6px;
  26. --radius-lg: 8px;
  27. --shadow-soft: 0 1px 2px rgba(0,0,0,0.04);
  28. }
  29. * { box-sizing: border-box; }
  30. html { scroll-behavior: smooth; }
  31. body {
  32. margin: 0;
  33. font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", sans-serif;
  34. background: var(--bg);
  35. color: var(--ink);
  36. line-height: 1.6;
  37. -webkit-font-smoothing: antialiased;
  38. }
  39. .container {
  40. max-width: 1160px;
  41. margin: 0 auto;
  42. padding: 64px 32px;
  43. }
  44. header {
  45. margin-bottom: 80px;
  46. padding-bottom: 48px;
  47. border-bottom: 1px solid var(--rule);
  48. }
  49. header h1 {
  50. font-size: 1.875rem;
  51. font-weight: 600;
  52. margin: 0 0 12px;
  53. letter-spacing: -0.01em;
  54. color: var(--ink);
  55. }
  56. header p {
  57. font-size: 0.95rem;
  58. color: var(--muted);
  59. max-width: 620px;
  60. line-height: 1.7;
  61. margin: 0;
  62. }
  63. .section {
  64. margin-bottom: 96px;
  65. }
  66. .section-title {
  67. font-size: 1.375rem;
  68. font-weight: 600;
  69. margin-bottom: 10px;
  70. color: var(--ink);
  71. }
  72. .section-desc {
  73. color: var(--muted);
  74. margin-bottom: 36px;
  75. font-size: 0.9rem;
  76. line-height: 1.7;
  77. }
  78. /* === SVG Icons === */
  79. .icon {
  80. width: 18px;
  81. height: 18px;
  82. stroke: currentColor;
  83. stroke-width: 1.5;
  84. fill: none;
  85. stroke-linecap: round;
  86. stroke-linejoin: round;
  87. }
  88. .icon-sm { width: 14px; height: 14px; stroke-width: 1.5; }
  89. .icon-lg { width: 22px; height: 22px; }
  90. /* === Color rationale banner === */
  91. .color-rationale {
  92. display: flex;
  93. gap: 24px;
  94. margin-bottom: 48px;
  95. padding: 24px;
  96. background: var(--paper);
  97. border: 1px solid var(--rule);
  98. border-radius: var(--radius-md);
  99. }
  100. .color-swatch {
  101. display: flex;
  102. align-items: center;
  103. gap: 12px;
  104. }
  105. .swatch-dot {
  106. width: 40px;
  107. height: 40px;
  108. border-radius: 50%;
  109. border: 1px solid var(--rule);
  110. }
  111. .swatch-info {
  112. font-size: 0.8rem;
  113. color: var(--muted);
  114. }
  115. .swatch-name {
  116. font-weight: 600;
  117. color: var(--ink);
  118. font-size: 0.85rem;
  119. }
  120. /* === Frames === */
  121. .frame {
  122. background: var(--surface);
  123. border: 1px solid var(--rule);
  124. border-radius: var(--radius-lg);
  125. overflow: hidden;
  126. box-shadow: var(--shadow-soft);
  127. }
  128. .frame-label {
  129. font-size: 0.7rem;
  130. color: var(--muted);
  131. margin-bottom: 12px;
  132. text-transform: uppercase;
  133. letter-spacing: 0.08em;
  134. }
  135. /* === Direction: Oriental Writing with Qing === */
  136. .welcome-asymmetric {
  137. min-height: 520px;
  138. background: var(--paper-warm);
  139. display: grid;
  140. grid-template-columns: 1.2fr 1fr;
  141. }
  142. @media (max-width: 900px) {
  143. .welcome-asymmetric { grid-template-columns: 1fr; }
  144. .container { padding: 40px 20px; }
  145. }
  146. .welcome-left {
  147. padding: 72px 64px;
  148. display: flex;
  149. flex-direction: column;
  150. justify-content: space-between;
  151. }
  152. .welcome-top {
  153. display: flex;
  154. align-items: flex-start;
  155. gap: 24px;
  156. }
  157. .logo-mark {
  158. width: 56px;
  159. height: 56px;
  160. background: var(--qing);
  161. border-radius: var(--radius-md);
  162. display: flex;
  163. align-items: center;
  164. justify-content: center;
  165. color: white;
  166. font-family: "Songti SC", "Noto Serif SC", "SimSun", serif;
  167. font-size: 26px;
  168. font-weight: 700;
  169. flex-shrink: 0;
  170. box-shadow: 0 2px 8px rgba(13, 115, 119, 0.2);
  171. }
  172. .welcome-title-block h2 {
  173. font-family: "Songti SC", "Noto Serif SC", "SimSun", serif;
  174. font-size: 2.25rem;
  175. font-weight: 700;
  176. margin: 0 0 10px;
  177. color: var(--ink);
  178. letter-spacing: 0.04em;
  179. }
  180. .welcome-title-block .subtitle {
  181. font-size: 0.95rem;
  182. color: var(--muted);
  183. line-height: 1.6;
  184. }
  185. .welcome-actions {
  186. display: flex;
  187. gap: 14px;
  188. margin-top: auto;
  189. padding-top: 48px;
  190. }
  191. .btn {
  192. padding: 12px 24px;
  193. border-radius: var(--radius-sm);
  194. font-size: 0.85rem;
  195. font-weight: 500;
  196. cursor: pointer;
  197. transition: all 0.12s ease;
  198. border: none;
  199. }
  200. .btn-primary {
  201. background: var(--qing);
  202. color: white;
  203. }
  204. .btn-primary:hover {
  205. background: var(--qing-deep);
  206. }
  207. .btn-secondary {
  208. background: transparent;
  209. color: var(--ink);
  210. border: 1px solid var(--rule-strong);
  211. }
  212. .btn-secondary:hover {
  213. border-color: var(--qing);
  214. color: var(--qing);
  215. }
  216. .welcome-right {
  217. background: var(--surface);
  218. border-left: 1px solid var(--rule);
  219. padding: 48px;
  220. display: flex;
  221. flex-direction: column;
  222. }
  223. .recent-header {
  224. display: flex;
  225. align-items: baseline;
  226. justify-content: space-between;
  227. margin-bottom: 24px;
  228. }
  229. .recent-title {
  230. font-size: 0.75rem;
  231. color: var(--muted);
  232. text-transform: uppercase;
  233. letter-spacing: 0.08em;
  234. font-weight: 600;
  235. }
  236. .recent-more {
  237. font-size: 0.75rem;
  238. color: var(--qing);
  239. cursor: pointer;
  240. }
  241. .recent-item {
  242. padding: 18px 0;
  243. border-bottom: 1px solid var(--rule);
  244. cursor: pointer;
  245. transition: opacity 0.12s ease;
  246. }
  247. .recent-item:hover {
  248. opacity: 0.7;
  249. }
  250. .recent-item-title {
  251. font-size: 0.95rem;
  252. font-weight: 500;
  253. color: var(--ink);
  254. margin-bottom: 4px;
  255. font-family: "Songti SC", "Noto Serif SC", "SimSun", serif;
  256. }
  257. .recent-item-meta {
  258. font-size: 0.75rem;
  259. color: var(--muted);
  260. }
  261. .empty-tip {
  262. margin-top: auto;
  263. padding-top: 32px;
  264. font-size: 0.8rem;
  265. color: var(--muted);
  266. line-height: 1.6;
  267. border-top: 1px solid var(--rule);
  268. }
  269. /* === Main interface === */
  270. .main-interface {
  271. display: flex;
  272. height: 520px;
  273. background: var(--surface);
  274. }
  275. .rail {
  276. width: 54px;
  277. background: var(--paper);
  278. border-right: 1px solid var(--rule);
  279. display: flex;
  280. flex-direction: column;
  281. align-items: center;
  282. padding: 16px 0;
  283. gap: 6px;
  284. }
  285. .rail-btn {
  286. width: 38px;
  287. height: 38px;
  288. border-radius: var(--radius-sm);
  289. display: flex;
  290. align-items: center;
  291. justify-content: center;
  292. color: var(--muted);
  293. transition: all 0.12s ease;
  294. cursor: pointer;
  295. }
  296. .rail-btn:hover {
  297. color: var(--ink);
  298. background: rgba(0,0,0,0.03);
  299. }
  300. .rail-btn.active {
  301. color: var(--qing);
  302. background: var(--qing-light);
  303. }
  304. .sidebar {
  305. width: 250px;
  306. background: var(--surface);
  307. border-right: 1px solid var(--rule);
  308. display: flex;
  309. flex-direction: column;
  310. }
  311. .sidebar-header {
  312. padding: 18px 20px;
  313. font-weight: 600;
  314. font-size: 0.85rem;
  315. border-bottom: 1px solid var(--rule);
  316. color: var(--ink);
  317. display: flex;
  318. align-items: center;
  319. justify-content: space-between;
  320. }
  321. .tree {
  322. flex: 1;
  323. padding: 12px;
  324. overflow: auto;
  325. }
  326. .tree-item {
  327. padding: 8px 10px;
  328. border-radius: var(--radius-sm);
  329. font-size: 0.8rem;
  330. color: var(--muted);
  331. margin-bottom: 2px;
  332. display: flex;
  333. align-items: center;
  334. gap: 10px;
  335. cursor: pointer;
  336. transition: all 0.1s ease;
  337. }
  338. .tree-item:hover {
  339. background: rgba(0,0,0,0.02);
  340. color: var(--ink);
  341. }
  342. .tree-item.active {
  343. background: var(--qing-light);
  344. color: var(--qing-deep);
  345. font-weight: 500;
  346. }
  347. .content-area {
  348. flex: 1;
  349. background: #fffef8;
  350. padding: 48px 72px;
  351. overflow: auto;
  352. }
  353. .content-inner {
  354. max-width: 680px;
  355. margin: 0 auto;
  356. }
  357. .editor-header {
  358. display: flex;
  359. align-items: center;
  360. justify-content: space-between;
  361. margin-bottom: 32px;
  362. padding-bottom: 16px;
  363. border-bottom: 1px solid var(--rule);
  364. }
  365. .editor-title {
  366. font-family: "Songti SC", "Noto Serif SC", "SimSun", serif;
  367. font-size: 1.625rem;
  368. font-weight: 700;
  369. margin: 0;
  370. color: var(--ink);
  371. letter-spacing: 0.04em;
  372. }
  373. .editor-meta {
  374. font-size: 0.75rem;
  375. color: var(--muted);
  376. }
  377. .content-area p {
  378. color: var(--ink);
  379. line-height: 2;
  380. font-size: 1rem;
  381. margin: 0 0 20px;
  382. text-align: justify;
  383. }
  384. /* === Settings === */
  385. .settings-interface {
  386. display: flex;
  387. height: 480px;
  388. background: var(--surface);
  389. }
  390. .settings-nav {
  391. width: 220px;
  392. background: var(--paper);
  393. border-right: 1px solid var(--rule);
  394. padding: 16px;
  395. }
  396. .settings-group {
  397. margin-bottom: 24px;
  398. }
  399. .settings-group-title {
  400. font-size: 0.65rem;
  401. color: var(--muted);
  402. text-transform: uppercase;
  403. letter-spacing: 0.1em;
  404. margin-bottom: 8px;
  405. padding: 0 10px;
  406. }
  407. .settings-item {
  408. padding: 9px 10px;
  409. border-radius: var(--radius-sm);
  410. font-size: 0.8rem;
  411. color: var(--ink-secondary);
  412. margin-bottom: 2px;
  413. cursor: pointer;
  414. transition: all 0.1s ease;
  415. }
  416. .settings-item:hover {
  417. background: rgba(0,0,0,0.03);
  418. }
  419. .settings-item.active {
  420. background: var(--qing-light);
  421. color: var(--qing-deep);
  422. font-weight: 500;
  423. }
  424. .settings-body {
  425. flex: 1;
  426. padding: 40px 48px;
  427. overflow: auto;
  428. }
  429. .setting-section {
  430. max-width: 560px;
  431. margin-bottom: 32px;
  432. }
  433. .setting-section-title {
  434. font-size: 1rem;
  435. font-weight: 600;
  436. margin-bottom: 20px;
  437. color: var(--ink);
  438. }
  439. .form-row {
  440. display: flex;
  441. align-items: center;
  442. justify-content: space-between;
  443. padding: 14px 0;
  444. border-bottom: 1px solid var(--rule);
  445. }
  446. .form-label {
  447. font-size: 0.85rem;
  448. color: var(--ink-secondary);
  449. }
  450. .form-input {
  451. width: 260px;
  452. padding: 8px 12px;
  453. border: 1px solid var(--rule-strong);
  454. border-radius: var(--radius-sm);
  455. font-size: 0.8rem;
  456. color: var(--ink);
  457. background: var(--paper-warm);
  458. }
  459. .form-input:focus {
  460. outline: none;
  461. border-color: var(--qing);
  462. }
  463. /* === Component details === */
  464. .detail-grid {
  465. display: grid;
  466. grid-template-columns: repeat(3, 1fr);
  467. gap: 20px;
  468. }
  469. @media (max-width: 900px) {
  470. .detail-grid { grid-template-columns: 1fr; }
  471. }
  472. .detail-card {
  473. background: var(--surface);
  474. border: 1px solid var(--rule);
  475. border-radius: var(--radius-md);
  476. padding: 24px;
  477. }
  478. .detail-card h4 {
  479. font-size: 0.7rem;
  480. color: var(--muted);
  481. text-transform: uppercase;
  482. letter-spacing: 0.08em;
  483. margin: 0 0 18px;
  484. font-weight: 600;
  485. }
  486. .btn-row {
  487. display: flex;
  488. flex-direction: column;
  489. gap: 10px;
  490. align-items: flex-start;
  491. }
  492. .rail-demo {
  493. display: flex;
  494. gap: 8px;
  495. }
  496. .rail-demo-btn {
  497. width: 36px;
  498. height: 36px;
  499. border-radius: var(--radius-sm);
  500. display: flex;
  501. align-items: center;
  502. justify-content: center;
  503. color: var(--muted);
  504. transition: all 0.12s ease;
  505. }
  506. .rail-demo-btn:hover {
  507. color: var(--ink);
  508. background: rgba(0,0,0,0.03);
  509. }
  510. .rail-demo-btn.active {
  511. color: var(--qing);
  512. background: var(--qing-light);
  513. }
  514. .notification-demo {
  515. background: var(--paper-warm);
  516. border: 1px solid var(--rule);
  517. border-radius: var(--radius-md);
  518. padding: 16px;
  519. }
  520. .notification-header {
  521. display: flex;
  522. align-items: center;
  523. justify-content: space-between;
  524. margin-bottom: 10px;
  525. }
  526. .notification-title {
  527. font-weight: 600;
  528. font-size: 0.85rem;
  529. color: var(--ink);
  530. }
  531. .notification-meta {
  532. font-size: 0.7rem;
  533. color: var(--muted);
  534. }
  535. .progress-subtle {
  536. height: 3px;
  537. background: var(--rule);
  538. border-radius: 2px;
  539. overflow: hidden;
  540. }
  541. .progress-subtle-fill {
  542. height: 100%;
  543. width: 58%;
  544. background: var(--qing);
  545. border-radius: 2px;
  546. }
  547. .chat-demo {
  548. display: flex;
  549. flex-direction: column;
  550. gap: 10px;
  551. }
  552. .chat-msg {
  553. max-width: 92%;
  554. padding: 14px 16px;
  555. border-radius: var(--radius-md);
  556. font-size: 0.8rem;
  557. line-height: 1.55;
  558. background: var(--paper-warm);
  559. border: 1px solid var(--rule);
  560. }
  561. .chat-msg-header {
  562. display: flex;
  563. align-items: center;
  564. gap: 8px;
  565. margin-bottom: 6px;
  566. }
  567. .chat-avatar {
  568. width: 18px;
  569. height: 18px;
  570. border-radius: 50%;
  571. background: var(--qing);
  572. display: flex;
  573. align-items: center;
  574. justify-content: center;
  575. color: white;
  576. font-size: 7px;
  577. font-weight: 700;
  578. }
  579. .chat-name {
  580. font-size: 0.7rem;
  581. font-weight: 600;
  582. color: var(--ink);
  583. }
  584. .chat-actions-refined {
  585. display: flex;
  586. gap: 14px;
  587. margin-top: 10px;
  588. }
  589. .chat-action-refined {
  590. font-size: 0.7rem;
  591. color: var(--qing);
  592. cursor: pointer;
  593. transition: opacity 0.12s ease;
  594. }
  595. .chat-action-refined:hover {
  596. opacity: 0.7;
  597. }
  598. /* === Notes === */
  599. .notes {
  600. background: var(--paper);
  601. border: 1px solid var(--rule);
  602. border-radius: var(--radius-md);
  603. padding: 28px;
  604. margin-top: 40px;
  605. }
  606. .notes h3 {
  607. font-size: 1rem;
  608. font-weight: 600;
  609. margin: 0 0 12px;
  610. color: var(--ink);
  611. }
  612. .notes ul {
  613. margin: 0;
  614. padding-left: 18px;
  615. color: var(--ink-secondary);
  616. font-size: 0.85rem;
  617. line-height: 1.8;
  618. }
  619. footer {
  620. padding: 48px 0;
  621. color: var(--muted);
  622. font-size: 0.8rem;
  623. border-top: 1px solid var(--rule);
  624. margin-top: 40px;
  625. }
  626. </style>
  627. </head>
  628. <body>
  629. <div class="container">
  630. <header>
  631. <h1>青幕AI写作 · UI 高保真设计稿 v3</h1>
  632. <p>基于软件 LOGO 的灰青色系,提取更高饱和度的东方青色(#0d7377)作为主色,融入宣纸白与浓墨黑的东方书写美学,同时避免居中对齐与过度装饰,降低 AI 感。</p>
  633. </header>
  634. <!-- Color rationale -->
  635. <section class="section">
  636. <h2 class="section-title">色彩来源</h2>
  637. <p class="section-desc">从现有 LOGO 的灰青色出发,提升饱和度后得到「石青 / 孔雀绿」,既保留了品牌色相,又让软件在桌面端更有辨识度。</p>
  638. <div class="color-rationale">
  639. <div class="color-swatch">
  640. <div class="swatch-dot" style="background: #b8c9c9;"></div>
  641. <div class="swatch-info">
  642. <div class="swatch-name">原 LOGO 灰青</div>
  643. <div>#b8c9c9 · 饱和度低</div>
  644. </div>
  645. </div>
  646. <div class="color-swatch">
  647. <div class="swatch-dot" style="background: #0d7377;"></div>
  648. <div class="swatch-info">
  649. <div class="swatch-name">提升饱和度后的东方青</div>
  650. <div>#0d7377 · 石青 / 孔雀绿</div>
  651. </div>
  652. </div>
  653. <div class="color-swatch">
  654. <div class="swatch-dot" style="background: #b85450;"></div>
  655. <div class="swatch-info">
  656. <div class="swatch-name">朱砂点缀</div>
  657. <div>#b85450 · 错误/强调</div>
  658. </div>
  659. </div>
  660. <div class="color-swatch">
  661. <div class="swatch-dot" style="background: #f5f3ed; border-color: #d4d0c8;"></div>
  662. <div class="swatch-info">
  663. <div class="swatch-name">宣纸白</div>
  664. <div>#f5f3ed · 背景底色</div>
  665. </div>
  666. </div>
  667. </div>
  668. </section>
  669. <!-- Welcome -->
  670. <section class="section">
  671. <h2 class="section-title">欢迎页</h2>
  672. <p class="section-desc">改为左对齐不对称布局,左侧留白更多,右侧最近项目独立成区。LOGO 使用高饱和东方青,标题使用宋体。</p>
  673. <div class="frame-label">东方青主题 · 欢迎页</div>
  674. <div class="frame">
  675. <div class="welcome-asymmetric">
  676. <div class="welcome-left">
  677. <div class="welcome-top">
  678. <div class="logo-mark">青</div>
  679. <div class="welcome-title-block">
  680. <h2>青幕AI写作</h2>
  681. <div class="subtitle">面向长篇小说的 AI 写作桌面端系统</div>
  682. </div>
  683. </div>
  684. <div class="welcome-actions">
  685. <button class="btn btn-primary">新建小说</button>
  686. <button class="btn btn-secondary">打开项目</button>
  687. <button class="btn btn-secondary">恢复数据</button>
  688. </div>
  689. </div>
  690. <div class="welcome-right">
  691. <div class="recent-header">
  692. <span class="recent-title">最近项目</span>
  693. <span class="recent-more">查看全部</span>
  694. </div>
  695. <div class="recent-item">
  696. <div class="recent-item-title">都市异能录</div>
  697. <div class="recent-item-meta">D:\Works\都市异能录 · 2 小时前</div>
  698. </div>
  699. <div class="recent-item">
  700. <div class="recent-item-title">星海远航</div>
  701. <div class="recent-item-meta">D:\Works\星海远航 · 昨天</div>
  702. </div>
  703. <div class="recent-item">
  704. <div class="recent-item-title">山河故人</div>
  705. <div class="recent-item-meta">D:\Works\山河故人 · 3 天前</div>
  706. </div>
  707. <div class="empty-tip">
  708. 提示:使用 Ctrl+N 可快速新建小说,Ctrl+O 打开已有项目。
  709. </div>
  710. </div>
  711. </div>
  712. </div>
  713. </section>
  714. <!-- Main interface -->
  715. <section class="section">
  716. <h2 class="section-title">主界面 · 写作区</h2>
  717. <p class="section-desc">三栏布局保留,但图标栏、章节库、写作区通过底色和 1px 边框自然分隔。激活态使用东方青浅色背景,无渐变、无大阴影。</p>
  718. <div class="frame-label">东方青主题 · 写作区</div>
  719. <div class="frame">
  720. <div class="main-interface">
  721. <div class="rail">
  722. <div class="rail-btn active">
  723. <svg class="icon" viewBox="0 0 24 24"><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"/></svg>
  724. </div>
  725. <div class="rail-btn">
  726. <svg class="icon" viewBox="0 0 24 24"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/></svg>
  727. </div>
  728. <div class="rail-btn">
  729. <svg class="icon" viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
  730. </div>
  731. <div class="rail-btn">
  732. <svg class="icon" viewBox="0 0 24 24"><rect x="3" y="3" width="18" height="18" rx="2" ry="2"/><line x1="3" y1="9" x2="21" y2="9"/><line x1="9" y1="21" x2="9" y2="9"/></svg>
  733. </div>
  734. <div style="flex:1"></div>
  735. <div class="rail-btn">
  736. <svg class="icon" viewBox="0 0 24 24"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"/></svg>
  737. </div>
  738. </div>
  739. <div class="sidebar">
  740. <div class="sidebar-header">
  741. 章节库
  742. <svg class="icon icon-sm" viewBox="0 0 24 24"><line x1="12" y1="5" x2="12" y2="19"/><line x1="5" y1="12" x2="19" y2="12"/></svg>
  743. </div>
  744. <div class="tree">
  745. <div class="tree-item">
  746. <svg class="icon icon-sm" viewBox="0 0 24 24"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/></svg>
  747. 第一卷:觉醒
  748. </div>
  749. <div class="tree-item active">
  750. <svg class="icon icon-sm" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>
  751. 第1章 异变
  752. </div>
  753. <div class="tree-item">
  754. <svg class="icon icon-sm" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>
  755. 第2章 初识
  756. </div>
  757. <div class="tree-item">
  758. <svg class="icon icon-sm" viewBox="0 0 24 24"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/></svg>
  759. 第二卷:成长
  760. </div>
  761. <div class="tree-item">
  762. <svg class="icon icon-sm" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>
  763. 第3章 试炼
  764. </div>
  765. </div>
  766. </div>
  767. <div class="content-area">
  768. <div class="content-inner">
  769. <div class="editor-header">
  770. <h1 class="editor-title">第1章 异变</h1>
  771. <span class="editor-meta">1,248 字 · 自动保存于 14:32</span>
  772. </div>
  773. <p>夜色深沉,城市的霓虹灯在雨幕中晕染成模糊的光斑。林默站在天桥上,望着脚下川流不息的车河,手中的咖啡早已凉透。</p>
  774. <p>他不知道,从这一刻起,自己的命运将被彻底改写。</p>
  775. <p>一道闪电划破天际,伴随着震耳欲聋的雷鸣。林默只觉得后颈一阵刺痛,仿佛有什么东西正从他的脊椎深处苏醒。</p>
  776. </div>
  777. </div>
  778. </div>
  779. </div>
  780. </section>
  781. <!-- Settings -->
  782. <section class="section">
  783. <h2 class="section-title">设置页</h2>
  784. <p class="section-desc">左侧分组导航,右侧表单卡片化。保持东方青的点缀,同时避免过度装饰。</p>
  785. <div class="frame-label">东方青主题 · 设置页</div>
  786. <div class="frame">
  787. <div class="settings-interface">
  788. <div class="settings-nav">
  789. <div class="settings-group">
  790. <div class="settings-group-title">AI 配置</div>
  791. <div class="settings-item active">模型设置</div>
  792. <div class="settings-item">嵌入模型</div>
  793. <div class="settings-item">网络代理</div>
  794. </div>
  795. <div class="settings-group">
  796. <div class="settings-group-title">应用</div>
  797. <div class="settings-item">界面设置</div>
  798. <div class="settings-item">小说设置</div>
  799. <div class="settings-item">维护</div>
  800. </div>
  801. </div>
  802. <div class="settings-body">
  803. <div class="setting-section">
  804. <div class="setting-section-title">LLM 提供商</div>
  805. <div class="form-row">
  806. <span class="form-label">API 提供商</span>
  807. <input class="form-input" value="OpenAI" readonly>
  808. </div>
  809. <div class="form-row">
  810. <span class="form-label">模型</span>
  811. <input class="form-input" value="gpt-4.1-mini" readonly>
  812. </div>
  813. <div class="form-row">
  814. <span class="form-label">API Key</span>
  815. <input class="form-input" value="sk-••••••••" type="password" readonly>
  816. </div>
  817. </div>
  818. <div class="setting-section">
  819. <div class="setting-section-title">生成参数</div>
  820. <div class="form-row">
  821. <span class="form-label">最大上下文长度</span>
  822. <input class="form-input" value="204800" readonly>
  823. </div>
  824. <div class="form-row">
  825. <span class="form-label">温度</span>
  826. <input class="form-input" value="0.7" readonly>
  827. </div>
  828. </div>
  829. </div>
  830. </div>
  831. </div>
  832. </section>
  833. <!-- Component details -->
  834. <section class="section">
  835. <h2 class="section-title">关键组件细节</h2>
  836. <p class="section-desc">按钮、图标栏、通知、聊天消息均采用东方青色系,保持一致的克制质感。</p>
  837. <div class="detail-grid">
  838. <div class="detail-card">
  839. <h4>按钮层次</h4>
  840. <div class="btn-row">
  841. <button class="btn btn-primary">主要操作</button>
  842. <button class="btn btn-secondary">次要操作</button>
  843. <button class="btn" style="background: transparent; color: var(--muted); padding-left: 0;">文字按钮</button>
  844. </div>
  845. </div>
  846. <div class="detail-card">
  847. <h4>图标栏状态</h4>
  848. <div class="rail-demo">
  849. <div class="rail-demo-btn active">
  850. <svg class="icon" viewBox="0 0 24 24"><path d="M12 20h9"/><path d="M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z"/></svg>
  851. </div>
  852. <div class="rail-demo-btn">
  853. <svg class="icon" viewBox="0 0 24 24"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/></svg>
  854. </div>
  855. <div class="rail-demo-btn">
  856. <svg class="icon" viewBox="0 0 24 24"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.35-4.35"/></svg>
  857. </div>
  858. </div>
  859. <p style="font-size: 0.75rem; color: var(--muted); margin-top: 14px;">激活态使用 8% 东方青透明背景</p>
  860. </div>
  861. <div class="detail-card">
  862. <h4>后台任务通知</h4>
  863. <div class="notification-demo">
  864. <div class="notification-header">
  865. <span class="notification-title">正在生成章节大纲</span>
  866. <span class="notification-meta">58%</span>
  867. </div>
  868. <div class="progress-subtle">
  869. <div class="progress-subtle-fill"></div>
  870. </div>
  871. </div>
  872. </div>
  873. <div class="detail-card">
  874. <h4>AI 消息</h4>
  875. <div class="chat-demo">
  876. <div class="chat-msg">
  877. <div class="chat-msg-header">
  878. <div class="chat-avatar">AI</div>
  879. <span class="chat-name">青幕助手</span>
  880. </div>
  881. 已生成本章续写建议,你可以直接复制或保存到章节库。
  882. <div class="chat-actions-refined">
  883. <span class="chat-action-refined">复制</span>
  884. <span class="chat-action-refined">保存</span>
  885. <span class="chat-action-refined">重试</span>
  886. </div>
  887. </div>
  888. </div>
  889. </div>
  890. </div>
  891. </section>
  892. <!-- Notes -->
  893. <section class="section">
  894. <h2 class="section-title">降低 AI 感的关键调整</h2>
  895. <div class="notes">
  896. <h3>相比上一版的改动</h3>
  897. <ul>
  898. <li>去掉居中对齐,改用左对齐 + 不对称网格布局</li>
  899. <li>去掉所有渐变,仅使用纯色和 1px 边框</li>
  900. <li>圆角从 12px 缩小到 4-8px,更接近原生桌面应用</li>
  901. <li>图标全部使用 SVG 线条图标,无 emoji</li>
  902. <li>LOGO 容器使用高饱和东方青,提升品牌辨识度</li>
  903. <li>增加宣纸暖白背景,避免死白</li>
  904. <li>标题使用宋体,正文使用系统黑体,形成字体对比</li>
  905. <li>减少装饰元素,通过留白和排版建立层次</li>
  906. </ul>
  907. </div>
  908. </section>
  909. <footer>
  910. <p>青幕AI写作 UI 设计优化方案 · 高保真参考稿 v3 · 2026-06-29</p>
  911. <p style="margin-top: 6px;">基于 LOGO 色系提升饱和度 · 东方书写美学</p>
  912. </footer>
  913. </div>
  914. </body>
  915. </html>