Skip to content

Releases: material-components/material-components-ios

v76.0.0

31 Jan 14:46
Compare
Choose a tag to compare

76.0.0

This major release changes the Material Theming colors for Cards cells. It also includes bug fixes
for Navigation Drawer and Text Fields.

Breaking changes

The MDCCardsColorThemer now sets the imageTintColor:forState: on MDCCardCollectionCell. This
property was previously unset by the themer.

API changes

Collections

MDCCollectionViewEditing

new property: minimumPressDuration in MDCCollectionViewEditing

Changes

ActionSheet

BottomNavigation

Buttons

Cards

Collections

Dialogs

NavigationDrawer

Ripple

TextFields

Multi-component changes

v75.0.1

23 Jan 22:59
Compare
Choose a tag to compare

75.0.1

This patch release reformats the entire code base to align to the latest
Google Objective-C Style enforced by clang-format.

Multi-component changes

v75.0.0

23 Jan 17:26
Compare
Choose a tag to compare

75.0.0

This major release includes a change to the behavior of MDCButton's
borderWidthForState: API and the behavior of MDCSnackbarManager's
shouldEnableAccessibilityViewIsModal property. Improved support for the
bazel build system
is introduced for several
components.

Breaking changes

MDCButton's borderWidthForState: behavior now matches that of UIButton's
forState: properties. Any state without an explicitly-set value will
fall-back to the value for the UIControlStateNormal state. This does not
change the appearance of MDCButton, but does change the values returned by the
API.

New features

MDCSnackbarManager's shouldEnableAccessibilityViewIsModal was previously
used to determine the value of a snackbar view's accessibilityViewIsModal
property. Clients can now use the MDCSnackbarManagerDelegate API
-willPresentSnackbarWithMessageView: to override the view's
accessibilityViewIsModal for each Snackbar. This value is propagated to the
scrim view to ensure that modality is correctly configured for Snackbars.

@implementation MySnackbarManagerDelegate

- (void)willPresentSnackbarWithMessageView:(MDCSnackbarMessageView *)messageView {
  // All Snackbars with an action are "modal" for UIAccessibility
  if (messageView.actionButtons.count > 0) {
    messageView.accessibilityViewIsModal = YES;
  }
}

@end

Changes

ActivityIndicator

AppBar

BottomAppBar

Buttons

Cards

Collections

Dialogs

FeatureHighlight

FlexibleHeader

List

MaskedTransition

NavigationBar

NavigationDrawer

PageControl

Slider

Snackbar

Tabs

TextFields

Typography

private/Beta

schemes/Shape

Multi-component changes


v74.0.0

16 Jan 21:06
Compare
Choose a tag to compare

74.0.0

This major release introduces Material Theming extensions for
MDCDialogPresentationController and a change to the behavior of MDCButton's
backgroundColorForState: API. Improved support for the bazel build
system
is introduced for several components.

Breaking changes

MDCButton's backgroundColorForState: behavior now matches that of UIButton's
forState: properties. Any state without an explicitly-set value will
fall-back to the value for the UIControlStateNormal state. This does not
change the appearance of MDCButton, but does change the values returned by the
API.

New features

Material Theming for MDCDialogPresentationController

MDCDialogPresentationController can now be themed using the Theming extension
provided by MaterialDialogs+Theming.h.

MDCAlertController *materialAlertController =
    [MDCAlertController alertControllerWithTitle:@"Title" message:@"Message"];
MDCDialogPresentationController *presentationController =
    materialAlertController.mdc_dialogPresentationController;

MDCContainerScheme *containerScheme = [[MDCContainerScheme alloc] init];
[presentationController applyThemeWithScheme:self.containerScheme];

Replace this text with example code for each new feature.

Changes

ActivityIndicator

AnimationTiming

BottomNavigation

BottomSheet

ButtonBar

Buttons

Cards

Chips

CollectionCells

Dialogs

Ink

Palettes

ProgressView

Ripple

ShadowElevations

ShadowLayer

TextFields

private/Math

private/Snapshot/TestHost

private/Snapshot

schemes/Typography

Multi-component changes

v73.1.1

11 Jan 22:27
Compare
Choose a tag to compare

In this patch release we have improved the formatting of our codebase, and added missing imports to the Dragons target.

API changes

Component changes

Dragons App

Multi-component changes

v73.1.0

08 Jan 23:38
Compare
Choose a tag to compare

In this minor release we have added new theming extensions for Cards and Chips, as well as added a new component to beta called Ripple that will eventually be a successor to Ink. We also added additional functionality to Dialogs, NavigationBar, and snapshot testing for Textfields.

New features

Card Theming Extension Usage Example

  var scheme: MDCContainerScheming {
    let scheme = MDCContainerScheme()
    scheme.colorScheme = colorScheme
    scheme.typographyScheme = typographyScheme
    scheme.shapeScheme = shapeScheme
    return scheme
  }
  ...
  let card = MDCCard()
  card.applyTheme(withScheme: scheme)

