[Library] Gallery

Catalogue accessStandard

Drift columns

Six portrait frames in three columns of two, each column started lower than the one before it, so the frames read as a descending diagonal. A tracked label sits above the first column and one short line of type sits in the space the offset opens at the top of the third. Ships all six image blocks empty and cropped to 4:5; you choose the photographs. States no colour and no font of its own.

Variation View
Before you copy Corners As authored

Identical markup in every theme. Manrope typeface rgb(255, 255, 255) ground 1280px viewport

Six portrait frames in three core/columns of two, on a full-bleed band of your base colour. Each column starts lower than the one before it, so the six frames step down across the section instead of sitting on one shelf. A tracked caps label sits top-left above the first column, and one short line of type sits in the space the last step opens at the top of the third. Nothing else is on the band: no rule, no plate, no caption under a frame.

The signature moment

The baseline drifts across the columns

There is no decoration in this pattern at all. The design is the staircase of unequal starting heights and nothing else. Column one begins at the top of the band, column two is pushed down 4rem, and column three is pushed down about the same again, so the tops of the six frames trace a descending diagonal from the top-left corner to the middle of the right-hand edge.

Two things stop that reading as a mistake. The step is constant, so the eye gets a rule rather than three arbitrary positions; a single odd column reads as a broken layout, three evenly spaced ones read as a decision. And the type occupies the void the last step creates: the short line sits in the empty space at the top of the third column rather than leaving it blank, so the offset is doing work instead of merely existing.

It survives colourlessness because it is made of offset alone. Take every colour away and the diagonal is still there, since it is built from padding-top on the columns and from nothing that a palette can carry. That is the point: a pattern whose signature is a coloured wash has no signature in a theme that resolves that wash to something else.

What happens below 782px. Core stacks core/columns into a single vertical run, and the three columns become three full-width groups one under another. The diagonal cannot survive that, and it is not asked to: the padding-top on each column stays where it is and becomes vertical space above that column's pair of frames, on top of the spacing|40 block gap between the columns. So on a phone the section reads as three pairs of frames separated by a growing rhythm of gaps, first pair tight, second pair set apart, third pair set apart with the line of type in the space. The drift changes axis rather than disappearing, and no frame moves sideways, because no negative margin is used anywhere.

What it inherits, what it decides

Inherits: every colour (the band is a base chain, all type a contrast chain, and there is no third colour anywhere), the typeface, and the spacing scale (spacing|70 above and below the band, spacing|50 between the label and the row, spacing|40 between the two frames in a column and between the columns once they stack).

Decides: the 4:5 portrait proportion of all six frames and the cover scale that crops the buyer's uploads to it, the constant offset step and its rem values, the 1240px measure with clamp(1.25rem, 4vw, 4rem) gutters, the clamp(1rem, 2vw, 2rem) gap between the columns, and the proportion of the two pieces of type: a 13px to 14px label at 0.22em tracking in caps, and a 15px to 17px line at 1.5.

How the offsets are built166 words

The offset is style.spacing.padding.top on the core/column itself, in rem. A column is not a direct child of a constrained band, so padding on it is safe: nothing centres a column inside the columns row, so the padding stays inside the column's own box instead of pushing the block out of the layout's max-width (the failure content-columns shipped, recorded in the authoring skill). Negative margins are not used, so there is no margin collapse to reason about.

The third column's offset is split in two, and deliberately: 2.5rem of padding, then the line of type, then a 2.25rem bottom margin under it. With the line's own two lines of body copy that lands the third column's first frame at roughly 8rem, the same step again, while putting the type inside the void rather than above it. Every value is rem, never vh: the preview on this page sizes its frame to the pattern, and a viewport-relative height would size the pattern to the frame in turn.

What a buyer changes first171 words

The photographs. All six image blocks ship EMPTY, which is what WordPress's own save() writes before a file is chosen and is valid at both matrix entries: click each frame, choose an image from the media library, and the 4:5 crop and the whole composition are already set. The frames read best as a sequence, so use six pictures that belong together; the drift is what makes them one thing rather than a grid of six unrelated ones.

The two pieces of type are the second thing. The label is set in caps with wide tracking and reads best under 30 characters. The line wants to run to about two lines in the column, roughly 80 to 100 characters, because it is holding open the space the last step created; one short clause leaves that space looking abandoned.

To change the depth of the drift, change the padding-top on the second and third columns together, keeping the two steps equal. Making them unequal is the one edit that breaks the signature.

Variations123 words
  • Rising drift (drift-rise): the staircase climbs instead of falling. The first column carries the largest offset and the third carries none, so the six frames step UP from the bottom-left to the top-right. The label moves with it, to the top-right above the column that now starts at the top, and the line of type moves into the void the reversal opens at the top of the first column. Same six frames, same 4:5 proportion, same colours, same values: only the composition mirrors, which is a change of one axis and not a dial. It reads differently because a falling diagonal settles and a rising one lifts, and a portfolio that ends high is a different sentence from one that ends low.
Back to the library