Skip to main content

Upgrading bestax-bulma 3.x → 4.x

This guide explains what changes when you upgrade @allxsmith/bestax-bulma from 3.x to 4.x. There is one consumer-facing change: the minimum supported React version is now 18. Everything else in this release is internal tooling and has no effect on your code.

TL;DR

One thing to check

4.x drops support for React 16 and 17. If your app is already on React 18 or 19, upgrade freely — nothing in your code needs to change. If you're still on React 16 or 17, stay on @allxsmith/bestax-bulma@3 until you can move to React 18+.

AreaWhat changedAction
React peer rangeNow ^18.0.0 || ^19.0.0 (was ^16.8 || ^17 || ^18 || ^19)Be on React 18 or 19
Component behaviorNo changesNone
Props / exportsNo removals or renamesNone
CSS / SCSSNo changesNone

The one breaking change: React 18 minimum

4.x sets the React peerDependencies range to:

"react": "^18.0.0 || ^19.0.0",
"react-dom": "^18.0.0 || ^19.0.0"

React 16.8 and 17 are no longer supported. The library is built and tested against React 18 and 19 on every commit (see Compatibility below).

Who is affected:

  • ✅ On React 18 or 19 — upgrade with no code changes. Your existing components, props, imports, and CSS all behave exactly as they did in 3.x.

  • ⚠️ On React 16 or 17 — npm install @allxsmith/bestax-bulma@4 will emit a peer-dependency warning, and some components rely on hooks/behavior that assume a modern React. Stay on @3 until you can upgrade React:

    npm install @allxsmith/bestax-bulma@^3

Why this changed: dropping the legacy React versions lets the library use modern React idioms (e.g. useId for accessible, SSR-safe element IDs) without compatibility shims, and keeps the maintenance surface focused on the versions the ecosystem actually runs.

Compatibility: React 18 + 19

Every change to bestax-bulma is now built, type-checked, and tested against both React 18 and React 19 in CI. A change that breaks either major fails the build, so 4.x (and every release after it) is verified against both lines — pick whichever your app uses.

No other changes

There are no component, prop, export, or CSS changes in 4.x:

  • No components were removed, renamed, or had behavior changed.
  • No props were removed or renamed.
  • The stylesheets (extras.css, bestax.css, and the prefixed / no-helpers / no-dark-mode variants) and the SCSS entry points are unchanged.

The rest of the 4.0 work was internal developer tooling (ESLint 10, a TypeScript-first React lint plugin, and the expanded React Hooks ruleset). None of it ships in the package or affects consumers.

Coming from 2.x?

If you're upgrading across two majors, read the 2.x → 3.x guide first — that release carried the form-input and themed Radio/Checkbox changes. The 2→3 jump is where the real work is; 3→4 is just the React floor.