Forma 36 v6 introduces several breaking changes focused on:
- React 19 & Node Version Updates: Updated peer dependencies to support React 19 and newer Node versions
- Emotion CSS Upgrade: Updated from Emotion v10 to v11, requiring updates to styling dependencies
- API Simplification: Removed redundant props and consolidated type definitions across multiple components
The migration primarily affects prop interfaces and type exports. Most runtime behavior remains backward-compatible, but TypeScript consumers will need to update type imports and remove deprecated props.
| Component | Breaking Change | Impact |
|---|---|---|
| Accordion | Refactored to use React Context; removed align prop from AccordionItem and AccordionHeader |
Alignment now controlled only at parent Accordion level; components must be used within Accordion wrapper |
| Menu | Changed placement prop (removed auto-start, auto-end), changed offset prop shape, and deprecated Menu.Submenu |
Requires prop value updates; use nested Menu components instead of Menu.Submenu |
| Popover | Changed placement prop (removed auto-start, auto-end) and offset prop shape |
Requires prop value updates |
| Skeleton | Removed SkeletonDisplayTextProps and SkeletonBodyTextProps types |
TypeScript type imports need updating |
| Tooltip | Changed placement prop (removed auto-start, auto-end) |
Requires prop value updates |
The Accordion component has been refactored to use React Context for internal state management. The align prop has been removed from AccordionItem and AccordionHeader and is now configured only on the parent Accordion component. Additionally, AccordionItem and AccordionHeader must now be used within an Accordion wrapper—they can no longer be used as standalone components.
📖 Full Accordion Migration Guide
- Removed
auto-startandauto-endfromplacementprop - Changed
offsetprop from tuple[number, number]tonumber | OffsetOptionsobject - Deprecated
Menu.Submenu- Use nestedMenucomponents instead; nesting is automatically detected via context
- Removed
auto-startandauto-endfromplacementprop - Changed
offsetprop from tuple[number, number]tonumber | OffsetOptionsobject
📖 Full Popover Migration Guide
Consolidated duplicate type exports. Use SkeletonTextProps instead of SkeletonDisplayTextProps or SkeletonBodyTextProps.
📖 Full Skeleton Migration Guide
Removed auto-start and auto-end from placement prop values.
📖 Full Tooltip Migration Guide
- Update React and Node versions per package.json requirements
- Review and update Accordion implementations (remove item-level
alignprops) - Update Menu
placementandoffsetprops; replaceMenu.Submenuwith nestedMenu - Update Popover
placementandoffsetprops - Replace deprecated Skeleton type imports with
SkeletonTextProps - Update Tooltip
placementprops - Run TypeScript compiler to catch any remaining type errors
- Perform visual regression testing
For detailed migration steps, code examples, and FAQs, please refer to the individual component migration guides linked above.