Changelog History
Page 15
-
v84.2.0 Changes
π This minor release adds support for a custom unbounded Ripple radius value. It also includes several π bug fixes and documentation updates to multiple components.
π New features
π
MDCRippleView
now supports a custom ripple radius for the.unbounded
ripple style. This allows clients to customize how far outside (or within) a view the ripple effect will extend.MDCRippleView *rippleView = [[MDCRippleView alloc] init]; rippleView.rippleStyle = MDCRippleStyleUnbounded; rippleView.maximumRadius = 10;
API changes
Ripple
MDCRippleView
π new property:
maximumRadius
inMDCRippleView
ShadowElevations
MDCShadowElevationNavDrawer
modified constant:
MDCShadowElevationNavDrawer
Type of change: Declaration From: static const MDCShadowElevation MDCShadowElevationNavDrawer = (CGFloat)16.
To: static const MDCShadowElevation MDCShadowElevationNavDrawer = (CGFloat)4.
Component changes
π Changes
ActionSheet
- Fixing handler error and adding missing parenthesis (#7360) (Justin Pritchard)
- Have content positioned based on the layout margins of the container. (#7331) (Yarden Eitan)
BottomNavigation
- β Log accessibility string failure values in tests. (#7326) (Robert Moore)
Ink
- Add animation delegate callbacks for MDCLegacyInkLayer (#7339) (Michael Schneider)
NavigationDrawer
- β‘οΈ update (#7345) (Yarden Eitan)
Ripple
- Add a migration guide for components (#7367) (Yarden Eitan)
- Add max ripple radius property (#7357) (Cody Weaver)
- Make rippleRadius a property (#7350) (Cody Weaver)
TextFields
- Quash -Wsign-compare triggers (#7358) (featherless)
Snapshot (private)
- Split implementation and supplemental. (#7356) (Robert Moore)
Multi-component changes
- Roll-forward a shadow elevation issue. (#7396) (Yarden Eitan)
- β‘οΈ Update Readme to use the script generator and move migration guide. (#7370) (Yarden Eitan)
-
v84.1.1 Changes
π This patch release fixes ActionSheet to lay out its content correctly when there is a safe area present, for iOS 11 and newer.
π Changes
ActionSheet
-
v84.1.0 Changes
π This minor release adds enhancements to PageControl and Ink, bug fixes for FlexibleHeader, Ink, NavigationBar, and Ripple, and additional test coverage for ActionSheet and NavigationBar.
π New features
Ink
MDCInkTouchController
now gives users the ability to require that UIScrollView gesture recognizers fail before the ink animation is triggered. (#7315)inkTouchController.requiresFailureOfScrollViewGestures = YES;
API changes
Ink
π new property:
requiresFailureOfScrollViewGestures
inMDCInkTouchController
π Changes
ActionSheet
- β Add Snapshot test for safe area. (#7334) (Robert Moore)
BottomNavigation
- π Adds .largeContentSizeImage support (#7249) (Eric Lee)
- π Removes code handling pre-iOS 9 constraints from the controller. (#7340) (Eric Lee)
FlexibleHeader
- Fix voice over layout bug. (#7319) (featherless)
Ink
- Add fail the ripple gesture when other scroll view gestures are competing unless they are tap or long press gestures to MDCInkTouchController (#7315) (Michael Schneider)
- Combine initialization method for MDCLegacyInkLayer (#7316) (Michael Schneider)
NavigationBar
- β Add titleView tests. (#7309) (featherless)
- Fix bug where titleView would disappear. (#7310) (featherless)
PageControl
- Adds intrinsic content size to MDCPageControl (#7307) (Josh Converse)
Ripple
- π Remove setting frame based on superview (#7333) (Cody Weaver)
-
v84.0.0 Changes
π This release corrected a TextFields accessibility behavior, added Ripple to Chips, and added β additional delegate calls to BottomSheet.
π Theming docs for multiple components were added, including Chips, Dialogs, and Cards.
π₯ Breaking changes
TextField
The VoiceOver behavior of MDCTextField was modified. Much of the information previously returned by
-accessibilityValue
is now being returned by-accessibilityLabel
. There is now a,
that results in a pause between the label and the helper text.Searches for MDCTextFields in your view hiearchy with accessiblity value must be changed to searches for the MDCTextField's accessibility label. The label now also has a inserted
,
too.For example an EarlGrey matcher needs to be adjusted from
EarlGrey .selectElement(with: grey_accessibilityValue("Phone Number XXX-XXXX")
To:
EarlGrey .selectElement(with: grey_accessibilityLabel("Phone Number, XXX-XXXX")
More information can be found in the PR
π New features
Dialog theming
π Moved from beta to ready
Bottom Sheet
All methods in the MDCBottomSheetControllerDelegate protocol were marked optional.
Two new methods were added to convey state changes and scroll events.
- (void)bottomSheetControllerDidChangeYOffset:(MDCBottomSheetController *)controller yOffset:(CGFloat)yOffset { NSLog(@"bottom sheet Y offset changed: %f", yOffset); }
- (void)bottomSheetControllerStateChanged:(MDCBottomSheetController *)controller state:(MDCSheetState)state { NSLog(@"bottom sheet state changed to: %lu", (unsigned long)state); }
Chips
π Ripple support was added.
chipView.enableRippleBehavior = YES;
API changes
BottomSheet
MDCBottomSheetControllerDelegate
π new method:
-bottomSheetControllerStateChanged:state:
inMDCBottomSheetControllerDelegate
π new method:
-bottomSheetControllerDidChangeYOffset:yOffset:
inMDCBottomSheetControllerDelegate
modified method:
-bottomSheetControllerDidDismissBottomSheet:
inMDCBottomSheetControllerDelegate
Type of change: Swift declaration From: func bottomSheetControllerDidDismissBottomSheet(_ controller: MDCBottomSheetController)
To: optional func bottomSheetControllerDidDismissBottomSheet(_ controller: MDCBottomSheetController)
MDCBottomSheetPresentationControllerDelegate
π new method:
-bottomSheetDidChangeYOffset:yOffset:
inMDCBottomSheetPresentationControllerDelegate
modified method:
-bottomSheetWillChangeState:sheetState:
inMDCBottomSheetPresentationControllerDelegate
Type of change: Declaration From: - (void)bottomSheetWillChangeState:(nonnull MDCBottomSheetPresentationController *)bottomSheet sheetState:(MDCSheetState)sheetState;
To: - (void)bottomSheetWillChangeState: (nonnull MDCBottomSheetPresentationController *)bottomSheet sheetState:(MDCSheetState)sheetState;
Chips
MDCChipView
π new property:
enableRippleBehavior
inMDCChipView
modified class:
MDCChipView
Type of change: Declaration From: @interface MDCChipView : UIControl /* A UIImageView that leads the title label. */ @property(nonatomic, readonly, nonnull) IBInspectable UIImageView *imageView; /* A UIImageView that leads the title label. Appears in front of the imageView. Only visible when the chip is selected. This image view is typically used to show some icon that denotes the chip as selected, such as a check mark. If imageView has no image then the chip will require resizing when selected or deselected to account for the changing visibility of selectedImageView. */ @property(nonatomic, readonly, nonnull) IBInspectable UIImageView *selectedImageView; /* A UIView that trails the title label. It will be given a size based on the value returned from sizeThatFits:. */ @property(nonatomic, strong, nullable) IBInspectable UIView *accessoryView; /* The title label. @note The title color is controlled by setTitleColor:forState:. @note The title font is controlled by setTitleFont. */ @property(nonatomic, readonly, nonnull) IBInspectable UILabel *titleLabel; /* Padding around the chip content. Each subview can be further padded with their invidual padding property. The chip uses this property to determine intrinsicContentSize and sizeThatFits. Defaults to (4, 4, 4, 4). */ @property(nonatomic, assign) UIEdgeInsets contentPadding UI_APPEARANCE_SELECTOR; /* Padding around the image view. Only used if the image view has a non-nil image. The chip uses this property to determine intrinsicContentSize and sizeThatFits. Defaults to (0, 0, 0, 0). */ @property(nonatomic, assign) UIEdgeInsets imagePadding UI_APPEARANCE_SELECTOR; /* Padding around the accessory view. Only used if the accessory view is non-nil. The chip uses this property to determine intrinsicContentSize and sizeThatFits. Defaults to (0, 0, 0, 0). */ @property(nonatomic, assign) UIEdgeInsets accessoryPadding UI_APPEARANCE_SELECTOR; /* Padding around the title. The chip uses this property to determine intrinsicContentSize and sizeThatFits. Defaults to (3, 8, 4, 8). The top padding is shorter so the default height of a chip is 32 pts. */ @property(nonatomic, assign) UIEdgeInsets titlePadding UI_APPEARANCE_SELECTOR; /* Font used to render the title. If nil, the chip will use the system font. */ @property(nonatomic, strong, nullable) UIFont *titleFont UI_APPEARANCE_SELECTOR; /* The color of the ink ripple. */ @property(nonatomic, strong, null_resettable) UIColor *inkColor UI_APPEARANCE_SELECTOR __deprecated_msg("Use setInkColor:forState:"); /* The shape generator used to define the chip's shape. */ @property(nullable, nonatomic, strong) id<MDCShapeGenerating> shapeGenerator UI_APPEARANCE_SELECTOR; /* Indicates whether the chip should automatically update its font when the deviceβs UIContentSizeCategory is changed. This property is modeled after the adjustsFontForContentSizeCategory property in the UIContentSizeCategoryAdjusting protocol added by Apple in iOS 10.0. If set to YES, this button will base its text font on MDCFontTextStyleButton. Default value is NO. */ @property(nonatomic, readwrite, setter=mdc_setAdjustsFontForContentSizeCategory:) BOOL mdc_adjustsFontForContentSizeCategory UI_APPEARANCE_SELECTOR; /** The minimum dimensions of the Chip. A non-positive value for either height or width is equivalent to no minimum for that dimension. Defaults to a minimum height of 32 points, and no minimum width. */ @property(nonatomic, assign) CGSize minimumSize UI_APPEARANCE_SELECTOR; /** Custom insets to use when computing touch targets. A positive inset value will shrink the hit area for the Chip. */ @property(nonatomic, assign) UIEdgeInsets hitAreaInsets; /* A color used as the chip's @c backgroundColor for @c state. If no background color has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The background color. */ - (nullable UIColor *)backgroundColorForState:(UIControlState)state; /* A color used as the chip's @c backgroundColor. Defaults to blue. @param backgroundColor The background color. @param state The control state. */ - (void)setBackgroundColor:(nullable UIColor *)backgroundColor forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the border color for a particular control state. If no border width has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The border color for the requested state. */ - (nullable UIColor *)borderColorForState:(UIControlState)state; /* Sets the border color for a particular control state. @param borderColor The border color. @param state The control state. */ - (void)setBorderColor:(nullable UIColor *)borderColor forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the border width for a particular control state. If no border width has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The border width for the requested state. */ - (CGFloat)borderWidthForState:(UIControlState)state; /* Sets the border width for a particular control state. @param borderWidth The border width. @param state The control state. */ - (void)setBorderWidth:(CGFloat)borderWidth forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the elevation for a particular control state. If no elevation has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The elevation for the requested state. */ - (MDCShadowElevation)elevationForState:(UIControlState)state; /* Sets the elevation for a particular control state. @param elevation The elevation. @param state The control state. */ - (void)setElevation:(MDCShadowElevation)elevation forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the ink color for a particular control state. If no ink color has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. Defaults to nil. When nil MDCInkView.defaultInkColor is used. @param state The control state. @return The ink color for the requested state. */ - (nullable UIColor *)inkColorForState:(UIControlState)state; /* Sets the ink color for a particular control state. @param inkColor The ink color. @param state The control state. */ - (void)setInkColor:(nullable UIColor *)inkColor forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the shadow color for a particular control state. If no shadow color has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The shadow color for the requested state. */ - (nullable UIColor *)shadowColorForState:(UIControlState)state; /* Sets the shadow color for a particular control state. @param elevation The shadow color. @param state The control state. */ - (void)setShadowColor:(nullable UIColor *)shadowColor forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the title color for a particular control state. If no title color has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The title color for the requested state. */ - (nullable UIColor *)titleColorForState:(UIControlState)state; /* Sets the title color for a particular control state. @param titleColor The title color. @param state The control state. */ - (void)setTitleColor:(nullable UIColor *)titleColor forState:(UIControlState)state UI_APPEARANCE_SELECTOR; @end
To: @interface MDCChipView : UIControl /* A UIImageView that leads the title label. */ @property(nonatomic, readonly, nonnull) IBInspectable UIImageView *imageView; /* A UIImageView that leads the title label. Appears in front of the imageView. Only visible when the chip is selected. This image view is typically used to show some icon that denotes the chip as selected, such as a check mark. If imageView has no image then the chip will require resizing when selected or deselected to account for the changing visibility of selectedImageView. */ @property(nonatomic, readonly, nonnull) IBInspectable UIImageView *selectedImageView; /* A UIView that trails the title label. It will be given a size based on the value returned from sizeThatFits:. */ @property(nonatomic, strong, nullable) IBInspectable UIView *accessoryView; /* The title label. @note The title color is controlled by setTitleColor:forState:. @note The title font is controlled by setTitleFont. */ @property(nonatomic, readonly, nonnull) IBInspectable UILabel *titleLabel; /* Padding around the chip content. Each subview can be further padded with their invidual padding property. The chip uses this property to determine intrinsicContentSize and sizeThatFits. Defaults to (4, 4, 4, 4). */ @property(nonatomic, assign) UIEdgeInsets contentPadding UI_APPEARANCE_SELECTOR; /* Padding around the image view. Only used if the image view has a non-nil image. The chip uses this property to determine intrinsicContentSize and sizeThatFits. Defaults to (0, 0, 0, 0). */ @property(nonatomic, assign) UIEdgeInsets imagePadding UI_APPEARANCE_SELECTOR; /* Padding around the accessory view. Only used if the accessory view is non-nil. The chip uses this property to determine intrinsicContentSize and sizeThatFits. Defaults to (0, 0, 0, 0). */ @property(nonatomic, assign) UIEdgeInsets accessoryPadding UI_APPEARANCE_SELECTOR; /* Padding around the title. The chip uses this property to determine intrinsicContentSize and sizeThatFits. Defaults to (3, 8, 4, 8). The top padding is shorter so the default height of a chip is 32 pts. */ @property(nonatomic, assign) UIEdgeInsets titlePadding UI_APPEARANCE_SELECTOR; /* Font used to render the title. If nil, the chip will use the system font. */ @property(nonatomic, strong, nullable) UIFont *titleFont UI_APPEARANCE_SELECTOR; /* This property determines if an @c MDCChipView should use the @c MDCRippleView behavior or not. By setting this property to @c YES, @c MDCStatefulRippleView is used to provide the user visual touch feedback, instead of the legacy @c MDCInkView. @note Defaults to @c NO. */ @property(nonatomic, assign) BOOL enableRippleBehavior; /* The color of the ink ripple. */ @property(nonatomic, strong, null_resettable) UIColor *inkColor UI_APPEARANCE_SELECTOR __deprecated_msg("Use setInkColor:forState:"); /* The shape generator used to define the chip's shape. */ @property(nullable, nonatomic, strong) id<MDCShapeGenerating> shapeGenerator UI_APPEARANCE_SELECTOR; /* Indicates whether the chip should automatically update its font when the deviceβs UIContentSizeCategory is changed. This property is modeled after the adjustsFontForContentSizeCategory property in the UIContentSizeCategoryAdjusting protocol added by Apple in iOS 10.0. If set to YES, this button will base its text font on MDCFontTextStyleButton. Default value is NO. */ @property(nonatomic, readwrite, setter=mdc_setAdjustsFontForContentSizeCategory:) BOOL mdc_adjustsFontForContentSizeCategory UI_APPEARANCE_SELECTOR; /** The minimum dimensions of the Chip. A non-positive value for either height or width is equivalent to no minimum for that dimension. Defaults to a minimum height of 32 points, and no minimum width. */ @property(nonatomic, assign) CGSize minimumSize UI_APPEARANCE_SELECTOR; /** Custom insets to use when computing touch targets. A positive inset value will shrink the hit area for the Chip. */ @property(nonatomic, assign) UIEdgeInsets hitAreaInsets; /* A color used as the chip's @c backgroundColor for @c state. If no background color has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The background color. */ - (nullable UIColor *)backgroundColorForState:(UIControlState)state; /* A color used as the chip's @c backgroundColor. Defaults to blue. @param backgroundColor The background color. @param state The control state. */ - (void)setBackgroundColor:(nullable UIColor *)backgroundColor forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the border color for a particular control state. If no border width has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The border color for the requested state. */ - (nullable UIColor *)borderColorForState:(UIControlState)state; /* Sets the border color for a particular control state. @param borderColor The border color. @param state The control state. */ - (void)setBorderColor:(nullable UIColor *)borderColor forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the border width for a particular control state. If no border width has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The border width for the requested state. */ - (CGFloat)borderWidthForState:(UIControlState)state; /* Sets the border width for a particular control state. @param borderWidth The border width. @param state The control state. */ - (void)setBorderWidth:(CGFloat)borderWidth forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the elevation for a particular control state. If no elevation has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The elevation for the requested state. */ - (MDCShadowElevation)elevationForState:(UIControlState)state; /* Sets the elevation for a particular control state. @param elevation The elevation. @param state The control state. */ - (void)setElevation:(MDCShadowElevation)elevation forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the ink color for a particular control state. If no ink color has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. Defaults to nil. When nil MDCInkView.defaultInkColor is used. @param state The control state. @return The ink color for the requested state. */ - (nullable UIColor *)inkColorForState:(UIControlState)state; /* Sets the ink color for a particular control state. @param inkColor The ink color. @param state The control state. */ - (void)setInkColor:(nullable UIColor *)inkColor forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the shadow color for a particular control state. If no shadow color has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The shadow color for the requested state. */ - (nullable UIColor *)shadowColorForState:(UIControlState)state; /* Sets the shadow color for a particular control state. @param elevation The shadow color. @param state The control state. */ - (void)setShadowColor:(nullable UIColor *)shadowColor forState:(UIControlState)state UI_APPEARANCE_SELECTOR; /* Returns the title color for a particular control state. If no title color has been set for a given state, the returned value will fall back to the value set for UIControlStateNormal. @param state The control state. @return The title color for the requested state. */ - (nullable UIColor *)titleColorForState:(UIControlState)state; /* Sets the title color for a particular control state. @param titleColor The title color. @param state The control state. */ - (void)setTitleColor:(nullable UIColor *)titleColor forState:(UIControlState)state UI_APPEARANCE_SELECTOR; @end
Component changes
π Changes
ActionSheet
- Fix issue where rotation caused bug (#7303) (Cody Weaver)
Banner
- Add document for BannerView. (#7291) (Wenyu Zhang)
BottomSheet
- Additional API providing callbacks for sheet offset and current state changes. (#7275) (Yarden Eitan)
Cards
- add missing theming extension doc. (#7193) (Wenyu Zhang)
Chips
- π Adding Ripple support for Chips (#7270) (Yarden Eitan)
- β Adding Snapshot tests for the various Chip States (#7269) (Yarden Eitan)
- π add missing theming extension documentation. (#7194) (Wenyu Zhang)
π Dialogs
- π Graduate Dialogs theming extensions to ready (#7190) (Andrew Overton)
Ripple
- π Add better resizing animation support (#7271) (Yarden Eitan)
- β Additional snapshot test for an edge case (#7279) (Yarden Eitan)
- Don't dissolve the ripple if the highlighted state is still set to YES. (#7274) (Yarden Eitan)
- π Minor docs clean up (#7262) (Cody Weaver)
- Reduce runloop time as speed is already very fast (#7283) (Yarden Eitan)
TextFields
- Correct UIAccessibility values and behavior. (#7256) (Robert Moore)
- Fix Contained example error states. (#7252) (Robert Moore)
- Fix character count overflow. (#7255) (Robert Moore)
- Fix example layout. (#7251) (Robert Moore)
- Fix examples layout (#7250) (Robert Moore)
- β Make Kitchen Sink better for tests. (#7259) (Robert Moore)
Multi-component changes
- [Catalog] Add @objc annotations to our containerScheme instances in Swift (#7243) (Yarden Eitan)
- [Catalog] Add @objc annotations to our color and typography scheme instances in Swift (#7246) (Yarden Eitan)
-
v83.0.2 Changes
π This patch release fixes a crashing bug with ActionSheet during rotation.
Component changes
ActionSheet
- Fix issue where rotation caused bug (#7303) (Cody Weaver)
-
v83.0.1 Changes
π This patch release resolves some missing content from the theming extension documentation and β removes a broken link.
-
v83.0.0 Changes
π This major release graduates most Theming Extensions from Beta and includes a breaking change for π AppBar's imports. All Themer APIs have been annotated as "to be deprecated" in lieu of Theming extensions. The following Theming Extensions are now generally available:
- ActionSheet
- AppBar
- Buttons
- Cards
- Chips
- Tabs
- TextFields
- Container scheme
π₯ Breaking changes
β‘οΈ AppBar's Theming extension header has changed, so you may need to update your import statements accordingly:
Swift
- import MaterialComponents.MaterialAppBar_MaterialTheming + import MaterialComponents.MaterialAppBar_Theming
ObjC
- #import "MaterialAppBar+MaterialTheming.h" + #import "MaterialAppBar+Theming.h"
API changes
ActivityIndicator+ColorThemer
π MDCActivityIndicatorColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toActivityIndicator:
inMDCActivityIndicatorColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCActivityIndicatorColorThemer
π To: AppBar+ColorThemer
π MDCAppBarColorThemer(ToBeDeprecated)
modified class method:
+applySurfaceVariantWithColorScheme:toAppBarViewController:
inMDCAppBarColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCAppBarColorThemer
π To: modified class method:
+applyColorScheme:toAppBarViewController:
inMDCAppBarColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCAppBarColorThemer
π To: AppBar+TypographyThemer
π MDCAppBarTypographyThemer(ToBeDeprecated)
modified class method:
+applyTypographyScheme:toAppBarViewController:
inMDCAppBarTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCAppBarTypographyThemer
π To: BottomAppBar+ColorThemer
π MDCBottomAppBarColorThemer(ToBeDeprecated)
modified class method:
+applySurfaceVariantWithSemanticColorScheme:toBottomAppBarView:
inMDCBottomAppBarColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCBottomAppBarColorThemer
π To: BottomNavigation+ColorThemer
π MDCBottomNavigationBarColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toBottomNavigation:
inMDCBottomNavigationBarColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCBottomNavigationBarColorThemer
π To: BottomNavigation+TypographyThemer
π MDCBottomNavigationBarTypographyThemer(ToBeDeprecated)
π new category:
MDCBottomNavigationBarTypographyThemer(ToBeDeprecated)
modified class method:
+applyTypographyScheme:toBottomNavigationBar:
inMDCBottomNavigationBarTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCBottomNavigationBarTypographyThemer
π To: BottomSheet+ShapeThemer
π MDCBottomSheetControllerShapeThemer(ToBeDeprecated)
π new category:
MDCBottomSheetControllerShapeThemer(ToBeDeprecated)
modified class method:
+applyShapeScheme:toBottomSheetController:
inMDCBottomSheetControllerShapeThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCBottomSheetControllerShapeThemer
π To: ButtonBar+ColorThemer
π MDCButtonBarColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toButtonBar:
inMDCButtonBarColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCButtonBarColorThemer
π To: ButtonBar+TypographyThemer
π MDCButtonBarTypographyThemer(ToBeDeprecated)
π new category:
MDCButtonBarTypographyThemer(ToBeDeprecated)
modified class method:
+applyTypographyScheme:toButtonBar:
inMDCButtonBarTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCButtonBarTypographyThemer
π To: Buttons+ButtonThemer
π MDCOutlinedButtonThemer(ToBeDeprecated)
π new category:
MDCOutlinedButtonThemer(ToBeDeprecated)
modified class method:
+applyScheme:toButton:
inMDCOutlinedButtonThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCOutlinedButtonThemer
π To: π MDCContainedButtonThemer(ToBeDeprecated)
π new category:
MDCContainedButtonThemer(ToBeDeprecated)
modified class method:
+applyScheme:toButton:
inMDCContainedButtonThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCContainedButtonThemer
π To: π MDCTextButtonThemer(ToBeDeprecated)
π new category:
MDCTextButtonThemer(ToBeDeprecated)
modified class method:
+applyScheme:toButton:
inMDCTextButtonThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextButtonThemer
π To: π MDCFloatingActionButtonThemer(ToBeDeprecated)
π new category:
MDCFloatingActionButtonThemer(ToBeDeprecated)
modified class method:
+applyScheme:toButton:
inMDCFloatingActionButtonThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCFloatingActionButtonThemer
π To: Buttons+ColorThemer
π MDCOutlinedButtonColorThemer(ToBeDeprecated)
π new category:
MDCOutlinedButtonColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toButton:
inMDCOutlinedButtonColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCOutlinedButtonColorThemer
π To: π MDCContainedButtonColorThemer(ToBeDeprecated)
π new category:
MDCContainedButtonColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toButton:
inMDCContainedButtonColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCContainedButtonColorThemer
π To: π MDCTextButtonColorThemer(ToBeDeprecated)
π new category:
MDCTextButtonColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toButton:
inMDCTextButtonColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextButtonColorThemer
π To: π MDCFloatingButtonColorThemer(ToBeDeprecated)
π new category:
MDCFloatingButtonColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toButton:
inMDCFloatingButtonColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCFloatingButtonColorThemer
π To: Buttons+ShapeThemer
π MDCFloatingButtonShapeThemer(ToBeDeprecated)
π new category:
MDCFloatingButtonShapeThemer(ToBeDeprecated)
modified class method:
+applyShapeScheme:toButton:
inMDCFloatingButtonShapeThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCFloatingButtonShapeThemer
π To: π MDCButtonShapeThemer(ToBeDeprecated)
π new category:
MDCButtonShapeThemer(ToBeDeprecated)
modified class method:
+applyShapeScheme:toButton:
inMDCButtonShapeThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCButtonShapeThemer
π To: Buttons+TypographyThemer
π MDCButtonTypographyThemer(ToBeDeprecated)
π new category:
MDCButtonTypographyThemer(ToBeDeprecated)
modified class method:
+applyTypographyScheme:toButton:
inMDCButtonTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCButtonTypographyThemer
π To: Cards+CardThemer
π MDCCardThemer(ToBeDeprecated)
π new category:
MDCCardThemer(ToBeDeprecated)
modified class method:
+applyOutlinedVariantWithScheme:toCardCell:
inMDCCardThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCCardThemer
π To: modified class method:
+applyScheme:toCard:
inMDCCardThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCCardThemer
π To: modified class method:
+applyOutlinedVariantWithScheme:toCard:
inMDCCardThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCCardThemer
π To: modified class method:
+applyScheme:toCardCell:
inMDCCardThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCCardThemer
π To: Cards+ColorThemer
π MDCCardsColorThemer(ToBeDeprecated)
π new category:
MDCCardsColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toCard:
inMDCCardsColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCCardsColorThemer
π To: modified class method:
+applyOutlinedVariantWithColorScheme:toCardCell:
inMDCCardsColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCCardsColorThemer
π To: modified class method:
+applyOutlinedVariantWithColorScheme:toCard:
inMDCCardsColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCCardsColorThemer
π To: modified class method:
+applySemanticColorScheme:toCardCell:
inMDCCardsColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCCardsColorThemer
π To: Cards+ShapeThemer
π MDCCardsShapeThemer(ToBeDeprecated)
π new category:
MDCCardsShapeThemer(ToBeDeprecated)
modified class method:
+applyShapeScheme:toCardCell:
inMDCCardsShapeThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCCardsShapeThemer
π To: modified class method:
+applyShapeScheme:toCard:
inMDCCardsShapeThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCCardsShapeThemer
π To: Chips+ChipThemer
π MDCChipViewThemer(ToBeDeprecated)
π new category:
MDCChipViewThemer(ToBeDeprecated)
modified class method:
+applyScheme:toChipView:
inMDCChipViewThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCChipViewThemer
π To: modified class method:
+applyOutlinedVariantWithScheme:toChipView:
inMDCChipViewThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCChipViewThemer
π To: Chips+ColorThemer
π MDCChipViewColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toChipView:
inMDCChipViewColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCChipViewColorThemer
π To: modified class method:
+applyOutlinedVariantWithColorScheme:toChipView:
inMDCChipViewColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCChipViewColorThemer
π To: Chips+FontThemer
π MDCChipViewFontThemer(ToBeDeprecated)
π new category:
MDCChipViewFontThemer(ToBeDeprecated)
modified class method:
+applyFontScheme:toChipView:
inMDCChipViewFontThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCChipViewFontThemer
π To: Chips+ShapeThemer
π MDCChipViewShapeThemer(ToBeDeprecated)
π new category:
MDCChipViewShapeThemer(ToBeDeprecated)
modified class method:
+applyShapeScheme:toChipView:
inMDCChipViewShapeThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCChipViewShapeThemer
π To: π Dialogs+ColorThemer
MDCAlertColorThemer
modified class method:
+applyColorScheme:
inMDCAlertColorThemer
Type of change: parent.usr π From: To: c:objc(cs)MDCAlertColorThemer
π MDCAlertColorThemer(ToBeDeprecated)
β removed category:
MDCAlertColorThemer(ToBeDeprecated)
π FeatureHighlight+ColorThemer
π MDCFeatureHighlightColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toFeatureHighlightViewController:
inMDCFeatureHighlightColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCFeatureHighlightColorThemer
π To: π FeatureHighlight+FontThemer
π MDCFeatureHighlightFontThemer(ToBeDeprecated)
π new category:
MDCFeatureHighlightFontThemer(ToBeDeprecated)
modified class method:
+applyFontScheme:toFeatureHighlightView:
inMDCFeatureHighlightFontThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCFeatureHighlightFontThemer
π To: π FeatureHighlight+TypographyThemer
π MDCFeatureHighlightTypographyThemer(ToBeDeprecated)
π new category:
MDCFeatureHighlightTypographyThemer(ToBeDeprecated)
modified class method:
+applyTypographyScheme:toFeatureHighlightViewController:
inMDCFeatureHighlightTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCFeatureHighlightTypographyThemer
π To: FlexibleHeader+ColorThemer
π MDCFlexibleHeaderColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toFlexibleHeaderView:
inMDCFlexibleHeaderColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCFlexibleHeaderColorThemer
π To: modified class method:
+applySurfaceVariantWithColorScheme:toFlexibleHeaderView:
inMDCFlexibleHeaderColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCFlexibleHeaderColorThemer
π To: List+ColorThemer
π MDCListColorThemer(ToBeDeprecated)
π new category:
MDCListColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toBaseCell:
inMDCListColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCListColorThemer
π To: modified class method:
+applySemanticColorScheme:toSelfSizingStereoCell:
inMDCListColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCListColorThemer
π To: List+ListThemer
π MDCListThemer(ToBeDeprecated)
π new category:
MDCListThemer(ToBeDeprecated)
modified class method:
+applyScheme:toSelfSizingStereoCell:
inMDCListThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCListThemer
π To: modified class method:
+applyScheme:toBaseCell:
inMDCListThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCListThemer
π To: List+TypographyThemer
π MDCListTypographyThemer(ToBeDeprecated)
π new category:
MDCListTypographyThemer(ToBeDeprecated)
modified class method:
+applyTypographyScheme:toSelfSizingStereoCell:
inMDCListTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCListTypographyThemer
π To: NavigationBar+ColorThemer
π MDCNavigationBarColorThemer(ToBeDeprecated)
modified class method:
+applySurfaceVariantWithColorScheme:toNavigationBar:
inMDCNavigationBarColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCNavigationBarColorThemer
π To: modified class method:
+applySemanticColorScheme:toNavigationBar:
inMDCNavigationBarColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCNavigationBarColorThemer
π To: NavigationBar+TypographyThemer
π MDCNavigationBarTypographyThemer(ToBeDeprecated)
π new category:
MDCNavigationBarTypographyThemer(ToBeDeprecated)
modified class method:
+applyTypographyScheme:toNavigationBar:
inMDCNavigationBarTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCNavigationBarTypographyThemer
π To: NavigationDrawer+ColorThemer
π MDCBottomDrawerColorThemer(ToBeDeprecated)
π new category:
MDCBottomDrawerColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toBottomDrawer:
inMDCBottomDrawerColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCBottomDrawerColorThemer
π To: Slider+ColorThemer
π MDCSliderColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toSlider:
inMDCSliderColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCSliderColorThemer
π To: Snackbar+ColorThemer
π MDCSnackbarColorThemer(Deprecated)
modified class method:
+applySemanticColorScheme:
inMDCSnackbarColorThemer(Deprecated)
Type of change: parent.usr From: c:objc(cs)MDCSnackbarColorThemer
π To: modified class method:
+applySemanticColorScheme:toSnackbarManager:
inMDCSnackbarColorThemer(Deprecated)
Type of change: parent.usr From: c:objc(cs)MDCSnackbarColorThemer
π To: Snackbar+FontThemer
π MDCSnackbarFontThemer(Deprecated)
π new category:
MDCSnackbarFontThemer(Deprecated)
modified class method:
+applyFontScheme:toSnackbarMessageView:
inMDCSnackbarFontThemer(Deprecated)
Type of change: parent.usr From: c:objc(cs)MDCSnackbarFontThemer
π To: modified class method:
+applyFontScheme:
inMDCSnackbarFontThemer(Deprecated)
Type of change: parent.usr From: c:objc(cs)MDCSnackbarFontThemer
π To: Snackbar+TypographyThemer
π MDCSnackbarTypographyThemer(Deprecated)
π new category:
MDCSnackbarTypographyThemer(Deprecated)
modified class method:
+applyTypographyScheme:
inMDCSnackbarTypographyThemer(Deprecated)
Type of change: parent.usr From: c:objc(cs)MDCSnackbarTypographyThemer
π To: Tabs+ColorThemer
π MDCTabBarColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toTabs:
inMDCTabBarColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTabBarColorThemer
π To: modified class method:
+applySurfaceVariantWithColorScheme:toTabs:
inMDCTabBarColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTabBarColorThemer
π To: Tabs+FontThemer
π MDCTabBarFontThemer(ToBeDeprecated)
π new category:
MDCTabBarFontThemer(ToBeDeprecated)
modified class method:
+applyFontScheme:toTabBar:
inMDCTabBarFontThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTabBarFontThemer
π To: Tabs+TypographyThemer
π MDCTabBarTypographyThemer(ToBeDeprecated)
π new category:
MDCTabBarTypographyThemer(ToBeDeprecated)
modified class method:
+applyTypographyScheme:toTabBar:
inMDCTabBarTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTabBarTypographyThemer
π To: TextFields+ColorThemer
π MDCFilledTextFieldColorThemer(ToBeDeprecated)
π new category:
MDCFilledTextFieldColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toTextInputControllerFilled:
inMDCFilledTextFieldColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCFilledTextFieldColorThemer
π To: π MDCTextFieldColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toTextInput:
inMDCTextFieldColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextFieldColorThemer
π To: modified class method:
+applySemanticColorScheme:toAllTextInputControllersOfClass:
inMDCTextFieldColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextFieldColorThemer
π To: modified class method:
+applySemanticColorScheme:toTextInputController:
inMDCTextFieldColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextFieldColorThemer
π To: π MDCOutlinedTextFieldColorThemer(ToBeDeprecated)
π new category:
MDCOutlinedTextFieldColorThemer(ToBeDeprecated)
modified class method:
+applySemanticColorScheme:toTextInputController:
inMDCOutlinedTextFieldColorThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCOutlinedTextFieldColorThemer
π To: TextFields+FontThemer
π MDCTextFieldFontThemer(ToBeDeprecated)
π new category:
MDCTextFieldFontThemer(ToBeDeprecated)
modified class method:
+applyFontScheme:toAllTextInputControllersOfClass:
inMDCTextFieldFontThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextFieldFontThemer
π To: modified class method:
+applyFontScheme:toTextInputController:
inMDCTextFieldFontThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextFieldFontThemer
π To: modified class method:
+applyFontScheme:toTextField:
inMDCTextFieldFontThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextFieldFontThemer
π To: TextFields+TypographyThemer
π MDCTextFieldTypographyThemer(ToBeDeprecated)
π new category:
MDCTextFieldTypographyThemer(ToBeDeprecated)
modified class method:
+applyTypographyScheme:toAllTextInputControllersOfClass:
inMDCTextFieldTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextFieldTypographyThemer
π To: modified class method:
+applyTypographyScheme:toTextInput:
inMDCTextFieldTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextFieldTypographyThemer
π To: modified class method:
+applyTypographyScheme:toTextInputController:
inMDCTextFieldTypographyThemer(ToBeDeprecated)
Type of change: parent.usr From: c:objc(cs)MDCTextFieldTypographyThemer
π To: Component changes
π₯ Breaking changes
AppBar
- π₯ Breaking: Rename umbrella header for the theming extension (#7185) (Cody Weaver)
π Changes
ActionSheet
- π Remove dependency on helper methods in test. (#7183) (Cody Weaver)
ActivityIndicator
AppBar
- Annotate themer APIs with the recommended APIs. (#7213) (featherless)
- π Update documentation around theming (#7197) (Cody Weaver)
BottomAppBar
- Annotate themer APIs with the recommended APIs. (#7214) (featherless)
BottomNavigation
- Adds a large item dialog view (#7146) (Eric Lee)
- Annotate themer APIs with the recommended APIs. (#7215) (featherless)
BottomSheet
- Annotate themer APIs with the recommended APIs. (#7216) (featherless)
ButtonBar
- Annotate themer APIs with the recommended APIs. (#7217) (featherless)
Buttons
- Add fallback behavior to setBorderColor API. (#7140) (Wenyu Zhang)
- Annotate themer APIs with the recommended APIs. (#7218) (featherless)
- π Copy-edit the documentation. (#7206) (featherless)
- π Copy-edits on the theming documentation for clarity. (#7192) (featherless)
- Fix broken link (#7198) (Cody Weaver)
- Fix theming headers and copy. (#7236) (featherless)
Cards
- Annotate themer APIs with the recommended APIs. (#7219) (featherless)
Chips
- Annotate themer APIs with the recommended APIs. (#7220) (featherless)
π Dialogs
- Annotate themer APIs with the recommended APIs. (#7221) (featherless)
- Fix Tall Font example (#7151) (Robert Moore)
π FeatureHighlight
- Annotate themer APIs with the recommended APIs. (#7222) (featherless)
FlexibleHeader
- Annotate themer APIs with the recommended APIs. (#7223) (featherless)
HeaderStackView
- Annotate themer APIs with the recommended APIs. (#7224) (featherless)
Ink
- Annotate themer APIs with the recommended APIs. (#7225) (featherless)
List
- Annotate themer APIs with the recommended APIs. (#7226) (featherless)
NavigationBar
- Annotate themer APIs with the recommended APIs. (#7228) (featherless)
NavigationDrawer
- Annotate themer APIs with the recommended APIs. (#7229) (featherless)
PageControl
- Annotate themer APIs with the recommended APIs. (#7230) (featherless)
ProgressView
- Annotate themer APIs with the recommended APIs. (#7231) (featherless)
Slider
- Annotate themer APIs with the recommended APIs. (#7232) (featherless)
Snackbar
- Annotate themer APIs with the recommended APIs. (#7233) (featherless)
Tabs
- Annotate themer APIs with the recommended APIs. (#7234) (featherless)
TextFields
- Annotate themer APIs with the recommended APIs. (#7235) (featherless)
- Create concrete MDCFilledTextField and MDCOutlinedTextField classes based on the Contained Input View architecture (#7144) (Andrew Overton)
- Graduate TextFields theming extension to ready (#7184) (Andrew Overton)
Multi-component changes
- (automated) Regenerate all component readmes. (#7201) (featherless)
- Add @objc annotations to get examples to show up in Dragons (#7168) (Andrew Overton)
- Fix links within documenation (#7208) (Cody Weaver)
- Fix relative link rewriting. (#7205) (featherless)
- Graduate Buttons+Theming to ready (#7187) (Andrew Overton)
- Graduate ContainerScheme to ready. (#7170) (Yarden Eitan)
- Graduate theming extension to ready (#7181) (Cody Weaver)
- Graduate theming extension to ready (#7182) (Cody Weaver)
- π Move Cards theming extension to ready. (#7178) (Wenyu Zhang)
- π Move Chips Theming to Ready. (#7179) (Wenyu Zhang)
- π Move Tabs theming extension to ready. (#7176) (Wenyu Zhang)
- β‘οΈ Update docs (#7209) (Andrew Overton)
- β‘οΈ Update to Swift 4.2 (#7166) (Andrew Overton)
-
v82.0.0 Changes
π In this major release, we dropped support for iOS 8 in all components. We also introduced new method and properties for AppBar, BottomSheet and NavigationDrawer.
π₯ Breaking changes
π This release drops support for iOS 8 and the library, catalog, examples, and demos may no longer build for iOS 8 targets or may crash even if building succeeds. Clients will need to set their minimum deployment targets to iOS 9 or later.
π New features
β Add support for MDCAppBarNavigationController delegate to pick a tracking scroll view
An optional delegate method was added to allow clients to specify the controller's tracking scroll view. The delegate may return
nil
if no appropriate tracking scroll view is present.Swift
func appBarNavigationController(_ navigationController: MDCAppBarNavigationController, trackingScrollViewFor trackingScrollViewForViewController: UIViewController, suggestedTrackingScrollView: UIScrollView?) -> UIScrollView? { return trackingScrollView }
Objective-C
- (UIScrollView *)appBarNavigationController:(MDCAppBarNavigationController *)navigationController trackingScrollViewForViewController:(UIViewController *)viewController suggestedTrackingScrollView:(UIScrollView *)scrollView { return self.trackingScrollView; }
flashScrollIndicators
in BottomSheetMDCBottomSheetController
has a new API that will flash the scroll indicators when the view appears.Swift
bottomSheet.shouldFlashScrollIndicatorsOnAppearance = true;
Objective-C
self.bottomSheet.shouldFlashScrollIndicatorsOnAppearance = YES;
maximumInitialDrawerHeight
in NavigationDrawerClients can now override the initial drawer height on MDCBottomDrawerViewController with a desired height in points.
Swift
bottomDrawer.maximumInitialDrawerHeight = 1000;
Objective-C
self.bottomDrawer.maximumInitialDrawerHeight = 1000;
API changes
AppBar
MDCAppBarNavigationControllerDelegate
π new method:
-appBarNavigationController:trackingScrollViewForViewController:suggestedTrackingScrollView:
inMDCAppBarNavigationControllerDelegate
BottomSheet
MDCBottomSheetController
π new property:
shouldFlashScrollIndicatorsOnAppearance
inMDCBottomSheetController
NavigationDrawer
MDCBottomDrawerViewController
π new property:
maximumInitialDrawerHeight
inMDCBottomDrawerViewController
MDCBottomDrawerPresentationController
π new property:
maximumInitialDrawerHeight
inMDCBottomDrawerPresentationController
Tabs+Theming
π New extension.
Component changes
Multi-component breaking changes
- π₯ Breaking: Drop support for iOS 8 in all components. (#7135) (featherless)
π Changes
AppBar
- π Add support for MDCAppBarNavigationController delegate to pick a tracking scroll view. (#7015) (featherless)
- β‘οΈ Update AppBar theming extension docs. (#7125) (Wenyu Zhang)
BottomNavigation
BottomSheet
- Add API to flashScrollIndicators (#7127) (Cody Weaver)
Buttons
- β Add snapshot test for new Ripple behavior (#7104) (Cody Weaver)
π Dialogs
- β Correct snapshot test layout (#7134) (Robert Moore)
- Dialog Urdu snapshot (#7139) (Wenyu Zhang)
- π Layout MDC Dialogs correctly for tall fonts. (#7126) (Wenyu Zhang)
- β fix dialog snapshot tests not using preferredContentSize. (#7128) (Wenyu Zhang)
NavigationDrawer
- β Add snapshot tests (#7136) (Robert Moore)
- π Added support for customizing the initial drawer height factor (#7112) (Yarden Eitan)
- π remove dependency on MDCBottomDrawerContainerViewController (#7138) (Yarden Eitan)
Tabs
- Add theming extension for Tabs (#7089) (Wenyu Zhang)
TextFields
- Change wording on MDCTextInputController theming extensions doc comments (#7107) (Andrew Overton)
- Outlined Textfield Theming Extension (#7082) (Andrew Overton)
- β‘οΈ Updates to MDCContainedInputView and SimpleTextField (#6904) (Andrew Overton)
Multi-component changes
- Fix some CGFloat conversion. (#7130) (Wenyu Zhang)
-
v81.1.0 Changes
π In this minor release we introduced a new beta component, Banner. We also added Ripple support for Buttons, along with text contrast improvements to Tabs and Bottom Navigation.
π New features
Ripple integration with Buttons
β Buttons now support the latest iteration of the Material Design "ripple" effect. Clients can test this functionality by setting
enableRippleBehavior
toYES
.Swift
myButton.enableRippleBehavior = true
Objective-C
self.myButton.enableRippleBehavior = YES;
API changes
Banner
π New component.
Component changes
π Changes
ActionSheet
- Flash scroll indicators when view appears. (#7083) (Cody Weaver)
Banner
- Elevate Banner component to Beta. (#7065) (Wenyu Zhang)
- β Fix broken Banner snapshot tests (#7018) (Wenyu Zhang)
- β‘οΈ Make BannerView only iOS 9 available and update examples. (#7021) (Wenyu Zhang)
BottomNavigation
- Increase badge text contrast (#7013) (Robert Moore)
Buttons
- Integrate MDCRipple into MDCButton (#7087) (Cody Weaver)
NavigationDrawer
- β‘οΈ update (#7092) (Yarden Eitan)
Tabs
- Fix constraint crash in example. (#7010) (Robert Moore)
- Increase badge text contrast. (#7012) (Robert Moore)
- Observe
badgeColor
changes. (#7008) (Robert Moore)
TextFields
- Fix Filled text field rounded bottom corners (#7006) (Galia Kaufman)
Multi-component changes
- π Minor docs polish (#7053) (Cody Weaver)
-
v81.0.0 Changes
π This major release introduces the Ripple component and integrates it with Cards. There are also π visual changes for badges on Tabs, multi-line title support for Bottom Navigation, and improved π Dynamic Type support for Buttons and Feature Highlight.
π₯ Breaking changes
The appearance of badges on MDCTabBar has changed. Badges now appear similar to those on 0οΈβ£ MDCBottomNavigationBar and are, by default, a red "pill" shape with white text. The color can be customized by assigning a value to
- UITabBarItem.badgeColor
.π New features
Ripple integration with Cards
β Cards now support the latest iteration of the Material Design "ripple" effect. Clients can test this functionality by setting
enableRippleBehavior
toYES
.Swift
myCard.enableRippleBehavior = true
Objective-C
self.myCard.enableRippleBehavior = YES;
π Multi-line title support in Bottom Navigation
π Clients can enable multi-line title support in MDCBottomNavigationBar by setting
titlesNumberOfLines
to a value other than 1. This API should be used only as a last resort, when it is not possible to provide shorter titles that fit within the available screen space.Swift
bottomNavigationBar.titlesNumberOfLines = 0
Objective-C
self.bottomNavigationBar.titlesNumberOfLines = 0;
Automatic Dynamic Type font adjustment in Feature Highlight and Buttons
π Buttons and Feature Highlight now support enabling automatic font size adjustment for Dynamic Type when the fonts used by the components have scaling curves attached using MDCFontScaler. Both components use the new scaling if
mdc_adjustsFontForContentSizeCategory
is set toYES
.Swift
// The new TypographyScheme defaults provide scaled fonts containerScheme.typographyScheme = MDCTypographyScheme.init(defaults: .material201902) let button = MDCButton() button.applyContainedTheme(withScheme: containerScheme) button.setTitle("Submit", for: UIControlState()) // Enable automatic font adjustment button.mdc_adjustsFontForContentSizeCategory = true
Objective-C
// The new TypographyScheme defaults provide scaled fonts self.containerScheme.typographyScheme = [[MDCTypographyScheme alloc] initWithDefaults: MDCTypographySchemeDefaultsMaterial201804]; MDCButton *button = [[MDCButton alloc] init]; [button applyContainedThemeWithScheme:self.containerScheme]; [button setTitle:@"Submit" forState:UIControlStateNormal]; // Enable automatic font adjustment button.mdc_adjustsFontForContentSizeCategory = YES;
API changes
Banner
MDCBannerView
π new property:
textLabel
inMDCBannerView
π new property:
imageView
inMDCBannerView
π new property:
leadingButton
inMDCBannerView
π new property:
trailingButton
inMDCBannerView
β removed property:
buttons
inMDCBannerView
β removed property:
text
inMDCBannerView
β removed property:
image
inMDCBannerView
β removed property:
numberOfButtons
inMDCBannerView
modified class:
MDCBannerView
Type of change: Declaration From: @interface MDCBannerView : UIView @property(nonatomic, copy, nonnull) NSString *text; @property(nonatomic, strong, nullable) UIImage *image; // default is nil @property(nonatomic, assign) NSUInteger numberOfButtons; // default is 1 /** The buttons representing the banner's actions. */ @property(nonatomic, readonly, copy, nonnull) NSArray<MDCButton *> *buttons; @end
π§ To: BottomNavigation
MDCBottomNavigationBar
π new property:
titlesNumberOfLines
inMDCBottomNavigationBar
Buttons
MDCButton
π new property:
mdc_legacyFontScaling
inMDCButton
Cards
MDCCardCollectionCell
π new property:
rippleView
inMDCCardCollectionCell
π new property:
dragged
inMDCCardCollectionCell
π new property:
enableRippleBehavior
inMDCCardCollectionCell
modified class:
MDCCardCollectionCell
Type of change: Declaration 0οΈβ£ From: 0οΈβ£ To: MDCCard
π new property:
rippleView
inMDCCard
π new property:
enableRippleBehavior
inMDCCard
modified class:
MDCCard
Type of change: Declaration 0οΈβ£ From: 0οΈβ£ To: π FeatureHighlight
MDCFeatureHighlightView
π new property:
mdc_legacyFontScaling
inMDCFeatureHighlightView
modified class:
MDCFeatureHighlightView
Type of change: Declaration π» From: π» To: MDCFeatureHighlightViewController
π new property:
mdc_legacyFontScaling
inMDCFeatureHighlightViewController
Ripple
MDCRippleTouchController
π new method:
-addRippleToView:
inMDCRippleTouchController
modified method:
-init
inMDCRippleTouchController
Type of change: key.always_unavailable From: 1
To: 0
MDCRippleTouchControllerDelegate
π new method:
-rippleTouchController:insertRippleView:intoView:
inMDCRippleTouchControllerDelegate
Component changes
π Changes
AppBar
BottomNavigation
- π Add multi-line title support. (#6999) (Robert Moore)
- Extract common Snapshot consts. (#7004) (Robert Moore)
- β Split snapshot tests. (#6997) (Robert Moore)
Buttons
- Don't make Buttons example launch screen. (#7016) (Robert Moore)
- New Dynamic Type curves (#7003) (ianegordon)
π FeatureHighlight
- New Dynamic Type curves (#6947) (ianegordon)
Ripple
- β Added additional unit and snapshot tests (#6992) (Yarden Eitan)
- π Additional documentation for Ripple and its classes (#6996) (Yarden Eitan)
- Adds additional API of adding the Ripple to a view and its position in the view hierarchy. (#6983) (Yarden Eitan)
- Graduate Ripple to Ready. (#7000) (Yarden Eitan)
Tabs
- Add Badge view (#6980) (Robert Moore)
- β Add badge snapshot tests. (#6978) (Robert Moore)
- β Add badgeColor snapshot tests (#6990) (Robert Moore)