Material Components v54.0.0 Release Notes
-
💥 Breaking changes
🚚
MDCMaskedTransition
has been removed and replaced withMDCMaskedTransitionController
. You may now useMDCMaskedTransitionController
as a standard UIKit transitioning delegate.🆕 New features
🔧 Many components now expose new public APIs for configuring typography, color, and shapes.
API changes
Cards
MDCCardCollectionCell
🆕 new property:
shapeGenerator
inMDCCardCollectionCell
MDCCard
🆕 new property:
shapeGenerator
inMDCCard
🔊 Dialogs
MDCAlertController
🆕 new property:
titleColor
inMDCAlertController
🆕 new property:
titleFont
inMDCAlertController
🆕 new property:
messageFont
inMDCAlertController
🆕 new property:
buttonTitleColor
inMDCAlertController
🆕 new property:
buttonFont
inMDCAlertController
🆕 new property:
messageColor
inMDCAlertController
MaskedTransition
MDCMaskedTransition
✂ removed class:
MDCMaskedTransition
✂ removed method:
-init
inMDCMaskedTransition
✂ removed method:
-initWithSourceView:
inMDCMaskedTransition
✂ removed property:
calculateFrameOfPresentedView
inMDCMaskedTransition
MDCMaskedTransitionController
🆕 new property:
sourceView
inMDCMaskedTransitionController
🆕 new method:
-initWithSourceView:
inMDCMaskedTransitionController
🆕 new method:
-init
inMDCMaskedTransitionController
🆕 new property:
calculateFrameOfPresentedView
inMDCMaskedTransitionController
🆕 new class:
MDCMaskedTransitionController
NavigationBar
MDCNavigationBar
🆕 new property:
titleFont
inMDCNavigationBar
🆕 new property:
titleTextColor
inMDCNavigationBar
Snackbar
MDCSnackbarManager
🆕 new class method:
+buttonTitleColorForState:
inMDCSnackbarManager
🆕 new property:
mdc_adjustsFontForContentSizeCategory
inMDCSnackbarManager
🆕 new property:
snackbarMessageViewBackgroundColor
inMDCSnackbarManager
🆕 new property:
shouldApplyStyleChangesToVisibleSnackbars
inMDCSnackbarManager
🆕 new property:
buttonFont
inMDCSnackbarManager
🆕 new class method:
+setButtonTitleColor:forState:
inMDCSnackbarManager
🆕 new property:
snackbarMessageViewShadowColor
inMDCSnackbarManager
🆕 new property:
messageTextColor
inMDCSnackbarManager
🆕 new property:
messageFont
inMDCSnackbarManager
modified class method:
+setPresentationHostView:
inMDCSnackbarManager
Type of change: Declaration From: + (void)setPresentationHostView:(UIView *)hostView;
To: + (void)setPresentationHostView:(nullable UIView *)hostView;
modified class method:
+dismissAndCallCompletionBlocksWithCategory:
inMDCSnackbarManager
Type of change: Declaration From: + (void)dismissAndCallCompletionBlocksWithCategory:(NSString *)category;
To: + (void)dismissAndCallCompletionBlocksWithCategory: (nullable NSString *)category;
modified class method:
+suspendMessagesWithCategory:
inMDCSnackbarManager
Type of change: Swift declaration From: class func suspendMessages(withCategory category: Any!) -> MDCSnackbarSuspensionToken!
To: class func suspendMessages(withCategory category: Any!) -> MDCSnackbarSuspensionToken?
modified class method:
+suspendMessagesWithCategory:
inMDCSnackbarManager
Type of change: Declaration From: + (id<MDCSnackbarSuspensionToken>)suspendMessagesWithCategory: (NSString *)category;
To: + (nullable id<MDCSnackbarSuspensionToken>)suspendMessagesWithCategory: (nullable NSString *)category;
modified class method:
+showMessage:
inMDCSnackbarManager
Type of change: Swift declaration From: class func show(_ message: MDCSnackbarMessage!)
To: class func show(_ message: MDCSnackbarMessage?)
modified class method:
+showMessage:
inMDCSnackbarManager
Type of change: Declaration From: + (void)showMessage:(MDCSnackbarMessage *)message;
To: + (void)showMessage:(nullable MDCSnackbarMessage *)message;
modified class method:
+suspendAllMessages
inMDCSnackbarManager
Type of change: Swift declaration From: class func suspendAllMessages() -> MDCSnackbarSuspensionToken!
To: class func suspendAllMessages() -> MDCSnackbarSuspensionToken?
modified class method:
+suspendAllMessages
inMDCSnackbarManager
Type of change: Declaration From: + (id<MDCSnackbarSuspensionToken>)suspendAllMessages;
To: + (nullable id<MDCSnackbarSuspensionToken>)suspendAllMessages;
modified class method:
+resumeMessagesWithToken:
inMDCSnackbarManager
Type of change: Swift declaration From: class func resumeMessages(with token: MDCSnackbarSuspensionToken!)
To: class func resumeMessages(with token: MDCSnackbarSuspensionToken?)
modified class method:
+resumeMessagesWithToken:
inMDCSnackbarManager
Type of change: Declaration From: + (void)resumeMessagesWithToken:(id<MDCSnackbarSuspensionToken>)token;
To: + (void)resumeMessagesWithToken:(nullable id<MDCSnackbarSuspensionToken>)token;
Themes
MDCFontScheme
🚚 Moved to schemes/Typography.
MDCTonalPalette
🚚 Moved to schemes/Color.
MDCTonalColorScheme
🚚 Moved to schemes/Color.
MDCColorScheme
🚚 Moved to schemes/Color.
MDCBasicColorScheme
🚚 Moved to schemes/Color.
MDCBasicFontScheme
🚚 Moved to schemes/Typography.
schemes/Typography
🆕 New component.
Component changes
Tabs
🔄 Changes
- ✅ Disable TabBar test throwing an exception (#3221) (ianegordon)
- ⏪ Revert "[Typography] Migrate from FontScheme to TypographyScheming (#3219)" (#3256) (featherless)
- [Typography] Migrate from FontScheme to TypographyScheming (#3219) (ianegordon)
MaskedTransition
🔄 Changes
- Convert MaskedTransition from a MotionTransitioning Transition type to a vanilla UIKit type (#3070) (featherless)
schemes/Color
🔄 Changes
- 0️⃣ [Color] Implement a swift-friendly API for color scheme defaults. (#3246) (featherless)
- [Color] Reduce the public API contract for MDCSemanticColorScheme. (#3234) (featherless)
- 🚚 [Color] Remove straggling reference to NSCoding. (#3237) (featherless)
- [Themes] Add new semantic color scheme (#3216) (featherless)
schemes/Typography
🔄 Changes
- Partial roll-forward of "[Typography] Migrate from FontScheme to TypographyScheming (#3219)" (#3258) (featherless)
- ⏪ Revert "[Typography] Migrate from FontScheme to TypographyScheming (#3219)" (#3256) (featherless)
- 🏗 [Typography] Fix build breakage due to missing implementation of MDCBasicFontScheme. (#3242) (featherless)
- [Typography] Migrate from FontScheme to TypographyScheming (#3219) (ianegordon)
🔋 FeatureHighlight
🔄 Changes
- Adding Color Themer. (#3260) (Mohammad Cazi)
- ⏪ Revert "[Typography] Migrate from FontScheme to TypographyScheming (#3219)" (#3256) (featherless)
- [Typography] Migrate from FontScheme to TypographyScheming (#3219) (ianegordon)
AppBar
🔄 Changes
- Color Themer now composes to the FlexibleHeader and NavigationBar color themers. (#3210) (featherless)
Ink
🔄 Changes
- 👍 [Cards] Added Shapes support for MDCCard and MDCCardCollectionCell + 2 Examples (#3215) (Yarden Eitan)
ButtonBar
🔄 Changes
- Implement new semantic color scheme themer APIs. (#3252) (featherless)
- 📚 Update documentation for the themer. (#3265) (featherless)
TextFields
🔄 Changes
- Adding Color Themer. (#3255) (Mohammad Cazi)
- ⏪ Revert "[Typography] Migrate from FontScheme to TypographyScheming (#3219)" (#3256) (featherless)
- [Typography] Migrate from FontScheme to TypographyScheming (#3219) (ianegordon)
Chips
🔄 Changes
- ⏪ Revert "[Typography] Migrate from FontScheme to TypographyScheming (#3219)" (#3256) (featherless)
- [Typography] Migrate from FontScheme to TypographyScheming (#3219) (ianegordon)
Snackbar
🔄 Changes
- 🚚 Removed dependency on UIAppearance entirely for color/font customization/theming. (#3223) (Yarden Eitan)
- ⏪ Revert "[Typography] Migrate from FontScheme to TypographyScheming (#3219)" (#3256) (featherless)
- [Typography] Migrate from FontScheme to TypographyScheming (#3219) (ianegordon)
Cards
🔄 Changes
NavigationBar
🔄 Changes
- Add an API for customizing the title label's text color. (#3266) (featherless)
- [MDCNavigationBar] Exposing typography API. (#3217) (Mohammad Cazi)
🔊 Dialogs
🔄 Changes
- Expose typography and color API. (#3218) (Mohammad Cazi)
FlexibleHeader
🔄 Changes
- Implement a color themer API with the new MDCColorScheming type. (#3236) (featherless)
- ⏪ Revert "Fix bug where shadow layer's opacity wouldn't be set without a tracking scroll view. (#3201)" (#3225) (Robert Moore)
- ⏪ Revert "Revert "Fix bug where shadow layer's opacity wouldn't be set without a tracking scroll view. (#3201)" (#3225)" (#3229) (Robert Moore)
Themes
🔄 Changes
- Add new semantic color scheme (#3216) (featherless)
- Partial roll-forward of "[Typography] Migrate from FontScheme to TypographyScheming (#3219)" (#3258) (featherless)
- ⏪ Revert "[Typography] Migrate from FontScheme to TypographyScheming (#3219)" (#3256) (featherless)
- 🚚 [Catalog] Remove the global theme change notifications. (#3213) (featherless)
- [Typography] Migrate from FontScheme to TypographyScheming (#3219) (ianegordon)