65.0.0

Bottom App Bar got a floatingButtonVerticalOffset property. ActionSheets continued work. (still in alpha). AlertController in dialogs: Incremental improvements to bring it up to the design guidelines and so that a themer can style it. Snackbar API for accessibility. MDCAppBarTextColorAccessibilityMutator a deprecated class got deleted.

Breaking changes

MDCAppBarTextColorAccessibilityMutator a deprecated class got deleted.

New features

ActionSheet

Action sheet got the color and typography themers.

let actionSheet = MDCActionSheetController()
MDCActionSheetColorThemer.applySemanticColorScheme(colorScheme, to: actionSheet)
MDCActionSheetTypographyThemer.applyTypographyScheme(typographyScheme, to: actionSheet)

BottomAppBar

Bottom App Bar got a new property to offset the floating button.

bottomAppBar.floatingButtonVerticalOffset = 5.0f;

AlertController

AlertController got a themer

 MDCAlertScheme *alertScheme = [[MDCAlertScheme alloc] init];
alertScheme.colorScheme = self.colorScheme;
alertScheme.typographyScheme = self.typographyScheme;
[MDCAlertControllerThemer applyScheme:alertScheme toAlertController:alertController];

Snackbar

To make Snackbars with action require a user action set the this property to YES.

manager.shouldEnableAccessibilityViewIsModal = YES;

API changes

ActionSheet+ColorThemer

New extension.

ActionSheet

MDCActionSheetController

new property: messageTextColor in MDCActionSheetController

new property: titleTextColor in MDCActionSheetController

new property: inkColor in MDCActionSheetController

new property: actionTintColor in MDCActionSheetController

new property: imageRenderingMode in MDCActionSheetController

new property: actionTextColor in MDCActionSheetController

BottomAppBar

MDCBottomAppBarView

new property: floatingButtonVerticalOffset in MDCBottomAppBarView

Dialogs

MDCAlertController

new property: titleAlignment in MDCAlertController

MDCAlertControllerView

new property: titleAlignment in MDCAlertControllerView

Snackbar

MDCSnackbarManager

new property: shouldEnableAccessibilityViewIsModal in MDCSnackbarManager

Component changes

ActionSheet

AppBar

BottomAppBar

Dialogs

FlexibleHeader

NavigationDrawer

ShadowLayer

Snackbar

TextFields


64.0.0

In this release AlertControllers added a cornerRadius property to specify its shape. FlexibleHeader added disableContentInsetAdjustmentWhenContentInsetAdjustmentBehaviorIsNever to let clients choose if the scrollview can adjust the contentInsets. ChipField added showChipsDeleteButton to turn on the delete button on chips. BottonSheet added preferredSheetHeight to let clients define a non half screen height. Shape Subsystem integrated into many components including Button Cards and Chips.

Breaking changes

Card Buttons and Chips all are using the shape subsystem, which subtly changed the way their corner radii are rendered.

New features

AlertControllers added a cornerRadius

A property to specify its shape.

MDCAlertController *alert = [MDCAlertController alertControllerWithTitle:@"title"
                                                               message:@"message"];
[alert addAction:[MDCAlertAction actionWithTitle:@"action1" handler:nil]];
alert.cornerRadius = cornerRadius;

FlexibleHeader added disableContentInsetAdjustmentWhenContentInsetAdjustmentBehaviorIsNever

To make it easier to support scrollviews and content insets

_scrollView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
if (@available(iOS 11.0, *)) {
_scrollView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever;
}

ChipField added showChipsDeleteButton

Turns on the delete button on chips.

var chipField = MDCChipField()
chipField.frame = .zero
chipField.delegate = self
chipField.textField.placeholderLabel.text = "This is a chip field."
chipField.showChipsDeleteButton = true

BottonSheet added preferredSheetHeight to let clients define a non half screen height.

presentationController = [[MDCBottomSheetPresentationController alloc]
      initWithPresentedViewController:stubPresentedViewController
             presentingViewController:stubPresentingViewController];
presentationController.preferredSheetHeight = 100;

API changes

BottomSheet

MDCBottomSheetTransitionController

new property: preferredSheetHeight in MDCBottomSheetTransitionController

MDCBottomSheetPresentationController

new property: preferredSheetHeight in MDCBottomSheetPresentationController

Buttons+ButtonThemer

MDCButtonScheming

new property: shapeScheme in MDCButtonScheming

MDCButtonScheme

new property: shapeScheme in MDCButtonScheme

Buttons+ShapeThemer

New component.

Chips+ChipThemer

MDCChipViewScheming

new property: shapeScheme in MDCChipViewScheming

MDCChipViewScheme

new property: shapeScheme in MDCChipViewScheme

Chips

MDCChipField

new property: showChipsDeleteButton in MDCChipField

Chips+ShapeThemer

New component.

Dialogs+DialogThemer

New component.

Dialogs

MDCAlertController

new property: cornerRadius in MDCAlertController

MDCAlertControllerView

new property: cornerRadius in MDCAlertControllerView

FlexibleHeader

MDCFlexibleHeaderView

new property: disableContentInsetAdjustmentWhenContentInsetAdjustmentBehaviorIsNever in MDCFlexibleHeaderView

Component changes

ActionSheet

AppBar

BottomSheet

Buttons

Breaking changes

Cards

Chips

Breaking changes

Dialogs

FlexibleHeader

PageControl

Tabs

TextFields

schemes/Shape


63.0.0

This major release adds additional support for shape theming to BottomSheet and Cards and improvements to ActionSheets, BottomAppBar, BottomNavigation, Dialogs, NavigationBar, and TextFields.

Breaking changes

Cards

This is a breaking change due to the addition of the shapeScheme property to the MDCCardScheming protocol. If you have created a type that conforms to MDCCardScheming you will need to implement the shapeScheme property now as well.

New features

  1. ActionSheet's backgroundColor can now be customized.
  2. BottomAppBar has a new surface variant color themer API. Documentation
  3. BottomNavigation now allows you to fetch a view for a given item using the new viewForItem: API.
  4. BottomSheet and Cards each now have a Shape themer.
  5. NavigationBar now allows you to set a different tint color for the leading and trailing items.

API changes

ActionSheet

MDCActionSheetController

modified property: backgroundColor in MDCActionSheetController

Type of change:Declaration
From:@property(nonatomic, nonnull, strong) UIColor *backgroundColor
To:@property (readwrite, strong, nonatomic, nonnull) UIColor *backgroundColor;

BottomAppBar+ColorThemer

MDCBottomAppBarColorThemer

new class method: +applySurfaceVariantWithSemanticColorScheme:toBottomAppBarView: in MDCBottomAppBarColorThemer

BottomAppBar

MDCBottomAppBarView

new property: trailingBarItemsTintColor in MDCBottomAppBarView

new property: leadingBarItemsTintColor in MDCBottomAppBarView

BottomNavigation

MDCBottomNavigationBar

new method: -viewForItem: in MDCBottomNavigationBar

BottomSheet+ShapeThemer

New extension.

Cards+CardThemer

MDCCardScheme

new property: shapeScheme in MDCCardScheme

MDCCardScheming

new property: shapeScheme in MDCCardScheming

Cards+ShapeThemer

New extension.

NavigationBar

MDCNavigationBar

new property: leadingBarItemsTintColor in MDCNavigationBar

new property: trailingBarItemsTintColor in MDCNavigationBar

ShapeScheme

New component.

Component changes

ActionSheet

BottomAppBar

BottomNavigation

BottomSheet

Cards

Dialogs

FlexibleHeader

HeaderStackView

Ink

List

MaskedTransition

NavigationBar

NavigationDrawer

TextFields

schemes/Shape


62.2.0

This hotfix minor release rolls back a behavioral change in Dialogs that was introduced in v60.0.0.

Component changes

Dialogs


62.1.0

This minor release introduces a new auto-sizing List cell implementation, improvements to ActionSheet, the ability to modify casing behavior on NavigationBar, and bug fixes.

New features

You can now set an accessibilityIdentifier on ActionSheet actions:

let action = MDCActionSheetAction(title: "Title", image: nil, handler: nil)
action.accessibilityIdentifier = "Some identifier"
actionSheet.addAction(action)

ActionSheet now has a typography themer.

ButtonBar now provides a mechanism for reacting to size changes of its buttons via its delegate.

There is a new self-sizing collection view cell.

NavigationBar exposes a new uppercasesButtonTitles property that can be used to change the auto-uppercasing behavior of the buttons. By default this property is enabled.

API changes

ActionSheet

MDCActionSheetAction

new property: accessibilityIdentifier in MDCActionSheetAction

modified class: MDCActionSheetAction

Type of change:Swift declaration
From:class MDCActionSheetAction : NSObject, NSCopying
To:class MDCActionSheetAction : NSObject, NSCopying, UIAccessibilityIdentification

modified class: MDCActionSheetAction

Type of change:Declaration
From:@interface MDCActionSheetAction : NSObject <NSCopying>
To:@interface MDCActionSheetAction : NSObject <NSCopying, UIAccessibilityIdentification>

MDCActionSheetController

new property: transitionController in MDCActionSheetController

ActionSheet+TypographyThemer

New component.

ButtonBar

MDCButtonBarDelegate

new method: -buttonBarDidInvalidateIntrinsicContentSize: in MDCButtonBarDelegate

MDCButtonBar

new property: uppercasesButtonTitles in MDCButtonBar

new property: delegate in MDCButtonBar

FlexibleHeader+CanAlwaysExpandToMaximumHeight

New component.

General changes

Component changes

ActionSheet

BottomAppBar

BottomNavigation

ButtonBar

FlexibleHeader

List

NavigationBar

ProgressView

ShadowElevations

Tabs

TextFields


62.0.0

This major release reverts the addition of the new canAlwaysExpandToMaximumHeight behavior for the FlexibleHeader introduced in v61.0.0. More details on the commit that was reverted: https://github.com/material-components/material-components-ios/commit/2b3722f7b8cc7df131a8b33695990c99931c0e1b

FlexibleHeader

Changes


61.0.0

In this breaking release we drop support for Xcode 8 and landed two new components in an Alpha state (not ready for clients to use yet).

Breaking changes

No longer support Xcode 8.

New deprecations

  • -buttonBar:viewForItem:layoutHints: in MDCButtonBarDelegate

New features

More accessibility APIs

new property: accessibilityIdentifier in MDCAlertAction new property: accessibilityHint in MDCSnackbarMessageView new property: accessibilityLabel in MDCSnackbarMessageView new property: accessibilityHint in MDCSnackbarMessage

Alpha components

  • ActionSheets

ActionSheets present a list of actions from the bottom of the screen.

  • NavigationDrawer

NavigationDrawer provides a container that presents from the bottom of the screen and also responds to drag gestures to flick to full screen, half screen or off screen.

API changes

ActionSheet

New component.

ButtonBar

MDCButtonBarDelegate

modified method: -buttonBar:viewForItem:layoutHints: in MDCButtonBarDelegate

Type of change:Deprecation message
From:``
To:There will be no replacement for this API.

modified method: -buttonBar:viewForItem:layoutHints: in MDCButtonBarDelegate

Type of change:Swift declaration
From:func buttonBar(_ buttonBar: MDCButtonBar, viewForItem barButtonItem: Any!, layoutHints: Any!) -> Any!
To:optional func buttonBar(_ buttonBar: MDCButtonBar, viewForItem barButtonItem: Any!, layoutHints: Any!) -> Any!

Dialogs

MDCAlertAction

new property: accessibilityIdentifier in MDCAlertAction

modified class: MDCAlertAction

Type of change:Declaration
From:@interface MDCAlertAction : NSObject <NSCopying>
To:@interface MDCAlertAction : NSObject <NSCopying, UIAccessibilityIdentification>

FlexibleHeader+CanAlwaysExpandToMaximumHeight

New component.

NavigationBar

MDCNavigationBar

modified property: titleTextAttributes in MDCNavigationBar

Type of change:Declaration
From:@property(nonatomic, copy, nullable) NSDictionary<NSAttributedStringKey, id> *titleTextAttributes
To:@property (readwrite, copy, nonatomic, nullable) NSDictionary<NSAttributedStringKey, id> *titleTextAttributes;

NavigationDrawer

New component.

Snackbar

MDCSnackbarMessageView

new property: accessibilityHint in MDCSnackbarMessageView

new property: accessibilityLabel in MDCSnackbarMessageView

MDCSnackbarMessage

new property: accessibilityHint in MDCSnackbarMessage

MDCSnackbarMessageView()

new category: MDCSnackbarMessageView()

removed category: MDCSnackbarMessageView()

modified property: snackbarMessageViewTextColor in MDCSnackbarMessageView()

Type of change:parent.usr
From:c:objc(ext)MDCSnackbarMessageView@MDCSnackbarMessageView.h@3125
To:c:objc(ext)MDCSnackbarMessageView@MDCSnackbarMessageView.h@3411

Component changes

Tabs

Changes

AppBar

Changes

Ink

Changes

ActionSheet

Changes

CollectionCells

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

NavigationDrawer

Changes

BottomAppBar

Changes

Slider

Changes

NavigationBar

Changes

LibraryInfo

Changes

ShadowLayer

Changes

List

Changes

ActivityIndicator

Changes

BottomSheet

Changes

Typography

Changes

Dialogs

Changes

BottomNavigation

Changes

PageControl

Changes

AnimationTiming

Changes

Collections

Changes

FlexibleHeader

Changes


60.3.0

This minor release introduces a new behavioral flag for changing the title font size on MDCNavigationBar.

New features

MDCNavigationBar has a new flag that, once enabled, allows you to set a font with any size.

MDCNavigationBar *navigationBar = [[MDCNavigationBar alloc] init];
navigationBar.allowAnyTitleFontSize = YES;
UIFont *font = [UIFont systemFontOfSize:24];
navigationBar.titleFont = font; // Font size will actually be 24

API changes

NavigationBar

MDCNavigationBar

new property: allowAnyTitleFontSize in MDCNavigationBar

Component changes

NavigationBar

Changes


60.2.0

In this minor release we updated examples imports, added an API to set the ink color of buttons and started the deprecation of some AppBar APIs.

New deprecations

  • Deprecated MDCAppBarTextColorAccessibilityMutator.

Will be deprecated

FlexibleHeader

New features

  • AlertController got a new buttonInkColor property so you can specify the color of the ink.
  MDCAlertController *alert = [MDCAlertController alertControllerWithTitle:@"title"
                                                                   message:@"message"];
  alert.buttonInkColor = testColor;

API changes

AppBar

MDCAppBarTextColorAccessibilityMutator

deprecated class: MDCAppBarTextColorAccessibilityMutator

deprecated method: -mutate: in MDCAppBarTextColorAccessibilityMutator

Dialogs

MDCAlertController

new property: buttonInkColor in MDCAlertController

MDCAlertControllerView

new property: buttonInkColor in MDCAlertControllerView

FlexibleHeader

MDCFlexibleHeaderView()

moved category: MDCFlexibleHeaderView()

modified property: contentView in MDCFlexibleHeaderView()

Component changes

MaskedTransition

Changes

FeatureHighlight

Changes

AppBar

Changes

Buttons

Changes

TextFields

Changes

Chips

Changes

Cards

Changes

BottomAppBar

Changes

ShadowLayer

Changes

List

Changes

ActivityIndicator

Changes

BottomSheet

Changes

Dialogs

Changes

BottomNavigation

Changes

AnimationTiming

Changes

HeaderStackView

Changes

FlexibleHeader

Changes

ProgressView

Changes


60.1.0

Component changes

Tabs

Changes

MaskedTransition

Changes

schemes/Color

Changes

FeatureHighlight

Changes

AppBar

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Snackbar

Changes

NavigationBar

Changes

ActivityIndicator

Changes

Dialogs

Changes

BottomNavigation

Changes

PageControl

Changes

AnimationTiming

Changes

HeaderStackView

Changes

FlexibleHeader

Changes

ShadowElevations

Changes

Palettes

Changes


60.0.0

This major release introduces a breaking change for Swift libraries using FlexibleHeader. This change also introduces a migration guide for color schemes along, changes to the Snackbar's singleton pattern, and updated button theming in Dialogs.

Breaking changes

FlexibleHeader

This breaking change only affects Swift code and requires the following changes.

// Before
.preferredStatusBarStyle()

// After
.preferredStatusBarStyle

New features

FlexibleHeader has a new inferPreferredStatusBarStyle API that allows you to set an explicity preferredStatusBarStyle on the MDCFlexibleHeaderViewController.

An example of setting an explicit preferredStatusBarStyle:

flexibleHeaderViewController.inferPreferredStatusBarStyle = false
flexibleHeaderViewController.preferredStatusBarStyle = .lightContent

Upcoming deprecations

MDCColorScheme and MDCBasicColorScheme will both be deprecated on the following timeline:

  • October 10, 2018: Both APIs and any corresponding themer API will be deprecated.
  • November 10, 2018: Both APIs and any corresponding themer API will be deleted.

Learn more by reading the migration guide.

API changes

ActivityIndicator+ColorThemer

MDCActivityIndicatorColorThemer(ToBeDeprecated)

new category: MDCActivityIndicatorColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toActivityIndicator: in MDCActivityIndicatorColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCActivityIndicatorColorThemer
To:c:objc(cy)MDCActivityIndicatorColorThemer@ToBeDeprecated

AppBar+ColorThemer

MDCAppBarColorThemer(ToBeDeprecated)

new category: MDCAppBarColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toAppBar: in MDCAppBarColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCAppBarColorThemer
To:c:objc(cy)MDCAppBarColorThemer@ToBeDeprecated

BottomAppBar+ColorThemer

MDCBottomAppBarColorThemer(ToBeDeprecated)

new category: MDCBottomAppBarColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toBottomAppBarView: in MDCBottomAppBarColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCBottomAppBarColorThemer
To:c:objc(cy)MDCBottomAppBarColorThemer@ToBeDeprecated

BottomNavigation+ColorThemer

MDCBottomNavigationBarColorThemer(ToBeDeprecated)

new category: MDCBottomNavigationBarColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toBottomNavigationBar: in MDCBottomNavigationBarColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCBottomNavigationBarColorThemer
To:c:objc(cy)MDCBottomNavigationBarColorThemer@ToBeDeprecated

ButtonBar+ColorThemer

MDCButtonBarColorThemer(ToBeDeprecated)

new category: MDCButtonBarColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toButtonBar: in MDCButtonBarColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCButtonBarColorThemer
To:c:objc(cy)MDCButtonBarColorThemer@ToBeDeprecated

Buttons+ColorThemer

MDCButtonColorThemer(ToBeDeprecated)

new category: MDCButtonColorThemer(ToBeDeprecated)

modified class method: +applySemanticColorScheme:toRaisedButton: in MDCButtonColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCButtonColorThemer
To:c:objc(cy)MDCButtonColorThemer@ToBeDeprecated

modified class method: +applySemanticColorScheme:toFlatButton: in MDCButtonColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCButtonColorThemer
To:c:objc(cy)MDCButtonColorThemer@ToBeDeprecated

modified class method: +applyColorScheme:toButton: in MDCButtonColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCButtonColorThemer
To:c:objc(cy)MDCButtonColorThemer@ToBeDeprecated

