--- title: Q3 2020 Update description: An update on our mission for Q3 2020. date: 2020-10-14T00:00:00.000Z authors: ['oliviertassinari'] tags: ['Company'] manualCard: true --- This update covers our progress over the last three months, and what we aim to achieve in the coming months. ## Product Here are the most significant improvements since June 2020. This was a dense quarter! - ๐Ÿšง We have started the quarter with the first pre-release [v5.0.0-alpha.1](https://github.com/mui/material-ui/releases?after=v5.0.0-alpha.1) of the next major iteration of the library. There have been eleven more pre-releases since then. During the alpha development stage of version 5, we are focusing on making the planned breaking changes, as well as developing new features. On the breaking changes side, we have made almost half of the changes that we have planned. - ๐Ÿงช We have promoted 7 components from the lab to the core: Alert, Autocomplete, Pagination, Rating, Skeleton, SpeedDial, and ToggleButton. Thank you for all your feedback on these components. While we still plan a couple of breaking changes on them, we are confident that they have reached the same level of quality as the other core components. - ๐Ÿ‘ฎ We have introduced a new component in the lab, the [FocusTrap](https://v6.mui.com/base-ui/react-focus-trap/). It manages focus for its descendants. This is useful when implementing overlays such as modal dialogs, which should not allow the focus to escape while open: - โš›๏ธ We have prepared the support for the upcoming release of [React v17](https://legacy.reactjs.org/blog/2020/08/10/react-v17-rc.html). Most of the work was about better handling events, and updating our test infrastructure to run the whole test suite with the _latest_ and _next_ version of React.
We have also improved `StrictMode` support. The last standing issues are being addressed with the work on the style engine. More on that later in the post. - ๐Ÿ’… We have introduced a new dynamic variant API. This API allows developers to add new variants to Materialย UI components right from the theme, without having to wrap the components. For instance with the Button: ```tsx // Define the style that should be applied for specific props. const theme = createMuiTheme({ components: { MuiButton: { variants: [ { props: { variant: 'dashed', color: 'secondary' }, styles: { border: `4px dashed ${red[500]}`, }, }, ], }, }, }); // Optionally retain type safety: declare module '@mui/material/Button' { interface ButtonPropsVariantOverrides { dashed: true; } } // Enjoy!