Art Direction Daily

IssueNo. 161of 161

Rows9 sections

DateWednesday, October 21, 2026Wed, Oct 21, 2026

Read5 min

A cyanotype photogram on deep Prussian blue paper: six translucent paper cut-outs of the same simple page layout laid in a loose row, each slightly shifted, printing as pale cream silhouettes.
Available Oct 20

Webflow Campaigns builds a page per persona from one DESIGN.md

Webflow's campaign tool went on sale October 20. Every persona, industry or account variation gets its own URL and a matching ad, so the page you designed becomes the base row of a table.

Rows in this issue

9 rows, select a header to sort

Source Status
01 LeadWebflow Campaigns goes on saleBrand file in, persona pages and ads out. Webflow blog 2026-10-20 Available
02 ToolingThe same pages, edited from ClaudeCampaign assets through Webflow's MCP server. Webflow 2026-10-20 Available
03 TechniqueFirefox 159 runs animations off the scrollbarScroll-driven animations reach the third engine. Mozilla 2026-10-12 Beta
04 WorkflowBrief the base row, then the allowed changesWhat a designer hands over before marketing multiplies it. This issue 2026-10-21 Method
05 Design moveThe ditto-cell variant tableA comparison pattern you can lift this week. This issue 2026-10-21 Borrow
06 Art directionThe Variant TableHow this page is built, and why. This issue 2026-10-21 Record
07 Prompt LabExport this layout as a promptRebuild the page on your own content. This issue 2026-10-21 Export
08 Field noteField noteOne closing thought. This issue 2026-10-21 Note
09 SourcesSourcesSix primary links. This issue 2026-10-21 Linked
No.01
SectionLead
SourceWebflow blog
Date2026-10-20
StatusAvailable

One brand file in, a landing page per audience out

Webflow Campaigns is now on sale as a standalone tool for marketing teams, and it works alongside a main site whether that site runs on Webflow or another CMS. It starts by extracting a brand's visual identity and components into a design system written as DESIGN.md, then builds landing pages and message-matched ads from a brief the marketer develops with an agent.

The part that changes a designer's job is the variation model. Pages can be personalized for personas, industries or individual accounts, each with its own URL and ads that carry the same message, edited on a visual canvas built for marketers. When we covered the September preview, it was a demo; now it is a product a client can buy, which means the pages you design become templates other people fork.

Campaigns is now our one-stop shop, cutting out additional prompting and the need to rebuild our designs.

Crystal Gray, Marketing Operations Manager, Exiger, in Webflow's launch post

Gray's team previously drafted a mockup in Lovable and then rebuilt it in WordPress. That rebuild step is where a web designer usually catches drift, so its disappearance moves the checking upstream into the design system file.

Brand source
DESIGN.md generated from the existing site's identity and components
Variants
Personas, industries or named accounts, each at its own URL with matching ads
Forms
Marketo or HubSpot, so leads land in the existing workflow
Ads
Performance Max campaigns set up in Webflow and sent to Google Ads
Reporting
Sessions and conversions, with HubSpot and Salesforce CRM data
No.02
SectionTooling
SourceWebflow
Date2026-10-20
StatusAvailable

The same campaign pages, edited from Claude

Campaigns does not require the marketer's canvas. The launch post says assets can be built and refined through the AI tools a team already uses, Claude among them, by way of Webflow's MCP server. For a freelancer that is the practical door in: you can review and correct a client's persona pages from your own assistant session instead of logging into a seat you were never given.

Treat that door as a review channel first. A model editing a variant through MCP reads the same DESIGN.md the generator did, so a fix that belongs in the brand file should go there, not into one page where the next variant will undo it.

No.03
SectionTechnique
SourceMozilla
Date2026-10-12
StatusBeta

Firefox 159 runs animations off the scrollbar

The Firefox 159 beta notes add scroll-driven animations: the animation-timeline, scroll-timeline, view-timeline and animation-range properties, plus the ScrollTimeline and ViewTimeline interfaces. Mozilla's release calendar puts Firefox 159 on general release on October 27, which brings the last of the three major engines along.

