@angular/material
Advanced tools
Changelog
20.0.0 "calcium-carrot" (2025-05-28)
SelectionModel.clear
now returns a boolean.SelectionModel.deselect
now returns a boolean.SelectionModel.select
now returns a boolean.SelectionModel.setSelection
now returns a boolean.SelectionModel.toggle
now returns a boolean.DIALOG_SCROLL_STRATEGY_PROVIDER
has been removed.DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY
has been removed.DragDropRegistry
is no longer generic.DragDropRegistry.scroll
has been removed. Use the scrolled
method instead.DomPortalHost
has been removed. Use DomPortalOutlet
instead.PortalInjector
has been removed. Use Injector.create
instead.PortalHost
has been removed. Use PortalOutlet
instead.BasePortalHost
has been removed. Use BasePortalOutlet
instead.Constructor
symbol has been removed.CanStickCtor
symbol has been removed.mixinHasStickyInput
has been removed. Implement the CanStick
interface instead.CanStick
has been removed.CDK_TABLE_TEMPLATE
has been removed.StickyDirection
has been removed.StickyStyler
has been removed.ButtonVariant
which is returned by MatButtonHarness.getVariant
no longer includes the appearance of the button. Use MatButtonHarness.getAppearance
instead.tabindex
values set as [attr.tabindex]
set on a Material button might not work as expected. Use tabindex
for static values, or [tabindex]
/[tabIndex]
for dynamic ones.MAT_CHECKBOX_REQUIRED_VALIDATOR
has been removed.MAT_CHECKBOX_VALUE_ACCESSOR
has been removed.MatCheckboxRequiredValidator
has been removed._MatCheckboxRequiredValidatorModule
has been removed.MAT_DIALOG_SCROLL_STRATEGY_PROVIDER
has been removed.MAT_DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY
has been removed.matSelectAnimations.transformPanelWrap
has been removed.MAT_SLIDE_TOGGLE_REQUIRED_VALIDATOR
has been removed.MAT_SLIDE_TOGGLE_VALUE_ACCESSOR
has been removed.MatSlideToggleRequiredValidator
has been removed._MatSlideToggleRequiredValidatorModule
has been removed.DialogConfig.componentFactoryResolver
has been removed.DomPortalOutlet
has changed.ComponentPortal.componentFactoryResolver
has been removed.ComponentPortal
has changed.MatDialogConfig.componentFactoryResolver
has been removed.| Commit | Type | Description | | -- | -- | -- | | e456c751c | feat | listbox: add cdk-active class (#30932) | | 6ac4c1ae2 | feat | listbox: readonly mode (#30803) | | 96fa9fc55 | feat | popover-edit: Support skipping over annotated rows when the user moves focus up/down. (#30916) | | 025010b64 | feat | tabs: add cdk-active class and update example styles (#30950) | | 9a94bb76a | feat | tabs: support initial tab selection and add unit tests (#31023) | | 1833aa32e | feat | ui-patterns: add expansion behavior and refactor tabs (#30962) | | fc4699744 | feat | ui-patterns: listbox ui pattern (#30495) | | 9caed2a8a | feat | ui-patterns: tabs ui pattern (#30568) | | e0446ecfc | fix | listbox: change shift+nav behavior (#30854) | | 184ceee3a | fix | listbox: ignore spaces during typeahead (#30766) | | 44e9ccbf5 | fix | listbox: initial listbox focus state (#30764) | | a7df65f3e | fix | listbox: use meta as alternative to ctrl (#30852) | | 149fe6129 | fix | popover-edit: use MutationObserver to detect table rows (#30713) | | 16493ecab | fix | scrolling: Fix ExpressionChangedAfterItWasCheckedError (#31076) | | 0e391700c | fix | tabs: handle space and enter events (#30889) | | 2e34b20cb | fix | ui-patterns: add missing event handlers (#30786) | | 4bf3591c7 | fix | ui-patterns: add modifier checks for regexps (#30738) | | ae8f9dd28 | fix | ui-patterns: fix lint and build config (#30877) | | 10890983c | fix | ui-patterns: listbox pointer event handler (#30843) | | 7343657f5 | fix | ui-patterns: small fixes for internal compatibi… (#30625) |
| Commit | Type | Description | | -- | -- | -- | | 18ddea330 | fix | use safevalues (#30773) |
| Commit | Type | Description | | -- | -- | -- | | fb81ab4f2 | feat | button: add support for tonal button (#30638) | | e79f60558 | feat | button: allow appearance to be set dynamically | | 663585a1c | feat | card: support filled variant (#29868) | | 82f0fa6fa | feat | core: handle prefers-reduced-motion automatically (#30796) | | 3daa36030 | feat | core: introduce custom token for controlling animations (#30749) | | 764a1ccd1 | feat | dialog: add closePredicate option | | 097f49d90 | fix | autocomplete: allow overlay backdrop by setting hasBackdrop option (#30631) | | 7d360ac77 | fix | button-toggle: changed after checked error when updating tabindex (#31172) | | 2c7199c02 | fix | button: align harness with new terminology | | 6a5943d8b | fix | button: combine MatButton and MatAnchor (#30492) | | 3aecb3521 | fix | button: tonal touch target token transgression (#30688) | | 77d6b69e7 | fix | checkbox: breaking changes for v20 | | 907815dc5 | fix | checkbox: hardcode token renames (#30752) | | f01ac6e9c | fix | checkbox: resolve change after checked error | | aba4c4437 | fix | chips: chip input not showing placeholder (#30664) | | 33795a1a1 | fix | chips: implement disabledInteractive in chip input (#30665) | | 92bcc67c2 | fix | core: include density tokens in system theme (#30845) | | 5bc01c398 | fix | datepicker: resolve change after checked errors | | 227e83d24 | fix | dialog: breaking changes for v20 | | a5aade2df | fix | form-field: preserve aria-describedby set externally across all form controls (#30699) | | ec538b598 | fix | form-field: use ResizeObserver for label offset calculation (#30702) | | d120f973f | fix | list: resolve changed after checked error | | fd162d201 | fix | schematics: add schematic to rename tokens (#31051) | | db090cac3 | fix | select: breaking changes for v20 | | 688c430fe | fix | select: close panel on detach output event (#30634) | | 12f96e229 | fix | select: resolve change after checked errors | | 404868707 | fix | sidenav: resolve changed after checked error | | c6ad44c68 | fix | slide-toggle: breaking changes for v20 | | d3a8c5b89 | fix | slide-toggle: opacity tokens not being used (#30946) | | 2d86ad441 | fix | slider: fix clobbered token for hover/focus/pressed (#30754) | | 0e985f2c6 | fix | slider: handle null values in slider input (#30621) | | 8b033742b | fix | snack-bar: change politeness level (#30851) | | 40d0ab4fc | fix | snack-bar: rename snackbar token prefix (#30750) | | 0cf6ba107 | fix | stepper: done icon tokens not emitted in M3 (#30996) | | e1f97f920 | fix | stepper: resolve changed after checked errors | | c63b1fe7b | fix | tabs: flicker when animationDuration is set to zero (#30966) | | 922c678c0 | fix | tabs: not emitting token in M3 (#31136) | | 1a800decc | fix | tabs: resolve change after checked errors | | 6c9678e69 | perf | form-field: set notch outline variable only on relevant element (#30955) | | 10a6ea493 | perf | form-field: split DOM accesses into read and write (#31086) |
| Commit | Type | Description |
| -- | -- | -- |
| 06821d85a | feat | dialog: add closePredicate option |
| cf619601a | feat | drag-drop: introduce resetToBoundary
(#30436) |
| 77c8534ff | fix | accordion: resolve changed after checked error |
| 1167d0638 | fix | collections: breaking changes for v20 |
| 79e887219 | fix | dialog: breaking changes for v20 |
| a2ab84da1 | fix | dialog: provide proper shaped Directionality (#30898) |
| b3e516f2d | fix | drag-drop: breaking changes for v20 |
| 69eedd75f | fix | drag-drop: incorrect type DragConstrainPosition (#30510) |
| f9973ee23 | fix | overlay: use MutationObserver to detach overlay (#30703) |
| 11599f808 | fix | portal: remove deprecated symbols (#30584) |
| 87501e866 | fix | schematics: support project index file discovery for object-form and default (#30967) |
| 8078efc21 | fix | table: breaking changes for v20 |
| 0f48b04dd | fix | table: move out unused style scheduler (#30963) |
| 6ffe9c748 | fix | table: remove private symbols from public API (#30956) |
| 08f4acfef | perf | overlay: add tree-shakeable alternatives for overlay APIs (#30904) |
| Commit | Type | Description | | -- | -- | -- | | 3a1a0b368 | fix | streamline directive and component metadata handling in dgeni (#30661) |
| Commit | Type | Description | | -- | -- | -- | | e1cf2844f | fix | avoid repeating selectors in m3 themes (#30645) | | 3465f9271 | fix | ensure mat-option parents are the offsetParent (#30977) | | cb3b0a87a | fix | ensure re-exported module symbols can be imported (#30667) | | 590971359 | fix | remove backwards-compatibility code (#30747) | | cda5c8e68 | fix | remove remaining references to ComponentFactoryResolver (#30569) | | 5229fe0a0 | fix | rename hardcoded tokens that were renamed (#30807) | | 9bf4be9e2 | fix | rename token prefixes to match components (#30802) | | 32353fb3a | fix | resolve directive host binding issues (#30606) | | 48894ad55 | fix | use DI token for tag name (#30892) |
<!-- CHANGELOG SPLIT MARKER --><a name="19.2.18"></a>
Changelog
19.2.18 "calcium-coconut" (2025-05-28)
<!-- CHANGELOG SPLIT MARKER --><a name="19.2.17"></a>
Changelog
19.2.17 "fulgurite-fiesta" (2025-05-21)
| Commit | Type | Description | | -- | -- | -- | | 0e300d1041 | fix | datepicker: prevent calendar from stealing away focus (#31128) | | af04c772ed | fix | dialog: use custom token to disable animations (#31156) | | 306eef1d74 | fix | radio: assistive technology announcing button as invalid (#31160) | | bd614b4a69 | fix | radio: updating required value should mark for check (#31109) | | ca231dc9b8 | fix | sidenav: removes -1 tabindex from sidenav (#31155) | | 33d8f3347e | fix | tabs: avoid not having any focusable tabs (#31144) |
<!-- CHANGELOG SPLIT MARKER --><a name="20.0.0-rc.1"></a>
Changelog
20.0.0-rc.1 "plastic-zebra" (2025-05-14)
| Commit | Type | Description | | -- | -- | -- | | cbffce88e3 | fix | button-toggle: use smaller border radius (#31084) | | aec28e2507 | fix | button: inherit button shape in focus indicator (#31065) | | fd162d2018 | fix | schematics: add schematic to rename tokens (#31051) | | 71a9d88b29 | fix | schematics: incorrect on-tertiary color being generated (#31061) | | 10a6ea493b | perf | form-field: split DOM accesses into read and write (#31086) |
| Commit | Type | Description | | -- | -- | -- | | 08ccf3c685 | fix | column-resize: Obscure weird behavior in tables that are too wide by conditionally disabling resize (#31100) |
<!-- CHANGELOG SPLIT MARKER --><a name="19.2.16"></a>
Changelog
19.2.16 "metal-monkey" (2025-05-14)
| Commit | Type | Description | | -- | -- | -- | | 08f5fda901 | fix | button-toggle: use smaller border radius (#31084) | | 68928e58aa | fix | button: inherit button shape in focus indicator (#31065) | | 6abe7510b2 | fix | schematics: incorrect on-tertiary color being generated (#31061) |
| Commit | Type | Description | | -- | -- | -- | | af0b4638f2 | fix | column-resize: Obscure weird behavior in tables that are too wide by conditionally disabling resize (#31100) |
<!-- CHANGELOG SPLIT MARKER --><a name="20.0.0-rc.0"></a>
Changelog
20.0.0-rc.0 "aluminium-axe" (2025-05-07)
| Commit | Type | Description | | -- | -- | -- | | 9a94bb76a | feat | tabs: support initial tab selection and add unit tests (#31023) | | 1833aa32e | feat | ui-patterns: add expansion behavior and refactor tabs (#30962) |
| Commit | Type | Description | | -- | -- | -- | | 05302747d | fix | Automatic scrolling fails on screens smaller than 721px due to flexbox behavior (#31037) |
<!-- CHANGELOG SPLIT MARKER --><a name="19.2.15"></a>
Changelog
19.2.15 "abuite-ant" (2025-05-07)
| Commit | Type | Description | | -- | -- | -- | | 85e448678 | fix | dialog: avoid setting aria-hidden before focus has moved (#31030) (#31036) |
| Commit | Type | Description | | -- | -- | -- | | 02a893a6d | fix | Automatic scrolling fails on screens smaller than 721px due to flexbox behavior (#31037) |
<!-- CHANGELOG SPLIT MARKER --><a name="20.0.0-next.10"></a>
Changelog
20.0.0-next.10 "sodium-swallow" (2025-05-01)
<!-- CHANGELOG SPLIT MARKER --><a name="20.0.0-next.9"></a>