modified class method: +applySemanticColorScheme:toButton: in MDCButtonColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCButtonColorThemer
To:c:objc(cy)MDCButtonColorThemer@ToBeDeprecated

modified class method: +applySemanticColorScheme:toFloatingButton: in MDCButtonColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCButtonColorThemer
To:c:objc(cy)MDCButtonColorThemer@ToBeDeprecated

Chips+ColorThemer

MDCChipViewColorThemer(ToBeDeprecated)

new category: MDCChipViewColorThemer(ToBeDeprecated)

modified class method: +applySemanticColorScheme:toStrokedChipView: in MDCChipViewColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCChipViewColorThemer
To:c:objc(cy)MDCChipViewColorThemer@ToBeDeprecated

Dialogs+ColorThemer

MDCAlertColorThemer(ToBeDeprecated)

new category: MDCAlertColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme: in MDCAlertColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCAlertColorThemer
To:c:objc(cy)MDCAlertColorThemer@ToBeDeprecated

FeatureHighlight+ColorThemer

MDCFeatureHighlightColorThemer(ToBeDeprecated)

new category: MDCFeatureHighlightColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toFeatureHighlightView: in MDCFeatureHighlightColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCFeatureHighlightColorThemer
To:c:objc(cy)MDCFeatureHighlightColorThemer@ToBeDeprecated

FlexibleHeader+ColorThemer

MDCFlexibleHeaderColorThemer(ToBeDeprecated)

new category: MDCFlexibleHeaderColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toFlexibleHeaderView: in MDCFlexibleHeaderColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCFlexibleHeaderColorThemer
To:c:objc(cy)MDCFlexibleHeaderColorThemer@ToBeDeprecated

modified class method: +applyColorScheme:toMDCFlexibleHeaderController: in MDCFlexibleHeaderColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCFlexibleHeaderColorThemer
To:c:objc(cy)MDCFlexibleHeaderColorThemer@ToBeDeprecated

FlexibleHeader

MDCFlexibleHeaderViewController

new property: preferredStatusBarStyle in MDCFlexibleHeaderViewController

new property: inferPreferredStatusBarStyle in MDCFlexibleHeaderViewController

removed method: -preferredStatusBarStyle in MDCFlexibleHeaderViewController

HeaderStackView+ColorThemer

MDCHeaderStackViewColorThemer(ToBeDeprecated)

new category: MDCHeaderStackViewColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toHeaderStackView: in MDCHeaderStackViewColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCHeaderStackViewColorThemer
To:c:objc(cy)MDCHeaderStackViewColorThemer@ToBeDeprecated

Ink+ColorThemer

MDCInkColorThemer(ToBeDeprecated)

new category: MDCInkColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toInkView: in MDCInkColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCInkColorThemer
To:c:objc(cy)MDCInkColorThemer@ToBeDeprecated

NavigationBar+ColorThemer

MDCNavigationBarColorThemer(ToBeDeprecated)

new category: MDCNavigationBarColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toNavigationBar: in MDCNavigationBarColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCNavigationBarColorThemer
To:c:objc(cy)MDCNavigationBarColorThemer@ToBeDeprecated

PageControl+ColorThemer

MDCPageControlColorThemer(ToBeDeprecated)

new category: MDCPageControlColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toPageControl: in MDCPageControlColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCPageControlColorThemer
To:c:objc(cy)MDCPageControlColorThemer@ToBeDeprecated

ProgressView+ColorThemer

MDCProgressViewColorThemer(ToBeDeprecated)

new category: MDCProgressViewColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toProgressView: in MDCProgressViewColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCProgressViewColorThemer
To:c:objc(cy)MDCProgressViewColorThemer@ToBeDeprecated

Slider+ColorThemer

MDCSliderColorThemer(ToBeDeprecated)

new category: MDCSliderColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toSlider: in MDCSliderColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCSliderColorThemer
To:c:objc(cy)MDCSliderColorThemer@ToBeDeprecated

modified class method: +defaultSliderLightColorScheme in MDCSliderColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCSliderColorThemer
To:c:objc(cy)MDCSliderColorThemer@ToBeDeprecated

modified class method: +defaultSliderDarkColorScheme in MDCSliderColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCSliderColorThemer
To:c:objc(cy)MDCSliderColorThemer@ToBeDeprecated

Snackbar+ColorThemer

MDCSnackbarColorThemer(Deprecated)

new category: MDCSnackbarColorThemer(Deprecated)

modified class method: +applyColorScheme:toSnackbarMessageView: in MDCSnackbarColorThemer(Deprecated)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarColorThemer
To:c:objc(cy)MDCSnackbarColorThemer@Deprecated

Snackbar

MDCSnackbarManager

new property: defaultManager in MDCSnackbarManager

new property: messageTextColor in MDCSnackbarManager

new method: -suspendMessagesWithCategory: in MDCSnackbarManager

new property: buttonFont in MDCSnackbarManager

new property: snackbarMessageViewShadowColor in MDCSnackbarManager

new method: -buttonTitleColorForState: in MDCSnackbarManager

new property: alignment in MDCSnackbarManager

new method: -showMessage: in MDCSnackbarManager

new property: shouldApplyStyleChangesToVisibleSnackbars in MDCSnackbarManager

new method: -setBottomOffset: in MDCSnackbarManager

new property: messageFont in MDCSnackbarManager

new property: snackbarMessageViewBackgroundColor in MDCSnackbarManager

new method: -suspendAllMessages in MDCSnackbarManager

new property: delegate in MDCSnackbarManager

new method: -setPresentationHostView: in MDCSnackbarManager

new method: -resumeMessagesWithToken: in MDCSnackbarManager

new method: -setButtonTitleColor:forState: in MDCSnackbarManager

new method: -hasMessagesShowingOrQueued in MDCSnackbarManager

new method: -dismissAndCallCompletionBlocksWithCategory: in MDCSnackbarManager

new property: mdc_adjustsFontForContentSizeCategory in MDCSnackbarManager

MDCSnackbarManager(LegacyAPI)

new category: MDCSnackbarManager(LegacyAPI)

modified property: snackbarMessageViewBackgroundColor in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified class method: +hasMessagesShowingOrQueued in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified property: shouldApplyStyleChangesToVisibleSnackbars in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified property: delegate in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified class method: +setButtonTitleColor:forState: in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified property: alignment in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified property: messageTextColor in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified class method: +suspendAllMessages in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified class method: +resumeMessagesWithToken: in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified class method: +showMessage: in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified class method: +setBottomOffset: in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified property: messageFont in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified property: mdc_adjustsFontForContentSizeCategory in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified class method: +dismissAndCallCompletionBlocksWithCategory: in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified class method: +setPresentationHostView: in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified class method: +buttonTitleColorForState: in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified class method: +suspendMessagesWithCategory: in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified property: snackbarMessageViewShadowColor in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

modified property: buttonFont in MDCSnackbarManager(LegacyAPI)

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarManager
To:c:objc(cy)MDCSnackbarManager@LegacyAPI

Tabs+ColorThemer

MDCTabBarColorThemer(ToBeDeprecated)

new category: MDCTabBarColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toTabBar: in MDCTabBarColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCTabBarColorThemer
To:c:objc(cy)MDCTabBarColorThemer@ToBeDeprecated

TextFields+ColorThemer

MDCTextFieldColorThemer(ToBeDeprecated)

new category: MDCTextFieldColorThemer(ToBeDeprecated)

modified class method: +applyColorScheme:toAllTextInputControllersOfClass: in MDCTextFieldColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCTextFieldColorThemer
To:c:objc(cy)MDCTextFieldColorThemer@ToBeDeprecated

modified class method: +applyColorScheme:toTextInputController: in MDCTextFieldColorThemer(ToBeDeprecated)

Type of change:parent.usr
From:c:objc(cs)MDCTextFieldColorThemer
To:c:objc(cy)MDCTextFieldColorThemer@ToBeDeprecated

Component changes

Tabs

Changes

schemes/Color

Changes

FeatureHighlight

Changes

AppBar

Changes

Ink

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

Cards

Changes

BottomAppBar

Changes

Slider

Changes

NavigationBar

Changes

ActivityIndicator

Changes

Dialogs

Changes

BottomNavigation

Changes

PageControl

Changes

HeaderStackView

Changes

FlexibleHeader

Changes

ProgressView

Changes


59.2.2

This patch release undoes some additional App Bar initialization changes that were introduced in v59.2.0.

Component changes

AppBar

Changes


59.2.1

This patch release reverts an unintentional change in App Bar shadow layer initialization behavior that was introduced in v59.2.0.

Component changes

AppBar

Changes


59.2.0

This minor release introduces several new improvements to the AppBar component and bug fixes and accessibility improvements to various components.

New features

AppBar's documentation has been updated to reflect all of the most modern APIs and behavioral flags.

AppBar also now exposes a new MDCAppBarViewController API which is meant to be a more familiar replacement API for MDCAppBar.

A typical migration diff will look something like so (in Swift):

// Step 1
-  let appBar = MDCAppBar()
+  let appBarViewController = MDCAppBarViewController()

// Step 2
-    self.addChildViewController(appBar.headerViewController)
+    self.addChildViewController(appBarViewController)

// Step 3
-    appBar.addSubviewsToParent()
+    view.addSubview(appBarViewController.view)
+    appBarViewController.didMove(toParentViewController: self)

API changes

AppBar+ColorThemer

MDCAppBarColorThemer

new class method: +applySurfaceVariantWithColorScheme:toAppBarViewController: in MDCAppBarColorThemer

new class method: +applyColorScheme:toAppBarViewController: in MDCAppBarColorThemer

AppBar

MDCAppBar

new property: appBarViewController in MDCAppBar

MDCAppBarNavigationControllerDelegate

new method: -appBarNavigationController:willAddAppBarViewController:asChildOfViewController: in MDCAppBarNavigationControllerDelegate

MDCAppBarNavigationController

new method: -appBarViewControllerForViewController: in MDCAppBarNavigationController

MDCAppBarContainerViewController

new property: appBarViewController in MDCAppBarContainerViewController

MDCAppBarViewController

new class: MDCAppBarViewController

AppBar+TypographyThemer

MDCAppBarTypographyThemer

new class method: +applyTypographyScheme:toAppBarViewController: in MDCAppBarTypographyThemer

TextFields

MDCTextInputController

new method: -setHelperText:helperAccessibilityLabel: in MDCTextInputController

Component changes

Tabs

Changes

AppBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

BottomAppBar

Changes

NavigationBar

Changes

BottomSheet

Changes

Dialogs

Changes

BottomNavigation

Changes

FlexibleHeader

Changes

ShadowElevations

Changes


59.1.1

This patch release fixes a bug with Flexible Header when VoiceOver is enabled.

API changes

Component changes

FlexibleHeader

Changes


59.1.0

AppBar and FlexibleHeader shipped several new features in this release and Snackbar's manager is now implemented as a true singleton. This release also includes additional accessibility improvements and examples, and also fixes some bugs.

New features

The new MDCAppBarNavigationController class is a simpler integration strategy for adding an App Bar to an application. Example:

let navigationController = MDCAppBarNavigationController()

// Will automatically inject an AppBar into the view controller if one is not already present.
navigationController.pushViewController(viewController, animated: true)

This new API enables all of the new AppBar and FlexibleHeader behaviors, meaning view controllers will better handle being presented in non-full screen settings. If you have already integrated with App Bar, migrating to MDCAppBarNavigationController will allow you to delete a substantial amount of boilerplate from your application. Most notably, MDCAppBarNavigationController enables the new observesTrackingScrollViewScrollEvents feature on FlexibleHeader, meaning you do not need to forward scroll view events to the navigation controller.

At a minimum you will need to implement the MDCAppBarNavigationController's delegate to theme the injected App Bars. Implement the delegate like so:

navigationController.delegate = self

// MARK: MDCAppBarNavigationControllerInjectorDelegate

func appBarNavigationController(_ navigationController: MDCAppBarNavigationController,
                                willAdd appBar: MDCAppBar,
                                asChildOf viewController: UIViewController) {
  let colorScheme: MDCSemanticColorScheme = <# Fetch your color scheme #>
  let typographyScheme: MDCTypographyScheme = <# Fetch your typography scheme #>
  MDCAppBarColorThemer.applySemanticColorScheme(colorScheme, to: appBar)
  MDCAppBarTypographyThemer.applyTypographyScheme(typographyScheme, to: appBar)
                                                  
  // Additional configuration of appBar if needed.
}

AppBar's new inferTopSafeAreaInsetFromViewController property enables App Bars to be presented in non-full-screen contexts, such as iPad popovers or extensions. Consider enabling this property by default in all use cases.

FlexibleHeader's new observesTrackingScrollViewScrollEvents property allows the FlexibleHeader to automatically observe content offset changes to the tracking scroll view, removing the need for forwarding the UIScrollViewDelegate events to the FlexibleHeader. Note: you can only use this new feature if you have not enabled the shift behavior.

MDCSnackbarManager is now implemented as a true singleton with the ability to also create individual instances, making it possible to write self-contained tests for the component.

API changes

AppBar

MDCAppBarNavigationController

new class: MDCAppBarNavigationController

new property: delegate in MDCAppBarNavigationController

new method: -appBarForViewController: in MDCAppBarNavigationController

MDCAppBarNavigationControllerDelegate

new protocol: MDCAppBarNavigationControllerDelegate

new method: -appBarNavigationController:willAddAppBar:asChildOfViewController: in MDCAppBarNavigationControllerDelegate

MDCAppBar

new property: inferTopSafeAreaInsetFromViewController in MDCAppBar

FlexibleHeader

MDCFlexibleHeaderView

new property: observesTrackingScrollViewScrollEvents in MDCFlexibleHeaderView

Component changes

AppBar

Changes

Ink

Changes

Snackbar

Changes

Cards

Changes

LibraryInfo

Changes

Dialogs

Changes

BottomNavigation

Changes

FlexibleHeader

Changes


59.0.0

This major release removed the remaining encoding/decoding behaviors from components (tracking project) and fixed a variety of bugs in FlexibleHeader with relation to safe area insets.

Breaking changes

AppBar, TextFields, BottomNavigation, and Ink all removed support for encoding/decoding their custom properties.

New features

FlexibleHeader has a new behavior, inferTopSafeAreaInsetFromViewController, which allows the flexible header to determine its safe area insets from its view controller context, rather than always assuming that the header will consume the entire screen. This new behavior is most useful in extensions and on the iPad when presenting modal dialogs or popovers. To enable the new behavior, you simply set inferTopSafeAreaInsetFromViewController on MDCFlexibleHeaderViewController to YES.

API changes

FlexibleHeader

MDCFlexibleHeaderView

new property: topSafeAreaGuide in MDCFlexibleHeaderView

MDCFlexibleHeaderViewController

new property: inferTopSafeAreaInsetFromViewController in MDCFlexibleHeaderViewController

TextFields

MDCTextInputControllerLegacyFullWidth

modified class: MDCTextInputControllerLegacyFullWidth

Type of change:Declaration
From:@interface MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth <NSSecureCoding>
To:@interface MDCTextInputControllerLegacyFullWidth : MDCTextInputControllerFullWidth

MDCTextInputUnderlineView

modified class: MDCTextInputUnderlineView

Type of change:Declaration
From:@interface MDCTextInputUnderlineView : UIView <NSCopying, NSSecureCoding>
To:@interface MDCTextInputUnderlineView : UIView <NSCopying>

MDCTextInputController

modified protocol: MDCTextInputController

Type of change:Declaration
From:@protocol MDCTextInputController <NSObject, NSSecureCoding, NSCopying, MDCTextInputPositioningDelegate>
To:@protocol MDCTextInputController <NSObject, NSCopying, MDCTextInputPositioningDelegate>

Component changes

AppBar

Breaking changes

Ink

Breaking changes

TextFields

Breaking changes

BottomAppBar

Changes

BottomSheet

Changes

BottomNavigation

Breaking changes

FlexibleHeader

Changes


58.0.0

This major release focused on accessibility and removing property coding/encoding from a variety of components. It also fixed a bug related to AppBar/FlexibleHeader top layout guide behavior on pre-iOS 11 devices.

Breaking changes

Property encoding/decoding has been removed from a majority of the components, along with any related explicit conformances to NSCoding and NSSecureCoding. See the tracking project to learn more about the status of this work.

MDCNavigationBar's deprecated useFlexibleTopBottomInsets has been removed.

New features

A variety of accessibility documentation has been added to many of the components.

BottomNavigation has new parameters for the top padding of the nav bar items and the vertical spacing between the icon and title.

API changes

BottomNavigation

MDCBottomNavigationBar

new property: itemsContentInsets in MDCBottomNavigationBar

new property: itemsContentHorizontalMargin in MDCBottomNavigationBar

new property: itemsContentVerticalMargin in MDCBottomNavigationBar

NavigationBar

MDCNavigationBar

removed property: useFlexibleTopBottomInsets in MDCNavigationBar

Component changes

AppBar

Breaking changes

Changes

Ink

Changes

Buttons

Breaking changes

Changes

ButtonBar

Breaking changes

TextFields

Changes

Chips

Breaking changes

Changes

Cards

Breaking changes

Changes

Slider

Changes

NavigationBar

Breaking changes

Changes

ShadowLayer

Breaking changes

ActivityIndicator

Changes

BottomSheet

Changes

Dialogs

Changes

BottomNavigation

Changes

AnimationTiming

Changes

HeaderStackView

Breaking changes

FlexibleHeader

Breaking changes

Changes

ProgressView

Changes


57.0.0

In this release we have added the List component, made accessibility improvements to Bottom Sheet, added Shapes support for Chips and Bottom Sheet, made Catalog visual improvements, and other bug fixes.

Breaking changes

TextFields

We have removed property backgroundColor from MDCTextInputControllerBase and properties backgroundColor and backgroundColorDefault from MDCTextInputController. The reason for removal was due to these properties not being used by the controller in any meaningful way, and therefore this should not produce any changes.

New features

BottomSheet

VoiceOver and switch device users currently have to use the accessibility escape gesture to dismiss a Bottom Sheet. Optionally, the BottomSheet can use the dimmed “scrim” area (which can be tappable) to dismiss the bottom sheet using accessibility technologies.

As an example of how this could be used by clients, here's how our AppDelegate would change to support a VoiceOver button for dismissal:

let menuViewController = MDCMenuViewController(style: .plain)
let bottomSheet = MDCBottomSheetController(contentViewController: menuViewController)
bottomSheet.dismissOnBackgroundTap = true
bottomSheet.isScrimAccessibilityElement = true
bottomSheet.scrimAccessibilityLabel = "Close"
self.present(bottomSheet, animated: true, completion: nil)

Cards

You can now set the car to be interactable or not. Our specification for cards explicitly define a card as being an interactable component. Therefore, the interactable property should be set to NO only if there are other interactable items within the card's content, such as buttons or other tappable controls. To set the interactability to no in your cards:

let card = MDCCard()
card.isInteractable = false

let cardCell = MDCCardCollectionCell()
cardCell.isInteractable = false

List

We now have a new component, List! See more information about the component here: https://github.com/material-components/material-components-ios/tree/develop/components/List

