angular-material
Advanced tools
Changelog
1.2.4 (2021-12-16)
.scss
files directly in your build, you will need to switch
from the deprecated node-sass
package to the sass
package for compiling your Sass.marked
Markdown rendering (441a912)Thank you to the contributors who helped with the v1.2.4 release:
<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117"> |<img alt="bjarkler" src="https://avatars.githubusercontent.com/u/66124740?v=4&s=117" width="117"> |<img alt="superheri" src="https://avatars.githubusercontent.com/u/30275781?v=4&s=117" width="117"> | :---: |:---: |:---: | Splaktar |bjarkler |superheri |
Changelog
1.2.3 (2021-07-14)
Thank you to the contributors who helped with the v1.2.3 release:
<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117"> |<img alt="atfzls" src="https://avatars2.githubusercontent.com/u/55975318?v=4&s=117" width="117"> | :---: |:---: | Splaktar |atfzls |
Changelog
1.2.2 (2020-12-17)
Thank you to the contributors who helped with the v1.2.2 release:
<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117"> |<img alt="FreedCapybara" src="https://avatars2.githubusercontent.com/u/7003723?v=4&s=117" width="117"> |<img alt="shishkinilya" src="https://avatars0.githubusercontent.com/u/20458127?v=4&s=117" width="117"> |<img alt="kylekatarnls" src="https://avatars1.githubusercontent.com/u/5966783?v=4&s=117" width="117"> |<img alt="natete" src="https://avatars2.githubusercontent.com/u/4098303?v=4&s=117" width="117"> | :---: |:---: |:---: |:---: |:---: | Splaktar |FreedCapybara |shishkinilya |kylekatarnls |natete |
<a name="1.2.1"></a>
Changelog
1.2.1 (2020-09-23)
Thank you to the contributors who helped with the v1.2.1 release:
<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117"> |<img alt="mmalerba" src="https://avatars1.githubusercontent.com/u/14793288?v=4&s=117" width="117"> |<img alt="josephperrott" src="https://avatars2.githubusercontent.com/u/10864441?v=4&s=117" width="117"> |<img alt="cgx" src="https://avatars2.githubusercontent.com/u/1088448?v=4&s=117" width="117"> | :---: |:---: |:---: |:---: | Splaktar |mmalerba |josephperrott |cgx |
<a name="1.1.26"></a>
Changelog
1.1.26 (2020-09-01)
Thank you to the contributors who helped with the v1.1.26 release:
<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117"> |<img alt="mmalerba" src="https://avatars0.githubusercontent.com/u/14793288?v=4&s=117" width="117"> | :---: |:---: | Splaktar |mmalerba |
<a name="1.1.25"></a>
Changelog
1.1.25 (2020-08-31)
Thank you to the contributors who helped with the v1.1.25 release:
<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117"> |<img alt="jelbourn" src="https://avatars3.githubusercontent.com/u/838736?v=4&s=117" width="117"> | :---: |:---: | Splaktar |jelbourn |
<a name="1.2.0"></a>
md-autocomplete
, when the options panel is visible and the Escape key is pressed, has changed. md-escape-options
now defaults to 'clear'
instead of 'blur clear'
. This better aligns with the WAI-ARIA Authoring Practices as the focus is not sent to another element (like the <body>
) when the Escape key is pressed.If you want to restore the previous behavior, add the following to your md-autocomplete
components:
md-escape-options="blur clear"
md-auto-focus
directive. It was deprecated in favor of md-autofocus
. Please see the md-autofocus Docs for examples.md-button
's internal horizontal padding has changed from 6px
to 8px
to match the Material Design spec. This may affect the layout of portions of your application where md-button
, md-datepicker
, or md-toast
with actions are used.If you are using our SCSS files, you can override this back to the default, or another value, in your app's SCSS files:
$button-left-right-padding: rem(0.600); // For 6px horizontal padding
class="md-actions"
inside of an md-card
template. This is deprecated in favor of using the <md-card-actions>
element.md-checkbox
labels, then you may need to remove or change that code now. This is because we automatically detect <a>
tags in these labels and re-render them in an accessible way.md-checkbox
has been updated to align with the Material Design specification. Additionally, many new Sass variables have been added for customizing the size and spacing of md-checkbox
. The md-dense
class is now supported. After updating to this version, you may need to adjust the layout of your app due to the larger touch-friendly size of checkbox. You may also want to make use of md-dense
in cases where space is limited.$chip-font-size
was reduced to 13px
from 16px
. $chip-remove-padding-right
was increased to 28px
from 22px
. These changes may cause your chips to have a smaller, denser layout now. In certain scenarios, this may require minor changes to your app's layout. You can change these variables back to their old values if your app consumes Sass. Additionally, the remove chip icon has been changed, but you can use the custom chip template demo as a guide to changing back to the old icon, if desired.md-on-append
attribute. It was deprecated in favor of md-transform-chip
or the simple notifier md-on-add
. Please see the md-chips Demos for examples of using md-transform-chip
.MdChipsCtrl.selectAndFocusChip()
function has been removed.
MdChipsCtrl.selectAndFocusChipSafe()
should be used instead.class="md-actions"
inside of an md-dialog
template. This was deprecated in favor of using the <md-dialog-actions>
element..content('string')
methods and options. These were deprecated in favor of .textContent('string')
and .htmlContent('sanitized-string')'
methods and their associated options. Please note that use of .htmlContent
requires that the ngSanitize
module be loaded.If you have
alert = $mdDialog.alert()
.content('This is an example.');
It needs to be changed to
alert = $mdDialog.alert()
.textContent('This is an example.');
If you have
alert = $mdDialog.alert({
content: 'This is an example.'
});
It needs to be changed to
alert = $mdDialog.alert({
textContent: 'This is an example.'
});
input-container: md-input
and md-select
inside of md-input-container
s have been updated to use indentation that is consistent with the spec (aligned to the left in LTR and the right in RTL). This may cause some minor layout issues in apps that depended upon the previous 2px
padding inside of md-input-container
.
layout: The way that margins are applied to md-checkbox
, md-input-container
, md-radio-group
, and md-select
has been changed. You can now use the $default-horizontal-margin
Sass variable to override the default 16px
horizontal margin size. As part of this, md-radio-button
s inside of layout="row"
containers are now aligned vertically with other content as they no longer have a 16px
margin-bottom
. If you have previously added custom styles, to your components inside of a row layout, in order to give them extra margin-right
in LTR or margin-left
in RTL, you will need to re-evaluate those styles. In most cases, they can now be removed.
layout: Removed the deprecated, undocumented *-lt-*
layout attributes and classes. This includes the following attributes and their matching classes, which have been giving deprecation warnings since 2015:
list: md-list
with the md-dense
class has been updated to align with the Material Design specification. This means that md-list-item
s heights have changed when using md-dense
. The md-dense-disabled
class is now supported on md-list
. After updating to this version, you may need to adjust the layout of your app if you use md-dense
with md-list
or customize the layout of md-checkbox
s within md-list-item
s.
$mdCompilerProvider: The deprecated $mdCompilerProvider.respectPreAssignBindingsEnabled()
API has been removed.
We no longer respect AngularJS's $compileProvider.preAssignBindingsEnabled()
value as this API was removed
in AngularJS 1.7.0
.
If you had the recommended configuration for AngularJS 1.6.x:
$compileProvider.preAssignBindingsEnabled(false);
$mdCompilerProvider.respectPreAssignBindingsEnabled(true);
Then you should remove both of these calls as they are now the defaults in AngularJS 1.7.0
and AngularJS Material 1.2.0
.
If you had the recommended configuration for AngularJS 1.7+:
$mdCompilerProvider.respectPreAssignBindingsEnabled(true);
Then you should remove this call as it is now the default in AngularJS Material 1.2.0
.
If you were using a backwards-compatible configuration for AngularJS 1.6+:
$mdCompilerProvider.respectPreAssignBindingsEnabled(false);
Then you will need to remove this call and may need to refactor your Controllers for
AngularJS Material components like $mdDialog
, $mdPanel
, $mdToast
, or $mdBottomSheet
.
For example:
$mdDialog.show({
locals: {
myVar: true
},
controller: MyController,
bindToController: true
}
function MyController() {
// No locals from Angular Material are available. e.g myVar is undefined.
// You would need to move anything accessing locals in here to $onInit().
}
MyController.prototype.$onInit = function() {
// Bindings are now available in the $onInit lifecycle hook.
}
$mdOpenMenu
API. It was deprecated in favor of $mdMenu.open
.MdPanelRef.addClass()
, MdPanelRef.removeClass()
, and MdPanelRef.toggleClass()
functions have been removed. These were deprecated in 2016 in favor of using the panelContainer
or panelEl
JQLite elements that are referenced in the MdPanelRef object.ngMultiple
has been renamed to mdMultiple
to make it clear that this
API is provided by AngularJS Material and not by AngularJS.If you had:
<md-select ng-multiple="expression">...</md-select>
You need to change to:
<md-select md-multiple="expression">...</md-select>
$media
service in md-is-locked-open
. This was deprecated in favor of the $mdMedia
service. The functionality is the same and only a rename to the current name of the service is required.md-sidenav-focus
directive. It was deprecated in favor of md-autofocus
. Please see the md-autofocus Docs and md-sidenav Basic Usage Demo for examples.min-width
and padding
which matches the Material Design specification. For width, this is 72px
on xs
screens and 160px
on all other screens. For left and right padding
, this is now 12px
instead of 24px
. If your app needs to have tabs which are smaller than the spec, you will need to override md-tab-item
's min-width
and md-tab
's padding
styles.$mdThemingProviderTheme.primaryColor()
and the related accent/warn/background APIs. These were deprecated in favor of $mdThemingProviderTheme.primaryPalette()
(and accent/warn/background) in 2015 and they have been logging warnings when used since then.1.2.0
. There may be edge cases in your app or custom styles that need to be updated to meet accessibility guidelines.If you find significant accessibility issues after updating, please report them to us. In 1.2.x
, we have a lot more control over our component theming in regards to hues and opacities.
If your app is using a custom palette, whether based on a copy of default palette or not, we encourage you to evaluate that your contrast configuration meets the WebAIM guidelines. Please review our guide on Defining Custom Palettes for details.
$mdToast.show()
's position behavior has been updated to be consistent with the documentation. If you relied on the previously undocumented behavior where it defaulted to top left
instead of bottom left
, you will need to update your app.Change your code from this:
$mdToast.show(
$mdToast.simple()
.textContent('Simple Toast!'))
.then(...
To this:
$mdToast.show(
$mdToast.simple()
.textContent('Simple Toast!')
.position('top left'))
.then(...
content()
and updateContent()
methods have been removed.If you had:
$mdToast.show($mdToast.simple().content('This no longer works.'));
You will need to change to:
$mdToast.show($mdToast.simple().textContent('This works.'));
If you had:
$mdToast.updateContent('This no longer works.');
You will need to change to:
$mdToast.updateTextContent('This works.');
If you had:
$mdToast.show($mdToast.simple({parent: parent, content: 'This no longer works.', theme: 'some-theme', capsule: true}));
You will need to change to:
$mdToast.show($mdToast.simple({parent: parent, textContent: 'This works.', theme: 'some-theme', capsule: true}));
Thank you to the contributors who helped with the v1.2.0 release:
<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117"> |<img alt="jelbourn" src="https://avatars3.githubusercontent.com/u/838736?v=4&s=117" width="117"> |<img alt="clshortfuse" src="https://avatars3.githubusercontent.com/u/9271155?v=4&s=117" width="117"> |<img alt="oliversalzburg" src="https://avatars2.githubusercontent.com/u/1658949?v=4&s=117" width="117"> |<img alt="batsauto" src="https://avatars3.githubusercontent.com/u/17678174?v=4&s=117" width="117"> |<img alt="wagnermaciel" src="https://avatars1.githubusercontent.com/u/25158423?v=4&s=117" width="117"> | :---: |:---: |:---: |:---: |:---: |:---: | Splaktar |jelbourn |clshortfuse |oliversalzburg |batsauto |wagnermaciel |
<img alt="tomaszgrabowski" src="https://avatars0.githubusercontent.com/u/6688790?v=4&s=117" width="117"> | :---: | tomaszgrabowski |
<a name="1.2.0-rc.2"></a>
Changelog
1.2.1 (2020-09-23)
Thank you to the contributors who helped with the v1.2.1 release:
<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117"> |<img alt="mmalerba" src="https://avatars1.githubusercontent.com/u/14793288?v=4&s=117" width="117"> |<img alt="josephperrott" src="https://avatars2.githubusercontent.com/u/10864441?v=4&s=117" width="117"> |<img alt="cgx" src="https://avatars2.githubusercontent.com/u/1088448?v=4&s=117" width="117"> | :---: |:---: |:---: |:---: | Splaktar |mmalerba |josephperrott |cgx |
<a name="1.1.26"></a>
Changelog
1.2.0-rc.2 (2020-07-28)
md-checkbox
, md-input-container
, md-radio-group
, and md-select
has been changed. You can now use the $default-horizontal-margin
Sass variable to override the default 16px
horizontal margin size. As part of this, md-radio-button
s inside of layout="row"
containers are now aligned vertically with other content as they no longer have a 16px
margin-bottom
. If you have previously added custom styles, to your components inside of a row layout, in order to give them extra margin-right
in LTR or margin-left
in RTL, you will need to re-evaluate those styles. In most cases, they can now be removed.$media
service in md-is-locked-open
. This was deprecated in favor of the $mdMedia
service. The functionality is the same and only a rename to the current name of the service is required..content('string')
methods and options. These were deprecated in favor of .textContent('string')
and .htmlContent('sanitized-string')'
methods and their associated options. Please note that use of .htmlContent
requires that the ngSanitize
module be loaded.If you have
alert = $mdDialog.alert()
.content('This is an example.');
It needs to be changed to
alert = $mdDialog.alert()
.textContent('This is an example.');
If you have
alert = $mdDialog.alert({
content: 'This is an example.'
});
It needs to be changed to
alert = $mdDialog.alert({
textContent: 'This is an example.'
});
$mdThemingProviderTheme.primaryColor()
and the related accent/warn/background APIs. These were deprecated in favor of $mdThemingProviderTheme.primaryPalette()
(and accent/warn/background) in 2015 and they have been logging warnings when used since then.*-lt-*
layout attributes and classes. This includes the following attributes and their matching classes, which have been giving deprecation warnings since 2015:md-auto-focus
directive. It was deprecated in favor of md-autofocus
. Please see the md-autofocus Docs for examples.md-sidenav-focus
directive. It was deprecated in favor of md-autofocus
. Please see the md-autofocus Docs and md-sidenav Basic Usage Demo for examples.$mdOpenMenu
API. It was deprecated in favor of $mdMenu.open
.md-on-append
attribute. It was deprecated in favor of md-transform-chip
or the simple notifier md-on-add
. Please see the md-chips Demos for examples of using md-transform-chip
.class="md-actions"
inside of an md-card
template. This is deprecated in favor of using the <md-card-actions>
element.class="md-actions"
inside of an md-dialog
template. This was deprecated in favor of using the <md-dialog-actions>
element.MdPanelRef.addClass()
, MdPanelRef.removeClass()
, and MdPanelRef.toggleClass()
functions have been removed. These were deprecated in 2016 in favor of using the panelContainer
or panelEl
JQLite elements that are referenced in the MdPanelRef object.Thank you to the contributors who helped with the v1.2.0-rc.2 release:
<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117"> |<img alt="clshortfuse" src="https://avatars3.githubusercontent.com/u/9271155?v=4&s=117" width="117"> |<img alt="wagnermaciel" src="https://avatars1.githubusercontent.com/u/25158423?v=4&s=117" width="117"> | :---: |:---: |:---: | Splaktar |clshortfuse |wagnermaciel |
<a name="1.2.0-rc.1"></a>
Changelog
1.2.0-rc.1 (2020-07-23)
md-list
with the md-dense
class has been updated to align with the Material Design specification. This means that md-list-item
s heights have changed when using md-dense
. The md-dense-disabled
class is now supported on md-list
. After updating to this version, you may need to adjust the layout of your app if you use md-dense
with md-list
or customize the layout of md-checkbox
s within md-list-item
s.md-button
's internal horizontal padding has changed from 6px
to 8px
to match the Material Design spec. This may affect the layout of portions of your application where md-button
, md-datepicker
, or md-toast
with actions are used.If you are using our SCSS files, you can override this back to the default, or another value, in your app's SCSS files:
$button-left-right-padding: rem(0.600); // For 6px horizontal padding
$mdCompilerProvider.respectPreAssignBindingsEnabled()
API has been removed.
We no longer respect AngularJS's $compileProvider.preAssignBindingsEnabled()
value as this API was removed
in AngularJS 1.7.0
.If you had the recommended configuration for AngularJS 1.6.x:
$compileProvider.preAssignBindingsEnabled(false);
$mdCompilerProvider.respectPreAssignBindingsEnabled(true);
Then you should remove both of these calls as they are now the defaults in AngularJS 1.7.0
and AngularJS Material 1.2.0
.
If you had the recommended configuration for AngularJS 1.7+:
$mdCompilerProvider.respectPreAssignBindingsEnabled(true);
Then you should remove this call as it is now the default in AngularJS Material 1.2.0
.
If you were using a backwards-compatible configuration for AngularJS 1.6+:
$mdCompilerProvider.respectPreAssignBindingsEnabled(false);
Then you will need to remove this call and may need to refactor your Controllers for
AngularJS Material components like $mdDialog
, $mdPanel
, $mdToast
, or $mdBottomSheet
.
For example:
$mdDialog.show({
locals: {
myVar: true
},
controller: MyController,
bindToController: true
}
function MyController() {
// No locals from Angular Material are available. e.g myVar is undefined.
// You would need to move anything accessing locals in here to $onInit().
}
MyController.prototype.$onInit = function() {
// Bindings are now available in the $onInit lifecycle hook.
}
content()
and updateContent()
methods have been removed.If you had:
$mdToast.show($mdToast.simple().content('This no longer works.'));
You will need to change to:
$mdToast.show($mdToast.simple().textContent('This works.'));
If you had:
$mdToast.updateContent('This no longer works.');
You will need to change to:
$mdToast.updateTextContent('This works.');
If you had:
$mdToast.show($mdToast.simple({parent: parent, content: 'This no longer works.', theme: 'some-theme', capsule: true}));
You will need to change to:
$mdToast.show($mdToast.simple({parent: parent, textContent: 'This works.', theme: 'some-theme', capsule: true}));
ngMultiple
has been renamed to mdMultiple
to make it clear that this
API is provided by AngularJS Material and not by AngularJS.If you had:
<md-select ng-multiple="expression">...</md-select>
You need to change to:
<md-select md-multiple="expression">...</md-select>
MdChipsCtrl.selectAndFocusChip()
function has been removed.
MdChipsCtrl.selectAndFocusChipSafe()
should be used instead.1.2.0
. There may be edge cases in your app or custom styles that need to be updated to meet accessibility guidelines.If you find significant accessibility issues after updating, please report them to us. In 1.2.x
, we have a lot more control over our component theming in regards to hues and opacities.
If your app is using a custom palette, whether based on a copy of default palette or not, we encourage you to evaluate that your contrast configuration meets the WebAIM guidelines. Please review our guide on Defining Custom Palettes for details.
min-width
and padding
which matches the Material Design specification. For width, this is 72px
on xs
screens and 160px
on all other screens. For left and right padding
, this is now 12px
instead of 24px
. If your app needs to have tabs which are smaller than the spec, you will need to override md-tab-item
's min-width
and md-tab
's padding
styles.md-checkbox
labels, then you may need to remove or change that code now. This is because we automatically detect <a>
tags in these labels and re-render them in an accessible way.md-input
and md-select
inside of md-input-container
s have been updated to use indentation that is consistent with the spec (aligned to the left in LTR and the right in RTL). This may cause some minor layout issues in apps that depended upon the previous 2px
padding inside of md-input-container
.md-checkbox
has been updated to align with the Material Design specification. Additionally, many new Sass variables have been added for customizing the size and spacing of md-checkbox
. The md-dense
class is now supported. After updating to this version, you may need to adjust the layout of your app due to the larger touch-friendly size of checkbox. You may also want to make use of md-dense
in cases where space is limited.$mdToast.show()
's position behavior has been updated to be consistent with the documentation. If you relied on the previously undocumented behavior where it defaulted to top left
instead of bottom left
, you will need to update your app.Change your code from this:
$mdToast.show(
$mdToast.simple()
.textContent('Simple Toast!'))
.then(...
To this:
$mdToast.show(
$mdToast.simple()
.textContent('Simple Toast!')
.position('top left'))
.then(...
Thank you to the contributors who helped with the v1.2.0-rc.1 release:
<img alt="Splaktar" src="https://avatars1.githubusercontent.com/u/3506071?v=4&s=117" width="117"> |<img alt="jelbourn" src="https://avatars3.githubusercontent.com/u/838736?v=4&s=117" width="117"> |<img alt="clshortfuse" src="https://avatars3.githubusercontent.com/u/9271155?v=4&s=117" width="117"> |<img alt="oliversalzburg" src="https://avatars2.githubusercontent.com/u/1658949?v=4&s=117" width="117"> |<img alt="batsauto" src="https://avatars3.githubusercontent.com/u/17678174?v=4&s=117" width="117"> |<img alt="tomaszgrabowski" src="https://avatars0.githubusercontent.com/u/6688790?v=4&s=117" width="117"> | :---: |:---: |:---: |:---: |:---: |:---: | Splaktar |jelbourn |clshortfuse |oliversalzburg |batsauto |tomaszgrabowski |
<a name="1.1.24"></a>