Update story-summary modules

This commit is contained in:
RT15548
2026-02-16 17:25:34 +08:00
parent 22d3002786
commit 3ea3a62cad
9 changed files with 1062 additions and 263 deletions

View File

@@ -20,6 +20,10 @@
padding-right: 4px;
}
.confirm-modal-box {
max-width: 440px;
}
.fact-group {
margin-bottom: 12px;
}
@@ -80,6 +84,7 @@
}
:root {
/* ── Base ── */
--bg: #fafafa;
--bg2: #fff;
--bg3: #f5f5f5;
@@ -90,7 +95,117 @@
--bdr2: #e8e8e8;
--acc: #1a1a1a;
--hl: #d87a7a;
--hl2: #d85858;
--hl-soft: rgba(184, 90, 90, .1);
--inv: #fff;
/* text on accent/primary bg */
/* ── Buttons ── */
--btn-p-hover: #555;
--btn-p-disabled: #999;
/* ── Status ── */
--warn: #ff9800;
--success: #22c55e;
--info: #3b82f6;
--downloading: #f59e0b;
--error: #ef4444;
/* ── Code blocks ── */
--code-bg: #1e1e1e;
--code-txt: #d4d4d4;
--muted: #999;
/* ── Overlay ── */
--overlay: rgba(0, 0, 0, .5);
/* ── Tag highlight border ── */
--tag-s-bdr: rgba(255, 68, 68, .2);
--tag-shadow: rgba(0, 0, 0, .08);
/* ── Category colors ── */
--cat-status: #e57373;
--cat-inventory: #64b5f6;
--cat-relation: #ba68c8;
--cat-knowledge: #4db6ac;
--cat-rule: #ffd54f;
/* ── Trend colors ── */
--trend-broken: #444;
--trend-broken-bg: rgba(68, 68, 68, .15);
--trend-hate: #8b0000;
--trend-hate-bg: rgba(139, 0, 0, .15);
--trend-dislike: #cd5c5c;
--trend-dislike-bg: rgba(205, 92, 92, .15);
--trend-stranger: #888;
--trend-stranger-bg: rgba(136, 136, 136, .15);
--trend-click: #4a9a7e;
--trend-click-bg: rgba(102, 205, 170, .15);
--trend-close-bg: rgba(235, 106, 106, .15);
--trend-merge: #c71585;
--trend-merge-bg: rgba(199, 21, 133, .2);
}
:root[data-theme="dark"] {
/* ── Base ── */
--bg: #121212;
--bg2: #1e1e1e;
--bg3: #2a2a2a;
--txt: #e0e0e0;
--txt2: #b0b0b0;
--txt3: #808080;
--bdr: #3a3a3a;
--bdr2: #333;
--acc: #e0e0e0;
--hl: #e8928a;
--hl2: #e07070;
--hl-soft: rgba(232, 146, 138, .12);
--inv: #1e1e1e;
/* ── Buttons ── */
--btn-p-hover: #ccc;
--btn-p-disabled: #666;
/* ── Status ── */
--warn: #ffb74d;
--success: #4caf50;
--info: #64b5f6;
--downloading: #ffa726;
--error: #ef5350;
/* ── Code blocks ── */
--code-bg: #0d0d0d;
--code-txt: #d4d4d4;
--muted: #777;
/* ── Overlay ── */
--overlay: rgba(0, 0, 0, .7);
/* ── Tag ── */
--tag-s-bdr: rgba(232, 146, 138, .3);
--tag-shadow: rgba(0, 0, 0, .3);
/* ── Category colors (softer for dark) ── */
--cat-status: #ef9a9a;
--cat-inventory: #90caf9;
--cat-relation: #ce93d8;
--cat-knowledge: #80cbc4;
--cat-rule: #ffe082;
/* ── Trend colors ── */
--trend-broken: #999;
--trend-broken-bg: rgba(153, 153, 153, .15);
--trend-hate: #ef5350;
--trend-hate-bg: rgba(239, 83, 80, .15);
--trend-dislike: #e57373;
--trend-dislike-bg: rgba(229, 115, 115, .15);
--trend-stranger: #aaa;
--trend-stranger-bg: rgba(170, 170, 170, .12);
--trend-click: #66bb6a;
--trend-click-bg: rgba(102, 187, 106, .15);
--trend-close-bg: rgba(232, 146, 138, .15);
--trend-merge: #f06292;
--trend-merge-bg: rgba(240, 98, 146, .15);
}
body {
@@ -204,7 +319,7 @@ h1 span {
.stat-warning {
font-size: .625rem;
color: #ff9800;
color: var(--warn);
margin-top: 4px;
}
@@ -306,17 +421,17 @@ h1 span {
.btn-p {
background: var(--acc);
color: #fff;
color: var(--inv);
border-color: var(--acc);
}
.btn-p:hover {
background: #555;
background: var(--btn-p-hover);
}
.btn-p:disabled {
background: #999;
border-color: #999;
background: var(--btn-p-disabled);
border-color: var(--btn-p-disabled);
cursor: not-allowed;
opacity: .7;
}
@@ -466,20 +581,20 @@ h1 span {
.tag.p {
background: var(--acc);
color: #fff;
color: var(--inv);
border-color: var(--acc);
font-weight: 500;
}
.tag.s {
background: var(--hl-soft);
border-color: rgba(255, 68, 68, .2);
border-color: var(--tag-s-bdr);
color: var(--hl);
}
.tag:hover {
transform: translateY(-2px);
box-shadow: 0 4px 12px rgba(0, 0, 0, .08);
box-shadow: 0 4px 12px var(--tag-shadow);
}
/* ═══════════════════════════════════════════════════════════════════════════
@@ -662,7 +777,7 @@ h1 span {
.prof-prog-inner {
height: 100%;
background: linear-gradient(90deg, var(--hl), #d85858);
background: linear-gradient(90deg, var(--hl), var(--hl2));
border-radius: 2px;
transition: width .6s;
}
@@ -769,38 +884,38 @@ h1 span {
}
.trend-broken {
background: rgba(68, 68, 68, .15);
color: #444;
background: var(--trend-broken-bg);
color: var(--trend-broken);
}
.trend-hate {
background: rgba(139, 0, 0, .15);
color: #8b0000;
background: var(--trend-hate-bg);
color: var(--trend-hate);
}
.trend-dislike {
background: rgba(205, 92, 92, .15);
color: #cd5c5c;
background: var(--trend-dislike-bg);
color: var(--trend-dislike);
}
.trend-stranger {
background: rgba(136, 136, 136, .15);
color: #888;
background: var(--trend-stranger-bg);
color: var(--trend-stranger);
}
.trend-click {
background: rgba(102, 205, 170, .15);
color: #4a9a7e;
background: var(--trend-click-bg);
color: var(--trend-click);
}
.trend-close {
background: rgba(235, 106, 106, .15);
background: var(--trend-close-bg);
color: var(--hl);
}
.trend-merge {
background: rgba(199, 21, 133, .2);
color: #c71585;
background: var(--trend-merge-bg);
color: var(--trend-merge);
}
/* ═══════════════════════════════════════════════════════════════════════════
@@ -913,7 +1028,7 @@ h1 span {
.modal-bg {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, .5);
background: var(--overlay);
backdrop-filter: blur(4px);
}
@@ -964,6 +1079,7 @@ h1 span {
.modal-close svg {
width: 14px;
height: 14px;
color: var(--txt);
}
.modal-body {
@@ -1031,7 +1147,7 @@ h1 span {
.editor-err {
padding: 12px;
background: var(--hl-soft);
border: 1px solid rgba(255, 68, 68, .3);
border: 1px solid var(--tag-s-bdr);
color: var(--hl);
font-size: .8125rem;
margin-top: 12px;
@@ -1301,24 +1417,24 @@ h1 span {
}
.status-dot.ready {
background: #22c55e;
background: var(--success);
}
.status-dot.cached {
background: #3b82f6;
background: var(--info);
}
.status-dot.downloading {
background: #f59e0b;
background: var(--downloading);
animation: pulse 1s infinite;
}
.status-dot.error {
background: #ef4444;
background: var(--error);
}
.status-dot.success {
background: #22c55e;
background: var(--success);
}
@keyframes pulse {
@@ -1346,7 +1462,7 @@ h1 span {
.progress-inner {
height: 100%;
background: linear-gradient(90deg, var(--hl), #d85858);
background: linear-gradient(90deg, var(--hl), var(--hl2));
border-radius: 3px;
width: 0%;
transition: width .3s;
@@ -1404,7 +1520,7 @@ h1 span {
.vector-mismatch-warning {
font-size: .75rem;
color: #f59e0b;
color: var(--downloading);
margin-top: 6px;
}
@@ -1458,7 +1574,7 @@ h1 span {
font-family: 'Consolas', 'Monaco', 'SF Mono', monospace;
font-size: 12px;
line-height: 1.6;
color: #e8e8e8;
color: var(--code-txt);
white-space: pre-wrap !important;
overflow-x: hidden !important;
word-break: break-word;
@@ -1468,7 +1584,7 @@ h1 span {
}
.recall-empty {
color: #999;
color: var(--muted);
text-align: center;
padding: 40px;
font-style: italic;
@@ -1555,7 +1671,7 @@ h1 span {
width: 28px;
height: 28px;
background: var(--acc);
color: #fff;
color: var(--inv);
border-radius: 50%;
display: flex;
align-items: center;
@@ -1648,7 +1764,7 @@ h1 span {
.hf-code {
margin: 0;
padding: 14px;
background: #1e1e1e;
background: var(--code-bg);
overflow-x: auto;
position: relative;
}
@@ -1657,7 +1773,7 @@ h1 span {
font-family: 'SF Mono', Monaco, Consolas, 'Courier New', monospace;
font-size: .75rem;
line-height: 1.5;
color: #d4d4d4;
color: var(--code-txt);
display: block;
white-space: pre;
}
@@ -1669,7 +1785,7 @@ h1 span {
padding: 4px 10px;
background: rgba(255, 255, 255, .1);
border: 1px solid rgba(255, 255, 255, .2);
color: #999;
color: var(--muted);
font-size: .6875rem;
cursor: pointer;
border-radius: 4px;
@@ -1678,14 +1794,14 @@ h1 span {
.hf-code .copy-btn:hover {
background: rgba(255, 255, 255, .2);
color: #fff;
color: var(--inv);
}
.hf-status-badge {
display: inline-block;
padding: 2px 10px;
background: rgba(34, 197, 94, .15);
color: #22c55e;
color: var(--success);
border-radius: 10px;
font-size: .75rem;
font-weight: 500;
@@ -2291,23 +2407,23 @@ h1 span {
/* 分类图标颜色 */
.world-group[data-category="status"] .world-group-title {
color: #e57373;
color: var(--cat-status);
}
.world-group[data-category="inventory"] .world-group-title {
color: #64b5f6;
color: var(--cat-inventory);
}
.world-group[data-category="relation"] .world-group-title {
color: #ba68c8;
color: var(--cat-relation);
}
.world-group[data-category="knowledge"] .world-group-title {
color: #4db6ac;
color: var(--cat-knowledge);
}
.world-group[data-category="rule"] .world-group-title {
color: #ffd54f;
color: var(--cat-rule);
}
/* 空状态 */
@@ -2444,7 +2560,7 @@ h1 span {
top: 2px;
width: 5px;
height: 10px;
border: solid #fff;
border: solid var(--inv);
border-width: 0 2px 2px 0;
transform: rotate(45deg);
}
@@ -2740,8 +2856,8 @@ h1 span {
═══════════════════════════════════════════════════════════════════════════ */
.debug-log-viewer {
background: #1a1a1a;
color: #e0e0e0;
background: var(--code-bg);
color: var(--code-txt);
padding: 16px;
border-radius: 8px;
font-family: 'Consolas', 'Monaco', 'SF Mono', monospace;
@@ -2756,7 +2872,7 @@ h1 span {
}
.recall-empty {
color: #999;
color: var(--muted);
text-align: center;
padding: 40px;
font-style: italic;
@@ -2775,15 +2891,15 @@ h1 span {
═══════════════════════════════════════════════════════════════════════════ */
#recall-log-content .metric-warn {
color: #f59e0b;
color: var(--downloading);
}
#recall-log-content .metric-error {
color: #ef4444;
color: var(--error);
}
#recall-log-content .metric-good {
color: #22c55e;
color: var(--success);
}
/* ═══════════════════════════════════════════════════════════════════════════
@@ -2825,7 +2941,7 @@ h1 span {
width: 26px;
height: 26px;
background: var(--acc);
color: #fff;
color: var(--inv);
border-radius: 50%;
display: flex;
align-items: center;
@@ -2872,7 +2988,7 @@ h1 span {
width: 22px;
height: 22px;
background: var(--hl);
color: #fff;
color: var(--inv);
border-radius: 50%;
display: flex;
align-items: center;
@@ -3103,7 +3219,7 @@ h1 span {
width: 18px;
height: 18px;
background: var(--acc);
color: #fff;
color: var(--inv);
border-radius: 3px;
font-size: .625rem;
font-weight: 700;
@@ -3304,8 +3420,8 @@ h1 span {
.neo-badge {
/* Explicitly requested Black Background & White Text */
background: #000;
color: #fff;
background: var(--acc);
color: var(--inv);
padding: 2px 8px;
border-radius: 4px;
font-size: 0.75rem;