Skip to content

Evaluate existing major bumps of backpack dependency for v39 #4015

@Faye-Xiao

Description

@Faye-Xiao

🧭 Backpack v39 Major dependency Bump PRs Review Summary

PR Title Core Change Impact Assessment Key Reasoning Note Status
#3994 Bump react & @types/react Upgraded React 18.3.1 → 19.2.0 (+ types). Breaking: React 19 removes defaultProps on FCs, Legacy Context, string refs; requires new JSX transform;
useId IDs changed.
React 19 is still under internal evaluation Deferred it until we decide to upgrade it to 19.x Evaluated and deferred it.
#3996 Bump react-dom & @types/react-dom Upgraded react-dom 18.3.1 → 19.2.0 (+ types). Breaking: Removed ReactDOM.render/hydrate/unmountComponentAtNode;
SSR & Suspense behavior changed;
useId ID format changed.
It should be aligned with React, and React 19 is still under internal evaluation Deferred it until we upgrade react to 19.x. Evaluated and deferred it.
#3997 Bump @types/react-window 1.8.8 → 2.0.0 Type-only upgrade (devDependency) External: None.
Internal: Possible new TS hints in examples.
Adopting the type upgrade only would cause a type mismatch with the react-window@18.x, while upgrading both requires a code change. Deserved a careful validation. Its version should be aligned with the react-window's version. Evaluated and deferred it.
#3995 Bump @percy/storybook 6.0.3 → 9.1.0 Visual regression tooling upgrade External: None.
Internal: CI screenshot config may change.
CI tooling only; no runtime effect. 🔹 Downgrade to minor + Re-baseline Percy snapshots.
#3865 Bump Storybook 8.6 → 9.0 Dev/documentation environment upgrade External: None.
Internal: Config migration required.
Developer docs only; not user-facing. 🔹 Downgrade to minor + Validate Storybook build and addons.
#3992 Bump glob 10.4.5 → 11.0.3 Drops Node < 20 External: None (not runtime).
Internal: Requires Node 20+.
Affects build scripts only; Node version compatibility risk. 🔹 Downgrade to minor + Ensure CI uses Node 20 or pin to ^10.
#3794 Bump normalize.css 4.2.0 → 8.0.1 Major CSS reset evolution (4→8) External: Potentially breaking if distributed styles include it.
Internal: Storybook/Docs may show visual drift.
normalize.css changed base resets significantly; could affect visual baselines. ⚠️ Keep as major if exported styles; minor if docs-only + Verify via Percy diff. 🧪 To be tested

🧭 Confirmed Major Change PRs for Backpack v39

PR Title Core Change Impact How to Use / Migration Status Note
#4007 Deprecate SCSS @import in Backpack Clean up Removed legacy SCSS @import usages, removed node-sass dependency, switched all mixins to stable bpk-mixins instead of unstable__bpk­-mixins. oai_citation:0‡GitHub Breaking for consumers who still use @import or import from unstable__bpk-mixins. Build/config may fail or styles may be missing. Consumers must change all @import to @use, and update any import paths from unstable__bpk-mixinsbpk-mixins. oai_citation:1‡GitHub approved + tested Major change:
mark as breaking.
#3990 [BpkCardList] use negative margin to remove bottom padding Adjusted internal padding/margin of BpkCardListCarousel: removed top 0.25 rem padding, removed bottom 1 rem padding when accessory is not rendered; switched to a consistent positive padding + negative margin technique. oai_citation:2‡GitHub Breaking layout for consumers relying on the old built-in bottom padding; will alter spacing when accessory not present. If you used BpkCardList in ROW or RAIL layout without accessory, you may need to add your own 1 rem bottom spacing to maintain previous layout. oai_citation:3‡GitHub approved + tested Major change:
layout impact.
#3979 Deprecate SCSS @import in Backpack (Modern Sass API) Similar to #4007: removed all @import, switched to @use, consolidated mixins. oai_citation:4‡GitHub Breaking for styling consumers using @import or unstable__bpk-mixins. Consumers must change import syntax to @use and update paths to bpk-mixins. oai_citation:5‡GitHub approved + tested Major change; schedule for v39.
#3965 [BpkBottomSheet] adding padding types style Added a prop paddingType (none/base/small/medium/large) to BpkBottomSheet; default “small” equals 1.5 rem (24px) and changed from previous static 16px. oai_citation:6‡GitHub Minor breaking: default padding changed from 16px to 24px (“small”). Some consumers may notice increased vertical space. If you used BpkBottomSheet and relied on old padding, you may now want to explicitly pass a paddingType="none" or adjust CSS to override. approved + tested Non-breaking in API but visual difference.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions