# Half and half

> A fifty-fifty split in which one frame equals four: a single square on the left and a two-by-two of four squares on the right, at a tight gutter, so the two halves occupy the same rectangle. A tracked caps label and one short line sit above the pair. Includes replaceable example images. States no colour and no font of its own.

Canonical: https://patternpaste.com/pattern/half-and-half.html
Section: Gallery
Access: Included in Pattern Paste access.
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, image, paragraph
Keywords: gallery, grid, split, square, two up, four up, photo

## Variations (2)

### One and four (the default)

Identical markup in every theme.

The single frame on the left, the two-by-two on the right, both squares at half the measure. The four small frames sit at an 8px gutter and the same 8px between the rows, which is what makes the two halves finish level. On a phone the halves stack: the single frame goes full width and the four follow beneath it, still two by two.

### Swapped halves

Identical markup in every theme.

The same five frames, mirrored: the two-by-two on the left and the single frame on the right, with the label and the line moved to the right edge to match. Same proportions, same colours, nothing but the composition changes. On a phone the four come first and the single frame follows.


---

## The signature moment: one frame against four, at the same area

The design is an equation. One `aspectRatio: "1"` frame at 50% of the measure
and a 2x2 of `aspectRatio: "1"` frames at the same 50% occupy the identical
rectangle, so what the section shows is not two galleries side by side but the
same space spent once and spent four times. Nothing else is doing any work:
there is no rule, no tint, no border and no caption on the images.

**The numbers, at the 1240px measure.** The outer `core/columns` carries a
`blockGap` of `2rem`, and neither column states a width, so each is
`(1240 - 32) / 2 = 604px`. The left frame is 1:1, so it is 604px tall.

The right half is where the arithmetic has to be watched. A true quarter of
604px would be 302px, and four of those at any gutter at all would overflow
the half. Core does not overflow it: each nested column is
`flex-basis: 0; flex-grow: 1`, so the two squares in a row share
`604 - 8 = 596px` and are **298px**, not 302px. Each square is therefore 4px
short of a true quarter, and a naive 2x2 built from true quarters plus an 8px
gutter would be 612px tall against a 604px neighbour, 8px out.

**The gutter is what closes it, and it closes it exactly.** The vertical gap
between the two rows is the same `0.5rem` (8px) as the gutter between the
columns, stated as `margin-bottom` on the first row rather than left to a
block gap. So the 2x2 is `298 + 8 + 298 = 604px` tall against a 604px left
frame. The residual is **0px at 1240px**, and it is zero at every width, not
by luck: a 2x2 of squares whose row gap equals its column gutter is `2w + g`
wide and `2w + g` tall, which is the same number. The one way to reopen the
mismatch is to give the rows a different vertical gap from the horizontal one:
a `1rem` row gap against a `0.5rem` gutter puts the 2x2 8px below the single
frame's bottom edge.

That figure is arithmetic on core's own flex behaviour, not a reading taken
off a render in this pass. Two things could move it on a buyer's site and
both are guarded here: a theme's own `.wp-block-columns` margin, which is why
both nested rows state `margin-top` and `margin-bottom` inline, and sub-pixel
rounding at a measure that does not divide evenly, which can leave the two
halves half a pixel apart and is invisible.

**It survives colourlessness** because it is pure proportion. There is no
colour in the device at all: take the palette away and the left square and
the right 2x2 still occupy the same rectangle, because that is a fact about
widths and gutters rather than about hue. The band's ground is a `base`
chain, its type a `contrast` chain, and neither carries any part of the idea.

## What happens at 390px

The outer `core/columns` stacks, as core does below 782px, and the two halves
become two full-width objects: the single frame first, at the full column
width, and the 2x2 beneath it, also at the full column width. **The 2x2 does
not stack with it.** Both nested rows carry `isStackedOnMobile: false`, which
serialises to `is-not-stacked-on-mobile`, the class core's own
`.wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column
{flex-basis: 100% !important}` rule is testing at 0-3-0. Without that
attribute the four would collapse into a single column and the section would
be five photographs in a row down the page, which is any gallery.

So the equation survives as one-then-four in a column: one big square, then
four small ones in a block of the same width. At a 350px content width each
small square is `(350 - 8) / 2 = 171px`, so the four together are still the
same square as the one above them, and the reading is unchanged; only the
direction of the comparison turns from across to down.

## What it inherits, what it decides

Inherits: every colour (the band is a `base` chain, its type a `contrast`
chain, and nothing else in the pattern is coloured at all), the typeface, and
the spacing scale for the band's own air (`spacing|80` top and bottom,
`spacing|60` between the intro and the pair, `spacing|30` inside the intro).

Decides: the 1240px measure and the clamp gutters, the 50/50 split, the 1:1
crop on all five frames, the `2rem` outer gap and the `0.5rem` inner gutter,
which are literal lengths rather than presets **because the equation depends
on the two being equal to each other and a preset is a different number in
every theme**, the 34rem measure the intro is held to, and the type
proportion: a 13px tracked caps label against a 15px to 17px line at 1.55.

## What a buyer changes first

The photographs. **All five image blocks include example photographs**; choose Replace to select an image from your media library, and the 1:1 crop and
`object-fit: cover` are already set, so nothing distorts whatever shape the
upload is.

Which photograph goes on the left is the second decision and the one that
matters, because the single frame is four times the area of any of the other
four. Put the one picture the section is about there and let the four be
detail, texture or sequence. The label reads best under about 24 characters
and the line under about 80, since the intro is held to a 34rem measure.

If you want the pair to sit tighter or looser as a whole, change the outer
`2rem` gap; if you change the `0.5rem` inner gutter, change it in three
places, on both nested rows' `blockGap` and on the first row's
`margin-bottom`, or the two halves stop finishing level.

## Variations

- **Swapped halves**: the single frame moves to the right and the 2x2 to the
  left, and the label and the line move with it to the right edge (the intro
  group's `justifyContent` becomes `right` and both paragraphs take
  `align: "right"`). Same five frames, same 1:1 crops, same gaps, same
  chains; the composition is the only thing that moves, which is what makes
  it a variation rather than a second pattern. At 390px it stacks in its own
  order, four then one, so the phone reading mirrors the desktop one there
  too.

## 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.