API changes

BottomSheet

MDCBottomSheetTransitionController(ScrimAccessibility)

new category: MDCBottomSheetTransitionController(ScrimAccessibility)

new property: isScrimAccessibilityElement in MDCBottomSheetTransitionController(ScrimAccessibility)

new property: scrimAccessibilityLabel in MDCBottomSheetTransitionController(ScrimAccessibility)

new property: scrimAccessibilityHint in MDCBottomSheetTransitionController(ScrimAccessibility)

new property: scrimAccessibilityTraits in MDCBottomSheetTransitionController(ScrimAccessibility)

MDCBottomSheetController

new property: scrimAccessibilityHint in MDCBottomSheetController

new property: isScrimAccessibilityElement in MDCBottomSheetController

new property: state in MDCBottomSheetController

new method: -shapeGeneratorForState: in MDCBottomSheetController

new property: scrimAccessibilityLabel in MDCBottomSheetController

new method: -setShapeGenerator:forState: in MDCBottomSheetController

new property: scrimAccessibilityTraits in MDCBottomSheetController

MDCSheetState

new enum: MDCSheetState with values MDCSheetStateExtended, MDCSheetStatePreferred, and MDCSheetStateClosed

MDCBottomSheetPresentationControllerDelegate

new method: -bottomSheetWillChangeState:sheetState: in MDCBottomSheetPresentationControllerDelegate

MDCBottomSheetPresentationController

new property: scrimAccessibilityLabel in MDCBottomSheetPresentationController

new property: isScrimAccessibilityElement in MDCBottomSheetPresentationController

new property: scrimAccessibilityTraits in MDCBottomSheetPresentationController

new property: scrimAccessibilityHint in MDCBottomSheetPresentationController

Cards

MDCCardCollectionCell

new property: interactable in MDCCardCollectionCell

MDCCard

new property: interactable in MDCCard

List

New component.

TextFields

MDCTextInputControllerFullWidth

new property: backgroundColor in MDCTextInputControllerFullWidth

new property: backgroundColorDefault in MDCTextInputControllerFullWidth

MDCTextInputControllerBase

removed property: backgroundColor in MDCTextInputControllerBase

MDCTextInputController

new property: textInputClearButtonTintColorDefault in MDCTextInputController

new property: textInputClearButtonTintColor in MDCTextInputController

removed property: backgroundColorDefault in MDCTextInputController

removed property: backgroundColor in MDCTextInputController

Typography

UIFont(MaterialSimpleEquality)

new method: -mdc_isSimplyEqual: in UIFont(MaterialSimpleEquality)

new category: UIFont(MaterialSimpleEquality)

Component changes

Tabs

Changes

FeatureHighlight

Changes

Buttons

Changes

TextFields

Changes

Chips

Changes

Cards

Changes

List

Changes

BottomSheet

Changes

Typography

Changes

BottomNavigation

Changes

FlexibleHeader

Changes


56.0.0

In this release we updated the icon layout of MDCTextFields add accessibilty docs for MDCButton and some more MDCBottomNavigation examples. We also tweeked the MDCChipView and MDCButtonBar buttons.

Breaking changes

New layout for MDCTextField's with icons

API changes

TextFields

MDCLeadingViewTextInput

new protocol: MDCLeadingViewTextInput

new property: leadingView in MDCLeadingViewTextInput

new property: leadingViewMode in MDCLeadingViewTextInput

MDCTextInputPositioningDelegate

new method: -leadingViewTrailingPaddingConstant in MDCTextInputPositioningDelegate

new method: -leadingViewRectForBounds:defaultRect: in MDCTextInputPositioningDelegate

new method: -trailingViewTrailingPaddingConstant in MDCTextInputPositioningDelegate

new method: -trailingViewRectForBounds:defaultRect: in MDCTextInputPositioningDelegate

MDCTextField

modified class: MDCTextField

Type of change:Swift declaration
From:class MDCTextField : MDCTextInput
To:class MDCTextField : MDCTextInput, MDCLeadingViewTextInput

modified class: MDCTextField

Type of change:Declaration
From:@interface MDCTextField : UITextField <MDCTextInput>
To:@interface MDCTextField : UITextField <MDCTextInput, MDCLeadingViewTextInput>

Component changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

BottomNavigation

Changes


55.5.0

API changes

TextFields

MDCTextField

new property: inputLayoutStrut in MDCTextField

Component changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

BottomNavigation

Changes


55.4.0

This minor release includes better layout guide and safe area insets support to MDCAppBar's MDCAppBarContainerViewController, added customization to MDCNavigationBar title view layout, accessibility improvements and documentation.

New deprecations

MDCNavigationBar's property useFlexibleTopBottomInsets has been defaulted to YES and has now been deprecated. It will eventually be removed and become the default behavior.

New features

AppBar now allows its wrapped content view controllers to make proper use of the top layout guide and additional safe area insets APIs. This is done using the newly added property to AppBar's MDCAppBarContainerViewController named topLayoutGuideAdjustmentEnabled. An example on how to implement this behavior:

MDCAppBarContainerViewController *appBarContainerViewController;
UITableViewController *tableViewController =
    [[UITableViewController alloc] initWithStyle:UITableViewStylePlain];
appBarContainerViewController =
    [[MDCAppBarContainerViewController alloc] initWithContentViewController:tableViewController];
self.appBarContainerViewController.topLayoutGuideAdjustmentEnabled = YES;

NavigationBar now allows configuration of its title view layout behavior to be either “fill” or “center”. The fill behavior is the default and existing behavior, which sets the title view‘s frame to fill the available navigation bar space. The center behavior will always attempt to center the title view within the navigation bar’s bounds. The center behavior is desired by teams in the simple cases of when they want their title view to be centered within the navigation bar as best as possible. This is also the default behavior of UINavigationBar. Example usage:

MDCNavigationBar *navBar = [[MDCNavigationBar alloc] init];
navBar.titleView = [[UIView alloc] init];
navBar.titleViewLayoutBehavior = MDCNavigationBarTitleViewLayoutBehaviorCenter;

API changes

AppBar

MDCAppBarContainerViewController

new property: topLayoutGuideAdjustmentEnabled in MDCAppBarContainerViewController

NavigationBar

MDCNavigationBar

new property: titleViewLayoutBehavior in MDCNavigationBar

deprecated property: useFlexibleTopBottomInsets in MDCNavigationBar

Type of change:Deprecation message
From:useFlexibleTopBottomInsets
To:Implement proper vertical alignment with the default YES behavior.

new enum MDCNavigationBarTitleViewLayoutBehavior with values MDCNavigationBarTitleViewLayoutBehaviorFill and MDCNavigationBarTitleViewLayoutBehaviorCenter.

Component changes

AppBar

Changes

Buttons

Changes

TextFields

Changes

Snackbar

Changes

Slider

Changes

NavigationBar

Changes

BottomSheet

Changes

Typography

Changes

PageControl

Changes

Collections

Changes

HeaderStackView

Changes

FlexibleHeader

Changes


55.3.0

This minor release includes added customization to MDCDialogPresentationController, better topLayoutGuide support for MDCFlexibleHeader, doc improvements and other small bug fixes.

New features

Flexible header has a new behavioral flag for opting in to better topLayoutGuide support. This is primarily useful when using the flexible header container view controller. To opt in to this new behavior, do the following:

let container = MDCFlexibleHeaderContainerViewController()
container.isTopLayoutGuideAdjustmentEnabled = true

Dialogs now offer customizable cornerRadius support to enable proper shadowing. You can set the dialog corner radius like so:


// We set the corner radius to adjust the shadow that is implemented via the trackingView in the // presentation controller. if let presentationController = presentedController.mdc_dialogPresentationController { presentationController.dialogCornerRadius = presentedController.view.layer.cornerRadius }

API changes

Dialogs

MDCDialogPresentationController

new property: dialogCornerRadius in MDCDialogPresentationController

FlexibleHeader

MDCFlexibleHeaderContainerViewController

new property: topLayoutGuideAdjustmentEnabled in MDCFlexibleHeaderContainerViewController

MDCFlexibleHeaderViewController(ToBeDeprecated)

new category: MDCFlexibleHeaderViewController(ToBeDeprecated)

moved method: -updateTopLayoutGuide from class MDCFlexibleHeaderViewController to category MDCFlexibleHeaderViewController(ToBeDeprecated)

MDCFlexibleHeaderViewController

new property: topLayoutGuideAdjustmentEnabled in MDCFlexibleHeaderViewController

new property: topLayoutGuideViewController in MDCFlexibleHeaderViewController

Component changes

Tabs

Changes

FeatureHighlight

Changes

AppBar

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

Cards

Changes

BottomAppBar

Changes

Slider

Changes

NavigationBar

Changes

ActivityIndicator

Changes

BottomSheet

Changes

Dialogs

Changes

BottomNavigation

Changes

PageControl

Changes

FlexibleHeader

Changes

ProgressView

Changes


55.2.0

This minor release includes new Snackbar features and minor improvements to the Catalog.

New features

Snackbar now allows you to change the snackbar message alignment on iPad. For example:

MDCSnackbarManager.alignment = MDCSnackbarAlignmentLeading;

Snackbar also exposes a delegate for theming snackbar messages.

MDCSnackbarManager.delegate = appDelegate;

- (void)willPresentSnackbarWithMessageView:(nullable MDCSnackbarMessageView *)messageView {
  // You can theme the individual messageView.actionButtons here.
}

There is a new shadow elevation constant, MDCShadowElevationBottomNavigationBar.

API changes

ShadowElevations

MDCShadowElevationBottomNavigationBar

new constant: MDCShadowElevationBottomNavigationBar

Snackbar

MDCSnackbarAlignment

new enum value: MDCSnackbarAlignmentCenter in MDCSnackbarAlignment

new enum value: MDCSnackbarAlignmentLeading in MDCSnackbarAlignment

new enum: MDCSnackbarAlignment

MDCSnackbarMessageView

new property: actionButtons in MDCSnackbarMessageView

MDCSnackbarManager

new property: delegate in MDCSnackbarManager

new property: alignment in MDCSnackbarManager

MDCSnackbarManagerDelegate

new protocol: MDCSnackbarManagerDelegate

new method: -willPresentSnackbarWithMessageView: in MDCSnackbarManagerDelegate

Component changes

Tabs

Changes

schemes/Typography

Changes

FeatureHighlight

Changes

AppBar

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

Slider

Changes

NavigationBar

Changes

ActivityIndicator

Changes

Typography

Changes

Dialogs

Changes

BottomNavigation

Changes

FlexibleHeader

Changes

ShadowElevations

Changes


55.1.0

This minor release introduces some new features to Flexible Header and Snackbar and includes some bug fixes in the Catalog app.

Upcoming deprecations

MDCFlexibleHeaderViewController's -updateTopLayoutGuide will be deprecated in the future. It should no longer be necessary to call this API if you are using an MDCFlexibleHeaderContainerViewController.

API changes

Snackbar

MDCSnackbarManager

new class method: +hasMessagesShowingOrQueued in MDCSnackbarManager

Component changes

Tabs

Changes

schemes/Color

Changes

schemes/Typography

Changes

FeatureHighlight

Changes

Buttons

Changes

Snackbar

Changes

Cards

Changes

BottomAppBar

Changes

Dialogs

Changes

Themes

Changes

ShadowElevations

Changes


55.0.4

This patch release adds metadata to the bidirectionality eng stub doc.


55.0.3

This patch release adds documentation polish around bidirectionality.


55.0.2

This patch release includes more documentation polish and a bug fix for Cards theming.

Component changes

Tabs

Changes

schemes/Color

Changes

schemes/Typography

Changes

FeatureHighlight

Changes

Ink

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

Cards

Changes

BottomAppBar

Changes

Slider

Changes

LibraryInfo

Changes

ShadowLayer

Changes

BottomSheet

Changes

Dialogs

Changes

PageControl

Changes

FlexibleHeader

Changes

ShadowElevations

Changes

ProgressView

Changes

Palettes

Changes


55.0.1

This patch release polishes and fleshes out documentation across many of our components. There are no source changes in this release.

Component changes

MaskedTransition

Changes

schemes/Color

Changes

schemes/Typography

Changes

FeatureHighlight

Changes

AppBar

Changes

CollectionCells

Changes

ButtonBar

Changes

TextFields

Changes

Cards

Changes

BottomAppBar

Changes

NavigationBar

Changes

OverlayWindow

Changes

ShadowLayer

Changes

ActivityIndicator

Changes

BottomSheet

Changes

BottomNavigation

Changes

PageControl

Changes

AnimationTiming

Changes

Collections

Changes

HeaderStackView

Changes

FlexibleHeader

Changes

ShadowElevations

Changes

ProgressView

Changes

CollectionLayoutAttributes

Changes


55.0.0

This major release introduces breaking changes to CocoaPods dependencies. Please read the breaking changes section for more details.

This release also includes a significant amount of documnetation polish and some accessibility bug fixes.

Breaking changes

CocoaPods +Extension targets have been removed and replaced with more specific targets for the individual extensions. For example, if you were importing a component's extensions like this before:

pod 'MaterialComponents/Buttons+Extensions'

You‘ll now need to depend on the individual Button extension targets that you’re making use of:

pod 'MaterialComponents/Buttons+ButtonThemer'

To see a full list of available extensions for a given component, read the MaterialComponents.podspec file.

API changes

Component changes

Tabs

Changes

schemes/Color

Changes

schemes/Typography

Changes

FeatureHighlight

Changes

AppBar

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

Cards

Changes

BottomAppBar

Changes

Slider

Changes

NavigationBar

Changes

ShadowLayer

Changes

ActivityIndicator

Changes

BottomSheet

Changes

Typography

Changes

Dialogs

Changes

BottomNavigation

Changes

PageControl

Changes

AnimationTiming

Changes

Collections

Changes

HeaderStackView

Changes

FlexibleHeader

Changes

Themes

Changes

ProgressView

Changes

Palettes

Changes


54.13.0

This release focused on documentation across all of our componentry and introduced new outlined themes for components. There have also been significant improvements to theming in the MDCCatalog app.

Breaking changes

New features

Buttons, Cards, and Chips now support outlined themes.

// Buttons:
[MDCOutlinedButtonThemer applyScheme:buttonScheme toButton:outlinedButton];

// Cards:
[MDCCardThemer applyOutlinedVariantWithScheme:cardScheme toCard:component];

// Chips:
[MDCChipViewThemer applyOutlinedVariantWithScheme:cardScheme toChipView:component];

Chip hit areas can now be modified using the new hitAreaInsets API:

chip.hitAreaInsets = UIEdgeInsetsMake(chipVerticalInset, 0, chipVerticalInset, 0);

API changes

Chips

MDCChipView

new property: hitAreaInsets in MDCChipView

Component changes

Tabs

Changes

MaskedTransition

Changes

schemes/Color

Changes

schemes/Typography

Changes

FeatureHighlight

Changes

AppBar

Changes

Ink

Changes

CollectionCells

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

Cards

Changes

BottomAppBar

Changes

Slider

Changes

NavigationBar

Changes

OverlayWindow

Changes

LibraryInfo

Changes

ShadowLayer

Changes

ActivityIndicator

Changes

BottomSheet

Changes

Typography

Changes

Dialogs

Changes

BottomNavigation

Changes

PageControl

Changes

AnimationTiming

Changes

Collections

Changes

HeaderStackView

Changes

FlexibleHeader

Changes

Themes

Changes

ShadowElevations

Changes

ProgressView

Changes

Palettes

Changes

CollectionLayoutAttributes

Changes


54.12.0

This release introduces umbrella headers for all themer targets. We encourage you to start using the new umbrella headers for all themer APIs.

For example, Swift imports would change like so:

// Before
import MaterialComponents.MDCActivityIndicatorColorThemer
// After
import MaterialComponents.MaterialActivityIndicator_ColorThemer

While Objective-C imports would change like so:

// Before
#import "MDCAppBarColorThemer.h"
// After
#import "MaterialAppBar+ColorThemer.h"

We are focused on polishing the Catalog with the new theming systems and updating our component documentation accordingly. Few new features, if any, will be added over the next few releases.

API changes

Component changes

Tabs

Changes

schemes/Color

Changes

FeatureHighlight

Changes

AppBar

Changes

Ink

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

Cards

Changes

BottomAppBar

Changes

Slider

Changes

NavigationBar

Changes

ActivityIndicator

Changes

BottomSheet

Changes

Dialogs

Changes

BottomNavigation

Changes

PageControl

Changes

AnimationTiming

Changes

HeaderStackView

Changes

FlexibleHeader

Changes

ShadowElevations

Changes

ProgressView

Changes


54.11.1

Component changes

ButtonBar

Changes


54.11.0

This release is the final push towards supporting themers on our components.

We will now shift focus to polishing APIs, documentation, and examples and to fixing bugs.

New features

It is now possible to configure colors on BottomNavigation, ButtonBar, NavigationBar, and Tabs statefully.

TextFields now allows customization of the active floating placeholder color.

MDCTabBar now allows the display of a bottom divider using the bottomDividerColor API.

API changes

BottomNavigation

MDCBottomNavigationBar

new property: selectedItemTitleColor in MDCBottomNavigationBar

ButtonBar

MDCButtonBar

new method: -buttonsTitleColorForState: in MDCButtonBar

new method: -setButtonsTitleColor:forState: in MDCButtonBar

Buttons

MDCButton

new method: -imageTintColorForState: in MDCButton

new method: -setImageTintColor:forState: in MDCButton

NavigationBar

MDCNavigationBar

new method: -setButtonsTitleColor:forState: in MDCNavigationBar

new method: -buttonsTitleColorForState: in MDCNavigationBar

Tabs

MDCTabBarItemState

new typedef: MDCTabBarItemState

new enum value: MDCTabBarItemStateSelected in MDCTabBarItemState

new enum: MDCTabBarItemState

new enum value: MDCTabBarItemStateNormal in MDCTabBarItemState

MDCTabBar

new method: -imageTintColorForState: in MDCTabBar

new method: -titleColorForState: in MDCTabBar

new method: -setImageTintColor:forState: in MDCTabBar

new property: bottomDividerColor in MDCTabBar

new method: -setTitleColor:forState: in MDCTabBar

TextFields

MDCTextInputControllerFloatingPlaceholder

new property: floatingPlaceholderActiveColorDefault in MDCTextInputControllerFloatingPlaceholder

new property: floatingPlaceholderActiveColor in MDCTextInputControllerFloatingPlaceholder

Component changes

Tabs

Changes

AppBar

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Snackbar

Changes

NavigationBar

Changes

BottomNavigation

Changes


54.10.0

This release continues to increase coverage of themers across our components.

New features

ButtonBar now has a Typography themer.

NavigationBar now has APIs for customizing title button fonts.

API changes

NavigationBar

MDCNavigationBar

new method: -setButtonsTitleFont:forState: in MDCNavigationBar

new method: -buttonsTitleFontForState: in MDCNavigationBar

Component changes

Buttons

Changes

ButtonBar

Changes

Chips

Changes

NavigationBar

Changes


54.9.0

This release continues to improve the support for our themer APIs across all components.

New features

Button Bar now allows button typography to be configured.