The amber hairline under this page's toolbar is one. It fills as you scroll, with no script, and it simply stays empty in a browser without support.

/* reading progress, no JavaScript */
@supports (animation-timeline: scroll()) {
  .progress {
    transform-origin: 0 50%;
    animation: fill linear both;
    animation-timeline: scroll(root);
  }
  @keyframes fill { from { transform: scaleX(0) } to { transform: scaleX(1) } }
}
@media (prefers-reduced-motion: reduce) { .progress { display: none } }

For long variant tables, a view() timeline on each row can fade in its thumbnail as it enters. Keep it to one motion per page and gate it behind the reduced-motion query.

No.04
SectionWorkflow
SourceThis issue
Date2026-10-21
StatusMethod

Brief the base row, then the allowed changes

If a client buys a tool that forks landing pages per audience, the designer's deliverable shifts from a page to a page plus its permitted variations. Write the base page as the complete reference, then list the fields a variant may change and the ones it may not. Headline, proof point, hero image and offer usually vary; type scale, button style, form layout and the brand palette should not.

The rules belong in the brand file, because that is what the generator and every MCP session read. The open DESIGN.md format is plain Markdown, so a section titled for variation rules is enough to start. Then check the first three generated variants side by side against the base, cell by cell, before the client multiplies them.

No.05
SectionDesign move
SourceThis issue
Date2026-10-21
StatusBorrow

Borrow this pattern: the ditto-cell variant table

When a table compares variants of one thing (persona pages, pricing tiers, A/B tests, plan limits), print the base row in full and set every cell a variant inherits as a muted ditto mark. Only the cells that actually differ keep full contrast, a tinted fill and an amber underline, so the eye reads the changes and nothing else.

Flip the switch on the table below to see the full grid it replaces.

  1. Pin the base row first and give it a faint fill, so every ditto has an obvious referent.
  2. Keep the real value in the markup for screen readers; the ditto is visual only.
  3. One highlight colour for difference. Status and errors get their own labels.
  4. Let readers turn the dimming off. Some comparisons need the full grid.

Example campaign: a webinar sign-up page, one base and five variants. Scroll the table sideways.

