--- title: Q1 2021 Update description: An update on our mission for Q1 2021. date: 2021-04-12T00: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 months ahead. ## Product Here are the most significant improvements since December 2020. ### Core components - πŸ‘©β€πŸŽ€ We have worked on rolling out and scaling the new **styling engine** to all the components. At this point, we have migrated 129 out of 167 components to emotion/styled-components. Most of the components left to be migrated are in the lab. We are almost done! You can subscribe to [material-ui#24405](https://github.com/mui/material-ui/issues/24405) to be notified once finished. The community has provided invaluable assistance. - πŸ“š To complement the migration of the components, we have worked on the migration of the code examples in the documentation, favoring the `sx` prop where possible. When a component needs to render styles based on the provided props, we have used the `styled` API. Effectively, `makeStyle` and `withStyles` have been removed from the demos (we will deprecate these modules later on). You can subscribe to [material-ui#16947](https://github.com/mui/material-ui/issues/16947) to be notified once finished. - πŸ“š We have used the update of the documentation as an opportunity to break down the demos into smaller **single-focus** ones, with inline previews. For instance:

Before

was turned into multiple chunks, among them:

After

- πŸ₯ž We have introduced a new `` component. It handles one-dimensional layouts. It allows working around the lack of browser support for the flexbox `gap` CSS property ([no support](https://caniuse.com/flexbox-gap) in Safari). You can find [more details](https://mui.com/material-ui/react-stack/) in the documentation. - 🎨 We have improved the support for custom colors and variants. This is [one](https://github.com/mui/material-ui/issues/13875) of the most upvoted issues in the GitHub issue tracker. The migration to the new style engine allows us to fully rely on dynamic styles. Developers can now do the following: ```jsx import { createMuiTheme, Button } from '@mui/material'; // 1. Extend the theme. const theme = createMuiTheme({ palette: { neutral: { main: '#5c6ac4', }, }, }); // 2. Notify TypeScript about the new color in the palette declare module '@mui/material/styles' { interface Palette { neutral: Palette['primary']; } interface PaletteOptions { neutral: PaletteOptions['primary']; } } // 3. Profit