The Coverage Table
A localization product page built as one dark indigo data table, with the product's main control live in the hero.
A coverage table is the screen a content team lives in: items down the side, languages across the top, and a state in every cell. Here the state is written as a word and colored as a second signal, so the table still reads in grayscale. The page around it keeps the table's grammar, numbering each section as a row, ruling the ground at row height and setting every label in the type family's mono cut.
Framer's Content panel decides what each locale carries
Framer's localization update adds a Content panel that lists pages, CMS collections and components across every locale on a site. Each item can be included, kept untranslated or hidden, one at a time or in bulk.
New locales get a default as well: include all content from the start, or start untranslated and opt items in. The second default makes a staged launch a setting rather than a workaround, because a locale can open with only the pages someone has actually checked.
A locale can now open small and earn its pages one at a time.
It pairs well with the move Webflow made in September, where only changed words go back through translation. Webflow narrowed what gets retranslated; Framer narrows what gets published at all.
- Shipped
- November 2, 2026, in Framer's updates log
- Lives in
- Localization, in the new Content panel
- States
- Included, kept untranslated, hidden
- Scope
Pages
Collections
Components- New locales
- Include by default, or start untranslated
Lovable will open a project you started somewhere else
Lovable's October 29 changelog entry adds imports from ZIP exports made in Replit, Bolt, Base44, v0 and Manus. It can also pull in an existing website from its address, through Import project in the dashboard's plus menu.
For a freelancer that turns the first builder a client tried into a starting file instead of a sunk cost. Check what comes across before quoting, since an export carries the old tool's structure along with its pages.
| Starting point | How it arrives | Where to start |
|---|---|---|
| Replit, Bolt, Base44, v0, Manus | A ZIP export of the project | Import project, in the dashboard's plus menu |
| An existing website | Its address | Import project, in the dashboard's plus menu |
Scroll-driven animation reaches the Firefox release channel
Firefox 159 went to release channel users on October 27, and its notes list animation-timeline, scroll-timeline, view-timeline and animation-range as new CSS. We covered the beta on October 21.
The stable notes do not say whether the properties are on by default, so keep the reveal behind a feature query and keep the page readable without it.
@supports (animation-timeline: view()) {
@media (prefers-reduced-motion: no-preference) {
.reveal {
animation: rise linear both;
animation-timeline: view();
animation-range: entry 0% cover 30%;
}
}
}
@keyframes rise {
from { opacity: 0; translate: 0 24px; }
}
Builders that keep the brief between sessions
Lovable remembers what you tell it
Lovable now stores preferences, decisions and facts from chat and applies them in later conversations. Project memory is shared by everyone who can edit the project, personal memory follows you across projects, and Settings shows a summary you can fix with Change in chat.
Say the type scale and the colors a client has ruled out once, then read the summary before handing the project over.
| Scope | Applies to | Where to correct it |
|---|---|---|
| Project memory | Everyone who can edit the project | Settings summary, or Change in chat |
| Personal memory | You, across all your projects | Settings summary, or Change in chat |
Framer rebuilt its harness
Framer's Harness 2 runs a whole workflow as one program instead of one tool call at a time. Framer reports half as many tool steps and 39 percent fewer cached input tokens per message, and the same capabilities now reach outside tools through MCP.
Borrow this pattern
Give a cell three named states, not a checkbox and a footnote
When a table cell has more than two honest answers, write each answer as a word and let color repeat it. Use it for locale coverage, plan availability, content sync or review status, anywhere a yes or no hides a third case.
- The word carries the meaning; the fill only repeats it, so the table still reads in grayscale and for color-blind readers.
- The quiet state looks quiet: an outline and a strike for hidden, never a third loud fill.
- Bulk actions appear only when rows are selected, and name the column they will change.
- State the default for new columns above or below the table, where the person adding one will see it.
.st { font: 600 13px/1 var(--font-body);
padding: 8px 10px; border-radius: 6px;
border: 1px solid transparent; }
.st.inc { background: #BFD9B4; color: #16301E; }
.st.unt { background: #EDC16A; color: #2F2304; }
.st.hid { background: none; color: #B4B9DD;
border-color: #4F5585;
text-decoration: line-through; }
tr:has(input:checked) { background: rgb(240 112 79 / .12); }
Prompt Lab: a dark coverage table product page
Paste this into a build tool to get today's page with your own product in it.
Build a one-page product landing page for [product], a localization or content-sync tool. Treat it as a dark data-table product: the page's main control is a live coverage table in the hero, and the rest of the page keeps the table's grammar. Ground: flat deep indigo #1B1F3D with faint horizontal row ruling every 40px at about 5 percent bone, like the rows of a table. No gradients, no glow, no dot grid. Above the fold, three columns. Far left, a narrow vertical spine set sideways with the release number, date and reading time, divided from the copy by a 1px rule. Then a copy column: a small mono kicker, a bold 13ch headline, a two-sentence deck, one coral #F0704F button with dark ink text, and a plain text link. The right seven twelfths hold the coverage panel on deeper indigo #121530 with a 12px radius and one tight shadow, the only elevated element on the page. The coverage panel: a header row of locales with the source locale marked and locked; one row per content item with a square two-colour risograph thumbnail, the item name and its kind (page, collection, component); one three-state cell per locale reading Included, Untranslated or Hidden in words. Clicking a cell cycles its state. Row checkboxes reveal a coral bulk bar that sets a chosen locale for every selected row. A footer radio picks the default for new locales, and an Add locale button appends a column with that default. Below the hero, a full-width contents table (row number, section, item, source, date). Its row numbers become the section markers: each section is a two-column row with a 220px key column (a large mono row number, a solid bone kind label, the date) beside a 720px reading column. One bone sheet inverts the page for the reusable pattern and a CSS snippet. The copyable prompt sits in a two-column block: a metadata column (key, archetype, works-in list, copy button) beside the prompt on a deeper indigo sheet with a 1px periwinkle border. Sources as a real table, a three-cell pager, a colophon. Palette: indigo #1B1F3D ground, #121530 for the nav and panels, bone #EEEAE0 for headings and the inverted sheet, coral #F0704F as the only loud accent (buttons, focus rings, the bulk bar, row numbers), pale sage #BFD9B4 for Included, ochre #EDC16A for Untranslated, and Hidden as a periwinkle outline with a strike. Type: Red Hat Display 800 for headlines, Red Hat Text for body and controls, Red Hat Mono for row numbers, keys, labels and code. One superfamily, split by optical size. Guardrails: body text 19px with 1.7 line height and a 68 character measure. Every state is written as a word, never color alone. Small labels meet WCAG AA against the indigo and against each fill. Hover and focus states on every real control at about 150ms, with a prefers-reduced-motion guard. No fake controls: every button does something or is removed. 6px radius on cells and labels, 12px on panels, no pills. No neon, no glow, no purple-blue gradients, no readable text inside images. On mobile the table rows become cards with each locale as a labelled line, the spine turns horizontal above the headline, and the key column sits inline above each heading.
Field note
A locale that opens with three checked pages reads better than one that opens with forty unread ones. The Content panel turns that smaller launch into a default you pick once.
Sources
| Title | Publisher | Date |
|---|---|---|
| Localization Update: Content Panel and Opt-In | Framer | Nov 2, 2026 |
| Harness 2 | Framer | Nov 2, 2026 |
| Bring your app or website to Lovable | Lovable | Oct 29, 2026 |
| Lovable remembers what you tell it | Lovable | Oct 30, 2026 |
| Firefox 159.0 release notes | Mozilla | Oct 27, 2026 |