# Contact sheet

> Six square frames packed three across in two rows, with a tight gutter so the six read as one printed sheet, each frame numbered under a hairline rule. An airy label and one line sit well above it. Includes replaceable example images. States no colour and no font of its own.

Canonical: https://patternpaste.com/pattern/contact-sheet.html
Section: Gallery
Access: Free, and free to keep.
Needs: Requires a block theme on WordPress 7.0 to 7.1. Classic themes and page builders are outside our supported setup. Adaptive patterns use the block theme’s colour, spacing and typography presets; styled variations declare their own colours or type.
Blocks: column, columns, group, heading, image, paragraph
Keywords: gallery, grid, contact sheet, six up, photography, square, portfolio

## Variations (2)

### Proof sheet (the default)

Identical markup in every theme.

Six 1:1 frames at the tightest gutter in the catalogue, dropped into a band that is otherwise empty. Your base is the paper, your contrast is the type, and every hairline is currentColor so it follows the type. On a phone the six become one tight column with the same number-under-a-rule rhythm.

### Ink sheet

Identical markup in every theme.

The whole band inverts: your contrast becomes the paper and your base becomes the type, hairlines following along. Every frame, gutter and proportion is identical to the base, so this is the same sheet printed dark.


---

## The signature moment: density contrast, the sheet against the air

The six frames sit at `spacing|20`, the tightest gutter in the catalogue, both
between the columns and between the two rows, so the eye reads one grid rather
than six cards. That block of six is then surrounded by air: `spacing|80` above
and below the band, and `spacing|70` between the intro and the first row. The
contrast between the packed sheet and the empty band is the whole idea, and it
is made of gutter, scale and emptiness, so it survives colourlessness entirely:
there is nothing to colour except the paper, the type and the hairlines, and
inverting all three (see the variation) does not touch it.

It survives the phone for the same reason. Below 782px core stacks both
`core/columns` blocks, and because the row gap and the column gap are the same
`spacing|20`, the six frames become a single tight column at exactly the gutter
they had across, each still carrying its rule and its number. The band's
`spacing|80` padding does not stack, so the sheet is still a dense object in a
quiet band; the only thing that changes is that the object is now tall instead
of wide.

## What it inherits, what it decides

Inherits: every colour (the band is a `base` chain, its type a `contrast` chain,
and every hairline is `currentColor`, so the rules follow the type into any
theme), the typeface, and the spacing scale (`spacing|80` band padding,
`spacing|70` between intro and sheet, `spacing|30` inside the intro,
`spacing|20` for every gutter and for the gap between a frame and its number).

Decides: the 1:1 crop on all six frames (`aspectRatio: "1"` with
`"scale":"cover"`, so whatever the buyer uploads is cropped square rather than
letterboxed), the three-across grid, the tight gutter, the 1240px measure with
`clamp(1.25rem, 4vw, 4rem)` gutters, the 34rem intro measure, and the type
proportion: a 13px tracked caps label against a `clamp(1.5rem, 2.8vw, 2.375rem)`
line, with the frame numbers at the same 13px as the label so the sheet is
captioned in the same voice it is introduced in.

The hairline is a per-side `border-top` on the small group that holds each
number, not a `core/separator`. Twenty Twenty-Four narrows any separator that is
not `is-style-wide` to a centred stub, and a stub under a square frame reads as
a mistake; a group border is not affected by that rule and stops exactly at the
frame's width, which is what a contact sheet's rule does.

## What a buyer changes first

The photographs. **All six image blocks include example photographs**. Choose Replace on each frame to select your own images; the square crop is already set. The sheet is deliberately indifferent to what is
in the frames, so a set of six related shots reads best; the design does not
depend on any one of them being distinct.

Then the numbers. They are plain text, so `01`-`06` can become contact-sheet
codes (`04A`, `04B`), dates, or place names, as long as each stays short: they
are set at 13px with 0.22em tracking, which is legible for a glanced label and
not for a sentence. Anything longer than a couple of words belongs above the
sheet, in the intro line, which has the measure for it.

To make the sheet nine frames, duplicate one `core/columns` row; to make it
four, delete a column from each row. Nothing in the design is keyed to six.

## Variations

- **Ink sheet** (`sheet-ink`): the band inverts. The ground becomes the
  `contrast` chain and all type becomes the `base` chain; the hairlines are
  `currentColor` in both files, so they invert without being restated. Every
  frame, gutter, measure and size is identical to the base, which is the
  point: it is the same sheet printed dark, and it is the version to use when
  the photographs are mostly light or when the section above it is already
  white.

## Included images

The copied markup includes WordPress Photo Directory example photographs. The public image URLs
keep the examples visible after pasting. Select an image or cover and choose
**Replace** to use your own Media Library files. See [image credits](/image-credits/)
for the sources and licenses. Pasting an image URL does not import a Media Library
attachment.
