Releases: material-components/material-components-ios
v54.6.0
This release introduces new APIs and themers for customizing typography and color. This release
also fixes a bug in NavigationBar affecting title label kerning for system fonts. This may result
in visual changes for navigation bar instances.
New features
AppBar now has a Typography themer.
Buttons now has a raised button color themer.
BottomSheets background tap-to-dismiss behavior can now be disabled with dismissOnBackgroundTap
.
ButtonBar and NavigationBar's ink color can now be customized.
Cars now has a Color themer.
NavigationBar has a new opt-in behavioral change gated by the useFlexibleTopBottomInsets
property.
Enabling this property will result in new layout behavior for the navigation bar's titleView. This
flag will be enabled by default in the future. Consider enabling this flag on your navigation bar
instances in order to verify that the new behavior will not cause regressions in your app.
TextFields now expose a backgroundColor property.
API changes
BottomSheet
MDCBottomSheetPresentationController
new property: dismissOnBackgroundTap
in MDCBottomSheetPresentationController
MDCBottomSheetTransitionController
new property: dismissOnBackgroundTap
in MDCBottomSheetTransitionController
MDCBottomSheetController
new property: dismissOnBackgroundTap
in MDCBottomSheetController
ButtonBar
MDCButtonBar
new property: inkColor
in MDCButtonBar
NavigationBar
MDCNavigationBar
new property: inkColor
in MDCNavigationBar
new property: useFlexibleTopBottomInsets
in MDCNavigationBar
TextFields
MDCTextInputControllerBase
new property: backgroundColor
in MDCTextInputControllerBase
MDCTextInputController
new property: backgroundColorDefault
in MDCTextInputController
new property: backgroundColor
in MDCTextInputController
Component changes
AppBar
Changes
- Add a Typography themer. (#3359) (featherless)
- [ButtonBar] Allow customizing the inkColor of the buttons (#3250) (Ali Rabbani)
- [NavigationBar] Allow flexible height/insets in MDCNavigationBar (#3305) (Ali Rabbani)
Buttons
Changes
- Implement a color themer for an MDCRaisedButton (#3335) (Yarden Eitan)
- [Button Examples] Moved most examples into dragons so that only beautiful demos are in the main catalog. (#3358) (Randall Li)
ButtonBar
Changes
- Allow customizing the inkColor of the buttons (#3250) (Ali Rabbani)
- [NavigationBar] Allow flexible height/insets in MDCNavigationBar (#3305) (Ali Rabbani)
TextFields
Changes
- Add backgroundColor property (#3357) (ianegordon)
- Adding the expected opacities to color themer. (#3347) (Mohammad Cazi)
Cards
Changes
- Implement a semantic color scheme color themer API. (#3289) (Yarden Eitan)
NavigationBar
Changes
- Allow flexible height/insets in MDCNavigationBar (#3305) (Ali Rabbani)
- Fix bug where system font traits would be lost. (#3360) (featherless)
- [ButtonBar] Allow customizing the inkColor of the buttons (#3250) (Ali Rabbani)
ActivityIndicator
Changes
BottomSheet
Changes
- Adds a setting to make sheets impossible to dismiss. (#3325) (John Detloff)
BottomNavigation
Changes
v54.5.0
This release includes bug fixes and increased coverage of our themer APIs for components.
New features
Slider now exposes a variety of properties for customizing color, including new stateful color APIs.
To make use of the new stateful APIs, you must enable statefulAPIEnabled
on the MDCSlider
instance.
BottomNavigationBar and Dialogs now both have a semantic color themer.
API changes
Slider
MDCSlider
new method: -setBackgroundTrackTickColor:forState:
in MDCSlider
new property: valueLabelTextColor
in MDCSlider
new method: -trackFillColorForState:
in MDCSlider
new method: -backgroundTrackTickColorForState:
in MDCSlider
new method: -setThumbColor:forState:
in MDCSlider
new method: -trackBackgroundColorForState:
in MDCSlider
new method: -setFilledTrackTickColor:forState:
in MDCSlider
new method: -filledTrackTickColorForState:
in MDCSlider
new method: -thumbColorForState:
in MDCSlider
new method: -setTrackBackgroundColor:forState:
in MDCSlider
new property: inkColor
in MDCSlider
new property: statefulAPIEnabled
in MDCSlider
new property: valueLabelBackgroundColor
in MDCSlider
new method: -setTrackFillColor:forState:
in MDCSlider
Component changes
ButtonBar
Changes
- Fix insets for the trailing button bar (#3324) (Ali Rabbani)
TextFields
Changes
- Placeholder background color (#3333) (Will Larche)
- [Chips] Ensure MDCChipField notifies delegate when clear button is tapped (#3341) (Ben Hamilton (Ben Gertzfield))
Chips
Changes
- Ensure MDCChipField notifies delegate when clear button is tapped (#3341) (Ben Hamilton (Ben Gertzfield))
Slider
Changes
- Add inkColor, thumbColorForState:, trackFillColorForState: (#3310) (Robert Moore)
- Add text, background color to value label (#3330) (Robert Moore)
- Add tick color API (#3344) (Robert Moore)
ActivityIndicator
Changes
Dialogs
Changes
- Implement a semantic color themer. (#3313) (featherless)
BottomNavigation
Changes
- Update BottomNavigationBar color themer (#3316) (John Detloff)
v54.4.0
New features
Buttons now has a Typography themer.
MDCFlatButton now has a color themer API.
API changes
Component changes
Buttons
Changes
- Implement a color themer for an MDCFlatButton (#3308) (Yarden Eitan)
- Implement a typography themer. (#3318) (Yarden Eitan)
v54.3.0
This release continues to expand our support for component Color and Typography theming.
New features
Buttons and Snackbar now have a Color themer.
BottomNavigationBar, Chips, NavigationBar, TextFields each now have a Typography themer.
Component changes
Buttons
Changes
- Implement a semantic color scheme color themer API. (#3306) (Yarden Eitan)
TextFields
Changes
- Typography Themer implementation. (#3303) (Mohammad Cazi)
Chips
Changes
- Chips typography implementation. (#3312) (Mohammad Cazi)
Snackbar
Changes
- Implement a semantic color scheme color themer API. (#3287) (Yarden Eitan)
NavigationBar
Changes
- typography implementation. (#3304) (Mohammad Cazi)
BottomNavigation
Changes
- BottomNavigationBar Typography Implementation, (#3311) (Mohammad Cazi)
FlexibleHeader
Changes
- Fix Flexible Header Configurator catalog example (#3254) (John Detloff)
v54.2.0
New features
Dialogs, FeatureHighlight, and TabBar now each have a Typography themer.
ActivityIndicator and AppBar now have an updated Color themer.
API changes
FeatureHighlight
MDCFeatureHighlightViewController
new property: titleFont
in MDCFeatureHighlightViewController
new property: bodyFont
in MDCFeatureHighlightViewController
TextFields
MDCTextInputController
new property: textInputFont
in MDCTextInputController
new property: textInputFontDefault
in MDCTextInputController
Component changes
Tabs
Changes
- Implementing TabBar Typography Themer. (#3278) (Mohammad Cazi)
FeatureHighlight
Changes
- Implementation of Typography Themer. (#3268) (Mohammad Cazi)
- exposing title and body font for FeatureHighlightViewController. (#3274) (Mohammad Cazi)
AppBar
Changes
- Implement semantic color themer. (#3283) (featherless)
TextFields
Changes
- expose input text font property on controller. (#3272) (Mohammad Cazi)
Slider
Changes
- Fix green Slider example color (#3292) (Robert Moore)
NavigationBar
Changes
ActivityIndicator
Changes
- Update Activity Indicator accessibility label and value (#3261) (John Detloff)
- Update ActivityIndicator Color Themer (#3259) (John Detloff)
Dialogs
Changes
- Implement MDCAlertController typography themer. (#3302) (Mohammad Cazi)
v54.1.0
New features
Snackbar now has a Typography themer.
NavigationBar now exposes a Color themer API that makes use of the MDCColorScheming
type.
Component changes
FeatureHighlight
Changes
- cleaning up dynamic type support for feature highlight by defining the default. (#3269) (Mohammad Cazi)
Ink
Changes
- Fix flaky test (#3290) (Yarden Eitan)
Snackbar
Changes
- Implement a typography themer. (#3288) (Yarden Eitan)
NavigationBar
Changes
Dialogs
Changes
v54.0.1
v54.0.0
Breaking changes
MDCMaskedTransition
has been removed and replaced with MDCMaskedTransitionController
. You may
now use MDCMaskedTransitionController
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
in MDCCardCollectionCell
MDCCard
new property: shapeGenerator
in MDCCard
Dialogs
MDCAlertController
new property: titleColor
in MDCAlertController
new property: titleFont
in MDCAlertController
new property: messageFont
in MDCAlertController
new property: buttonTitleColor
in MDCAlertController
new property: buttonFont
in MDCAlertController
new property: messageColor
in MDCAlertController
MaskedTransition
MDCMaskedTransition
removed class: MDCMaskedTransition
removed method: -init
in MDCMaskedTransition
removed method: -initWithSourceView:
in MDCMaskedTransition
removed property: calculateFrameOfPresentedView
in MDCMaskedTransition
MDCMaskedTransitionController
new property: sourceView
in MDCMaskedTransitionController
new method: -initWithSourceView:
in MDCMaskedTransitionController
new method: -init
in MDCMaskedTransitionController
new property: calculateFrameOfPresentedView
in MDCMaskedTransitionController
new class: MDCMaskedTransitionController
NavigationBar
MDCNavigationBar
new property: titleFont
in MDCNavigationBar
new property: titleTextColor
in MDCNavigationBar
Snackbar
MDCSnackbarManager
new class method: +buttonTitleColorForState:
in MDCSnackbarManager
new property: mdc_adjustsFontForContentSizeCategory
in MDCSnackbarManager
new property: snackbarMessageViewBackgroundColor
in MDCSnackbarManager
new property: shouldApplyStyleChangesToVisibleSnackbars
in MDCSnackbarManager
new property: buttonFont
in MDCSnackbarManager
new class method: +setButtonTitleColor:forState:
in MDCSnackbarManager
new property: snackbarMessageViewShadowColor
in MDCSnackbarManager
new property: messageTextColor
in MDCSnackbarManager
new property: messageFont
in MDCSnackbarManager
modified class method: +setPresentationHostView:
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (void)setPresentationHostView:(UIView *)hostView; |
To: | + (void)setPresentationHostView:(nullable UIView *)hostView; |
modified class method: +dismissAndCallCompletionBlocksWithCategory:
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (void)dismissAndCallCompletionBlocksWithCategory:(NSString *)category; |
To: | + (void)dismissAndCallCompletionBlocksWithCategory: (nullable NSString *)category; |
modified class method: +suspendMessagesWithCategory:
in MDCSnackbarManager
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:
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (id<MDCSnackbarSuspensionToken>)suspendMessagesWithCategory: (NSString *)category; |
To: | + (nullable id<MDCSnackbarSuspensionToken>)suspendMessagesWithCategory: (nullable NSString *)category; |
modified class method: +showMessage:
in MDCSnackbarManager
Type of change: | Swift declaration |
---|---|
From: | class func show(_ message: MDCSnackbarMessage!) |
To: | class func show(_ message: MDCSnackbarMessage?) |
modified class method: +showMessage:
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (void)showMessage:(MDCSnackbarMessage *)message; |
To: | + (void)showMessage:(nullable MDCSnackbarMessage *)message; |
modified class method: +suspendAllMessages
in MDCSnackbarManager
Type of change: | Swift declaration |
---|---|
From: | class func suspendAllMessages() -> MDCSnackbarSuspensionToken! |
To: | class func suspendAllMessages() -> MDCSnackbarSuspensionToken? |
modified class method: +suspendAllMessages
in MDCSnackbarManager
Type of change: | Declaration |
---|---|
From: | + (id<MDCSnackbarSuspensionToken>)suspendAllMessages; |
To: | + (nullable id<MDCSnackbarSuspensionToken>)suspendAllMessages; |
modified class method: +resumeMessagesWithToken:
in MDCSnackbarManager
Type of change: | Swift declaration |
---|---|
From: | class func resumeMessages(with token: MDCSnackbarSuspensionToken!) |
To: | class func resumeMessages(with token: MDCSnackbarSuspensionToken?) |
modified class method: +resumeMessagesWithToken:
in MDCSnackbarManager
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
- [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)](http...
v53.0.0
Component Changes
ButtonBar
Changes
- Revert "[AppBar] Make MDCNavigationBar and MDCButtonBar size dynamically (#2974)" (#3276) (Robert Moore)
NavigationBar
Changes
v52.0.0
52.0.0
Breaking changes
BottomNavigation
- Color themer now only uses
primaryColor
and applies it to theselectedItemTintColor
. It will no longer apply values to eitherunselectedItemTintColor
orbarTintColor
.
TextFields
- TextFields will no longer default to using Dynamic Type.
- TextFields with floating placeholders now account for the placeholder when
computing their bounds.
API Changes
TextFields
MDCTextInputControllerLegacyDefault
modified class: MDCTextInputControllerLegacyDefault
Type of change: | Swift declaration |
---|---|
From: | class MDCTextInputControllerLegacyDefault : NSObject, MDCTextInputControllerFloatingPlaceholder |
To: | class MDCTextInputControllerLegacyDefault : MDCTextInputControllerBase |
modified class: MDCTextInputControllerLegacyDefault
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputControllerLegacyDefault : NSObject <MDCTextInputControllerFloatingPlaceholder> |
To: | @interface MDCTextInputControllerLegacyDefault : MDCTextInputControllerBase |
MDCTextInputControllerLegacyFullWidth
modified class: MDCTextInputControllerLegacyFullWidth
Type of change: | Swift declaration |
---|---|
From: | class MDCTextInputControllerLegacyFullWidth : NSObject, MDCTextInputController |
To: | class MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth, NSSecureCoding |
modified class: MDCTextInputControllerLegacyFullWidth
Type of change: | Declaration |
---|---|
From: | @interface MDCTextInputControllerLegacyFullWidth : NSObject <MDCTextInputController> |
To: | @interface MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth <NSSecureCoding> |
MDCTextInputController
removed property: textInputFont
in MDCTextInputController
removed property: textInputFontDefault
in MDCTextInputController
Color
New component.
Component changes
Tabs
Changes
- Fix format string types in debug, examples (#3195) (Robert Moore)
schemes/Color
Changes
FeatureHighlight
Changes
- Copy block instead of assign (#3159) (Robert Moore)
- FeatureHighlightViewController should expose FeatureHighlightView as a property. (#3145) (Mohammad Cazi)
- Revert "FeatureHighlightViewController should expose FeatureHighlightView as a property. (#3145)" (#3231) (Robert Moore)
Ink
Changes
- Fixing static analyzer warnings from Xcode 9.3 (#3196) (Robert Moore)
Buttons
Changes
- Fixing static analyzer warnings from Xcode 9.3 (#3196) (Robert Moore)
ButtonBar
Changes
- Restore "[AppBar] Make MDCNavigationBar and MDCButtonBar size dynamically (#2974)" (#3243) (Robert Moore)
- Revert "[AppBar] Make MDCNavigationBar and MDCButtonBar size dynamically (#2974)" (#3241) (Robert Moore)
TextFields
Changes
- Fixing static analyzer warnings from Xcode 9.3 (#3196) (Robert Moore)
- Make MDCTextInputControllerLegacyDefault a subclass of MDCTextInputControllerBase (#3152) (Mohammad Cazi)
- Make MDCTextInputControllerLegacyFullWidth a subclass of MDCTextInputControllerFullWidth (#3154) (Mohammad Cazi)
- Restore Dynamic Type to textInput (#3239) (Robert Moore)
- Reverting textInputFont property on inputController. #3232 (Mohammad Cazi)
- [MDCTextFields + Kokoro] Making textfields dynamic type off by default (#3149) (Yarden Eitan)
Chips
Changes
- Fix documentation for flow layout class (Robert Moore)
Snackbar
Changes
- Update content padding for new snackbar, leave old snackbar padding as is. (#3192) (Yarden Eitan)
- added inputAccessory with Snackbar dragon + Fix for it (#3156) (Yarden Eitan)
- font and color updates. (#3125) (Yarden Eitan)
- revert back to before #3106 as this code needs more thorough testing. (#3178) (Yarden Eitan)
NavigationBar
Changes
- Fix RTL for titleView (#3193) (ianegordon)
- Fixing static analyzer warnings from Xcode 9.3 (#3196) (Robert Moore)
- Restore "[AppBar] Make MDCNavigationBar and MDCButtonBar size dynamically (#2974)" (#3243) (Robert Moore)
- Revert "[AppBar] Make MDCNavigationBar and MDCButtonBar size dynamically (#2974)" (#3241) (Robert Moore)
LibraryInfo
Changes
- Bumped version number to 52.0.0. (Rob Moore)
Dialogs
Changes
- Add a Dragons samples to compare UIKit -vs- Material (#3197) (ianegordon)
- Fixed regression where in some cases tapping on the buttons in the alert would not do anything (#3182) (Julien Poumailloux)
BottomNavigation
Changes
- Simplify color themer (#3116) (Robert Moore)
PageControl
Changes
- [Tabs] Fix format string types in debug, examples (#3195) (Robert Moore)
AnimationTiming
Changes
- update contrast color for animation timing example (#3198) (Yarden Eitan)
Collections
Changes
- [Tabs] Fix format string types in debug, examples (#3195) (Robert Moore)
FlexibleHeader
Changes
- Check if contentView is nil before the comparison (#3098) (Siyu Song)
- Fix bug where shadow layer's opacity wouldn't be set without a tracking scroll view. (#3201) (featherless)
- Revert "Fix bug where shadow layer's opacity wouldn't be set without a tracking scroll view. (#3201)" (#3230) (Robert Moore)
- [Tabs] Fix format string types in debug, examples (#3195) (Robert Moore)
Palettes
Changes
- Fixing static analyzer warnings from Xcode 9.3 (#3196) (Robert Moore)