Skip to content

CSS backdrop-filter property disappear in Next.js 15.3.0/15.3.1 dev mode with Turbopack #78302

Open
@RoversX

Description

@RoversX

Link to the code that reproduces this issue

https://codesandbox.io/p/devbox/sweet-lumiere-s7v6jh

To Reproduce

npm run dev

and use chromium core

The backdrop-filter issue specifically occurs in Next.js 15.3.0 and later versions when using Turbopack (next dev --turbo). The problem arises when the CSS properties are ordered with the -webkit-backdrop-filter prefix first, followed by the standard backdrop-filter, like this: -webkit-backdrop-filter: blur(Xpx); backdrop-filter: blur(Xpx);. In this specific ordering under Turbopack, the standard backdrop-filter: blur(Xpx); declaration effectively disappears or is ignored during processing, preventing the blur effect from rendering in non-WebKit browsers. Reversing this order or running without Turbopack resolves the issue.

The current solution is to roll back to nextjs 15.2.5

Current vs. Expected behavior

Current behavior:

When running a Next.js 15.3.0+ project in development mode with Turbopack (next dev --turbo), and CSS is written with the -webkit-backdrop-filter property declared before the standard backdrop-filter property, the standard backdrop-filter rule is seemingly ignored or removed during processing. This results in the blur effect not being applied in browsers that rely on the standard property (like Firefox and modern Chrome/Edge), even though the -webkit- prefixed version might still be present in the processed CSS. The visual effect is that the element has its semi-transparent background, but the content behind it is not blurred.

Expected behavior:

Regardless of whether Turbopack is used or the order in which -webkit-backdrop-filter and backdrop-filter are declared in the source CSS, the Next.js development server should process the CSS correctly, ensuring that both the prefixed and standard properties are output if needed for the target browsers. The visual expectation is that the backdrop-filter: blur() effect should render correctly in all supporting browsers, blurring the content behind the element, consistent with the behavior in production builds or when next dev without Turbopack is used, or with previous Next.js versions (like 15.2.5.2.ehavior in production builds or when next dev without Turbopack is used, or with previous Next.js versions (like 15.2.x) even when using Turbopack.

Provide environment information

Operating System:
  Platform: darwin
  Arch: arm64
  Version: Darwin Kernel Version 24.4.0: Fri Apr 11 18:33:47 PDT 2025; root:xnu-11417.101.15~117/RELEASE_ARM64_T6000
  Available memory (MB): 16384
  Available CPU cores: 8
Binaries:
  Node: 23.11.0
  npm: 10.9.2
  Yarn: N/A
  pnpm: 10.8.1
Relevant Packages:
  next: 15.3.1 // Latest available version is detected (15.3.1).
  eslint-config-next: 15.1.0
  react: 19.0.0
  react-dom: 19.0.0
  typescript: 5.8.3
Next.js Config:
  output: N/A

Which area(s) are affected? (Select all that apply)

create-next-app, Turbopack, CSS

Which stage(s) are affected? (Select all that apply)

next dev (local)

Additional context

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    CSSRelated to CSS.TurbopackRelated to Turbopack with Next.js.create-next-appRelated to our CLI tool for quickly starting a new Next.js application.linear: turbopackConfirmed issue that is tracked by the Turbopack team.

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions