Should I upgrade to Mantine 7 to 8 Global Styles Import now?
Decide whether to upgrade to Mantine 8 now that global style imports changed, with risk concentrated in shared app shells and internal component libraries.
Blockers
- breaking_change_in: package/mantine-8 → package/mantine-7
- requires_version: package/mantine-9 → framework/react-19-2
- replaces: package/mantine-9 → package/mantine-8
Who this is for
- monorepo
- small-team
Candidates
Upgrade to Mantine 8 now, but standardize all shared entrypoints on @mantine/core/styles.css
Mantine 8.0.0 was released on May 5, 2025, and Mantine docs list v8.3.0 in the changelog as of 2026-04-08. The core blocker is that the old separate import `@mantine/core/styles/global.css` no longer includes all global styles in 8.x. Mantine's 7.x to 8.x migration guide says `@mantine/core/styles.css` still works unchanged in both 7.x and 8.x because it already includes the new split files. This is the lowest-risk upgrade path when shared shells or internal libraries currently centralize Mantine CSS setup.
When to choose
Use this when you want the 7.x to 8.x upgrade without expanding the migration scope into per-component CSS ordering work. It is the best choice when multiple apps consume a shared shell and you can enforce one root Mantine CSS import contract.
Tradeoffs
Pros: smallest migration surface for the global-styles break, preserves compatibility across shared packages, and avoids manual import ordering for baseline/global CSS. Cons: you do not get the size/control benefits of granular CSS imports, and you still need to review other 8.x breaking changes like Portal behavior and @mantine/dates callback value changes.
Cautions
Do not leave any package depending on `@mantine/core/styles/global.css` alone after the upgrade; Mantine says that import no longer includes all required global styles in 8.x. If you later switch to granular CSS files, Mantine docs require importing global styles before other component CSS and keeping component import order correct.
Defer the Mantine 8 upgrade until all shared shells and internal libraries are audited for separate global.css imports
Mantine docs list v7.17.0 as the latest 7.x release and v8.3.0 as the latest 8.x release visible in the changelog as of 2026-04-08. The 7.x to 8.x migration guide explicitly calls out `@mantine/core/styles/global.css` as a breaking import because 8.x split global styles into `baseline.css`, `default-css-variables.css`, and `global.css`. If your monorepo has multiple internal packages, storybooks, test apps, or app shells with their own Mantine bootstrapping, deferring lets you inventory those imports first instead of accepting cross-app styling regressions.
When to choose
Use this when your risk is concentrated in shared layout packages, white-label shells, or library consumers you cannot update atomically. The decisive factor is whether you can prove all Mantine CSS enters through a single controlled root import.
Tradeoffs
Pros: avoids silent visual regressions from incomplete global CSS, gives time to audit import topology, and reduces emergency fixes across downstream apps. Cons: you stay on 7.x longer and postpone any 8.x adoption work.
Cautions
This is only a short-term holding pattern, not a cleaned-up end state. The audit should specifically search for `@mantine/core/styles/global.css` and any granular component CSS usage that depends on import order.
Skip Mantine 8 and move straight to Mantine 9 only if React 19.2+ is already in scope
Mantine 9.0.0 was released on March 31, 2026, and Mantine says 9.x requires React 19.2 or later as of 2026-04-08. The 8.x to 9.x migration guide says teams that cannot move to React 19.2+ yet should continue using Mantine 8.x. That means a direct 7.x to 9.x jump only makes sense if your React baseline is already being raised and you are willing to absorb both the 7.x to 8.x CSS import change and the 9.x API changes in one program.
When to choose
Use this when a broader platform upgrade already includes React 19.2+ and you want to avoid doing two Mantine major migrations close together. The decisive factor is whether React 19.2 adoption is already approved, funded, and scheduled.
Tradeoffs
Pros: avoids landing on an intermediate major, aligns with the current Mantine major, and may reduce repeated migration churn. Cons: significantly larger blast radius than a focused 7.x to 8.x move, with additional 9.x API changes beyond the CSS import issue.
Cautions
Do not choose this path just to avoid the 8.x import change; 9.x adds its own migration work and hard React 19.2+ prerequisite. If React 19.2 is not already planned, Mantine's own guidance points you to 8.x instead.
Try with your AI agent
$ npm install -g pocketlantern $ pocketlantern init # Restart Claude Code, Cursor, or your MCP client, then ask: # "Should I upgrade to Mantine 7 to 8 Global Styles Import now?"