Skip to content
Components

Code Diff

Unified or split diff from a git patch or a before/after pair, with word-level intra-line highlighting.

Examples

Headerless copy

Use the same copy affordance when a diff does not need its filename and stats row.

Composition

Rendered diff

Pass a patch or oldText/newText. CodeDiff renders the files and its copy action internally.

  • <CodeDiff>
    • built-in header actions
      • <CodeDiffCopy />
    </CodeDiff>

Installation

The Control UI source installs this primitive from src/registry/sources/control-ui/ui/code-diff.tsx.

Registry command
See registry manifest

Dependencies

Diff enginesrc/registry/lib/diff.tsSupport
Shiki tokenizersrc/registry/lib/code-tokens.tsSupport
Code + diff tokenssrc/registry/sources/control-ui/code.cssSupport
CodecodePrimitiveScroll areascroll-areaPrimitive

Raw code

Primary installed source

src/registry/sources/control-ui/ui/code-diff.tsx

Knobs

Typed custom properties the recipe paints with. Set one on the root — style, a utility class, or a skin — and every slot inherits it.

--cui-code-diff-* · 16 knobsHow the cascade resolves
--cui-code-diff-radius<length-percentage>min( var(--radius-panel), calc(var(--control-h-xs) / 2 + var(--cui-code-diff-border-width) + var(--_code-corner-inset)) )
--cui-code-diff-shadow*var(--shadow-sm)
--cui-code-diff-background<color>var(--background)
--cui-code-diff-border-color<color>var(--border)
--cui-code-diff-border-width<length>var(--control-rim-width)
--cui-code-diff-header-background<color>var(--diff-gutter-bg)
--cui-code-diff-header-border-color<color>var(--border)
--cui-code-diff-foreground<color>var(--code-foreground)
--cui-code-diff-add-background<color>var(--diff-add-line)
--cui-code-diff-del-background<color>var(--diff-del-line)
--cui-code-diff-expand-button-radius<length-percentage>var(--radius-control)
--cui-code-diff-expand-button-background<color>transparent
--cui-code-diff-expand-button-foreground<color>var(--muted-foreground)
--cui-code-diff-expand-button-shadow*none
--cui-code-diff-expand-button-hover-background<color>oklch(from var(--foreground) l c h / 0.08)
--cui-code-diff-expand-button-hover-foreground<color>var(--foreground)