⚡ perf(vscode): 代码阅读预览差异到了不再给每张卡片外面包一层:改动色条画在卡片里、挪到卡片外侧,卡片不拆掉重建

This commit is contained in:
cruldra committed 2026-10-13 14:46:57 +11:00
1 parent 0ad4748cc6
commit b2e998665e
3 files changed
+93 -63

No files matched your search

+20 -16
View File
@@ -959,25 +959,24 @@ body {
--cr-diff-del: var(--vscode-editorGutter-deletedBackground, #f85149);
}
/* 卡片左边外侧的改动色条:3px 宽、和卡片等高;没变的卡片留一条透明的,同一层的卡片照样对齐 */
/*
* 卡片左边外侧的改动色条:3px 宽、和卡片等高,空 5px 再是卡片;没变的卡片留一条透明的,同一层的卡片照样对齐。
* 色条画在卡片里(标不标差异卡片都是同一个元素),标差异的那一层(data-diff)卡片、折起来的一段、问答区都往右让出 8px,色条挪进这 8px 里
*/
.cr-level[data-diff] > div > :is(.cr-block, .cr-unchanged, .cr-qa) {
margin-left: 8px;
}
.cr-change-bar {
position: absolute;
top: -1px;
bottom: -1px;
left: -9px;
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,
.cr-change-row:has(> div > .cr-block:hover) + .cr-qa + .cr-qa + .cr-level > * > .cr-guide {
background: var(--kind);
}
.cr-change-row + .cr-qa,
.cr-change-row + .cr-qa + .cr-qa {
margin-left: 8px;
}
/* 新增的卡片(连同它的子卡片):底色淡绿;最外面那张左上角压着「新增」小标 */
.cr-block[data-change="add"] {
@@ -1001,14 +1000,19 @@ body {
}
/* 删掉的块:红色虚线边、淡红底、半透明,没有编辑、问 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);
border: 1px dashed color-mix(in srgb, var(--cr-diff-del) 48%, transparent);
background: color-mix(in srgb, var(--cr-diff-del) 3.6%, transparent);
}
.cr-removed > :not(.cr-change-bar) {
opacity: 0.6;
}
.cr-block.cr-removed:hover {
border-color: var(--cr-diff-del);
background: color-mix(in srgb, var(--cr-diff-del) 10%, transparent);
border-color: color-mix(in srgb, var(--cr-diff-del) 80%, transparent);
background: color-mix(in srgb, var(--cr-diff-del) 8%, transparent);
}
.cr-block.cr-removed:hover > :not(.cr-change-bar) {
opacity: 0.8;
}
.cr-removed-head {