Releases: material-components/material-components-ios
v56.0.0
56.0.0
In this release we updated the icon layout of MDCTextField
s 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
- Update disabled button alpha to match spec (#4430) (Randall Li)
TextFields
Changes
Chips
Changes
BottomNavigation
Changes
- Add example when we explicitly set color (#4420) (Cody Weaver)
- Update ripple color to match spec. (#4422) (Cody Weaver)
- Use size classes instead of device orientation to determine layout in bottom navigation (#4424) (Andrew Overton)
v55.5.0
API changes
TextFields
MDCTextField
new property: inputLayoutStrut
in MDCTextField
Component changes
Buttons
Changes
ButtonBar
Changes
- Add tintColor observation support. (#4380) (featherless)
- Add unit tests for KVO behavior. (#4379) (featherless)
TextFields
Changes
- Add baseline constraint support (#4387) (Will Larche)
- Example cleanup. (#4392) (Will Larche)
- TableView example. (#4391) (Will Larche)
- Text Input adjustment. (#4389) (Will Larche)
Chips
Changes
BottomNavigation
Changes
v55.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
- Add a wrapped table view controller example. (#4336) (featherless)
- Add example of an AppBar in a presented vc (#4351) (John Detloff)
- Fix VoiceOver escape gesture bug. (#4360) (featherless)
- Implement topLayoutGuideAdjustmentEnabled on the app bar container. (#4370) (featherless)
- [NavigationBar] Deprecate useFlexibleTopBottomInsets (#4358) (Ali Rabbani)
Buttons
Changes
TextFields
Changes
- Add placeholderLabel accessibilityLabel to textField accessibilityValue (#4319) (Andrew Overton)
- Tweak accessibility notification to prevent VoiceOver from cutting off (#4364) (Andrew Overton)
- [Documentation] Update TextField README.md (#4352) (ianegordon)
Snackbar
Changes
- Fix Earl Grey test (#4349) (Robert Moore)
Slider
Changes
- Fix accessibilityIncrement for discrete sliders (#4327) (John Detloff)
- Notify VoiceOver of MDCSlider value changes (#4350) (Andrew Overton)
NavigationBar
Changes
- Add a titleViewLayoutBehavior API. (#4371) (featherless)
- Deprecate useFlexibleTopBottomInsets (#4358) (Ali Rabbani)
BottomSheet
Changes
- Add a short bottom sheet example to MDCCatalog (#4318) (featherless)
Typography
Changes
- [TextFields] Prevents functionally equivalent fonts from causing rendering jumps (#4344) (Will Larche)
PageControl
Changes
Collections
Changes
- Remove Earl Grey tests (#4348) (Robert Moore)
HeaderStackView
Changes
- Change the layout behavior in MDCHeaderStack view to accommodate a topBar with flexible height. (#4355) (Ali Rabbani)
FlexibleHeader
Changes
v55.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
- We should not force viewDidLoad when ViewControllers are set. (#4230) (Mohammad Cazi)
- [Docs] Add badges to all components. (#4278) (featherless)
FeatureHighlight
Changes
- View should not be loaded unless it's explicitly called or presented. (#4234) (Mohammad Cazi)
- [Docs] Add badges to all components. (#4278) (featherless)
- we dismiss and present feature highlight from the new spot. (#4300) (Mohammad Cazi)
AppBar
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
Buttons
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
ButtonBar
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
TextFields
Changes
- Correcting copy mistake. (#4281) (Will Larche)
- Corrects obscure bug of height. (#4297) (Will Larche)
- Documentation update (#4295) (Will Larche)
- Fix notification parameter type (#4249) (Robert Moore)
- Fix text area placeholder (#4274) (Will Larche)
- Post SetText notifications for attributed text (#4282) (Robert Moore)
- [Docs] Add badges to all components. (#4278) (featherless)
Chips
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
Snackbar
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
Cards
Changes
- Fix the cards docs image asset. (Jeff Verkoeyen)
- [Docs] Add badges to all components. (#4278) (featherless)
BottomAppBar
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
Slider
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
NavigationBar
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
ActivityIndicator
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
BottomSheet
Changes
- Add an app bar to the typical use example. (#4268) (featherless)
- Fix layout issues caused by invoking self.dismissOnBackgroundTap in -init (#4241) (featherless)
Dialogs
Changes
- Add customizable cornerRadius to enable proper shadowing (#4233) (ianegordon)
- AlertController button layout issue (#4291) (ianegordon)
- Setting Properties on Alert controller will not force the view to load. (#4238) (Mohammad Cazi)
- [Docs] Add badges to all components. (#4278) (featherless)
BottomNavigation
Changes
- Correct long title layout (#4303) (Robert Moore)
- [Docs] Add badges to all components. (#4278) (featherless)
PageControl
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
FlexibleHeader
Changes
- Fixed behavior for top layout guide and safe area insets. (#4214) (featherless)
- [Docs] Add badges to all components. (#4278) (featherless)
ProgressView
Changes
- [Docs] Add badges to all components. (#4278) (featherless)
v55.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
- Create an example of MDCAppBarContainerViewController usage (#4197) (John Detloff)
- Initialize default color and typography schemes in examples (#4200) (John Detloff)
Buttons
Changes
- Disable flaky test. (#4157) (featherless)
- Initialize default color and typography schemes in examples (#4200) (John Detloff)
ButtonBar
Changes
TextFields
Changes
Chips
Changes
Snackbar
Changes
- Allow Snackbars to have leading alignment on iPads (#4163) (Andrew Overton)
- Exposed the snackbar button class (#4171) (Yarden Eitan)
Slider
Changes
NavigationBar
Changes
ActivityIndicator
Changes
Typography
Changes
- Add unit test to improve coverage (#4198) (ianegordon)
Dialogs
Changes
BottomNavigation
Changes
- Fix shadow elevation value (#4195) (Robert Moore)
FlexibleHeader
Changes
ShadowElevations
Changes
- Expose BottomNavigationBar elevation (#4194) (Robert Moore)
v55.1.0
This minor release introduces some new features to Snackbar and includes some bug fixes in the Catalog app.
API changes
Snackbar
MDCSnackbarManager
new class method: +hasMessagesShowingOrQueued
in MDCSnackbarManager
Component changes
Tabs
Changes
- "Add" button shows when needed (#3739) (Robert Moore)
schemes/Color
Changes
schemes/Typography
Changes
FeatureHighlight
Changes
- Color Should be a dragon example. (#3743) (Mohammad Cazi)
- [Catalog] Feature highlight should be triggered from a separate Button. (#3742) (Mohammad Cazi)
- [Catalog] FeatureHighlight should be themed according to global theming. (#3738) (Mohammad Cazi)
- title not attributed. (#4175) (Mohammad Cazi)
Buttons
Changes
- FAB button in shapes example should be themed. (#3737) (Mohammad Cazi)
- Fix updateTitles to prevent crash (#4153) (Robert Moore)
Snackbar
Changes
- add hasMessagesShowingOrQueued method (#4168) (Yarden Eitan)
Cards
Changes
- 'Edit' button should show action, not state (#3733) (Robert Moore)
BottomAppBar
Changes
- Add an app bar to the bottom app bar demo (#3760) (John Detloff)
- Make FAB visibility a switch (#3734) (Robert Moore)
- [Catalog] Bottom App bar should theme the FAB Button. (#3740) (Mohammad Cazi)
Dialogs
Changes
- Make "modal" dialog "non-dismissable" (#3736) (Robert Moore)
Themes
Changes
- Add simple unit test (#4147) (Robert Moore)
ShadowElevations
Changes
v55.0.4
v55.0.3
v55.0.2
This patch release includes more documentation polish and a bug fix for Cards theming.
Component changes
Tabs
Changes
- Reorder image assets. (Jeff Verkoeyen)
schemes/Color
Changes
schemes/Typography
Changes
FeatureHighlight
Changes
- Reorder image assets. (Jeff Verkoeyen)
Ink
Changes
- Make a gif. (Jeff Verkoeyen)
Buttons
Changes
- Avoid picking up class properties in the API table for READMEs. (Jeff Verkoeyen)
- Update material.io/go/design-theming shortlink to material.io/go/design-color-theming. (Adrian Secord)
ButtonBar
Changes
- Avoid picking up class properties in the API table for READMEs. (Jeff Verkoeyen)
TextFields
Changes
- Regenerate the readme. (Jeff Verkoeyen)
- Reorder image assets. (Jeff Verkoeyen)
Chips
Changes
- Update the intro copy. (Jeff Verkoeyen)
Snackbar
Changes
- Avoid picking up class properties in the API table for READMEs. (Jeff Verkoeyen)
- Reorder image assets. (Jeff Verkoeyen)
Cards
Changes
- Fix examples and themer (#3700) (Yarden Eitan)
BottomAppBar
Changes
- Avoid picking up class properties in the API table for READMEs. (Jeff Verkoeyen)
Slider
Changes
- Reorder image assets. (Jeff Verkoeyen)
LibraryInfo
Changes
- Add a header and intro blurb. (Jeff Verkoeyen)
ShadowLayer
Changes
- Tidy up links for shadows and progress indicators. (Jeff Verkoeyen)
- [Shadow] Reorder screenshots. (Jeff Verkoeyen)
BottomSheet
Changes
- Reorder image assets. (Jeff Verkoeyen)
Dialogs
Changes
- Update the copy and make a gif. (Jeff Verkoeyen)
PageControl
Changes
- Add gif. (Jeff Verkoeyen)
FlexibleHeader
Changes
- Avoid picking up class properties in the API table for READMEs. (Jeff Verkoeyen)
ShadowElevations
Changes
- [Shadow] Reorder screenshots. (Jeff Verkoeyen)
ProgressView
Changes
- Tidy up the docs and links. (Jeff Verkoeyen)
Palettes
Changes
- Remove screenshot. (Jeff Verkoeyen)
- Update material.io/go/design-theming shortlink to material.io/go/design-color-theming. (Adrian Secord)This patch release includes more documentation polish and a bug fix for Cards theming.
Component changes
Tabs
Changes
- Reorder image assets. (Jeff Verkoeyen)
schemes/Color
Changes
schemes/Typography
Changes
FeatureHighlight
Changes
- Reorder image assets. (Jeff Verkoeyen)
Ink
Changes
- Make a gif. (Jeff Verkoeyen)
Buttons
Changes
- Avoid picking up class properties in the API table for READMEs. (Jeff Verkoeyen)
- Update material.io/go/design-theming shortlink to material.io/go/design-color-theming. (Adrian Secord)
ButtonBar
Changes
- Avoid picking up class properties in the API table for READMEs. (Jeff Verkoeyen)
TextFields
Changes
- Regenerate the readme. (Jeff Verkoeyen)
- Reorder image assets. (Jeff Verkoeyen)
Chips
Changes
- Update the intro copy. (Jeff Verkoeyen)
Snackbar
Changes
- Avoid picking up class properties in the API table for READMEs. (Jeff Verkoeyen)
- Reorder image assets. (Jeff Verkoeyen)
Cards
Changes
- Fix examples and themer (#3700) (Yarden Eitan)
BottomAppBar
Changes
- Avoid picking up class properties in the API table for READMEs. (Jeff Verkoeyen)
Slider
Changes
- Reorder image assets. (Jeff Verkoeyen)
LibraryInfo
Changes
- Add a header and intro blurb. (Jeff Verkoeyen)
ShadowLayer
Changes
- Tidy up links for shadows and progress indicators. (Jeff Verkoeyen)
- [Shadow] Reorder screenshots. (Jeff Verkoeyen)
BottomSheet
Changes
- Reorder image assets. (Jeff Verkoeyen)
Dialogs
Changes
- Update the copy and make a gif. (Jeff Verkoeyen)
...
v55.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
- Fix more casings. (Jeff Verkoeyen)
- Fix scheme links. (Jeff Verkoeyen)
schemes/Typography
Changes
- Fix more casings. (Jeff Verkoeyen)
- Fix scheme links. (Jeff Verkoeyen)
- [Typography] Ensure that typography scheme is showing up on the site. (#3694) (featherless)
FeatureHighlight
Changes
AppBar
Changes
CollectionCells
Changes
- [Collections] Add deprecation notice to the readmes and remove from the site. (#3695) (featherless)
- [Collections] Mark all examples as dragons. (#3697) (featherless)
ButtonBar
Changes
TextFields
Changes
Cards
Changes
- Make the site title be "Cards". (Jeff Verkoeyen)
- Update image and docs. (Jeff Verkoeyen)
BottomAppBar
Changes
- Add gif for bottom navigation and fix alt text in bottom app bar. (Jeff Verkoeyen)
- Crop the screenshot to emphasize the bottom app bar. (Jeff Verkoeyen)
- Touch up the readme intro copy and image ordering. (Jeff Verkoeyen)
- Update site naming for top and bottom app bars to match spec. (#3680) (featherless)
NavigationBar
Changes
- Fix ordering of header stack view and navigation bar intro text. (Jeff Verkoeyen)
- Standardize the casing for all components to match spec. (#3693) (featherless)
- Update header stack view and navigation bar screenshots. (Jeff Verkoeyen)
OverlayWindow
Changes
ShadowLayer
Changes
- Fix more casings. (Jeff Verkoeyen)
ActivityIndicator
Changes
BottomSheet
Changes
BottomNavigation
Changes
- Add gif for bottom navigation and fix alt text in bottom app bar. (Jeff Verkoeyen)
- Remove redundant link and update copy. (Jeff Verkoeyen)
- Shrink the gif. (Jeff Verkoeyen)
- Standardize the casing for all components to match spec. (#3693) (featherless)
PageControl
Changes
AnimationTiming
Changes
- Move animation below the intro text. (Jeff Verkoeyen)
- Standardize the casing for all components to match spec. (#3693) (featherless)
- Update the copy. (Jeff Verkoeyen)
Collections
Changes
- Add deprecation notice to the readmes and remove from the site. (#3695) (featherless)
- Mark all examples as dragons. (#3697) (featherless)
HeaderStackView
Changes
- Fix ordering of header stack view and navigation bar intro text. (Jeff Verkoeyen)
- Standardize the casing for all components to match spec. (#3693) (featherless)
- Update header stack view and navigation bar screenshots. (Jeff Verkoeyen)
FlexibleHeader
Changes
- Add a gif for the docs. (Jeff Verkoeyen)
- Fix casing in the site nav. (Jeff Verkoeyen)
- Standardize the casing for all components to match spec. (#3693) (featherless)
ShadowElevations
Changes
- Fix more casings. (Jeff Verkoeyen)