Releases: material-components/material-components-ios
v55.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
- Flatten all +Extensions CocoaPods targets into standalone targets. (#3572) (featherless)
- Regenerate component docs with automatic API links. (#3673) (featherless)
- Rename Examples.md to examples.md (Mohammad Cazi)
- Rename Usage.md to usage.md (Mohammad Cazi)
- Update README.md (Mohammad Cazi)
- [Catalog] Make many examples be dragons. (#3642) (featherless)
- readme update. (#3613) (Mohammad Cazi)
- regenerating tabs after file change. (#3623) (Mohammad Cazi)
schemes/Color
Changes
- Fix build breakage. (Jeff Verkoeyen)
- Update the default error color to match spec. (#3591) (featherless)
- [Themes] Add deprecation notice to APIs and remove from the site. (#3636) (featherless)
- [schemes/Color Flesh out the documentation. (#3668) (featherless)
schemes/Typography
Changes
- Add docs stubs. (#3609) (featherless)
- [Themes] Add deprecation notice to APIs and remove from the site. (#3636) (featherless)
- [Typography] Add TypographyScheme example (#3607) (Robert Moore)
- [Typography] Preliminary Typography Scheme README (#3671) (ianegordon)
FeatureHighlight
Changes
- Allow setting accessibilityHint (#3649) (Robert Moore)
- Flatten all +Extensions CocoaPods targets into standalone targets. (#3572) (featherless)
- Regenerate component docs with automatic API links. (#3673) (featherless)
- Remove theming preambles and regenerate root readme. (#3635) (featherless)
- Split the documentation into separate articles and run the readme generator. (#3620) (featherless)
AppBar
Changes
- Add animated gif to the readme. (#3677) (featherless)
- Flatten all +Extensions CocoaPods targets into standalone targets. (#3572) (featherless)
- Make the App Bar appear as "Top App Bar" in the docsite. (#3670) (featherless)
- Make the interface builder and modal presentation examples be dragons. (#3659) (featherless)
- Regenerate component docs with automatic API links. (#3673) (featherless)
- Split the documentation into separate articles and run the readme generator. (#3634) (featherless)
Buttons
Changes
- Add documentation describing variants to buttons, chips and cards (#3600) (John Detloff)
- Add outlined button gif. (#3639) (featherless)
- Break the docs into separate articles and run the readme generator. (#3605) (featherless)
- Ensure buttons and cards reset their states correctly (#3599) (John Detloff)
- Flatten all +Extensions CocoaPods targets into standalone targets. (#3572) (featherless)
- Regenerate component docs with automatic API links. (#3673) (featherless)
- Theme the typical use example with the injected schemes. (#3603) (featherless)
- [scripts] Ensure that asset urls are remapped when generating readmes. (#3640) (featherless)
ButtonBar
Changes
- Flatten all +Extensions CocoaPods targets into standalone targets. (#3572) (featherless)
- Mark all of the AppBar implementation component examples as dragons. (#3596) (featherless)
- Regenerate component docs with automatic API links. (#3673) (featherless)
- Remove from the website. (#3638) (featherless)
- Split the documentation into separate articles and run the readme generator. (#3614) (featherless)
TextFields
Changes
- Flatten all +Extensions CocoaPods targets into standalone targets. (#3572) (featherless)
- Regenerate component docs with automatic API links. (#3673) (featherless)
- [Catalog] Make many examples be dragons. (#3642) (featherless)
- [TextField] floating placeholder overlaps with border. (#3606) (Mohammad Cazi)
- [Textfields] readme auto generated update. (#3628) (Mohammad Cazi)
- [scripts] Ensure that asset urls are remapped when generating readmes. (#3640) (featherless)
- [fixing color mapping for floatingNormal and floatingActive Colors. (#3617)](https://github.com/material-components/material...
v54.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.
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
- Add umbrella headers for all extension targets. (#3476) (featherless)
- Adding .vars files for each component. (#3561) (Mohammad Cazi)
- Generate all themer documentation. (#3562) (featherless)
- Remove all UIAppearance references from documentation. (#3480) (featherless)
- Remove space after triple-backtick Markdown syntax. (#3577) (Adrian Secord)
- Replace MDCRaisedButton with contained button themer in TabBarIconExample. (#3499) (featherless)
- Replace MDCRaisedButton with contained button themer in TabBarIndicatorTemplateExample. (#3500) (featherless)
- Replace MDCRaisedButton with contained button themer. (#3497) (featherless)
- Standardizing API docs. (#3481) (featherless)
- Update Tabs Theme Section README.md (#3527) (Mohammad Cazi)
- [Docs] Updated known short link destination URLs to use short links. (#3575) (Adrian Secord)
- update README.md Mistake (Mohammad Cazi)
MaskedTransition
Changes
- Remove space after triple-backtick Markdown syntax. (#3577) (Adrian Secord)
schemes/Color
Changes
- Delete all of the older themer examples. (#3484) (featherless)
- [Tabs] Add umbrella headers for all extension targets. (#3476) (featherless)
- [TextFields] Add umbrella headers for all extension targets. (#3477) (featherless)
schemes/Typography
Changes
FeatureHighlight
Changes
- Adding .vars files for each component. (#3557) (featherless)
- Generate all themer documentation. (#3562) (featherless)
- Remove all UIAppearance references from documentation. (#3480) (featherless)
- Remove space after triple-backtick Markdown syntax. (#3577) (Adrian Secord)
- Standardizing API docs. (#3481) (featherless)
- [Typography][Color] Make sure our examples only use the new Color/Typography APIs (#3489) (Mohammad Cazi)
AppBar
Changes
- Add Theming Section to README.md (#3516) (Mohammad Cazi)
- Added a AppBarTypicalCollectionViewExample. (#3491) (Mohammad Cazi)
- Adding .vars files for each component. (#3557) (featherless)
- Fix the app bar status bar style in the typical use demo. (#3505) (featherless)
- Generate all themer documentation. (#3562) (featherless)
- Make MDCAppBarContainerViewController set bounds of child view controller (#3450) (John Detloff)
- Remove all UIAppearance references from documentation. (#3480) (featherless)
- Remove space after triple-backtick Markdown syntax. (#3577) (Adrian Secord)
- Revert "Make MDCAppBarContainerViewController set bounds of child view controller (#3450)" (#3594) (featherless)
- Standardizing API docs. (#3481) (featherless)
- Update the examples, forwarding scrollView Delegate typical use. (#3494) (Mohammad Cazi)
Ink
Changes
- Generate all themer documentation. (#3562) (featherless)
- Remove all UIAppearance references from documentation. (#3480) (featherless)
- Remove space after triple-backtick Markdown syntax. (#3577) (Adrian Secord)
- Standardizing API docs. (#3481) (featherless)
CollectionCells
Changes
- Adding .vars files for each component. (#3557) (featherless)
- [Docs] Updated known short link destination URLs to use short links. (#3575) (Adrian Secord)
Buttons
Changes
- Add a floating action button themer. (#3588) (featherless)
- Add floating action button documentation. (#3592) (featherless)
- Add notice of pending deprecation to Flat and Raised buttons. (#3581) (featherless)
- Add outlined button themer (#3566) (John Detloff)
- Adding .vars files for each component. (#3557) (featherless)
- Copy-edit pass of the readme. (#3587) (featherless)
- [Fix build breakage due to API changes in ButtonThemer. (#3518)](bfe781a...
v54.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
- [Catalog] Component descriptions update. (#3490) (Mohammad Cazi)
- [Catalog] Expose colorScheme + typographyScheme properties for all examples to use app wide theming (#3478) (Yarden Eitan)
- [Catalog] Make all swift copycat demos be dragons. (#3443) (featherless)
schemes/Color
Changes
- [ActivityIndicator] Add an umbrella header for the ColorThemer target. (#3455) (featherless)
- [BottomAppBar] Add umbrella headers for all extension targets. (#3459) (featherless)
- [ButtonBar] Add umbrella headers for all extension targets. (#3462) (featherless)
- [Buttons] Add umbrella headers for all extension targets. (#3454) (featherless)
- [Dialogs] Add umbrella headers for all extension targets. (#3465) (featherless)
- [FeatureHighlight] Add umbrella headers for all extension targets. (#3466) (featherless)
- [FlexibleHeader] Add umbrella headers for all extension targets. (#3467) (featherless)
- [HeaderStackView] Add umbrella headers for all extension targets. (#3468) (featherless)
- [NavigationBar] Add umbrella headers for all extension targets. (#3471) (featherless)
- [PageControl] Add umbrella headers for all extension targets. (#3472) (featherless)
- [ProgressView] Add umbrella headers for all extension targets. (#3473) (featherless)
- [Slider] Add umbrella headers for all extension targets. (#3474) (featherless)
FeatureHighlight
Changes
- Add umbrella headers for all extension targets. (#3466) (featherless)
- [Catalog] Expose colorScheme + typographyScheme properties for all examples to use app wide theming (#3478) (Yarden Eitan)
AppBar
Changes
- Add umbrella headers for all extension targets. (#3458) (featherless)
- [Catalog] Component descriptions update. (#3490) (Mohammad Cazi)
- [Catalog] Expose colorScheme + typographyScheme properties for all examples to use app wide theming (#3478) (Yarden Eitan)
- [Catalog] Make all swift copycat demos be dragons. (#3443) (featherless)
- [FlexibleHeader] Add umbrella headers for all extension targets. (#3467) (featherless)
- [NavigationBar] Add umbrella headers for all extension targets. (#3471) (featherless)
Ink
Changes
- Add umbrella headers for all extension targets. (#3469) (featherless)
Buttons
Changes
- Add umbrella headers for all extension targets. (#3454) (featherless)
- Added ImageTintColor for theming FAB Button. (#3442) (Mohammad Cazi)
- Changing ButtonScheme Header to accept protocols instead of actual class. (#3488) (Mohammad Cazi)
- Replace MDCRaisedButton with contained button APIs in content edge insets example. (#3453) (featherless)
- [Catalog] Component descriptions update. (#3490) (Mohammad Cazi)
- [Catalog] Expose colorScheme + typographyScheme properties for all examples to use app wide theming (#3478) (Yarden Eitan)
- [Catalog] Implement API for setting app-wide theming (#3461) (Yarden Eitan)
- [Catalog] Make all swift copycat demos be dragons. (#3443) (featherless)
ButtonBar
Changes
- Add umbrella headers for all extension targets. (#3462) (featherless)
- Make left/right insets for image and text buttons consistent (#3397) (Ali Rabbani)
- [Catalog] Expose colorScheme + typographyScheme properties for all examples to use app wide theming (#3478) (Yarden Eitan)
- [Catalog] Make all swift copycat demos be dragons. (#3443) (featherless)
TextFields
Changes
- [Catalog] Component descriptions update. (#3490) (Mohammad Cazi)
- [Catalog] Expose colorScheme + typographyScheme properties for all examples to use app wide theming (#3478) (Yarden Eitan)
- [Catalog] Make all swift copycat demos be dragons. (#3443) (featherless)
Chips
Changes
- Add umbrella headers for all extension targets. (#3464) (featherless)
- Reset cell selection state to NO on prepare for reuse. (#3444) (Mohammad Cazi)
- Revert "Reset cell selection state to NO on prepare for reuse." (#3447) (Mohammad Cazi)
- We should not display ink when the chip is disabled. (#3445) (Mohammad Cazi)
- [Catalog] Component descriptions update. (#3490) (Mohammad Cazi)
- [[Catalog] Expose colorScheme + typographyScheme properties for all ...
v54.11.1
Component changes
ButtonBar
Changes
v54.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
- Fix MDCTabBarColorThemerTests (#3428) (John Detloff)
- Fix build breakage (#3425) (John Detloff)
- [TabBar] Add a 1 pt bottom divider to MDCTabBar (#3390) (John Detloff)
- [TabBars] Add titleColorForState and imageTintColorForState (#3396) (John Detloff)
AppBar
Changes
- [NavigationBar] Fix the surface variation themer's text/icon colors to match spec. (#3416) (featherless)
Buttons
Changes
- [Button] Contained: Changed colors for ink and disabled (#3419) (Randall Li)
- Create a separate class for MDCFloatingButton color themer. (#3429) (Mohammad Cazi)
- [Button] Button Themers calling direct color themers. (#3434) (Randall Li)
- [Button] Contained color image themer using tint APIs. (#3439) (Randall Li)
- [Button] Fixed catalog description of typical use example (#3435) (Randall Li)
- [Button] Text button color image themer using tint APIs. (#3440) (Randall Li)
- [MDCButton] Added new API for coloring image tint color for state. (#3423) (Mohammad Cazi)
- update disabled alpha (#3420) (Yarden Eitan)
ButtonBar
Changes
- Add a stateful buttons title color API. (#3414) (featherless)
- Fix layout behavior when using custom button title font. (#3410) (featherless)
TextFields
Changes
- Adding a floating placeholder active color override. (#3433) (Will Larche)
- Unit tests for more classes of controller (#3436) (Will Larche)
- [Textfields] Added Filled and Outlined themers (#3438) (Yarden Eitan)
Snackbar
Changes
- Disable flaky test -[SnackbarManagerTests testMessagesResumedWhenTokenIsDeallocated] (#3426) (Ben Hamilton (Ben Gertzfield))
NavigationBar
Changes
- Add a stateful buttons title color API. (#3415) (featherless)
- Fix the surface variation themer's text/icon colors to match spec. (#3416) (featherless)
BottomNavigation
Changes
- Add separate property for selected title color (#3430) (John Detloff)
v54.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
- [Button] Changed text button disabled to do 37% opacity, Ink to use onSurface 16% (#3406) (Randall Li)
ButtonBar
Changes
- Add a Typography Themer. (#3395) (featherless)
Chips
Changes
- Update README.md (Mohammad Cazi)
- Updating Readme documentation for chips. (#3405) (Mohammad Cazi)
- Updating Readme documentation for chips. (Mohammad Cazi)
NavigationBar
Changes
- Add an API for customizing button fonts. (#3412) (featherless)
v54.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
- Add a surface variant color themer API. (#3388) (featherless)
AppBar
Changes
- Add surface variant color themer API. (#3383) (featherless)
Ink
Changes
- Increase range of accuracy in test to +/-.1. (#3392) (Randall Li)
Buttons
Changes
- Created contained button themer. (#3391) (Randall Li)
- [Button] Renamed color themer styles to text and contained (#3384) (Randall Li)
- [Button] Split files into more appropriate names: TextButtonThemer and ButtonScheme. (#3385) (Randall Li)
- [MDCFloatingButton] Color Themer added. (#3381) (Mohammad Cazi)
ButtonBar
Changes
- Expose APIs for setting custom button fonts. (#3389) (featherless)
Chips
Changes
- Adding Examples/Documentation for all chips types. (#3393) (Mohammad Cazi)
Slider
Changes
- Update color themer (#3375) (John Detloff)
ShadowLayer
Changes
v54.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
- Fix crasher within tab example (#3370) (John Detloff)
- Update MDCTabBar color themer (#3361) (John Detloff)
Buttons
Changes
- Added Shapes Support (#3368) (Yarden Eitan)
- [Button] Color themer: Changed class of argument to be MDCButton rather than be a subclass. (#3382) (Randall Li)
- [Button] Created button themer that aggregates multiple subsystems to style buttons. (#3362) (Randall Li)
Chips
Changes
- color themer implementation. (#3372) (Mohammad Cazi)
NavigationBar
Changes
- Add surface variant theme. (#3376) (featherless)
FlexibleHeader
Changes
- Add a surface variant color themer API. (#3380) (featherless)
v54.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
- [NavigationBar]Restore the changed default inkColor (Ali Rabbani)
Cards
Changes
- organize cards examples (#3369) (Yarden Eitan)
v54.6.1
This is a hotfix release fixing a bug in ButtonBar that was introduced in 54.6.0.
Component changes
ButtonBar
Changes
- [NavigationBar]Restore the changed default inkColor (Ali Rabbani)