ThumbnailVariantURLHeadlineProof pointOfferFormButton
Base pagereference /webinar Ship client sites in half the rounds Three agency case studies Live session, 45 min Name, email Save my seat
Freelancerpersona /webinar/freelance Win the redesign without a team One solo studio, start to launch Live session, 45 min Name, email Save my seat
Agency leadpersona /webinar/agency Ship client sites in half the rounds Three agency case studies Live session plus team Q&A Name, email, team size Save my seat
Healthcareindustry /webinar/health Ship compliant sites in half the rounds An accessibility audit, before and after Live session, 45 min Name, email Save my seat
Retailindustry /webinar/retail Ship client sites in half the rounds A product page rebuilt for launch week Live session, 45 min Name, email Save my seat
Named accountaccount /webinar/northwind Northwind's next site, in half the rounds Three agency case studies Private session for your team Name, email Book the session
/* inherited cells collapse to a ditto; the value stays for screen readers */
.matrix.dim td.same .v { display: none }
.matrix.dim td.same .d { display: inline; color: #8E9CB6 }
.matrix td.diff { background: rgb(224 168 62 / .24); box-shadow: inset 0 -2px 0 #E0A83E }
No.06
SectionArt direction
SourceThis issue
Date2026-10-21
StatusRecord

Today's art direction

The Variant Table

A campaign tool's variants view, set in navy and cyanotype cream, where every section is an expanded row.

The page is a working data table. A record-count toolbar stands in for the masthead, the issue's own items form a sortable index, and each section opens on a header strip that repeats the index columns, so reading down the page feels like expanding one row at a time. The photogram above the fold supplies the six page silhouettes that return as row thumbnails in the variant matrix, where inherited cells drop back to a ditto mark and only the changes keep full contrast.

  • base row
  • ditto cell
  • diff highlight
  • column-header strip
  • row thumbnail
  • aria-sort
  • record count
No.07
SectionPrompt Lab
SourceThis issue
Date2026-10-21
StatusExport

Export this layout as a prompt

Paste it into a build tool to get a data table landing page with the ditto-cell variant matrix, on your own content.

variant-table.prompt

Build a single landing page in the form of a data table product page: the variants view of a campaign or pricing tool, where the content is a comparison of one base offer against several audience variants.

Structure, top to bottom:
1. A slim top nav (brand left, three text links right).
2. A sticky toolbar masthead instead of a hero title block: a record count ("No. 12 of 40" style, the number in a condensed display face in the accent), a sort label, the date and read time as label/value pairs. A 2px accent hairline at its bottom edge fills with page scroll using animation-timeline: scroll(root) inside @supports, hidden under prefers-reduced-motion.
3. A full-bleed hero band with one photographic or printmaking image as the ground, a left-to-right navy scrim so the headline (condensed display, 12ch max) and a two-sentence deck sit at WCAG AA contrast on the dark left third. One filled button and one text link.
4. A sortable index table of the page's sections (No., Item with a one-line summary, Source, Date, Status as a filled label). Header buttons really sort and update aria-sort. On mobile, rows stack as blocks.
5. Every following section is an expanded row: it opens with a header strip repeating the index columns (small uppercase mono labels over values), then an h2 and a 720px reading column aligned under the Item column.
6. The signature component: a variant matrix. Columns: thumbnail, variant name with type, URL, headline, proof point, offer, form, button. The base row is pinned first with a faint fill. In every other row, cells inherited from the base show a muted "= base" ditto (real value kept for screen readers), and cells that differ get a 24% accent tint at 24 percent and a 2px accent underline. A real switch toggles the dimming off to show the full grid. The table scrolls horizontally inside its own bordered region on small screens.
7. Prompt section, short closing note, a sources table (title, publisher, date), previous/index/next nav, colophon.

Palette: deep navy ground #0D1A30 with a 1px horizontal ruling every 44px at 4.5% opacity, raised surfaces #132643 and #1A3258, cream text #EEF0E8, secondary text #B7C2D6, labels #8E9CB6, cobalt filled labels #2F5C9A, one ochre accent #E0A83E for the button, highlight and progress line, a softer #EBC98A for the single italic pullquote.
Type: Antonio 600/700 for display and h2s, Radio Canada 400/600 with italic for body, Reddit Mono 400/500 for labels, URLs, table headers and code. Tabular numerals in tables.

Guardrails: body text 19px with 1.65+ line height, 60 to 75 character lines, never justified. Small labels must pass WCAG AA on their actual surface. Radius 4px on labels, 6px on buttons, 10px on panels, nothing pill-shaped except the switch track. No neon, no glow, no gradient text, no cyan on black, no left accent stripes, no fake search fields or decorative controls. Hover and focus states on every link and button at 150ms; one scroll-driven motion only. No readable text inside generated images.

Runs in Webflow, Beaver Builder AI, Claude, Cursor, v0, Lovable and Figma Make.

No.08
SectionField note
SourceThis issue
Date2026-10-21
StatusNote

Field note

A thin news day, and the one real launch is about multiplication. When pages are forked per audience by default, the most valuable thing a designer ships is the short list of what must never change.

No.09
SectionSources
SourceThis issue
Date2026-10-21
StatusLinked

Sources

TitlePublisher, date
Your next campaign starts here. Meet Webflow Campaigns.Webflow, 2026-10-20
Webflow MCP serverWebflow, product page
Firefox 159.0 beta release notesMozilla, beta 2026-10-12
Firefox 159 release scheduleMozilla release management
animation-timelineMDN reference
DESIGN.md formatGoogle Labs, GitHub