Floating buttons and contained buttons now have themers.

AppBar and Tabs now have a surface variant color themer API.

Slider now has a color themer.

API changes

ButtonBar

MDCButtonBar

new method: -setButtonsTitleFont:forState: in MDCButtonBar

new method: -buttonsTitleFontForState: in MDCButtonBar

Component changes

Tabs

Changes

AppBar

Changes

Ink

Changes

Buttons

Changes

ButtonBar

Changes

Chips

Changes

Slider

Changes

ShadowLayer

Changes


54.8.0

This new release introduces shapes support to buttons and a variety of new themer APIs for many components.

New features

Buttons can now be styled with different shape outlines. Example usage:

MDCRectangleShapeGenerator *raisedShapeGenerator =
    [[MDCRectangleShapeGenerator alloc] init];
[raisedShapeGenerator setCorners:[[MDCCutCornerTreatment alloc] initWithCut:8.f]];
button.shapeGenerator = raisedShapeGenerator;

There is a new Text Button API for theming an MDCButton to make complete use of typography, color, and other configurable properties of a button's design. A button themed as a text button is closely equivalent to the MDCFlatButton class, MDCFlatButton will soon be deprecated as a result in favor of the following pattern:

// Define your button's scheme somewhere centrally in your app.
let buttonScheme = MDCButtonScheme()
buttonScheme.colorScheme = myAppColorScheme

// Apply the button scheme to an MDCButton to give it the appearance of a text button.
// button: MDCButton
MDCTextButtonThemer.applyScheme(buttonScheme, to: button)

NavigationBar and FlexibleHeader now both have a surface variant themer.

Chips and Tabs have updated color themers.

API changes

Buttons

MDCButton

new property: shapeGenerator in MDCButton

Component changes

Tabs

Changes

Buttons

Changes

Chips

Changes

NavigationBar

Changes

FlexibleHeader

Changes


54.7.0

This release introduces a new API for compositing colors for use by color themers.

API diff

schemes/Color

new method: MDCSemanticColorScheme +blendColor:withBackgroundColor:

Component changes

schemes/Color

Changes

ButtonBar

Changes

Cards

Changes


54.6.1

This is a hotfix release fixing a bug in ButtonBar that was introduced in 54.6.0.

Component changes

ButtonBar

Changes


54.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

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Cards

Changes

NavigationBar

Changes

ActivityIndicator

Changes

BottomSheet

Changes

BottomNavigation

Changes


54.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

TextFields

Changes

Chips

Changes

Slider

Changes

ActivityIndicator

Changes

Dialogs

Changes

BottomNavigation

Changes


54.4.0

New features

Buttons now has a Typography themer.

MDCFlatButton now has a color themer API.

API changes

Component changes

Buttons

Changes


54.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

TextFields

Changes

Chips

Changes

Snackbar

Changes

NavigationBar

Changes

BottomNavigation

Changes

FlexibleHeader

Changes


54.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

FeatureHighlight

Changes

AppBar

Changes

TextFields

Changes

Slider

Changes

NavigationBar

Changes

ActivityIndicator

Changes

Dialogs

Changes


54.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

Ink

Changes

Snackbar

Changes

NavigationBar

Changes

Dialogs

Changes


54.0.1

Added missing CocoaPods dependencies from v54.0.0.


54.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

MaskedTransition

Changes

schemes/Color

Changes

schemes/Typography

Changes

FeatureHighlight

Changes

AppBar

Changes

Ink

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

Cards

Changes

NavigationBar

Changes

Dialogs

Changes

FlexibleHeader

Changes

Themes

Changes


53.0.0

Component Changes

ButtonBar

Changes

NavigationBar

Changes


52.0.0

Breaking changes

BottomNavigation

  • Color themer now only uses primaryColor and applies it to the selectedItemTintColor. It will no longer apply values to either unselectedItemTintColor or barTintColor.

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

schemes/Color

Changes

FeatureHighlight

Changes

Ink

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

NavigationBar

Changes

LibraryInfo

Changes

Dialogs

Changes

BottomNavigation

Changes

PageControl

Changes

AnimationTiming

Changes

Collections

Changes

FlexibleHeader

Changes

Palettes

Changes


50.0.0

Breaking change

MDCTabBarFontThemer and MDCBottomAppBarColorThemer changed a argument to nonnull from nullable.

API changes

BottomNavigation

MDCBottomNavigationBar

new property: backgroundColor in MDCBottomNavigationBar

new property: barTintColor in MDCBottomNavigationBar

Chips

MDCChipView

new property: minimumSize in MDCChipView

Collections

MDCCollectionViewStyling

new property: cardBorderRadius in MDCCollectionViewStyling

TextFields

MDCTextInputController

new property: textInputFont in MDCTextInputController

new property: textInputFontDefault in MDCTextInputController

Component changes

Tabs

Changes

MaskedTransition

Changes

FeatureHighlight

Changes

AppBar

Changes

Ink

Changes

CollectionCells

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

Cards

Changes

BottomAppBar

Changes

Slider

Changes

NavigationBar

Changes

OverlayWindow

Changes

LibraryInfo

Changes

ShadowLayer

Changes

ActivityIndicator

Changes

BottomSheet

Changes

Typography

Changes

Dialogs

Changes

BottomNavigation

Changes

PageControl

Changes

AnimationTiming

Changes

Collections

Changes

HeaderStackView

Changes

FlexibleHeader

Changes

Themes

Changes

ShadowElevations

Changes

ProgressView

Changes

Palettes

Changes

CollectionLayoutAttributes

Changes


49.0.0

Breaking changes

BottomAppBar

MDCBottomAppBarView

NS_UNAVAILABLE property: backgroundColor in MDCBottomAppBarView

API changes

BottomAppBar

MDCBottomAppBarView

new property: barTintColor in MDCBottomAppBarView

NS_UNAVAILABLE property: backgroundColor in MDCBottomAppBarView

new property: shadowColor in MDCBottomAppBarView

new property: backgroundColor in MDCBottomAppBarView

Dialogs

MDCAlertControllerView

new property: titleColor in MDCAlertControllerView

new property: mdc_adjustsFontForContentSizeCategory in MDCAlertControllerView

new class: MDCAlertControllerView

new property: titleFont in MDCAlertControllerView

new property: buttonColor in MDCAlertControllerView

new property: buttonFont in MDCAlertControllerView

new property: messageColor in MDCAlertControllerView

new property: messageFont in MDCAlertControllerView

Component changes

Snackbar

Changes

BottomAppBar

Changes

Dialogs

Changes

Themes

Changes


48.0.0

Breaking changes

removed property: highlightedButtonTextColor in MDCSnackbarMessage

New deprecations

MDCSnackbarMessage

deprecated property: buttonTextColor in MDCSnackbarMessage

MDCSnackbarMessageView()

modified property: snackbarMessageViewTextColor in MDCSnackbarMessageView()

Type of change:Deprecation message
From:snackbarMessageViewTextColor
To:messsageTextColor

modified property: snackbarMessageViewTextColor in MDCSnackbarMessageView()

Type of change:Deprecation
From:0
To:1

modified property: snackbarMessageViewTextColor in MDCSnackbarMessageView()

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarMessageView
To:c:objc(ext)MDCSnackbarMessageView@MDCSnackbarMessageView.h@2959

New features

API changes

Snackbar

MDCSnackbarMessageView

new property: messageTextColor in MDCSnackbarMessageView

new method: -buttonTitleColorForState: in MDCSnackbarMessageView

new property: mdc_adjustsFontForContentSizeCategory in MDCSnackbarMessageView

new method: -setButtonTitleColor:forState: in MDCSnackbarMessageView

MDCSnackbarMessage

new property: usesLegacySnackbar in MDCSnackbarMessage

removed property: highlightedButtonTextColor in MDCSnackbarMessage

removed property: buttonTextColor in MDCSnackbarMessage

MDCSnackbarMessageView()

new method: -snackbarMessageViewTextColor in snackbarMessageViewTextColor in MDCSnackbarMessageView()

new category: MDCSnackbarMessageView()

new method: -setSnackbarMessageViewTextColor: in snackbarMessageViewTextColor in MDCSnackbarMessageView()

modified property: snackbarMessageViewTextColor in MDCSnackbarMessageView()

Type of change:Deprecation message
From:``
To:Use messsageTextColor instead.

modified property: snackbarMessageViewTextColor in MDCSnackbarMessageView()

Type of change:Deprecation
From:0
To:1

modified property: snackbarMessageViewTextColor in MDCSnackbarMessageView()

Type of change:parent.usr
From:c:objc(cs)MDCSnackbarMessageView
To:c:objc(ext)MDCSnackbarMessageView@MDCSnackbarMessageView.h@2959

Component changes

Tabs

Changes

FeatureHighlight

Changes

Ink

Changes

Buttons

Changes

TextFields

Changes

Snackbar

Changes

BottomSheet

Changes

Themes

Changes

Palettes

Changes


47.0.0

Breaking changes

Cards

MDCCardCollectionCell

removed property: selectedImageTintColor in MDCCardCollectionCell

removed property: selectedImage in MDCCardCollectionCell

New deprecations

New features

API changes

Cards

MDCCardCollectionCell

new method: -setVerticalImageAlignment:forState: in MDCCardCollectionCell

new method: -setImageTintColor:forState: in MDCCardCollectionCell

new method: -horizontalImageAlignmentForState: in MDCCardCollectionCell

new method: -imageForState: in MDCCardCollectionCell

new method: -imageTintColorForState: in MDCCardCollectionCell

new method: -setImage:forState: in MDCCardCollectionCell

new method: -verticalImageAlignmentForState: in MDCCardCollectionCell

new method: -setHorizontalImageAlignment:forState: in MDCCardCollectionCell

removed property: selectedImageTintColor in MDCCardCollectionCell

removed property: selectedImage in MDCCardCollectionCell

modified class: MDCCardCollectionCell

MDCCardCellVerticalImageAlignment

new enum value: MDCCardCellVerticalImageAlignmentBottom in MDCCardCellVerticalImageAlignment

new typedef: MDCCardCellVerticalImageAlignment

new enum: MDCCardCellVerticalImageAlignment

new enum value: MDCCardCellVerticalImageAlignmentCenter in MDCCardCellVerticalImageAlignment

new enum value: MDCCardCellVerticalImageAlignmentTop in MDCCardCellVerticalImageAlignment

MDCCardCellHorizontalImageAlignment

new enum value: MDCCardCellHorizontalImageAlignmentRight in MDCCardCellHorizontalImageAlignment

new enum value: MDCCardCellHorizontalImageAlignmentCenter in MDCCardCellHorizontalImageAlignment

new typedef: MDCCardCellHorizontalImageAlignment

new enum: MDCCardCellHorizontalImageAlignment

new enum value: MDCCardCellHorizontalImageAlignmentLeft in MDCCardCellHorizontalImageAlignment

Component changes

Tabs

Changes

FeatureHighlight

Changes

Ink

Changes

CollectionCells

Changes

ButtonBar

Changes

TextFields

Changes

Snackbar

Changes

Cards

Changes

NavigationBar

Changes

BottomSheet

Changes

BottomNavigation

Changes

PageControl

Changes

Collections

Changes

Themes

Changes


46.1.1

Component changes

CollectionCells

Changes


46.1.0

API changes

ActivityIndicator

MDCActivityIndicator

new method: -setProgress:animated: in MDCActivityIndicator

Themes

MDCTonalPalette

modified class: MDCTonalPalette

Type of change:Swift declaration
From:class MDCTonalPalette : NSObject, NSCoding, NSCopying
To:class MDCTonalPalette : NSObject, NSCopying, NSSecureCoding

modified class: MDCTonalPalette

Type of change:Declaration
From:@interface MDCTonalPalette : NSObject <NSCoding, NSCopying>
To:@interface MDCTonalPalette : NSObject <NSCopying, NSSecureCoding>

Component changes

Tabs

Changes

MaskedTransition

Changes

FeatureHighlight

Changes

Ink

Changes

CollectionCells

Changes

Buttons

Changes

ButtonBar

Changes

TextFields

Changes

Chips

Changes

Snackbar

Changes

Cards

Changes

BottomAppBar

Changes

NavigationBar

Changes

ShadowLayer

Changes

ActivityIndicator

Changes

BottomSheet

Changes

BottomNavigation

Changes

PageControl

Changes

Collections

Changes

HeaderStackView

Changes

FlexibleHeader

Changes

Themes

Changes


46.0.0

Breaking changes

BottomSheets

Remove Material Motion from the BottomSheets component as it was causing crashes on iOS 8.


45.0.0

API changes

Dialogs

MDCDialogTransition

removed property: dismissOnBackgroundTap in MDCDialogTransition

removed class: MDCDialogTransition

TextFields

MDCTextInputUnderlineView

modified class: MDCTextInputUnderlineView

Type of change:Swift declaration
From:class MDCTextInputUnderlineView : UIView, NSCopying, NSCoding
To:class MDCTextInputUnderlineView : UIView, NSCopying, NSSecureCoding

modified class: MDCTextInputUnderlineView

Type of change:Declaration
From:@interface MDCTextInputUnderlineView : UIView <NSCopying, NSCoding>
To:@interface MDCTextInputUnderlineView : UIView <NSCopying, NSSecureCoding>

MDCTextInputController

modified protocol: MDCTextInputController

Type of change:Swift declaration
From:protocol MDCTextInputController : NSObjectProtocol, NSCoding, NSCopying, MDCTextInputPositioningDelegate
To:protocol MDCTextInputController : NSObjectProtocol, NSSecureCoding, NSCopying, MDCTextInputPositioningDelegate

modified protocol: MDCTextInputController

Type of change:Declaration
From:@protocol MDCTextInputController <NSObject, NSCoding, NSCopying, MDCTextInputPositioningDelegate>
To:@protocol MDCTextInputController <NSObject, NSSecureCoding, NSCopying, MDCTextInputPositioningDelegate>

Component changes

BottomNavigation

Changes

Cards

Changes

Dialogs

Changes

TextFields

Changes


44.6.1

Component changes

MDCIcons

Added extra guard to prevent crash cause by adding nil to a NSCache.


44.6.0

API changes

Cards

New component.

Ink

MDCInkView

new method: -startTouchBeganAtPoint:animated:withCompletion: in MDCInkView

new method: -startTouchEndAtPoint:animated:withCompletion: in MDCInkView

Component changes

AnimationTiming

Changes

BottomSheet

Changes

Cards

Changes

Chips

Changes

Dialogs

Changes

FlexibleHeader

Changes

Ink

Changes

LibraryInfo

Changes

TextFields

Changes

Typography

Changes


44.5.0

API changes

ButtonBar

MDCButtonBarButton

new class: MDCButtonBarButton

Component changes

ButtonBar

Changes

ProgressView

Changes

TextFields

Changes


44.4.0

Breaking changes

New deprecations

New features

API changes

Chips

MDCChipView

new method: -inkColorForState: in MDCChipView

new method: -setInkColor:forState: in MDCChipView

modified class: MDCChipView

modified property: inkColor in MDCChipView

modified property: inkColor in MDCChipView

Snackbar

MDCSnackbarMessageView

new property: buttonFont in MDCSnackbarMessageView

new property: messageFont in MDCSnackbarMessageView

Component changes

Chips

Changes

Snackbar

Changes


44.3.0

API changes

Themes

MDCFontScheme

new property: button in MDCFontScheme

new property: body2 in MDCFontScheme

new property: headline5 in MDCFontScheme

new property: caption in MDCFontScheme

new property: subtitle2 in MDCFontScheme

new property: subtitle1 in MDCFontScheme

new property: body1 in MDCFontScheme

new property: headline1 in MDCFontScheme

new property: overline in MDCFontScheme

new property: headline2 in MDCFontScheme

new property: headline4 in MDCFontScheme

new protocol: MDCFontScheme

new property: headline3 in MDCFontScheme

new property: headline6 in MDCFontScheme

MDCBasicFontScheme

new property: button in MDCBasicFontScheme

new property: headline1 in MDCBasicFontScheme

new property: headline5 in MDCBasicFontScheme

new property: body1 in MDCBasicFontScheme

new property: subtitle2 in MDCBasicFontScheme

new property: headline2 in MDCBasicFontScheme

new property: body2 in MDCBasicFontScheme

new property: overline in MDCBasicFontScheme

new property: headline6 in MDCBasicFontScheme

new property: subtitle1 in MDCBasicFontScheme

new class: MDCBasicFontScheme

new property: headline4 in MDCBasicFontScheme

new property: headline3 in MDCBasicFontScheme

new property: caption in MDCBasicFontScheme

Component changes

FeatureHighlight

Changes

Themes

Changes


44.2.0

API changes

Chips

MDCChipView

new property: titleFont in MDCChipView

ActivityIndicator

Changes

BottomNavigation

Changes

ButtonBar

Changes

Chips

Changes

CollectionCells

Changes

FlexibleHeader

Changes

Typography

Changes


44.1.0

New features

  • MDCSlider supports more UIAppearance customization.
  • MDCActivityIndicator provides improved support for animation transitions.

API changes

ActivityIndicator

MDCActivityIndicatorTransition

new property: duration in MDCActivityIndicatorTransition

new method: -initWithAnimation: in MDCActivityIndicatorTransition

new class: MDCActivityIndicatorTransition

new property: animation in MDCActivityIndicatorTransition

new method: -init in MDCActivityIndicatorTransition

new method: -initWithCoder: in MDCActivityIndicatorTransition

new property: completion in MDCActivityIndicatorTransition

MDCActivityIndicatorAnimation

new typedef: MDCActivityIndicatorAnimation

MDCActivityIndicator

new method: -startAnimatingWithTransition:cycleStartIndex: in MDCActivityIndicator

new method: -stopAnimatingWithTransition: in MDCActivityIndicator

Slider

MDCSlider

new property: thumbRadius in MDCSlider

new property: thumbElevation in MDCSlider

modified property: trackBackgroundColor in MDCSlider

Type of change:Declaration
From:@property(nonatomic, strong, null_resettable) UIColor *trackBackgroundColor
To:@property (readwrite, strong, nonatomic, null_resettable) UIColor *trackBackgroundColor;

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

BottomAppBar

Changes

BottomNavigation

Changes

BottomSheet

Changes

ButtonBar

Changes

Chips

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

LibraryInfo

Changes

MaskedTransition

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Typography

Changes


44.0.0

Breaking changes

Podspec now separates out extensions (themers, accessibility additions, etc.) into their own podspec.

If you wish to add a component and all of its extensions, update your Podfile and add “+Extensions” to the component.

To include Activity Indicator and its extensions you would write:

pod 'MaterialComponents/ActivityIndicator+Extensions'

Component changes

ActivityIndicator

Changes

BottomNavigation

Changes

BottomSheet

Changes

ButtonBar

Changes

Buttons

Changes

Collection Cells

Changes

Collections

Changes

Dialogs

Changes

Feature Highlights

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

ProgressView

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

Typography

Changes

Typography

Changes


43.1.1

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

BottomAppBar

Changes

BottomNavigation

Changes

BottomSheet

Changes

ButtonBar

Changes

Buttons

Changes

Chips

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

MaskedTransition

Changes

NavigationBar

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

Typography

Changes


43.1.0

API changes

