Today's art direction
The Fold-Out Programme
A one-day conference page printed as a two-ink risograph concertina, where every session unfolds to its own length.
- Concertina fold
- Session slot
- Riso blue
- Riso red
- Misregistration
- Ticket stamp
- Disclosure row
- Pinstripe stock
A concertina is a single strip of paper folded back and forth into panels, the format of a pocket festival programme. Here it becomes an event page: the schedule is a column of native disclosure rows that ease open to their real height, and every section opens on a session slot with its time set large in slab red.
Two inks, riso blue and riso red, carry every mark, with a slight misregistration in the print. The ground is cool fog stock with faint pinstripes, and the masthead is a single ticket stamp rather than a grid of facts.
- Concertina fold
- Session slot
- Riso blue
- Riso red
- Misregistration
- Ticket stamp
- Disclosure row
- Pinstripe stock
Safari's preview can transition height to auto
Release 254 of Safari Technology Preview, published October 8, adds the interpolate-size property. Set it to allow-keywords and transitions can run to and from auto, min-content, and fit-content, the sizes CSS has always refused to animate.
The same release adds calc-size(), which does math on those intrinsic sizes, so a single element can opt in on its own. Chrome has shipped both since version 129. Safari is the second engine to carry them, though for now only in the preview build, not in shipping Safari.
The accordion stops guessing. It opens to the height its content needs, and no taller.
Four more CSS features land in the same build, alongside a run of grid sizing fixes:
- size, min-size, max-size
- Shorthands that set width and height in one declaration.
- border-top-radius and kin
- Round both corners on one side of a box at once.
- symbols()
- An anonymous counter style written inline, no separate rule needed.
- link-parameters, param()
- Pass values such as a color into a linked SVG image.
- Grid sizing fixes
- Tracks spanned by several items now share extra space the way the spec says.
Two Microsoft image models arrive on Vercel's gateway
Vercel added MAI-Image-2.6 and MAI-Image-2.6-Flash to its AI Gateway on Tuesday, October 13. Both generate from text or edit an existing image with up to five reference images, at sizes up to 1536 by 1536 pixels.
Vercel positions Flash for quick variations and the full model for final assets, and says both handle text rendering and targeted edits to layouts. Those are vendor claims with no prices attached; test the lettering on a real comp before trusting it with a client headline.
Three declarations make a details panel ease open
This page's own programme band runs on the pattern. A root opt-in lets sizes interpolate to auto, and the details-content pseudo-element wraps everything inside a details element after its summary. Collapse that wrapper to zero, open it to auto, and the browser draws the frames in between.
/* 1. let sizes animate to and from auto */
:root { interpolate-size: allow-keywords; }
/* 2. collapse the content wrapper */
details::details-content {
block-size: 0;
overflow-y: clip;
transition: block-size .32s ease,
content-visibility .32s allow-discrete;
}
/* 3. open to the real height */
details[open]::details-content { block-size: auto; }
A browser that does not understand a line skips it and opens the panel instantly, the way details always has, so nothing needs a polyfill. To keep the opt-in local instead of page-wide, set the open size with calc-size(auto, size) on one element.
Lovable hands browser agents a set of page tools
An October 13 entry in the Lovable changelog adds WebMCP tools to apps that switch on agent integrations, a day after the image markup update we covered. A browser-based agent can then act on the open page, completing a task or filtering a list, inside the visitor's own tab and signed-in session.
Tools that delete, pay, send, publish, or share are added only when the builder asks for them. WebMCP is the page-as-tool proposal this publication followed when Claude started reading page structure in August; here a builder turns it into a setting.
Let disclosure open to its real height
Replace the max-height guess with a transition to auto, and keep the native details element underneath.
- The pattern
- An accordion, FAQ, or schedule row that eases open to its exact content height through interpolate-size or calc-size().
- Use it on
- FAQs, pricing feature lists, event agendas, and the mobile nav drawer that currently snaps.
- Keep it honest
- Hold the motion near 300ms, turn it off under reduced motion, and let older browsers snap open. Content must never depend on the animation to be readable.
Try it: open this row
This paragraph had no fixed height until you asked for it. The browser measured it, then eased the panel to exactly that size.
Rebuild this programme page from one prompt
Works in Claude, v0, Lovable, Figma Make, Framer AI, and Beaver Builder AI.
Build a one-day conference or event landing page, art directed as a two-ink risograph concertina programme. Layout: - Top nav with the event name left and three text links right. - Hero in two columns: left holds a single rotated ticket stamp (double blue border, "Admit one", the event number in large slab red, date, length), a mono kicker, a slab headline under 14 words, a two-sentence deck, one solid blue button and one text link. Right holds a transparent cut-out image of a folded paper programme that bleeds off the right edge with no frame. - A full-width "Today's programme" band on near-white between 3px ink rules: native details elements, one per session, sharing a name attribute so one opens at a time. Each summary row is a grid of time (slab, red), title, a filled blue session-type label, and a plus that rotates 45 degrees when open. Each panel holds a one-sentence abstract and an anchor link to the session. - Every content section opens with a session slot: a 3px ink top rule, the time set at 54px in slab red with a 3px riso blue misregistration ghost (text-shadow), a filled blue type label beside it, and a small mono room label at the far right, then the h2. Body text sits in a 700px column beside a 280px sticky session card (speaker, release date, two facts as a dl) on desktop. - A definition list spec table (mono term in blue, plain description) for facts. - Prompt Lab as a ticket: a 200px stub behind a dashed perforation edge, its "Admit one", title, and copy button sticky as the long prompt scrolls past. On mobile the stub becomes a top strip. - Print feel without images: a 3px riso red ghost under the headline, a faint white noise grain on every filled blue label and button, and code printed in blue ink on a pale blue tint instead of a dark slab. Motion: set interpolate-size: allow-keywords on :root. Animate details::details-content from block-size 0 to auto with a 320ms ease plus content-visibility allow-discrete. Hover states on links, buttons, and summary rows at 150ms. Wrap all motion in a prefers-reduced-motion guard. Older browsers must simply open the panels instantly. Palette: cool fog ground #E3E9EE with 1px ink pinstripes at 4.5 percent every 14px, near-white panels #F6F8F9, ink #172033, riso blue #1F55A3 for buttons and labels, riso red #C8381F for times and accents. No gradients, no glow, no neon. Type: Rokkitt (slab) for display, times, and one italic pullquote; Funnel Sans for body; Fragment Mono for labels only. Guardrails: body at least 19px with 1.7 line height and a 60 to 75 character measure; WCAG AA contrast for every label on its real background; radius 3 to 10px, never pills; one shadow at most, on the cut-out image; no fake readable text inside images; no emoji icons, no logo bars, no identical three-up cards.
Fold it back up
Height to auto was one of the last transitions designers faked with a script or a magic number. Once Safari ships it out of preview, the honest version of the accordion becomes the default one.
Sources
- Release Notes for Safari Technology Preview 254, WebKit blog, October 8, 2026
- MAI-Image-2.6 and MAI-Image-2.6-Flash now available on AI Gateway, Vercel changelog, October 13, 2026
- Lovable changelog: Let browser agents use your app, October 13, 2026
- Art Direction Daily: Claude sees page structure, August 22, 2026