diff --git a/web/src/lib/components/repo/CommitView.svelte b/web/src/lib/components/repo/CommitView.svelte
index 209190773..ce5be247f 100644
--- a/web/src/lib/components/repo/CommitView.svelte
+++ b/web/src/lib/components/repo/CommitView.svelte
@@ -106,7 +106,7 @@
const patch = $derived(browser && patchUrl ? getPatchStream(patchUrl) : undefined);
-
+
diff --git a/web/src/lib/components/repo/pierre.ts b/web/src/lib/components/repo/pierre.ts
index 94ac6bc38..c50b9909e 100644
--- a/web/src/lib/components/repo/pierre.ts
+++ b/web/src/lib/components/repo/pierre.ts
@@ -66,7 +66,7 @@ export const clearPierreRender = (host: HTMLElement): void => {
export const pierreCodeViewOptions = (style: DiffStyle) => ({
...PIERRE_BASE_OPTIONS,
diffStyle: style,
- diffIndicators: "classic" as const,
+ diffIndicators: "bars" as const,
lineDiffType: "word-alt" as const,
hunkSeparators: "line-info" as const,
overflow: "scroll" as const,
diff --git a/web/src/lib/components/repo/pierreDiff.css b/web/src/lib/components/repo/pierreDiff.css
index 4dba299e0..68a4b7525 100644
--- a/web/src/lib/components/repo/pierreDiff.css
+++ b/web/src/lib/components/repo/pierreDiff.css
@@ -8,6 +8,32 @@
--diffs-overflow-override: auto;
}
+[data-line],
+[data-no-newline] {
+ --mix-light: 0%;
+}
+
+[data-line-type="change-addition"][data-column-number]::before,
+[data-line-type="change-deletion"][data-column-number]::before {
+ width: 2px;
+}
+
+[data-line-type="change-addition"][data-column-number] {
+ --diffs-bg-addition-number-override: var(--diffs-bg-addition-override);
+ background-image: linear-gradient(
+ var(--diffs-bg-addition-emphasis),
+ var(--diffs-bg-addition-emphasis)
+ );
+}
+
+[data-line-type="change-deletion"][data-column-number] {
+ --diffs-bg-deletion-number-override: var(--diffs-bg-deletion-override);
+ background-image: linear-gradient(
+ var(--diffs-bg-deletion-emphasis),
+ var(--diffs-bg-deletion-emphasis)
+ );
+}
+
[data-diff] {
border: 1px solid var(--color-border-default);
border-top: 0;
@@ -73,6 +99,26 @@
content: "···";
}
+[data-diff-type="split"][data-overflow="scroll"] {
+ & [data-deletions] {
+ border-right-color: var(--color-border-default);
+ }
+
+ & [data-additions] {
+ border-left: 0;
+ }
+}
+
+[data-diff-type="split"][data-overflow="wrap"] {
+ & [data-deletions] [data-content] {
+ border-right-color: var(--color-border-default);
+ }
+
+ & [data-additions] [data-gutter] {
+ border-left: 0;
+ }
+}
+
[data-column-number],
[data-gutter-buffer],
[data-expand-button] {
diff --git a/web/src/pierre.css b/web/src/pierre.css
index a081fce86..2c69b58b9 100644
--- a/web/src/pierre.css
+++ b/web/src/pierre.css
@@ -15,13 +15,10 @@
--diffs-bg-separator-override: var(--color-background-inset);
--diffs-fg-number-override: var(--color-foreground-placeholder);
- /* pierre blends line backgrounds 88/12 (light) toward these, so they must
- be the saturated tokens. the *-color overrides drive the indicators and
- number gutter */
- --diffs-bg-addition-override: var(--color-foreground-success);
- --diffs-bg-deletion-override: var(--color-foreground-danger);
- --diffs-addition-color-override: var(--color-foreground-success-strong);
- --diffs-deletion-color-override: var(--color-foreground-danger-strong);
+ --diffs-bg-addition-override: var(--color-background-success-subtle);
+ --diffs-bg-deletion-override: var(--color-background-danger-subtle);
+ --diffs-addition-color-override: var(--color-foreground-success);
+ --diffs-deletion-color-override: var(--color-foreground-danger);
/* syntax palette — catppuccin latte */
--diffs-token-comment: #7c7f93; /* overlay2 */
@@ -73,12 +70,6 @@
@variant dark {
--diffs-fg-number-override: var(--color-foreground-subtle);
- /* the dark blend is 80/20, hence the subtle backgrounds */
- --diffs-bg-addition-override: var(--color-background-success-subtle);
- --diffs-bg-deletion-override: var(--color-background-danger-subtle);
- --diffs-addition-color-override: var(--color-foreground-success);
- --diffs-deletion-color-override: var(--color-foreground-danger);
-
/* catppuccin mocha text (background stays on the app token) */
--diffs-foreground: #cdd6f4;