/* injected into pierre's shadow dom through FileDiff's unsafeCSS option, which lands in its last cascade layer. pierre guarantees nothing about this markup between releases, patch ones included: https://diffs.com/docs#styling */ :host { /* we render our own file header, pierre's is disabled */ --diffs-gap-block: 0; --diffs-overflow-override: auto; } [data-separator] { block-size: 21px; font-size: 14px; line-height: 21px; color: var(--diffs-fg-number-override, #9ca3af); } [data-separator="line-info"] { margin-block: 0; } [data-unified] [data-separator="line-info"] [data-separator-wrapper] { padding-inline: 0; } [data-gutter] [data-separator="line-info"] [data-separator-wrapper] { padding-left: 0; } /* pierre full-widths the unified separator and the split additions bar but not the split deletions one, and that is the one carrying the count text */ [data-deletions] [data-gutter] [data-separator="line-info"] [data-separator-wrapper] { width: 100cqi; } [data-separator="line-info"] [data-separator-content], [data-separator="line-info"] [data-expand-button], [data-additions] [data-gutter] [data-separator="line-info"] [data-separator-wrapper] { border-radius: 0; } [data-separator-content] { justify-content: center; } [data-separator="simple"] { display: flex; align-items: center; justify-content: center; } [data-separator="simple"]::after { content: "···"; } [data-column-number], [data-gutter-buffer], [data-expand-button] { border-right: 0; } /* pierre pads every line with a trailing 1ch, and the content column sizes to max-content, so that pad rides into the scroll width: a file whose longest line stops within 1ch of the edge scrolls sideways over nothing. wrap mode keeps it, there the pad is the right inset of the text block */ [data-overflow="scroll"] [data-line], [data-overflow="scroll"] [data-no-newline] { padding-inline-end: 0; } /* firefox reserves an inline-end gutter for a vertical scrollbar that overflow-y:hidden can never show, so the scrollport ends up ~11px narrower than the box — but 100cqi, which pierre uses to full-width the separator bars, still measures the full box. those 11px are a sideways scroll over nothing. chromium never saw it: pierre zeroes its webkit scrollbar, so its reserved gutter is already 0 */ [data-code] { scrollbar-gutter: auto; } [data-expand-button] { & > svg[data-icon] { width: 14px; height: 14px; } } [data-separator-wrapper] [data-separator-multi-button] > [data-expand-button] { border: none; }