✨ feat(vscode): 代码阅读预览标出新增 / 修改 / 删除的卡片(左侧改动色条、新增淡绿底挂小标、删掉的块原位收成一行可展开),筛选栏第二行写对比基准和改动统计,新文件顶部横幅

This commit is contained in:
cruldra committed 2026-09-30 08:41:55 +08:00
1 parent 2a5806c6b5
commit 3b7ce69842
10 files changed
+491 -20

No files matched your search

@@ -839,3 +839,95 @@ body:is(.vscode-light, .vscode-high-contrast-light) .cr-colored { color: var(--c
animation: none;
}
}
/*
* 代码差异:配色取 VS Code 编辑器行号旁的改动色带(新增绿、修改蓝、删除红),主题没给时用 Dark Modern 的默认值;
* 行内的字增删用 diff 编辑器的插入 / 删除文字底色
*/
body {
--cr-diff-add: var(--vscode-editorGutter-addedBackground, #2ea043);
--cr-diff-mod: var(--vscode-editorGutter-modifiedBackground, #0078d4);
--cr-diff-del: var(--vscode-editorGutter-deletedBackground, #f85149);
}
/* 卡片左边外侧的改动色条:3px 宽、和卡片等高;没变的卡片留一条透明的,同一层的卡片照样对齐 */
.cr-change-bar {
width: 3px;
flex-shrink: 0;
border-radius: 1.5px;
}
.cr-change-bar[data-change="add"] { background: var(--cr-diff-add); }
.cr-change-bar[data-change="mod"] { background: var(--cr-diff-mod); }
.cr-change-bar[data-change="del"] { background: var(--cr-diff-del); }
/* 卡片包了一层色条以后不再和子层相邻:悬停卡片时子层竖线换色改按外层认;问答区往右缩到和卡片对齐 */
.cr-change-row:has(> div > .cr-block:hover) + .cr-level > * > .cr-guide,
.cr-change-row:has(> div > .cr-block:hover) + .cr-qa + .cr-level > * > .cr-guide {
background: var(--kind);
}
.cr-change-row + .cr-qa {
margin-left: 8px;
}
/* 新增的卡片(连同它的子卡片):底色淡绿;最外面那张左上角压着「新增」小标 */
.cr-block[data-change="add"] {
background: color-mix(in srgb, var(--cr-diff-add) 10%, transparent);
}
.cr-block[data-change="add"]:hover {
background: color-mix(in srgb, var(--cr-diff-add) 16%, transparent);
}
.cr-added-badge {
position: absolute;
top: -8px;
left: 6px;
padding: 0 5px;
border-radius: 3px;
background: var(--cr-diff-add);
color: #fff;
font-size: 10px;
font-weight: 500;
line-height: 14px;
pointer-events: none;
}
/* 删掉的块:红色虚线边、淡红底、半透明,没有编辑、问 AI 按钮;展开后下面是旧内容,整张划掉 */
.cr-removed {
border: 1px dashed color-mix(in srgb, var(--cr-diff-del) 80%, transparent);
background: color-mix(in srgb, var(--cr-diff-del) 6%, transparent);
opacity: 0.6;
}
.cr-removed:hover {
opacity: 0.8;
}
.cr-removed-head {
color: var(--vscode-descriptionForeground);
}
.cr-removed-head:focus-visible {
outline: 1px solid var(--vscode-focusBorder);
outline-offset: 1px;
border-radius: 2px;
}
.cr-removed-label {
color: var(--cr-diff-del);
}
.cr-removed-title {
color: var(--cr-function);
font-family: var(--vscode-editor-font-family, monospace);
}
.cr-removed-old,
.cr-removed-old * {
text-decoration-line: line-through;
}
/* 筛选栏第二行:对比基准、改动统计、「只看改动」、上一处 / 下一处 */
.cr-diff-stat[data-change="add"] { color: var(--cr-diff-add); }
.cr-diff-stat[data-change="mod"] { color: var(--cr-diff-mod); }
.cr-diff-stat[data-change="del"] { color: var(--cr-diff-del); }
/* 基准里没有这个文件:顶部一条横幅,卡片不再逐张标绿 */
.cr-new-file {
border: 1px solid color-mix(in srgb, var(--cr-diff-add) 50%, transparent);
background: color-mix(in srgb, var(--cr-diff-add) 14%, transparent);
}
.cr-new-file > svg {
color: var(--cr-diff-add);
}