Buttons

MDCButton

new method: -setTitleFont:forState: in MDCButton

new method: -titleFontForState: in MDCButton

FeatureHighlight

MDCFeatureHighlightView

new property: bodyFont in MDCFeatureHighlightView

new property: titleFont in MDCFeatureHighlightView

Component changes

ActivityIndicator

Changes

AppBar

Changes

BottomAppBar

Changes

BottomNavigation

Changes

ButtonBar

Changes

Buttons

Changes

Chips

Changes

CollectionCells

Changes

Collections

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

LibraryInfo

Changes

MaskedTransition

Changes

NavigationBar

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes


43.0.0

This major release includes a variety of API name changes. Please see the API changes below for more details.

Breaking changes

MDCTextInputControllerDefault has been removed. Use MDCTextInputControllerUnderline instead.

API changes

TextFields

MDCTextInputControllerOutlined

modified class: MDCTextInputControllerOutlined

Type of change:Swift declaration
From:class MDCTextInputControllerOutlined : MDCTextInputControllerDefault
To:class MDCTextInputControllerOutlined : MDCTextInputControllerBase

modified class: MDCTextInputControllerOutlined

Type of change:Declaration
From:@interface MDCTextInputControllerOutlined : MDCTextInputControllerDefault
To:@interface MDCTextInputControllerOutlined : MDCTextInputControllerBase

MDCTextInputControllerOutlinedTextArea

modified class: MDCTextInputControllerOutlinedTextArea

Type of change:Swift declaration
From:class MDCTextInputControllerOutlinedTextArea : MDCTextInputControllerDefault
To:class MDCTextInputControllerOutlinedTextArea : MDCTextInputControllerBase

modified class: MDCTextInputControllerOutlinedTextArea

Type of change:Declaration
From:@interface MDCTextInputControllerOutlinedTextArea : MDCTextInputControllerDefault
To:@interface MDCTextInputControllerOutlinedTextArea : MDCTextInputControllerBase

MDCTextInputControllerBase

new property: expandsOnOverflow in MDCTextInputControllerBase

new property: borderFillColorDefault in MDCTextInputControllerBase

new property: borderFillColor in MDCTextInputControllerBase

new property: minimumLines in MDCTextInputControllerBase

new class: MDCTextInputControllerBase

MDCTextInputControllerDefault

removed property: expandsOnOverflow in MDCTextInputControllerDefault

removed property: borderFillColor in MDCTextInputControllerDefault

removed class: MDCTextInputControllerDefault

removed property: borderFillColorDefault in MDCTextInputControllerDefault

removed property: minimumLines in MDCTextInputControllerDefault

MDCTextInputDefaultUnderlineActiveHeight

removed constant: MDCTextInputDefaultUnderlineActiveHeight

MDCTextInputControllerFilled

modified class: MDCTextInputControllerFilled

Type of change:Swift declaration
From:class MDCTextInputControllerFilled : MDCTextInputControllerDefault
To:class MDCTextInputControllerFilled : MDCTextInputControllerBase

modified class: MDCTextInputControllerFilled

Type of change:Declaration
From:@interface MDCTextInputControllerFilled : MDCTextInputControllerDefault
To:@interface MDCTextInputControllerFilled : MDCTextInputControllerBase

MDCTextInputDefaultBorderRadius

removed constant: MDCTextInputDefaultBorderRadius

MDCTextInputControllerUnderline

new class: MDCTextInputControllerUnderline

MDCTextInputControllerBaseDefaultBorderRadius

new constant: MDCTextInputControllerBaseDefaultBorderRadius

MDCTextInputController

new property: underlineHeightActiveDefault in MDCTextInputController

new property: underlineHeightActive in MDCTextInputController

new property: underlineHeightNormalDefault in MDCTextInputController

new property: underlineHeightNormal in MDCTextInputController

Component changes

TextFields

Changes

Themes

Changes


42.2.0

API changes

Typography

UIFont(MaterialTypography)

new method: -mdc_fontSizedForMaterialTextStyle:scaledForDynamicType: in UIFont(MaterialTypography)

Component changes

ButtonBar

Changes

NavigationBar

Changes

TextFields

Changes

Typography

Changes


42.1.0

New features

New MDCChipField API in the Chips component provides an interface through which a user can input a collection of string tokens.

API changes

Chips

MDCChipFieldDefaultContentEdgeInsets

new constant: MDCChipFieldDefaultContentEdgeInsets

MDCChipFieldDelimiter

new enum value: MDCChipFieldDelimiterReturn in MDCChipFieldDelimiter

new enum: MDCChipFieldDelimiter

new enum value: MDCChipFieldDelimiterAll in MDCChipFieldDelimiter

new enum value: MDCChipFieldDelimiterNone in MDCChipFieldDelimiter

new typedef: MDCChipFieldDelimiter

new enum value: MDCChipFieldDelimiterDefault in MDCChipFieldDelimiter

new enum value: MDCChipFieldDelimiterSpace in MDCChipFieldDelimiter

new enum value: MDCChipFieldDelimiterDidEndEditing in MDCChipFieldDelimiter

MDCChipField

new class: MDCChipField

new method: -focusTextFieldForAccessibility in MDCChipField

new method: -removeSelectedChips in MDCChipField

new method: -removeChip: in MDCChipField

new property: contentEdgeInsets in MDCChipField

new method: -addChip: in MDCChipField

new property: showPlaceholderWithChips in MDCChipField

new property: textField in MDCChipField

new property: minTextFieldWidth in MDCChipField

new property: chipHeight in MDCChipField

new method: -deselectAllChips in MDCChipField

new property: delegate in MDCChipField

new method: -selectChip: in MDCChipField

new property: chips in MDCChipField

new method: -clearTextInput in MDCChipField

new property: delimiter in MDCChipField

MDCChipFieldDelegate

new method: -chipField:didChangeInput: in MDCChipFieldDelegate

new protocol: MDCChipFieldDelegate

new method: -chipFieldHeightDidChange: in MDCChipFieldDelegate

new method: -chipFieldDidBeginEditing: in MDCChipFieldDelegate

new method: -chipField:didRemoveChip: in MDCChipFieldDelegate

new method: -chipField:didTapChip: in MDCChipFieldDelegate

new method: -chipField:shouldAddChip: in MDCChipFieldDelegate

new method: -chipFieldShouldBecomeFirstResponder: in MDCChipFieldDelegate

new method: -chipField:didAddChip: in MDCChipFieldDelegate

new method: -chipFieldShouldReturn: in MDCChipFieldDelegate

new method: -chipFieldDidEndEditing: in MDCChipFieldDelegate

MDCChipView

new property: shapeGenerator in MDCChipView

new method: -shadowColorForState: in MDCChipView

new method: -setShadowColor:forState: in MDCChipView

MDCChipFieldDefaultMinTextFieldWidth

new constant: MDCChipFieldDefaultMinTextFieldWidth

FeatureHighlight

MDCFeatureHighlightView

new property: mdc_adjustsFontForContentSizeCategory in MDCFeatureHighlightView

ShadowLayer

MDCShadowLayer(Subclassing)

new category: MDCShadowLayer(Subclassing)

Typography

UIFontDescriptor(MaterialTypography)

new class method: +mdc_standardFontDescriptorForMaterialTextStyle: in UIFontDescriptor(MaterialTypography)

UIFont(MaterialTypography)

new class method: +mdc_standardFontForMaterialTextStyle: in UIFont(MaterialTypography)

Component changes

AnimationTiming

Changes

AppBar

Changes

BottomAppBar

Changes

BottomNavigation

Changes

BottomSheet

Changes

ButtonBar

Changes

Buttons

Changes

Chips

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

ProgressView

Changes

ShadowLayer

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

Typography

Changes


42.0.0

Breaking changes

MDCFloatingButtonShapeLargeIcon has been removed.

// Old code
MDCFloatingButton *button =
    [MDCFloatingButton floatingButtonWithShape:MDCFloatingButtonShapeLargeIcon];

// New code
MDCFloatingButton *button = [[MDCFloatingButton alloc] init];

New deprecations

BottomSheet has a variety of new deprecations.

New features

MDCFloatingButton has a new mode property and can now be expanded.

MDCInkView has a new delegate-based API for responding to animation events.

It's now possible to customize fonts on Tabs.

API changes

ActivityIndicator

MDCActivityIndicatorDelegate

new method: -activityIndicatorModeTransitionDidFinish: in MDCActivityIndicatorDelegate

BottomSheet

UIViewController(MaterialBottomSheet)

deprecated property: mdc_bottomSheetPresentationController in UIViewController(MaterialBottomSheet). Assign an instance of MDCBottomSheetTransition to your view controller's mdm_transitionController.transition instead.

MDCBottomSheetTransitionController

deprecated class: MDCBottomSheetTransitionController. Assign an instance of MDCBottomSheetTransition to your view controller's mdm_transitionController.transition instead.

MDCBottomSheetPresentationControllerDelegate

deprecated protocol: MDCBottomSheetPresentationControllerDelegate. This API will soon be made private. Use MDCBottomSheetController instead.

MDCBottomSheetPresentationController

deprecated class: MDCBottomSheetPresentationController. This API will soon be made private. Use MDCBottomSheetController instead.

Buttons

MDCFloatingButton

new method: -setMaximumSize: in MDCFloatingButton

new property: imageTitleSpace in MDCFloatingButton

new method: -setContentEdgeInsets: in MDCFloatingButton

new method: -setMinimumSize: in MDCFloatingButton

new property: imageLocation in MDCFloatingButton

new method: -setMinimumSize:forShape:inMode: in MDCFloatingButton

new property: mode in MDCFloatingButton

new method: -setHitAreaInsets:forShape:inMode: in MDCFloatingButton

new method: -setContentEdgeInsets:forShape:inMode: in MDCFloatingButton

new method: -setHitAreaInsets: in MDCFloatingButton

new method: -setMaximumSize:forShape:inMode: in MDCFloatingButton

MDCFloatingButtonMode

new enum value: MDCFloatingButtonModeExpanded in MDCFloatingButtonMode

new enum value: MDCFloatingButtonModeNormal in MDCFloatingButtonMode

new enum: MDCFloatingButtonMode

MDCFloatingButtonShape

removed enum value: MDCFloatingButtonShapeLargeIcon in MDCFloatingButtonShape

MDCFloatingButtonImageLocation

new enum value: MDCFloatingButtonImageLocationLeading in MDCFloatingButtonImageLocation

new typedef: MDCFloatingButtonImageLocation

new enum: MDCFloatingButtonImageLocation

new enum value: MDCFloatingButtonImageLocationTrailing in MDCFloatingButtonImageLocation

Ink

MDCInkView

new property: animationDelegate in MDCInkView

MDCInkViewDelegate

new method: -inkAnimationDidStart: in MDCInkViewDelegate

new method: -inkAnimationDidEnd: in MDCInkViewDelegate

new protocol: MDCInkViewDelegate

Tabs

MDCTabBar

new property: selectedItemTitleFont in MDCTabBar

new property: titleTextTransform in MDCTabBar

new property: unselectedItemTitleFont in MDCTabBar

MDCTabBarTextTransform

new enum: MDCTabBarTextTransform

new enum value: MDCTabBarTextTransformAutomatic in MDCTabBarTextTransform

new typedef: MDCTabBarTextTransform

new enum value: MDCTabBarTextTransformUppercase in MDCTabBarTextTransform

new enum value: MDCTabBarTextTransformNone in MDCTabBarTextTransform

Component changes

ActivityIndicator

Changes

AppBar

Changes

BottomAppBar

Changes

BottomNavigation

Changes

BottomSheet

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

LibraryInfo

Changes

MaskedTransition

Changes

NavigationBar

Changes

PageControl

Changes

ProgressView

Changes

ShadowLayer

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes


41.0.0

API changes

Dialogs

new class: MDCDialogTransition.

Ink

breaking changed property signature: MDCInkView's inkColor from null_resettable to nonnull.

new property: usesLegacyInkRipple.

Snackbar

breaking MDCSnackbarMessage's public APIs have all been annotated with nullability annotations.

TextFields

new class: MDCIntrinsicHeightTextView.

changed property signature: MDCMultilineTextField's textView changed from UITextView to MDCIntrinsicHeightTextView.

Component changes

BottomAppBar

Changes

Buttons

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

Ink

Changes

MaskedTransition

Changes

PageControl

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Typography

Changes

40.1.1

Component changes

Tabs

Changes

40.1.0

API Changes

AnimationTiming

  • New enums: MDCAnimationTimingFunctionStandard, MDCAnimationTimingFunctionDeceleration, and MDCAnimationTimingFunctionAcceleration.

BottomSheet

  • New class: MDCBottomSheetTransition.

Tabs

  • New property: -selectionIndicatorTemplate.

  • New class: MDCTabBarIndicatorAttributes.

  • New protocol: MDCTabBarIndicatorContext.

  • New Protocol: MDCTabBarIndicatorTemplate.

  • New class: MDCTabBarUnderlineIndicatorTemplate.

Themes

  • New conformity: MDCColorScheme now conforms to NSObject.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

BottomAppBar

Changes

BottomNavigation

Changes

BottomSheet

Changes

ButtonBar

Changes

Buttons

Changes

Chips

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

LibraryInfo

Changes

MaskedTransition

Changes

NavigationBar

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

Typography

Changes

