Skip to content
This repository was archived by the owner on Dec 11, 2025. It is now read-only.

v57.0.0

Choose a tag to compare

@yarneo yarneo released this 12 Jul 17:04
· 4814 commits to stable since this release

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