-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Blueprint 4.0
Full changelog of v4.0.0-beta.x and v4.0.0-rc.x releases here →
- Modernized color palette
- More "mature" grays, primary colors, and secondary colors
- Improved component accessibility by meeting color contrast standards in accordance with WCAG 2.0 guidelines (1.4.3 Minimum Contrast)
- React 16.8+ required
- CSS namespace changed from
bp3-tobp4- - Icons build pipeline has been revamped, so icon font support is restored
- See Icons 4.0 changes for more info
Some components have visual design changes which deserve special mention and consideration during the upgrade. If you are applying custom CSS on top of these components, you should revisit those styles and ensure they are adapted for Blueprint v4.
Borders are more prominent to improve contrast.
Before (light/dark):
After (light/dark):
Control groups now have a gap between their child elements.
Before:
After:
This change was necessitated by the updated border styles of text inputs, which make the old approach of placing these inputs directly next to buttons no longer visually coherent.
Text color is inverted to improve contrast.
Before / After:
Background is no longer inverted for hover / selection state.
Before / After:

-
IKeyWhitelistandIKeyBlacklistare removed (deprecated since 3.30.0)- Use
KeyAllowlist/KeyDenylistinstead.
- Use
-
Utils.safeInvokeandUtils.safeInvokeOrValueare removed (deprecated since 3.32.0)- Use TypeScript optional call operator
?.()instead (available since TS 3.7).
- Use TypeScript optional call operator
-
Utils.createReactRefis removed (deprecated since 3.43.0)- Use
React.createRef,React.useRef,React.forwardRef()instead
- Use
-
IDrawerProps.verticalis removed (deprecated since 3.15.0)- Use the
positionprop on<Drawer>instead.
- Use the
-
<HTMLTable>componentsmallprop is removed (deprecated since 3.6.0)- Use the
condensedprop instead.
- Use the
-
Menu.ItemandMenu.Dividerare removed (deprecated since 3.38.0, see #3829)- Use
MenuItemandMenuDividerinstead.
- Use
-
LifecycleCompatPolyfilltype is removed (deprecated since 3.43.0) -
Icon.SIZE_*,Drawer.SIZE_*,Spinner.SIZE_*constants removed (deprecated since 3.44.1)- Use
IconSize,DrawerSize, andSpinnerSize, respectively, instead
- Use
-
Classes.FIXED_POSITIONING_CONTAINING_BLOCKis removed (deprecated since 3.45.0; this was only required for<ContextMenu2>positioning for a very brief period of time)
- FAQ
- 6.x Changelog
- 5.x Changelog
- 5.0 pre-release changelog
- 4.x Changelog
- v4.0 & v5.0 major version semantic swap
- v6.0 changes
- Spacing System Migration: 10px to 4px
- react-day-picker v8 migration
- HotkeysTarget & useHotkeys migration
- PanelStack2 migration
- Table 6.0 changes