Chips Theming Extension Usage Example

  var scheme: MDCContainerScheming {
    let scheme = MDCContainerScheme()
    scheme.colorScheme = colorScheme
    scheme.typographyScheme = typographyScheme
    scheme.shapeScheme = shapeScheme
    return scheme
  }
  ...
  let chipView = MDCChipView()
  chipView.applyTheme(withScheme: scheme)

Dialogs Background Color Usage Example

let alert = MDCAlertController(title: "Title", message: "Message")
alert.backgroundColor = .white

NavigationBar Title View Inset Usage Example

let navigationBar = MDCNavigationBar()
navigationBar.titleInsets = UIEdgeInsets(top: 0, left: 16, bottom: 0, right: 16)

API changes

Cards+Theming

New extension.

Chips+Theming

New extension.

Ripple

New component.

Component changes

Changes

ActionSheet

ActivityIndicator

AppBar

BottomAppBar

BottomNavigation

BottomSheet

Cards

Chips

Collections

Dialogs

FlexibleHeader

NavigationBar

NavigationDrawer

Ripple

Slider

Tabs

TextFields

Read more

v73.0.0

20 Dec 03:54
Compare
Choose a tag to compare

73.0.0

This is a major release that introduces copy semantics in MDCShapeCategory, part of the Shapes scheme. Also in this release is a new API in NavigationDrawer that provides a way to expand the bottom drawer to full height.

New features

NavigationDrawer expansion

The NavigationDrawer component's MDCBottomDrawerViewController has a new API
that allows clients to programmatically expand the bottom drawer to the full
height of the presenting view.

Example (Swift)

drawerVC.expandToFullscreen(withDuration: 0.2, completion: { finished in
 if finished {
   print("expansion complete");
 } else {
   print("expansion cancelled");
 }
})

API changes

ActionSheet+Theming

New extension.

NavigationDrawer

MDCBottomDrawerViewController

new method: -expandToFullscreenWithDuration:completion: in MDCBottomDrawerViewController

MDCBottomDrawerPresentationController

new method: -expandToFullscreenWithDuration:completion: in MDCBottomDrawerPresentationController

ShapeScheme

MDCShapeCategory

modified property: bottomLeftCorner in MDCShapeCategory

Type of change: Declaration
From: @property(strong, nonatomic) MDCCornerTreatment *bottomLeftCorner
To: @property(nonatomic, copy) MDCCornerTreatment *bottomLeftCorner

modified class: MDCShapeCategory

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

modified class: MDCShapeCategory

Type of change: Declaration
From: @interface MDCShapeCategory : NSObject
To: @interface MDCShapeCategory : NSObject <NSCopying>

modified property: bottomRightCorner in MDCShapeCategory

Type of change: Declaration
From: @property(strong, nonatomic) MDCCornerTreatment *bottomRightCorner
To: @property(nonatomic, copy) MDCCornerTreatment *bottomRightCorner

modified property: topLeftCorner in MDCShapeCategory

Type of change: Declaration
From: @property(strong, nonatomic) MDCCornerTreatment *topLeftCorner
To: @property(nonatomic, copy) MDCCornerTreatment *topLeftCorner

modified property: topRightCorner in MDCShapeCategory

Type of change: Declaration
From: @property(strong, nonatomic) MDCCornerTreatment *topRightCorner
To: @property(nonatomic, copy) MDCCornerTreatment *topRightCorner

Component changes

Changes

ActionSheet

BottomNavigation

BottomSheet

FlexibleHeader

NavigationDrawer

TextFields

schemes/Shape

Multi-component changes

Read more

v72.2.0

11 Dec 21:03
Compare
Choose a tag to compare

In this minor release we added scrimColor support for MDCBottomSheetController and added a theming extension support for MDCAlertController. We also added TextFields snapshot testing along with various bug fixes.

New features

Bottom Sheet scrimColor API usage example

  MDCBottomSheetController *bottomSheet =
      [[MDCBottomSheetController alloc] initWithContentViewController:viewController];
  bottomSheet.scrimColor = UIColor.blueColor;
  [self presentViewController:bottomSheet animated:YES completion:nil];

Dialogs Theming Extension usage example

  var scheme: MDCContainerScheming {
    let scheme = MDCContainerScheme()
    scheme.colorScheme = colorScheme
    scheme.typographyScheme = typographyScheme
    return scheme
  }
  ...
  let alertController = MDCAlertController(title: "Title", message: "Message")
  alertController.applyTheme(withScheme: scheme)

Bug fixes

{Git-LFS} Exclude git-lfs from stable #5977

API changes

Component changes

Changes

ActionSheet

BottomSheet

Buttons

Chips

Dialogs

FlexibleHeader

NavigationDrawer

private/KeyboardWatcher

Textfields

Multi-component changes

v72.1.0

10 Dec 17:41
Compare
Choose a tag to compare

72.1.0

This minor release fixes a ChipField RTL issue.

Component Changes

Chips

v72.0.1

07 Dec 16:27
Compare
Choose a tag to compare

72.0.1

Corrected readme version to match cocopods version