The signature moment
The ledger sits in the far corner
A contact section usually stacks its facts under its heading. Here the heading and the facts take opposite corners of the photograph: "Come and find us." at the top left, the ledger at the bottom right, four rows each a label on the left and a value set flush right, divided by hairline rules. The diagonal between the two corners is the composition, and it holds in greyscale. On a phone the ledger drops beneath the heading at full width and keeps its rules.
Theme handoff
What comes from where
Theme and pattern
Inherits: every colour (veil contrast, type and rules base), the typeface, the spacing scale. Decides: the veil's opacity, the type ramp, the two measures, the drop to the floor. The cover states its own text colour chain so core's :where() rule that paints cover text #fff never applies.
Full pattern notes
Why it works, and how it is built
Open a topic for the complete design reasoning, editing guidance and implementation notes.
Design rationaleComposition, intent and nearest alternatives
Overview
A full-bleed core/cover for a contact page: a heavy veil of your theme's contrast colour over the photograph, a display heading high on the left, and a ruled ledger of address, hours, phone and email pushed into the far lower-right corner. The photograph runs through the space between them.
The signature moment: the ledger sits in the far corner
A contact section usually stacks its facts under its heading. Here the heading and the facts take opposite corners of the photograph: "Come and find us." at the top left, the ledger at the bottom right, four rows each a label on the left and a value set flush right, divided by hairline rules. The diagonal between the two corners is the composition, and it holds in greyscale. On a phone the ledger drops beneath the heading at full width and keeps its rules.
Make it yoursVariations and the edits to make first
Variations
- Corners mirrored: the ledger opens the cover in the top left and the heading lands in the bottom right, so the address is read before the invitation. The heading block is set flush right there, so it hugs its corner.
Theme behaviourInheritance, fixed decisions and contrast
What it inherits, what it decides
Inherits: every colour (veil contrast, type and rules base), the typeface, the spacing scale. Decides: the veil's opacity, the type ramp, the two measures, the drop to the floor. The cover states its own text colour chain so core's :where() rule that paints cover text #fff never applies.
Technical notesBlock mechanics, responsive behaviour and constraints
Type on the photograph
Type sits on the image only because the veil makes the ground a known quantity: contrast at dimRatio 80 under base type. The ledger values are body size, so they need the full 4.5:1, not the 3:1 allowed to large display type; the checker composites the veil over a white and a black photograph and the worse ground has to pass. Lower the veil below 80 and that stops being true.
Type and hierarchy
- The heading is display: a bare
clamp(3.25rem, 8.5vw, 11rem), off the theme's ladder, because its size is the composition; at 1920 it is about 163px and fills the top left. It is held toclamp(18rem, 50vw, 56rem). - Ledger values are a bare
clamp(1.25rem, 1.5vw, 1.75rem), off the ladder because the ledger is the second mass on the cover, not a caption; the line under the heading is body copy onmedium; the ledger labels, "Visit the studio" and "Where and when" are labels with their ownclamp()floored at 15px, tracked 0.12em in the ledger. - Hierarchy comes from size and the rules alone: nothing is set in capitals.
- The heading states its size and colour chain and nothing else.
Layout
- The cover uses its default layout and default content position; the inner groups state zero side padding, so no theme doubles the gutter.
- The ledger is a constrained group justified right, pushed to the floor by a
margin-topofclamp(7rem, 17vw, 21rem)rather than a flexspace-between. Its measure ismax(clamp(22rem, 34vw, 40rem), calc((600px - 100vw) * 100)): below a 600px screen the second term takes over and the ledger runs full width under the heading. - Each row is a non-wrapping flex row,
space-between: the label a fixed 7rem, the value filling the rest and aligned right. - Rules are
role-rulefalling tobase, so they are the colour of the type. - Phone and email are
core/buttonlinks with a transparent ground, textrole-linkfalling tobase, 1rem of vertical padding so each is a 44px tap target on a phone, underlined and sized oncore/buttons.
What a buyer changes first
The photograph: choose Replace on the cover. Then the four ledger values and the two links' targets. Add a row by duplicating one; the last row carries the closing rule.
The hand-off row
A short row on your theme's paper under the cover, a label and one paragraph at a 34rem measure, so the cover reads as a section and shows where it ends. It is the first thing a buyer rewrites or deletes.
Included images
The copied markup includes a WordPress Photo Directory example photograph. The public image URL keeps the example visible after pasting. Select the cover and choose Replace to use your own Media Library file. See image credits for the source and license. Pasting an image URL does not import a Media Library attachment.
The markup
Core block markup and nothing else. Copy it, then paste it straight into the block editor: WordPress reads the delimiters and rebuilds the blocks.
Fetching the markup…
Variation: Corners mirrored
Fetching the markup…