40.0.3

  • [Chips] Fix private header import (#2434)

40.0.2

  • Fix missing step from 40.0.1: update version numbers throughout library.

40.0.1

  • [Catalog] Added Import to catalog’s AppDelegate.

40.0.0

API Changes

Bottom Sheet

  • Added trackingScrollView property to support better dragging.

Chips (new)

LibraryInfo (new)

  • Added LibraryInfo for accessing information about the MDC library itself.

Tabs

  • Added [MDCTabBar defaultHeightForBarPosition:itemAppearance:].

Text Fields

Component changes

ActivityIndicator

Changes

AppBar

Changes

BottomNavigation

Changes

BottomSheet

Changes

Chips

Changes

Collections

Changes

FlexibleHeader

Changes

LibraryInfo

Changes

MaskedTransition

Changes

PageControl

Changes

ProgressView

Changes

Slider

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

39.0.0

API Changes

Animation Timing

  • Added the MDCAnimationTimingFunctionSharp timing function from the spec.

Bottom Navigation

  • Added MDCBottomNavigationBarDelegate with controls on selecting items.

Button

  • Added minimumSize and maximumSize properties.

Ink

  • Added injectedInkViewForView convenience function to find an ink view in a view hierarchy.

Slider

  • Added disabledColor property.

Text Fields

  • Added MDCMultilineTextField expandsOnOverflow and placeholder text properties.
  • The MDCTextInput expandsOnOverflow property is no longer IBInspectable.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

BottomNavigation

Changes

Buttons

Changes

CollectionCells

Changes

FlexibleHeader

Changes

Ink

Changes

MaskedTransition

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

Slider

Changes

TextFields

Changes

38.1.1

No code changes. Added a missing dependency to the BottomNavigation component found after the 38.1.0 release was published.

38.1.0

API Changes

Bottom Navigation

  • New component: Bottom Navigation makes it easy to explore and switch between top-level views in a single tap, similar to a UITabBar.

Text Fields

  • MDCTextInput.cursorColor controls the color of the blinking cursor (in the text).

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

BottomAppBar

Changes

BottomNavigation

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

MaskedTransition

Changes

NavigationBar

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Tabs

Changes

TextFields

Changes

Typography

Changes

38.0.1

API Changes

None for this release.

Component changes

BottomAppBar

Changes

FlexibleHeader

Changes

TextFields

Changes

38.0.0

API Changes

Navigation Bar

  • (Swift only) titleTextAttributes uses a dictionary with keys of type NSAttributedStringKey instead of NSString * so, for example, .font should be used intead of NSAttributedStringKey.font.rawValue.

Component changes

AppBar

Changes

BottomAppBar

Changes

Collections

Changes

Dialogs

Changes

NavigationBar

Changes

37.0.0

API Changes

Text Fields

  • Added [MDCTextFieldPositioningDelegate textInputDidUpdateConstraints], called after the input's updateConstraints.
  • MDCTextInputControllerDefault's floatingPlaceholderDestination property is replaced with floatingPlaceholderOffset and is a UIOffset, not CGPoint.

Component changes

Buttons

Changes

FlexibleHeader

Changes

PageControl

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

36.3.0

API Changes

Flexible Header

  • Added minMaxHeightIncludesSafeArea to inform the component if the minimumHeight and maximumHeight properties include the safe area inset.

Component changes

FlexibleHeader

Changes

36.2.0

API Changes

Text fields

  • -[MDCTabBarControllerDelegate tabBarController:shouldSelectViewController:] and -[MDCTabBarControllerDelegate tabBarController:didSelectViewController:] will be called for the currently-selected tab if the user taps the tab again (that is, the tab doesn‘t change). This matches Apple’s behavior more closely and allows for custom behaviors.
  • MDCMultilineTextField now has a MDCMultilineTextInputDelegate for useful methods not included in UITextViewDelegate.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

BottomAppBar

Changes

BottomSheet

Changes

Dialogs

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

NavigationBar

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

Typography

Changes

36.1.0

API Changes

Text fields

  • Added placeholderText property to control the placeholder text.

Component changes

ActivityIndicator

Changes

Buttons

Changes

Dialogs

Changes

FlexibleHeader

Changes

TextFields

Changes

Themes

Changes

36.0.0

API Changes

Buttons

  • Converted elevation methods to use MDCShadowElevation type insetad of raw CGFloats.

Palettes

  • Palettes require Xcode 8+'s toolchain to compile.

Shadow Elevations

  • Introduced the MDCShadowElevation typedef for shadow elevation values instead of raw CGFloats.

Component changes

ActivityIndicator

Changes

AppBar

Changes

BottomAppBar

Changes

BottomSheet

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

NavigationBar

Changes

PageControl

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

Typography

Changes

35.3.0

API Changes

Text Fields

  • New properties on MDCTextInputController:inlinePlaceholderFont, inlinePlaceholderFontDefault, leadingUnderlineLabelFont, leadingUnderlineLabelFontDefault`.
  • New classes MDCTextInputControllerFilled, MDCTextInputControllerOutlined, MDCTextInputControllerOutlinedTextArea.

Component changes

AppBar

Changes

BottomSheet

Changes

Buttons

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

MaskedTransition

Changes

NavigationBar

Changes

Tabs

Changes

TextFields

Changes

35.2.0

API Changes

Bottom App Bar

  • New component: A bottom app bar view with an embedded floating button.

Text Fields

  • MDCTextField.clearButtonMode now supports UIAppearance.

Component changes

BottomAppBar

Changes

Buttons

Changes

FlexibleHeader

Changes

Ink

Changes

NavigationBar

Changes

Tabs

Changes

TextFields

Changes

35.1.0

API Changes

Shadows

  • Added support for colored shadows.

Component changes

Buttons

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

Tabs

Changes

TextFields

Changes

35.0.0

API Changes

PageControl

TextFields

Component changes

BottomSheet

Changes

ButtonBar

Changes

Dialogs

Changes

PageControl

Changes

Snackbar

Changes

TextFields

Changes

Themes

Changes

34.0.2

API Changes

None.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

MaskedTransition

Changes

NavigationBar

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

Typography

Changes

34.0.1

Hotfix: Fixes Feature Highlight configuration.

Component changes

FeatureHighlight

Changes

34.0.0

API Diffs

AnimationTiming

  • Improved nullibility annotations.

Buttons

  • Added more support for UIAppearance in MDCButton.
  • Added border color and width parameters.

FeatureHighlight

  • Added support for UIContentSize (preferred user font sizes).

TextFields

  • Major update to improved visual styles. For previous version, use the *Legacy* classes.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

BottomSheet

Changes

ButtonBar

Changes

Buttons

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

Ink

Changes

MaskedTransition

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

Typography

Changes

33.0.0

API Diffs

TextFields

Renaming changes in preparation for a new text field style coming soon. No functional or visual changes to the text fields.

  • MDCTextInputControllerDefault was renamed to MDCTextInputControllerLegacyDefault.
  • MDCTextInputControllerFullWidth was renamed to MDCTextInputControllerLegacyFullWidth.

Component changes

ActivityIndicator

Changes

Buttons

Changes

Collections

Changes

Dialogs

Changes

FlexibleHeader

Changes

NavigationBar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

32.0.0

API Diffs

Buttons

  • Added larger-icon version of the floating action button.

TextFields

  • Added MDCTextInputController properties activeColor, disabledColor, normalColor, and associated default colors.
  • Removed MDCTextInputController properties underlineColorActive, underlineColorNormal, and associated default colors.
  • Removed MDCTextInputUnderlineView properties disabledUnderline and underline in favor of color and disabledColor.

Component changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

FeatureHighlight

Changes

MaskedTransition

Changes

NavigationBar

Changes

OverlayWindow

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

31.0.2

Hotfix release: fixes autolayout bug involving TextFields height.

Component changes

TextFields

Changes

31.0.1

No changes to code or docs, only updating metadata for generating https://material.io/components/ios/.

31.0.0

API Diffs

TextFields

  • Added MDCMultilineTextField, a Material Design-themed mutiline text field (multiline text input).
  • [MDCTextFieldPositioningDelegate sizeThatFits:defaultSize:] has been removed, see [MDCTextFieldPositioningDelegate textInsets:] instead.
  • Added MDCMultilineTextInput.minimumLines and .expandsOnOverflow properties.

Component changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

FeatureHighlight

Changes

NavigationBar

Changes

Slider

Changes

TextFields

Changes

30.0.0

API Diffs

Collections

  • Added ‘shouldHideSeparatorForCellLayoutAttributes’ to MDCCollectionViewStyling protocol.
  • Added three methods to MDCCollectionViewStylingDelegate for optionally hiding cell separators.

MaskedTransitioning

  • New component that makes it easy to animate between two view controllers using an expanding mask effect.

TextFields

  • Added ‘leadingView’ and ‘leadingViewMode’ properties to MDCTextField.
  • Renamed MDCTextFieldPositioningDelegate method ‘textContainerInset:’ to ‘textInsets:’
  • Added ‘enabled’, ‘textInsets’, ‘trailingView’ and ‘trailingViewMode’ properties to MDCTextInput.

Typography

  • Changed nullability of ‘lightFontOfSize’, ‘mediumFontOfSize’ and ‘boldItalicFontOfSize’ methods from nonnull to nullable.

Component changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

Ink

Changes

MaskedTransition

Changes

Snackbar

Changes

TextFields

Changes

Themes

Changes

Typography

Changes

29.0.0

  • Reverts changes to the title color of MDCFlatButton and MDCRaisedButton.

28.0.0

API Diffs

AppBar

  • Added MDCAppBarTextColorAccessibilityMutator

Button

  • Marked ‘customTitleColor’ as deprecated.
  • Changed behavior of ‘setTitleColor:forState:’ so that it no longer changes the titleColor if the color was deemed to be of insufficient contrast with the background color.

Icons

  • For each icon in MDCIcons we now have a method that returns a UIImage.

TextFields

  • Removed UI_APPEARANCE_SELECTOR from all controller style properties.
  • Changed all controller style properties from instance to class properties.

Component changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

TextFields

Changes

27.0.0

API Diffs

Button

  • Removed ‘resetElevationForState’.
  • Removed NS_UNAVAILABLE from ‘setBackgroundColor’.

Component changes

ActivityIndicator

Changes

AppBar

Changes

BottomSheet

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

ProgressView

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Typography

Changes

26.0.0

API diffs

ActivityIndicator

  • Setting ‘cycleColors’ to an empty array now sets ‘cycleColors’ to the default cycle colors.

BottomSheet

  • New component for presenting a view controller as a bottom sheet.

Buttons

  • New subcomponent MDCButtonTitleColorAccessibilityMutator for enforcing title/background color contrast.

Dialogs

  • ‘UIViewController+MaterialDialogs’ property ‘mdc_dialogPresentationController’ now has the nullability annotation of nullable.

TextFields

  • ‘MDCTextInputController’ renamed to ‘MDCTextInputControllerDefault’
  • Added ‘MDCTextInputController’ protocol
  • Removed ‘presentationStyle’ property from MDCTextInputController
  • Added ‘MDCTextInputControllerFullWidth’

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

BottomSheet

Changes

ButtonBar

Changes

Buttons

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

NavigationBar

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

25.1.1

Hotfix: Cherry picked: [Buttons] Call designated initializer in init methods

Component changes

Buttons

Changes

25.1.0

Changes

API diffs

Buttons

  • Added ‘init’ method in MDCFloatingButton

TextFields

  • Added properties ‘underlineColorNormal’, ‘underlineColorActive’,‘errorText’ properties in MDCTextInputController
  • Changed nullabilitity attributes on ‘floatingPlaceholdColor’ & ‘inlinePlaceholderColor’ from nullable to null_resettable
  • Added class ‘MDCTextInputUnderlineView’
  • Added properties ‘disabledUnderline’, ‘underline’, ‘color’, ‘lineHeight’, ‘enabled’ in MDCTextInputUnderlineView
  • Added ‘sizeThatFIts:defaultSize:’ method to MDCTextFieldPositioningDelegate

Component changes

ActivityIndicator

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

ProgressView

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Typography

Changes

25.0.1

Hotfix: Added implementation for accessibilityElementForItem: for MDCTabBar

25.0.0

API diffs

FeatureHighlight

  • Added properties ‘bodyColor’ and ‘titleColor’ in MDCFeatureHighlightView
  • Added ‘nullable’ nullability specifiers to ‘innerHighlightColor’, ‘outerHighlightColor’
  • Added properties ‘bodyCOlor’ and ‘titleColor’ in MDCFeatureHighlightViewController

Palettes

  • Remove ‘redPalette’,‘pinkPalette’,‘purplePalette’,‘deepPurplePalette’,‘indigoPalette’,‘bluePalette’, ‘lightBluePalette’,‘cyanPalette’,‘tealPalette’,‘greenPalette’,‘lightGreenPalette’,‘limePalette’, ‘yellowPalette’,‘amberPalette’,‘orangePalette’,‘deepOrangePalette’,‘brownPalette’,‘greyPalette’, ‘blueGreyPalette’ class methods from MDCPalette in favor of class properties

Component changes

FeatureHighlight

Changes

Palettes

Changes

24.0.2

Hotfix: Fixed missing bump of version numbers.

24.0.1

Hotfix: Added missing dependencies in our podspec from ColorThemer subspecs to Component subspecs.

24.0.0

API diffs

Palettes

  • Added typedef for NSString so we can differentiate tints from accents
  • Added more palettes: Red, Pink, Purple etc.

Tabs

  • MDCTabBarDelegate conforms to UIBarPositioningDelegate protocol.
  • Added MDCTabBarViewController.

TextFields

  • New Component: Single line text input.

Themes

  • ColorScheme colors are now nonnull, readonly
  • New classes: TonalColorScheme, TonalPalette

Component changes

ActivityIndicator

Changes

ButtonBar

Changes

Buttons

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

TextFields

Changes

Themes

Changes

Typography

Changes

23.4.1

Fixed podspec

Component changes

Buttons

Changes

Typography

Changes

23.4.0

API diffs

FeatureHighlight

Made MDCFeatureHighlightView public with two properties: innerHighlightColor and outerHighlightColor.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

Themes

Changes

Typography

Changes

23.3.0

API diffs

  • No API changes.

Component changes

FlexibleHeader

Changes

23.2.0

API diffs

  • No API changes.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

Typography

Changes

23.1.0

API diffs

Collections

Changes

Make [MDCCollectionViewController cellWidthAtSectionIndex:] public.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

Typography

Changes

23.0.2

API diffs

No change in public APIs.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

Typography

Changes

23.0.1

API diffs

No change in public APIs.

Component changes

Component changes

AppBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

Ink

Changes

NavigationBar

Changes

Snackbar

Changes

Tabs

Changes

Typography

Changes

23.0.0

API diffs

CollectionCell

Changes

  • Add kSelectedCellAccessibilityHintKey

  • Add kDeselectedCellAccessibilityHintKey

Collections

Changes

  • Change [MDCCollectionViewStyling backgroundImageForCellLayoutAttributes] nullability

Ink

Changes

  • Change [MDCInkTouchController inkTouchController] nullability

Typography

Changes

  • Add [MDCTypography boldItalicFontOfSize:]

  • Add [MDCTypography boldFontFromFont:]

  • Add [MDCTypography italicFontFromFont:]

  • Add [MDCTypography isLargeForContrastRatios]

Component changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

FlexibleHeader

Changes

Ink

Changes

Snackbar

Changes

Typography

Changes

22.1.1

Component changes

Flexible Header

Changes

22.1.0

API diffs

Typography

Changes

Component changes

NavigationBar

Changes

Typography

Changes

22.0.0

API diffs

Dialogs

Changes

Typography

Changes

Component changes

AppBar

Changes

Buttons

Changes

Dialogs

Changes

Snackbar

Changes

Typography

Changes

21.3.0

API diffs

Buttons

Component changes

AppBar

Changes

Buttons

Changes

Collections

Changes

NavigationBar

Changes

Snackbar

Changes

Tabs

Changes

Typography

Changes

21.2.0

API diffs

NavigationBar

Component changes

CollectionCells

Changes

Ink

Changes

NavigationBar

Changes

Typography

Changes

21.1.0

Component changes

Buttons

Changes

21.0.1

Fixed podspec so it passes lint.

21.0.0

API diffs

Minimum iOS version is now 8.0

Given the usage of clients on versions of iOS below 8.0 and the increased power of the APIs available to us on iOS 8, our minimum iOS version is bumped from iOS 7 to 8.

New component: Tabs

Tab component with MDCTabBar (#1164) is an implementation of the Material tabs used to explore and switch between different views. Try tabs out! (Brian Moore with Will Larche)

Typography

Component changes

ButtonBar

Changes

Buttons

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

NavigationBar

Changes

Slider

Changes

Snackbar

Changes

Tabs

Changes

Typography

Changes

20.1.1

Component changes

Snackbar

Changes

20.1.0

API diffs

Snackbar

  • Message View Styling

Component changes

AppBar

Changes

Buttons

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

PageControl

Changes

Palettes

Changes

ShadowLayer

Changes

Snackbar

Changes

20.0.0

API changes

Ink

  • Return value of -[MDCInkTouchController initWithView:] changed from nullable instancetype to nonnull instancetype.

ProgressView

  • Added MDCProgressViewBackwardAnimationMode enumeration and -[MDCProgressView backwardProgressAnimationMode] to control how the progress view acts when its progress value is set to a smaller value than the current value.

Component changes

ActivityIndicator

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Typography

Changes

19.0.4

This point release changes certain podfiles and instructions to refer to the published pod up at CocoaPods.

19.0.3

This point release removes the examples from private/ThumbTrack; they didn't follow our normal conventions and was confusing pod try.

API changes

  • No API changes in this release.

Component changes

  • No component changes in this release.

19.0.2

API changes

  • No API changes in this release.

Component changes

ActivityIndicator

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Typography

Changes

19.0.1

This point release fixes stale references to MDFFontDiskLoader, MDFSpritedAnimationView, and MDFRobotoFontLoader in our CocoaPods podspec.

API diffs

None.

Component changes

Typography

Changes

19.0.0

API diffs

The following components have been refactored out of MDC into their own repos:

Please note that while MDC's repo is private, there is no way for MDFRobotoFontLoader to formally depend on MDCTypographyFontLoading, even though it informally implements the protocol. This means that MDFRobotoFontLoader can't be used out of the box to configure Typography with Roboto. Once we go public, a pull request to MDFFontDiskLoader will be created to add this convenience. Until that time, you can manually extend your local copy of MDFRobotoFontLoader to declare that it implements MDCTypographyFontLoading.

ShadowLayer

MDCShadowLayer

modified property: shadowMaskEnabled in MDCShadowLayer

Type of change:declaration
From:@property (assign, readwrite, nonatomic) BOOL shadowMaskEnabled;
To:@property (getter=isShadowMaskEnabled, assign, readwrite, nonatomic) BOOL shadowMaskEnabled;

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Typography

Changes

18.0.0

API diffs

ButtonBar

  • MDCButtonBar is now IB_DESIGNABLE.

MDCButtonBarDelegate

modified method: -buttonBar:viewForItem:layoutHints: in MDCButtonBarDelegate

Type of change:swift declaration
From:func buttonBar(_ buttonBar: MDCButtonBar!, viewForItem barButtonItem: Any!, layoutHints: Any!) -> Any!
To:func buttonBar(_ buttonBar: MDCButtonBar, viewForItem barButtonItem: Any!, layoutHints: Any!) -> Any!

modified method: -buttonBar:viewForItem:layoutHints: in MDCButtonBarDelegate

Type of change:declaration
From:- (UIView *)buttonBar:(MDCButtonBar *)buttonBar viewForItem:(UIBarButtonItem *)barButtonItem layoutHints:(MDCBarButtonItemLayoutHints)layoutHints;
To:- (nonnull UIView *)buttonBar:(nonnull MDCButtonBar *)buttonBar viewForItem:(nonnull UIBarButtonItem *)barButtonItem layoutHints:(MDCBarButtonItemLayoutHints)layoutHints;

MDCButtonBar

modified property: items in MDCButtonBar

Type of change:declaration
From:@property (readwrite, copy, nonatomic) NSArray<UIBarButtonItem *> *items;
To:@property (readwrite, copy, nonatomic, nullable) NSArray<UIBarButtonItem *> *items;

FlexibleHeader

MDCFlexibleHeaderViewController

new method: -updateTopLayoutGuide in MDCFlexibleHeaderViewController

FontDiskLoader

MDCFontDiskLoader

modified class: MDCFontDiskLoader

Type of change:key.deprecation_message
From:``
To:Use https://github.com/material-foundation/material-font-disk-loader-ios instead.

modified class: MDCFontDiskLoader

Type of change:key.always_deprecated
From:0
To:1

HeaderStackView

  • MDCHeaderStackView is now IB_DESIGNABLE.

RobotoFontLoader

MDCRobotoFontLoader

modified class: MDCRobotoFontLoader

Type of change:key.deprecation_message
From:``
To:Use https://github.com/material-foundation/material-roboto-font-loader-ios instead.

modified class: MDCRobotoFontLoader

Type of change:key.always_deprecated
From:0
To:1

SpritedAnimationView

MDCSpritedAnimationView

modified class: MDCSpritedAnimationView

Type of change:key.deprecation_message
From:``
To:Use https://github.com/material-foundation/material-sprited-animation-view-ios instead.

modified class: MDCSpritedAnimationView

Type of change:key.always_deprecated
From:0
To:1

Switch

  • MDCSwitch has been removed, please use UISwitch instead.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

FontDiskLoader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

RobotoFontLoader

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

SpritedAnimationView

Changes

Typography

Changes

17.2.0

API Changes

FlexibleHeader

  • MDCFlexibleHeaderView is now marked IB_DESIGNABLE.

Switch

  • MDCSwitch is completely deprecated and will be removed in the next release. We recommend apps use UISwitch instead.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

FontDiskLoader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

RobotoFontLoader

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

SpritedAnimationView

Changes

Switch

Changes

Typography

Changes

17.1.1

No public API or component changes.

Added missing components/private/Application/src/MaterialApplication.h umbrella header.

17.1.0

API diffs

No public API changes in this release. Note that the 17.0.0 release was not published to CocoaPods, so if you are updating from 16.3.0 you will see the breaking change from 17.0.0.

Behavior changes in MDCSnackbar

The behavior of MDCSnackbar has been changed to better match the spec:

  • Animation duration increased from 0.15s to 0.5s.
  • The snackbar no longer fades out, but translates down off screen.
  • The snackbar's text and button (but not the background) fade out during the animation.

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FeatureHighlight

Changes

FlexibleHeader

Changes

FontDiskLoader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

RobotoFontLoader

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

SpritedAnimationView

Changes

Switch

Changes

Typography

Changes

17.0.0

API Diffs

Buttons

MDCButton

modified method: -setBackgroundColor: in MDCButton

Type of change:key.deprecation_message
From:Use setBackgroundColor:forState: instead.
To:

modified method: -setBackgroundColor: in MDCButton

Type of change:key.always_unavailable
From:0
To:1

modified method: -setBackgroundColor: in MDCButton

Type of change:key.always_deprecated
From:1
To:0

modified method: -setBackgroundColor: in MDCButton

Type of change:declaration
From:- (void)setBackgroundColor:(nullable UIColor *)backgroundColor __deprecated_msg("Use setBackgroundColor:forState: instead.");
To:- (void)setBackgroundColor:(nullable UIColor *)backgroundColor;

CollectionCells

MDCCollectionViewCell

new property: editingSelectorColor in MDCCollectionViewCell

Component changes

Buttons

Changes

CollectionCells

Changes

16.3.0

API diffs

Snackbar

Component changes

CollectionCells

Changes

Collections

Changes

FeatureHighlight

Changes

Snackbar

Changes

16.2.0

API diffs

FeatureHighlight

  • FeatureHighlight is a new component that lets you highlight a particular feature of your interface to the user.

Component changes

AppBar

Changes

CollectionCells

Changes

Collections

Changes

FeatureHighlight

Changes

NavigationBar

Changes

Switch

Changes

16.1.0

Component changes

ActivityIndicator

Changes

Buttons

Changes

Dialogs

Changes

Ink

Changes

ProgressView

Changes

Snackbar

Changes

16.0.0

API diffs

InkTouchController

Component changes

AppBar

Changes

Dialogs

Changes

Ink

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Switch

Changes

15.2.0

API diffs

Palettes

Component changes

FlexibleHeader

Changes

Ink

Changes

NavigationBar

Changes

Palettes

Changes

15.1.0

API diffs

Auto-generated by running:

scripts/api_diff -o 203562553800ed3d3b5eebfd1dd76cda875d833c -n f8e2c8b5e87d0414f6b08f691949ecebfaca41b8

Ink

NavigationBar

Component changes

ButtonBar

Changes

CollectionCells

Changes

Collections

Changes

Ink

Changes

NavigationBar

Breaking changes

15.0.0

API diffs

Auto-generated by running:

scripts/api_diff -o 1926458f491c928adfb573a6eda38b6d5b5bc55e -n c39811a2344114302327b6fa64d86346bacbea9a

Dialogs

Ink

NavigationBar

Switch

  • [protocols changed] MDCSwitch. Removed NSCoding. Added NSSecureCoding.

Component changes

Collections

Changes

Dialogs

Changes

Ink

Changes

NavigationBar

Changes

Slider

Changes

Snackbar

Changes

Switch

Changes

14.0.0

API diffs

Auto-generated by running:

scripts/api_diff -o 52692216832dc446ae2471bd2f42a40cd8746bbe -n 9ecf191c8d5fa6d8afc7ba119f4cb0ebe926483c

FontDiskLoader

Component changes

Buttons

Changes

Collections

Changes

FlexibleHeader

Changes

FontDiskLoader

Breaking changes

Ink

Changes

Palettes

Changes

ProgressView

Changes

RobotoFontLoader

Changes

ShadowLayer

Changes

Switch

Changes

13.4.0

API diffs

Auto-generated by running:

scripts/api_diff -o fb77a9716a80ba4ee2a9f92a81a89335570366e3 -n 8fa99ffb150b99597f19783d54203ff77a4219d2

FontDiskLoader

Component changes

AppBar

Changes

Dialogs

Changes

FontDiskLoader

Changes

Ink

Changes

Slider

Changes

Switch

Changes

13.3.0

API diffs

Auto-generated by running:

scripts/api_diff -o 51fbbacdf98a1f086cdbf6210f849c8133e91183 -n dd3d2622f6935e70854d3ccb72677b09e19e045a

FontDiskLoader

@property (nonatomic, strong, nonnull) NSString *fontName
- (void)setFontName:(nonnull NSString *)fontName

RobotoFontLoader

+ (nonnull instancetype)sharedInstance
+ (nonnull MDCRobotoFontLoader *)sharedInstance

Component changes

ActivityIndicator

Changes

Buttons

Changes

CollectionLayoutAttributes

Changes

Dialogs

Changes

FlexibleHeader

Changes

FontDiskLoader

Changes

RobotoFontLoader

Changes

Slider

Changes

Typography

Changes

13.2.1

API diffs

Icons

Component changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FlexibleHeader

Changes

FontDiskLoader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

RobotoFontLoader

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Switch

Changes

Typography

Changes

13.2.0

API diffs

Auto-generated by running:

scripts/api_diff -o 6b00b97156fcd8ed5a661c736df6b363cf4c8457 -n 9ef47c149996f078e5f6a4ed3474688e187ab573

Slider

SpritedAnimationView

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FlexibleHeader

Changes

FontDiskLoader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

RobotoFontLoader

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

SpritedAnimationView

Changes

Switch

Changes

Typography

Changes

13.1.1

Component changes

Snackbar

Changes

13.1.0

API diffs

Auto-generated by running:

scripts/api_diff -o 5d7ad466b9e1429ad6242272958b149ded34da63 -n 205b1b49fd311af9246133e1499007dec0957e4b

AnimationTiming

New component.

Switch

Component changes

ActivityIndicator

Changes

AnimationTiming

Changes

AppBar

Changes

Buttons

Changes

CollectionCells

Changes

Dialogs

Changes

FlexibleHeader

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

Switch

Changes

13.0.2

API diffs

Auto-generated by running:

scripts/api_diff -o 313365e03bc6f74f43910264ee31d1e2721db36b -n e66a70dc0cd3bb40eb0f4ff3d5867bafba20db3a

No public API changes detected.

Component changes

ActivityIndicator

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FlexibleHeader

Changes

FontDiskLoader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ProgressView

Changes

RobotoFontLoader

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

SpritedAnimationView

Changes

Switch

Changes

Typography

Changes

13.0.1

Hotfix for Xcode 8.0 beta 3 (8S174q) compilation.

API diffs

Auto-generated by running:

scripts/api_diff -o 50ed805a58529c8cd3a0bfe56a9b99937134ad2c -n e8dbfebbb20f3d1314b5396e6cc1f76f9d23beb2

No public API changes detected.

Component changes

Collections

Changes

ProgressView

Changes

Snackbar

Changes

SpritedAnimationView

Changes

13.0.0

API diffs

Auto-generated by running:

scripts/api_diff -o 0c7bda2e69db44668360b89e3403a7ad9e16c3aa -n 10e4a258fa529178d1aa6ae8962193eb18b43d20

Dialogs

SpritedAnimationView

- (void)startAnimatingWithCompletion:(nullable void (^)())completion
- (void)startAnimatingWithCompletion:(nullable void (^)(BOOL))completion

Component changes

ActivityIndicator

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

Dialogs

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

ProgressView

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

SpritedAnimationView

Breaking changes

Changes

Switch

Changes

Typography

Changes

12.2.0

API diffs

Auto-generated by running:

scripts/api_diff -o c6523eae8e811b1c89d94073b9153a03390b1950 -n edab0db4908985cd0b56003b4341d5f064f98d6a

Dialogs

New component.

Component changes

Dialogs

Changes

Ink

Changes

ProgressView

Changes

Slider

Changes

Snackbar

Changes

12.1.1

API diffs

Auto-generated by running:

scripts/api_diff -o ec923edf948c5c0ef8cef52f3a3b26a21cbf29d9 -n 34f12cf42f45e30bada83ff6c4c67d5104201a00

No public API changes detected.

Component changes

SpritedAnimationView

Changes

12.1.0

API diffs

NavigationBar

ProgressView

New component.

Component changes

ActivityIndicator

Changes

Collections

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

Palettes

Changes

ProgressView

Changes

Snackbar

Changes

12.0.1

API diffs

Auto-generated by running:

scripts/api_diff -o bdc034da8700a9cbd6064823dc045b511d622f8c -n f9f6d8e87d6cdaf884ac2d3ad462403bdb2fd008

No public API changes detected.

Component changes

CollectionCells

Changes

Slider

Changes

Snackbar

Changes

12.0.0

API diffs

Auto-generated by running:

scripts/api_diff -o e4b240934cbf7211790e0929c73652dbd7c2f46f -n 55a289f0cfeebdc10931243d613d4cf5bcef3986

ActivityIndicator

FromToKind
RequiredOptionaloptional

ButtonBar

FromToKind
@property (nonatomic, copy) NSArray *items@property (nonatomic, copy) NSArray<UIBarButtonItem *> *itemsdeclaration

Collections

- (nullable NSArray *)indexPathsForInlaidItems
- (nullable NSArray<NSIndexPath *> *)indexPathsForInlaidItems

NavigationBar

FromToKind
@property (nonatomic, copy, nullable) NSArray *leadingBarButtonItems@property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *leadingBarButtonItemsdeclaration
FromToKind
@property (nonatomic, copy, nullable) NSArray *leftBarButtonItems@property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *leftBarButtonItemsdeclaration
FromToKind
@property (nonatomic, copy, nullable) NSArray *rightBarButtonItems@property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *rightBarButtonItemsdeclaration
FromToKind
@property (nonatomic, copy, nullable) NSArray *trailingBarButtonItems@property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *trailingBarButtonItemsdeclaration
FromToKind
@property (nonatomic, copy, nullable) NSArray *leftBarButtonItems@property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *leftBarButtonItemsdeclaration
FromToKind
@property (nonatomic, copy, nullable) NSArray *rightBarButtonItems@property (nonatomic, copy, nullable) NSArray<UIBarButtonItem *> *rightBarButtonItemsdeclaration

OverlayWindow

New component.

Snackbar

New component.

Component changes

ActivityIndicator

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Changes

FlexibleHeader

Changes

Ink

Changes

NavigationBar

Changes

OverlayWindow

Changes

PageControl

Changes

Palettes

Changes

ShadowLayer

Changes

Slider

Changes

Snackbar

Changes

SpritedAnimationView

Changes

11.0.1

API diffs

Auto-generated by running:

scripts/api_diff -o 5cea05817470a3fd906dc3663aff5628491e3224 -n 914490127624d9526f24a497021efffddcf3d567

No public API changes detected.

Component changes

ButtonBar

Changes

FontDiskLoader

Changes

Slider

Changes

Switch

Changes

11.0.0

API diffs

Auto-generated by running:

scripts/api_diff -o a33f87199b2f4e29e35f0b93c75d60520742d5aa -n 0b277c9ff00628400b291d2e6900ff6389b27ecf

FontDiskLoader

Palettes

Component changes

ActivityIndicator

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

FlexibleHeader

Changes

FontDiskLoader

Breaking changes

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

Palettes

Changes

RobotoFontLoader

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

SpritedAnimationView

Changes

Switch

Changes

Typography

Changes

10.1.2

Changes

10.1.1

FontDiskLoader

Changes

10.1.0

API diffs

Auto-generated by running:

scripts/api_diff -o dc74cd290f327e950eab32b48f3105c55972fad9 -n d4a3ac376f5c8498cfb52401f4fbb69d2e318897

ActivityIndicator

New component.

FontDiskLoader

Added NSCopying.

Component changes

ActivityIndicator

Changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

Collections

Changes

FontDiskLoader

Changes

PageControl

Changes

RobotoFontLoader

Changes

ShadowLayer

Changes

Switch

Changes

10.0.0

Infrastructure

Material Components for iOS now requires Cocoapods 1.0.0.

API diffs

Auto-generated by running:

scripts/api_diff -o 0c97c7e25888d9da312c8610e21aa635cf9fb395 -n 1fc92b09a8539cf235667c4b2fb83c0f52578d65

RobotoFontLoader

9.0.0

API diffs

Auto-generated by running:

scripts/api_diff -o cdbe7e499d85c320c41f31e51cd7cf29c3afed48 -n 636df09ea57a7cdefdacad3f53277c76df968f72

ButtonBar

NavigationBar

Component changes

ButtonBar

Changes

CollectionCells

Changes

Collections

Changes

FlexibleHeader

Changes

FontDiskLoader

Changes

HeaderStackView

Changes

NavigationBar

Changes

8.0.0

API diffs

Auto-generated by running the following while checked out at 4bc99e8ad0fe0ac7e9acc044591a8581165fb5c2:

scripts/api_diff -o 2153f8fa453ecec4dfe48a328e331846d5d37aac -n bbabb375953fbd01c3f818ac9092b55fe56dd9b9

AppBar

ButtonBar

NavigationBar

Component changes

AppBar

Breaking changes

ButtonBar

Breaking changes

Changes

CollectionCells

Changes

Collections

Changes

NavigationBar

Breaking changes

7.0.0

API diffs

Auto-generated by running:

scripts/api_diff -o d2f436fdcfa711da5a8a077b42feb052c1abdf9e -n 6c8ca274056aed6850920f6010b47655c67730c9

AppBar

ButtonBar

Collections

FromToKind
- (void)collectionView:(nonnull UICollectionView *)collectionView didDeleteItemsAtIndexPaths:(nonnull NSArray *)indexPaths- (void)collectionView:(nonnull UICollectionView *)collectionView didDeleteItemsAtIndexPaths:(nonnull NSArray<NSIndexPath *> *)indexPathsdeclaration
FromToKind
- (void)collectionView:(nonnull UICollectionView *)collectionView willDeleteItemsAtIndexPaths:(nonnull NSArray *)indexPaths- (void)collectionView:(nonnull UICollectionView *)collectionView willDeleteItemsAtIndexPaths:(nonnull NSArray<NSIndexPath *> *)indexPathsdeclaration
FromToKind
- (void)collectionView:(nonnull UICollectionView *)collectionView didApplyInlayToItemAtIndexPaths:(nonnull NSArray *)indexPaths- (void)collectionView:(nonnull UICollectionView *)collectionView didApplyInlayToItemAtIndexPaths:(nonnull NSArray<NSIndexPath *> *)indexPathsdeclaration
FromToKind
- (void)collectionView:(nonnull UICollectionView *)collectionView didRemoveInlayFromItemAtIndexPaths:(nonnull NSArray *)indexPaths- (void)collectionView:(nonnull UICollectionView *)collectionView didRemoveInlayFromItemAtIndexPaths:(nonnull NSArray<NSIndexPath *> *)indexPathsdeclaration

Palettes

New component.

Component changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

Collections

Breaking changes

Changes

FlexibleHeader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Breaking changes

Changes

PageControl

Changes

Palettes

Changes

RobotoFontLoader

Changes

ShadowLayer

Changes

Slider

Changes

Switch

Changes

Typography

Changes

6.0.0

API diffs

Auto-generated by running:

scripts/api_diff -o da19cc89a5bb91c94480aee818d2f0ac52410e1c -n bac6ea73c709e95ac88f202ca6c02e1ab88e91f5

CollectionLayoutAttributes

Switch

Typography

Component changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

FlexibleHeader

Changes

FontDiskLoader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

RobotoFontLoader

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

Switch

Changes

Typography

Breaking changes

Changes

5.1.0

API diffs

Auto-generated by running:

scripts/api_diff -o 037551fa3b17c25f6546d290e41f747e3713bc4f -n 4b6b0a414e599af1fe3a29bba66af8e04ba67b4d

No public API changes.

Component changes

AppBar

Changes

ButtonBar

Changes

Buttons

Changes

CollectionCells

Changes

CollectionLayoutAttributes

Changes

Collections

Changes

FlexibleHeader

Changes

FontDiskLoader

Changes

HeaderStackView

Changes

Ink

Changes

NavigationBar

Changes

PageControl

Changes

RobotoFontLoader

Changes

ShadowElevations

Changes

ShadowLayer

Changes

Slider

Changes

SpritedAnimationView

Changes

Switch

Changes

Typography

Changes

5.0.0

API diffs

Auto-generated by running:

scripts/api_diff -o 55afa3aaef67799bdb8a94881f31c5c3b242e9a6 -n fe1ac2f14b7ad4179c84b01590df9c93289f2e36

CollectionCells

New component.

CollectionLayoutAttributes

New component.

Collections

New component.

FlexibleHeader

PageControl

Component changes

AppBar

ButtonBar

Buttons

CollectionCells

CollectionLayoutAttributes

Collections

FlexibleHeader

FontDiskLoader

HeaderStackView

Ink

NavigationBar

PageControl

RobotoFontLoader

ShadowElevations

ShadowLayer

Slider

SpritedAnimationView

Switch

Typography

4.0.1

API diffs

Auto-generated by running:

scripts/api_diff -o 1542251633905c3c2089b38f1c01a5010a8894f1 -n 789beeb556aab8b4aeddb71fa837d7db8c4660d7

Typography

Component changes

Typography

4.0.0

API diffs

Auto-generated by running:

scripts/api_diff -o 11959487eb429c37b382c521a1c469eac96ed0da -n 7cc87bd6d90ed2c641212339f00f67b08fb76314

Buttons

FlexibleHeader

Ink

RobotoFontLoader

ScrollViewDelegateMultiplexer

Component changes

AppBar

ButtonBar

Buttons

FlexibleHeader

FontDiskLoader

HeaderStackView

Ink

NavigationBar

PageControl

RobotoFontLoader

ScrollViewDelegateMultiplexer

ShadowElevations

ShadowLayer

Slider

SpritedAnimationView

Switch

Typography

3.1.0

API diffs

Auto-generated by running:

scripts/api_diff -o ddb35150fe10c2974b63d1e29c4ecce4ccaa51fb -n ad904b8748ce469af886b2f27172d8e3c44928e8

AppBar

ButtonBar

Buttons

FlexibleHeader

RobotoFontLoader

Typography

Component changes

AppBar

ButtonBar

Buttons

FlexibleHeader

HeaderStackView

Ink

NavigationBar

PageControl

RobotoFontLoader

ScrollViewDelegateMultiplexer

ShadowElevations

ShadowLayer

Slider

SpritedAnimationView

Switch

Typography

3.0.0

Breaking
  • [FlexibleHeader] contentView is now nonnull and readonly. (Jeff Verkoeyen)
    • Swift code will need to change contentView! to contentView. This will be made apparent at build time.
Enhancements
  • [ButtonBar] Rename buttonItems API to items. (Jeff Verkoeyen)
  • [ButtonBar] Add Buttons dependency and remove Buttons dependency from AppBar. (Jeff Verkoeyen)
  • [Site] Adding excerpts to component docs metadata. (Jason Striegel)
  • [RobotoFontLoader] Removed #define that should not have made it public. (randallli)
  • [Demos] Fix compilation errors for Xcode 7.2 (Junius Gunaratne)
  • [Cleanup] Replaced [Foo new] with [[Foo alloc] init], per the style guide. (Adrian Secord)
  • [checks] Add missing_readme check and check_all runner. (Jeff Verkoeyen)
  • [ButtonBar] Deprecating all ButtonBar delegate-related APIs. (Jeff Verkoeyen)
  • [AppBar] Don‘t set the bar buttons’ title color. (Jeff Verkoeyen)
  • [Ink] Update demo so ink is not obstructed by adjacent views (Junius Gunaratne)
  • [Switch] Rename commonInit to avoid name collisions (Ian Gordon)
  • [Slider] Rename commonInit to avoid name collisions (Ian Gordon)
  • [Site] Including component README screenshots. (Jason Striegel)
  • [Ink] Use custom ink center property in ink implementation (Junius Gunaratne)
  • [AppBar] Implement the App Bar container's header view setter. (Jeff Verkoeyen)
  • [Shrine] Add launch screen (Junius Gunaratne)
  • [Catalog] Fix build breakage. (Jeff Verkoeyen)
  • [Documentation] Initial draft of the Material Components Getting Started guide (Alastair Tse)
  • [Documentation] Adding component screenshots from catalog for website (Junius Gunaratne)
  • [Site] Created ROADMAP.md (Katy Kasmai)
  • [AppBar] Add README section on interacting with background views. (Jeff Verkoeyen)
  • [Catalog] Add exit bar for demos (Junius Gunaratne)
  • [Shrine] Fix compiler errors (Junius Gunaratne)
  • [AppBar|FlexibleHeader] Add section on touch forwarding. (Jeff Verkoeyen)
  • [FlexibleHeader] Clarify that touch forwarding does not apply to subviews. (Jeff Verkoeyen)
  • [AppBar] Call out the content view in the view hierarchy. (Jeff Verkoeyen)
  • [NavigationBar] Add nullability annotations. (Jeff Verkoeyen)
  • [Documentation] Fixed pod install instructions for Buttons/README.md. (Adrian Secord)
  • [AppBar] Remove excess horizontal rules. (Jeff Verkoeyen)
  • [AppBar|FlexibleHeader] Move UINav section from App Bar to Flexible Header. (Jeff Verkoeyen)
  • [AppBar|FlexibleHeader] Move section on status bar style from App Bar to Flexible Header. (Jeff Verkoeyen)
  • [NavigationBar] Document that the navigationBar's state syncs with navigationItem on observation. (Jeff Verkoeyen)
  • [NavigationBar] Rename MDCUINavigationItemKVO to MDCUINavigationItemObservables. (Jeff Verkoeyen)
  • [AppBar|NavigationBar] Minor typos in navigation item section title. (Jeff Verkoeyen)
  • [CONTRIBUTING] Fix typo. (Jeff Verkoeyen)
  • [CONTRIBUTING] Cleaning up the checklist. (Jeff Verkoeyen)
  • [AppBar] No longer need to unwrap contentView in the imagery example. (Jeff Verkoeyen)
  • [Animated Menu Button] Double/float correction. (Will Larche)
  • [Demos] Pesto detail presentation and dismissal. (Will Larche)
  • [AppBar|NavigationBar] Added section on observing UINavigationItem. (Jeff Verkoeyen)
  • [AppBar] Minor grammatical rearrangements in README. (Jeff Verkoeyen)
  • [FlexibleHeader] Explain what the imagery usage example section is. (Jeff Verkoeyen)
  • [NavigationBar] Adding more specific documentation. (Jeff Verkoeyen)
  • [Docs] Cleanup pass for Markdown style (100 chars). (Adrian Secord)
  • [Sample] Pesto: Marking target ‘Requires Full Screen’ (Will Larche)
  • [community] Change Stack Overflow tag to ‘material-components-ios’. (Jeff Verkoeyen)
  • [AppBar] Replace iOS 9 APIs with older APIs. (Jeff Verkoeyen)
  • [AppBar] Add imagery example. (Jeff Verkoeyen)
  • [Demos] Pesto: Adding AppBar to Settings (Will Larche)
  • [Typography] Corrections to markdown in readme.md (Will Larche)
  • [Typography ReadMe] First pass at updated content (Will Larche)
  • [Site] Add option hint to build-site.sh (Yiran Mao)
  • [Testing] Naming consistency for unit tests. (Jeff Verkoeyen)
  • [Other] Remove old @ingroup document annotations. (Adrian Secord)
  • [ThumbTrack] Add Ink as a dependency (Ian Gordon)
  • [MDCButton] Documentation updates (Ian Gordon)
  • [Site] Update code snippet markdown h3 to h4 and corresponding css styles (Yiran Mao)
  • [Testing] Unit test target must be 8.0 in order to build Swift unit tests. (Jeff Verkoeyen)
  • [Ink] Changed MDCInkView API to better reflect the modern ink behavior (breaking). (Adrian Secord)
  • [Other] Fixes block comments globally. (Adrian Secord)
  • [FlexibleHeader] Prefer CGFloat when calculating shadow intensity. (Jeff Verkoeyen)
  • [Demos] Adding Font Opacities for all labels in Pesto (Will Larche)
  • [FlexibleHeader] Always project the flexible header's frame onto the tracking scroll view. (Jeff Verkoeyen)
  • [Catalog] Temporarily bump deployment target to 9.0 (Ian Gordon)
  • [MDCButton] Remove Work In Progress annotation (Ian Gordon)
  • [FlexibleHeader] Comment the #endif statements. (Jeff Verkoeyen)
  • [Typography] Re-added deleted file for deprecated class (randallli)
  • [FlexibleHeader] Revert tracking scroll view delegate assertion. (Jeff Verkoeyen)
  • [Pesto] Add example of MDCInk in Pesto header (Junius Gunaratne)
  • [Typography] Remove /** */ internal comments. (Jeff Verkoeyen)
  • [AppBar] Templatize the back button image. (Jeff Verkoeyen)
  • [Demos] Add legal copy above source files (Junius Gunaratne)
  • [Pesto] Change small header logo to text (Junius Gunaratne)
  • [UICollectionViewLayout] Correction for arithmetic (Will Larche)
  • [Shrine] Use small text logo on scroll, add did change page event handler (Junius Gunaratne)
  • [Site] Switch markdown formatting. (Jason Striegel)
  • [Site] Slider markdown formatting. (Jason Striegel)
  • [Site] ShadowLayer editing intro and markdown formatting. (Jason Striegel)
  • [Icons] MDCIcons+BundleLoader.h must be a protected header. (Jeff Verkoeyen)
  • [Demos] Pesto: Minor issues in style and safety (Will Larche)
  • [Site] ShadowElevations markdown formatting. (Jason Striegel)
  • [Site] Bash example consistency pass. (Jason Striegel)
  • [Icons] Base source needs its own explicit target. (Jeff Verkoeyen)
  • [Site] PageControl docs formatting, images, and video. (Jason Striegel)
  • [Icons] Add missing header search paths in pod specs. (Jeff Verkoeyen)
  • [Catalog] Update colors to blue branding color (Junius Gunaratne)
  • [AppBar] Provide recommendations for status bar style. (Jeff Verkoeyen)
  • [SpritedAnimationView] Remove testAnimationPerformance. (Jeff Verkoeyen)
  • [AppBar] Minor typo. (Jeff Verkoeyen)

2.2.0

Deprecations
  • [Typography] Marked FontResource deprecated. Use the renamed component as FontDiskLoader. (randallli)
Enhancements
  • [AppBar Example] Addressing code style feedback from D326. (Jeff Verkoeyen)
  • [AppBar] Add typical Swift usage example. (Jeff Verkoeyen)
  • [AppBar] Add UINavigatonItem section. (Jeff Verkoeyen)
  • [AppBar] readme updates. (Jeff Verkoeyen)
  • [AppBar] Remove unnecessary code from the ObjC example. (Jeff Verkoeyen)
  • [AppBar] Standardize and document the examples in preparation for upcoming examples. (Jeff Verkoeyen)
  • [AppBar] Use the catalog's blue color in the examples. (Jeff Verkoeyen)
  • [Button] Change ink color on buttons to improve visibility of ink (Junius Gunaratne)
  • [Catalog] Miscellaneous cleanup and fixes to the Catalog. (Jeff Verkoeyen)
  • [Catalog] Update catalog home screen to new light themed design (Junius Gunaratne)
  • [Docs] Navigationbar initial markdown formatting. (Jason Striegel)
  • [FlexibleHeader] Assert that the tracking scroll view has a delegate. (Jeff Verkoeyen)
  • [FlexibleHeader] Only call sizeToFit on the flexible header view when it does not have a tracking scroll view. (Jeff Verkoeyen)
  • [FlexibleHeader] Poke the header into laying out its content when the view controller has been fully registered. (Jeff Verkoeyen)
  • [FontDiskLoader] Revived old class, MDCFontResource, and marked it deprecated. (randallli)
  • [Icons] Add private/ directory to Icons target. (Jeff Verkoeyen)
  • [Icons] Added component (Jeff Verkoeyen)
  • [Icons] Bundles can't have plusses in their names. (Jeff Verkoeyen)
  • [Ink] markdown formatting. (Jason Striegel)
  • [Ink] Minor tweaks to ink for more consistency with other platforms (Junius Gunaratne)
  • [Site] Remove alternate remotes from build-site remote determination. (Jeff Verkoeyen)
  • [Site] Updates to top links and markdown formatting. (Jason Striegel)
  • [Site] Using HTML markup for lists to avoid github comment issue. (Jason Striegel)
  • [Typography] Moved the FontLoader and FontResource into their own components. (randallli)

2.1.1

Enhancements
Code
  • [AppBar] Add App Bar builder API. (Jeff Verkoeyen)
  • [AppBar] Fix compiler warnings about formatting NSIntegers. (Adrian Secord)
  • [FlexibleHeader] MDCFlexibleHeaderViewController conforms to UITableViewDelegate. (Jeff Verkoeyen)
  • [Ink] Updated the ink example to include smaller shapes. (Adrian Secord)
  • [Ink] Visual adjustments to ink ripple (Junius Gunaratne)
  • [NavigationBar] Add back button icon. (Jeff Verkoeyen)
Examples
  • [Demos] Updates to header behavior and minor layout changes after UX review (Junius Gunaratne)
  • [Pesto] Adding ‘nonatomic’ attribute to all delegates (Will Larche)
  • [Pesto] Corrections for build warnings (Will Larche)
  • [Pesto] making string and URL propertys ‘copy’ (Will Larche)
  • [Pesto] Style update: @property ivars (larche)
  • [Pesto] Update card zoom animation to be more Material Design like (Junius Gunaratne)
Docs and site
  • [Docs] Minor touchups to FlexibleHeader readme. (Jeff Verkoeyen)
  • [Docs] Minor updates to AppBar readme. (Jeff Verkoeyen)
  • [Docs] Updated community/README.md (Katy Kasmai)
  • [FlexibleHeader] README.md formatting. (Jason Striegel)
  • [Site] AppBar jump links to open in new tab. (Jason Striegel)
  • [Site] Buttons jump link formatting. (Jason Striegel)
  • [Site] Corrected links and formatting. (Jason Striegel)
  • [Site] Formatting markdown structure for site. (Jason Striegel)
  • [Site] Jump link styling for ButtonBar README. (Jason Striegel)
  • [Site] New formatting for Buttons documentation. (Jason Striegel)
  • [Site] Removing defunct placeholder documents. (Jason Striegel)
  • [Site] Replacing lorem with description content, where possible. (Jason Striegel)
  • [Site] Update component landing page's nav list (Yiran Mao)

2.1.0

Enhancements
  • [AppBar] Introducing the App Bar component. (Jeff Verkoeyen)
  • [Arcanist] Adds scripts/install_arc.sh, which installs or updates arc and our project-specific dependencies. (Adrian Secord)
  • [Arcanist] Updated Arcanist config to use submodules. (Adrian Secord)
  • [ButtonBar] Add ButtonBar component. (Jeff Verkoeyen)
  • [ButtonBar] Add ButtonBar readme. (Jeff Verkoeyen)
  • [Buttons] Add Flatbutton commonInit (Ian Gordon)
  • [Buttons] Add storyboard sample (Ian Gordon)
  • [Buttons] Clean up API documentation style. (Jeff Verkoeyen)
  • [Catalog] Adds localizable strings to catalog. Allows changing language in scheme for debugging. Closes #166. (Chris Cox)
  • [Catalog] Moving assets into catalog by convention. (Jeff Verkoeyen)
  • [CocoaPods] Allow pod install to be run from anywhere for the catalog. (Jeff Verkoeyen)
  • [CocoaPods] Standardizing the podspec format. (Jeff Verkoeyen)
  • [CocoaPods] Variables for podspec. (Jeff Verkoeyen)
  • [Examples] Moved all example resources into a examples/resources/ directory by convention. Jeff Verkoeyen
  • [FlexibleHeader] Add headerIsTranslucent API. (Jeff Verkoeyen)
  • [FlexibleHeader] Add sizeThatFits contract tests. (Jeff Verkoeyen)
  • [FlexibleHeader] Prefer use of childViewControllerForStatusBarHidden. (Jeff Verkoeyen)
  • [FlexibleHeader] Add tests for basic tracking scroll view contract. Jeff Verkoeyen
  • [HeaderStackView] Add HeaderStackView README. (Jeff Verkoeyen)
  • [NavigationBar] Add NavigationBar component. (Jeff Verkoeyen)
  • [Pesto] Update layout after design review with UX, fix rotation issues (Junius Gunaratne)
  • [Pesto] Update network image request methods, improve collection view cell layout (Junius Gunaratne)
  • [Scripts] Add generate_jazzy_yamls script. (Jeff Verkoeyen)
  • [Scripts] Added ‘bump version’ script and updated pod_install_all. (Adrian Secord)
  • [Shrine] Layout updates after UX design review, make sure rotation works correctly (Junius Gunaratne)
  • [Shrine] Use improved network image class from Pesto (Junius Gunaratne)
  • [Testing] Add support for xcode unit tests to arc unit. (Jeff Verkoeyen)
Bug Fixes
  • [AppBar] Minor changes to MDCAppBar documentation. (Jeff Verkoeyen)
  • [Buttons] Adjust the title insets of text buttons, not the frame. (Jeff Verkoeyen)
  • [Buttons] Fix uppercasing (Ian Gordon)
  • [Buttons] Fixes a bug with contentEdgeInsets for MDCFloatingButtonShapeMini. (Matt Rubin)
  • [Catalog] Remove the root catalog workspace. (Jeff Verkoeyen)
  • [CocoaPods] Minor fixes to Podspec for ButtonBar and Switch. (Jeff Verkoeyen)
  • [CocoaPods] Ran pod install on all Podfiles (randallli)
  • [CocoaPods] Update Podfile.lock (Ian Gordon)
  • [FlexibleHeader] Cleaning up the README.md. (Jeff Verkoeyen)
  • [FlexibleHeader] Minor wording consistency in FlexibleHeader readme. (Jeff Verkoeyen)
  • [HeaderStackView] Generated missing HeaderStackView .jazzy.yaml. (Jeff Verkoeyen)
  • [Ink] Fix animation, split foreground and background ripple into independent classes (Junius Gunaratne)
  • [Ink] Set evaporate point so ink expands from correct point on gesture cancel (Junius Gunaratne)
  • [Other] Remove the project templates directory. (Jeff Verkoeyen)
  • [PageController] Fix FP conversion warning (Ian Gordon)
  • [Site] Add landing page placeholder markdown files & update build-site.sh (Yiran Mao)
  • [Site] Continued work on markdown doc formatting. (Jason Striegel)
  • [Site] Editing pass at community.md. (Jeff Verkoeyen)
  • [Site] Fixed section regarding our license. (Jeff Verkoeyen)
  • [Site] Formatting for icon list markdown. (Jason Striegel)
  • [Site] Initial import of site build structure. (Jason Striegel)
  • [Site] Preliminary additions of the components checklist. (Jeff Verkoeyen)
  • [Site] Update community.md (Katy Kasmai)
  • [Site] Updates to the community.md doc. Jeff Verkoeyen
  • [SpritedAnimationView] Replaces example checkmark icon with grid/list icon. Closes #151. (Chris Cox)
  • [SpritedAnimationView] Updates readme image assets to new URL (Chris Cox)
  • [SpritedAnimationView] Updates readme, test, and example with grid/list icon. (Chris Cox)

2.0.4

Breaking
Enhancements
  • Fixed the reference to the private folder of Typography in podspec.
Bug Fixes

2.0.3

Breaking
Enhancements
  • Renamed the privateWasCapitalPrivate folders to private.
Bug Fixes

2.0.2

Breaking
Enhancements
  • Renamed the Private folders to privateWasCapitalPrivate.
Bug Fixes

2.0.1

Breaking
Enhancements
  • Removed unused files: podfile.lock
Bug Fixes

2.0.0

Breaking
  • [FlexibleHeader] Removed -[MDCFlexibleHeaderViewController addFlexibleHeaderViewToParentViewControllerView], MDCFlexibleHeaderParentViewController, and +[MDCFlexibleHeaderViewController addToParent:]. These methods were marked deprecated in 1.0.0. Jeff Verkoeyen
Enhancements
  • Components

    • [Slider] default color updated to nicer blue.
    • [Ink] Replace rand() with arc4random() to avoid a static analyzer warning. Ian Gordon
    • [FlexibleHeader] Removed redundant APIs from MDCFlexibleHeaderContainerViewController. Jeff Verkoeyen
    • Rename Private directories to private. (Jeff Verkoeyen)
  • Documentation

    • [Button] Readme copy edits
  • [Conventions] Moved all docs assets into a docs/assets directory per component by convention. Issue #130 filed by peterfriese. Closed by Jeff Verkoeyen

  • [CONTRIBUTING] Document our file system conventions in CONTRIBUTING.md. Jeff Verkoeyen

  • [CONTRIBUTING] Document our pull request expectations in CONTRIBUTING.md. Jeff Verkoeyen

  • [Switch] Removed internal docs that were pretending to be public docs. Jeff Verkoeyen

  • Catalog

    • Use single asset for component icons. Junius Gunaratne
    • Style catalog component screen and change to collection view. Junius Gunaratne
    • Sorts titles alphabetically. Also fixes title typo in sliders. Chris Cox
    • Catalog by convention grabs storyboard resources. Randall Li
    • Increasing our warnings coverage. Jeff Verkoeyen
    • Support duplicate hierarchy entries. Randall Li
    • Add support for Swift examples and unit tests Jeff Verkoeyen
    • Added Swift sample for buttons. Peter Friese
    • Refactored Button example to be compatibile with catalog by convention Randall Li
    • Refactored Slider example to be compatibile with catalog by convention Randall Li
    • Refactored ShadowLayer example to be compatible with catalog by convention Randall Li
    • Refactored Switch example to be compatible with catalog by convention Randall Li
    • Added Swift example for Typography. Peter Friese
  • Demos

    • Shrine
  • Misc

    • [Jazzy] scripts/gendocs.sh now infers Jazzy arguments by convention. Jeff Verkoeyen
    • [gh-pages] Minor tiding of the preview script for gh-pages. Jeff Verkoeyen Enforced lint with arc lint --everything.
  • Enable line length warnings in arc lint. Jeff Verkoeyen

  • Added script to run pod install on all pods. Randall Li

  • Fix build breakage in MDCCatalog.

  • [FlexibleHeader] Removed redundant APIs from MDCFlexibleHeaderContainerViewController. Jeff Verkoeyen

  • Increasing our warnings coverage. Jeff Verkoeyen

Bug Fixes
  • [scripts/gendocs.sh] Ensure that doc assets show up in jazzy output. peterfriese
  • [MDCSlider] Fixed to issue that was causing the slider to disappear when disabled. Randall Li
  • Ensure that all private directory references are lower-cased. Jeff Verkoeyen
  • [MDCSlider] fixed disabled state so it has the mask around the thumb. Randall Li
  • MaterialComponentsUnitTests.podspec depends on MaterialComponents. Jeff Verkoeyen
  • [PageControl] Add missing ss.resource_bundles to the podspec.
  • [Various] Fixed floating-point conversion warnings with Xcode 6 release mode. ajsecord
  • [Typography] Add CoreText dependency.

1.0.1

Enhancements
  • [Switch] Removed internal docs that were pretending to be public docs. Jeff Verkoeyen

1.0.0

Breaking
  • [MDCFlexibleHeaderView] Removed shadowIntensity property, use setShadowLayer:intensityDidChangeBlock: instead. Jeff Verkoeyen
  • [MDCInkTouchControllerDelegate] Renamed inkTouchControllerShouldProcessInkTouches: to inkTouchController:shouldProcessInkTouchesAtTouchLocation:. Chris Cox
Deprecations
  • MDCFlexibleHeaderParentViewController, +[MDCFlexibleHeaderViewController addToParent], and -[MDCFlexibleHeaderViewController addFlexibleHeaderViewToParentViewControllerView]. These APIs are being deprecated in favor of the eventual equivalent AppBar convenience APIs. In the meantime the FlexibleHeader will need to be instantiated and configured like a typical UIViewController.
Enhancements
  • [MDCFlexibleHeaderView] Added setShadowLayer:intensityDidChangeBlock:. Jeff Verkoeyen
  • [MDCHeaderStackView] Added MDCHeaderStackView. Jeff Verkoeyen
  • [MDCSlider] Changed default color. Randall Li
  • [MDCSlider] Readme.md copy edits. Randall Li
  • [MDCSwitch] Readme.md copy edits. Randall Li
  • [MDCTypograpy:example] Refactored to be compatible with catalog by convention Randall Li
  • [Shrine] First pass at a new Swift demo app, “Shrine”. Junius Gunaratne
Bug Fixes
  • Fixed issue where MDCShadowLayer would ghost behind the MDCFlexibleHeaderView. Jeff Verkoeyen

0.2.1

Bug Fixes

0.2.0

Enhancements
Bug Fixes

x.x.x

This is a template. When cutting a new release, rename “master” to the release number and create a new, empty “Master” section.

Breaking
Enhancements
Bug Fixes