Reading a diff
Inline or side by side, with the changed words picked out inside the changed lines.
Selecting a file — in the working copy, in a commit, in a comparison, in a
stash — shows its diff in the right-hand column.

Two layouts, and how you get each
Inline puts removals and additions in one column, in file order. It reads well for small changes and for anything where the order of the lines is the point. It is what the column shows, always.
Side by side puts the old file on the left and the new one on the right, with the line numbers kept in step. It reads better for a rewritten block, where inline shows you fifteen removed lines followed by fifteen added ones and side by side shows you which became which.
There is no toggle between them. Side by side is what the Diff Review window shows, and the button that opens it says so — Open side-by-side review window, at the right-hand end of the diff header. Which layout you are reading follows from where you opened the diff, which is why a column a third of a window wide is never asked to hold two of them.
Both layouts mark the exact changed range inside a modified line, so a line where one argument changed does not read as a line that was rewritten.
Syntax highlighting
Patches are highlighted by language, which is what makes a diff scannable rather than a wall of monospace. It works in both layouts and in every place a diff appears.
What else is in the header
Above the diff: the file’s name and what it is being compared against, buttons to stage, blame or discard the file, and four controls that change how the diff is drawn — wrapping, whitespace markers, the minimap, and how much context to show.
Very large diffs
A patch big enough to make the app unresponsive is opened as selectable text instead, and the header says Large diff. You still see the change and can copy from it, and scrolling stays usable — but side-by-side review, wrapping and staging part of a file are not available in that mode, and highlighting is limited or skipped. The header’s own tooltip says which of those applies.
Images
A changed image is shown as an image rather than as a description of bytes, for the formats macOS can display.