Skip to main content

Anvil2 3.0 Release

Anvil2 3.0 is a CSS-only breaking release. We’ve made some foundational changes to our CSS structure to address critical issues we’ve faced in the first two versions of Anvil2, and to provide a more robust tokens and colors system. This page will describe the changes introduced in 3.0, as well as the things that product teams need to test. The scope of this change also requires that all monolith and MFE projects will need to upgrade to 3.0 in the 78Vega release. Anvil2 3.0 will not be compatible with earlier versions. Due to this requirement, we’ve decided to hold off on any non-CSS breaking changes in this version.

Anvil2 v3.0 migration guide for designers

Anvil2 v3.0 is available now for designers working on 78Vega. This guide covers what’s changing with tokens and how to set up your Figma workspace. The full release is targeted for June 6, 2026.If you’re not working on 78Vega, wait for the official release.

What’s new in v3.0

Tokens

Anvil2 v3.0 introduces changes across all three token tiers.

Tier 3 — New

Tier 3 tokens are a new addition to the system. They represent component-level semantic decisions — things like surface color, border, and interactive states. You won’t use tier 3 tokens directly in your designs. Components in the Anvil2 v3.0 library are already built with them, so the work is handled automatically when you use updated components.

Tier 2 — Name changes

Some tier 2 tokens have minor name updates for consistency. If you reference tier 2 tokens directly in your designs, review any custom components or local styles that use them and update as needed.
Overlay → Transparent Background
The entire overlay token category was removed and replaced with background.color.transparent.*.
2.x3.0
overlay.color.hover.defaultbackground.color.transparent.default-hover
overlay.color.active.defaultbackground.color.transparent.default-active
overlay.color.hover.primarybackground.color.transparent.primary-hover
overlay.color.active.primarybackground.color.transparent.primary-active
overlay.color.hover.dangerbackground.color.transparent.danger-hover
overlay.color.active.dangerbackground.color.transparent.danger-active
$root flattening (structural rename)
Interactive state tokens were restructured from nested $root objects to flat hyphenated siblings. This pattern applies across all semantic token groups — foreground, background, border, etc. The -hover and -active suffixes are now flat siblings instead of nested children.2.x:
foreground.color.primary        (was $root)
foreground.color.primary.hover
foreground.color.primary.active
3.0:
foreground.color.primary
foreground.color.primary-hover
foreground.color.primary-active

Tier 1 — Expanded color ramp

The tier 1 color ramp has been expanded with new values. Update adds coverage at the edges of the scale.

Components

Components in Anvil2 v3.0 have been rebuilt to match code props as closely as possible. This alignment reduces the gap between design and engineering, making handoff more predictable and consistent.Anvil2 v3.0 components also now support Figma Slots, allowing you to nest components inside other components while preserving their properties and behavior.

Set up your Figma libraries

The new Anvil2 libraries are not enabled by default. Follow these steps to enable them manually.

Turn on the new libraries

  1. Open your Figma file.
  2. Go to Main menu → Libraries.
  3. Search for and enable:
    • Anvil2 v3 (replaces Anvil2)
    • Anvil2 Design Token

Turn off the old library

  1. In the same Libraries panel, locate Anvil2 and toggle it off.
Disabling the old library may cause components that haven’t been swapped yet to show as unresolved. Complete the library swap before sharing files with others or handing off for review.

Introducing Figma Slots

Figma Slots let you define flexible areas within a component where other components can be inserted without detaching or overriding the parent’s structure. Instead of hard-coding every possible content variation, you designate a region as a slot — any component dropped into that slot inherits the parent’s layout constraints while keeping its own properties and variants intact.Slots make design system components more composable and reduce the need for one-off variants. Anvil2 v3.0 components are built with slot support, so you can nest and swap content freely within the updated library.Learn more:

Known limitation: Slots and variable properties

Figma has a current limitation with slots and component variables. When a component is placed inside a slot, its layers become detached from the original component structure. As a result, component properties — including variant-based changes — may not update as expected when switching states.This is a known Figma issue the team is actively working to clarify. In the meantime, if a component inside a slot isn’t responding to property changes, swap it out manually rather than relying on the variable to update it.Read the Figma forum thread for full details.

Release timeline

MilestoneDate
Anvil2 v3.0 releaseEnd of April 2026
Schema freezeJune 1, 2026
Feature complete / full releaseJune 6, 2026

Next steps

The Anvil team will enable Anvil2 v3.0 for all designers by default with the 78Vega release on June 6. When this happens, the old Anvil2 library will be switched off automatically — but not deleted. Existing spaces that aren’t upgrading yet will retain access to the old library.Questions or issues? Reach out in #anvil-design-system or file an issue in the Anvil backlog.
Last modified on May 18, 2026