--- title: April 2019 Update description: Here are the most significant improvements in April. date: 2019-05-07T00:00:00.000Z authors: ['oliviertassinari'] tags: ['Company'] manualCard: true --- Here are the most significant improvements in April: - πŸ“š We have migrated [most](https://github.com/mui/material-ui/issues/14897) of our demos to TypeScript. **@eps1lon** has lead the effort. You can switch between the JavaScript demo and the TypeScript demo using this toggle button: ![TypeScript switch](/static/blog/april-2019-update/typescript.png) This was only possible thanks to the contributions **@merceyz**, **@sperry94**, **@jasondashwang**, **@bh1505**, **@donigianrp**, **@Dudrie**, **@eluchsinger**, **@cahilfoley**, **@gabrielgene**, **@kenzhemir**, **@Adherentman**, **@lksilva**, **@Tevinthuku**. Thank you! Supporting these TypeScript demos has one important implication, it forces us to have working TypeScript definitions ✨. - πŸŽ€ We have migrated a large chunk of our components from classes to hooks. **@joshwooding** has lead the effort. We will explain why in the v4 release blog post. - πŸ“ We have updated our components to better match the Material Design guidelines (Snackbar, List, Checkbox, Radio & Switch). - 🎁 We have added a demo for building a [TransferList](/material-ui/react-transfer-list/) component. [![Transfer list](/static/blog/april-2019-update/transfer-list.png)](/material-ui/react-transfer-list/) - πŸ’… We have changed the class name generation to output global class names. We have seen many people struggling with our `classes` API. This API targets plain CSS and styled-components users. It can be challenging to apply your class name on the right element with the `classes` API. It can also be cumbersome. ⚠️ Using global class names provide more power but comes with a responsibility. We encourage any pattern that increases your **custom style isolation**. [![Global class names](/static/blog/april-2019-update/global-class-names.png)](https://v6.mui.com/system/styles/advanced/) - πŸ“… We have moved material-ui-pickers to our organization: [@material-ui/pickers](https://www.npmjs.com/package/@material-ui/pickers). A big thanks to **@dmtrKovalenko** for creating and owning these date/time components. - πŸ”₯ We have fixed more Strict Mode warnings, getting us closer to [Concurrent React](https://legacy.reactjs.org/blog/2018/11/27/react-16-roadmap.html#react-16x-q2-2019-the-one-with-concurrent-mode) support. - ♿️ We have significantly improved the keyboard behavior on the Select, Menu, Button and Tooltip components. The arrow key changes feel instantaneous. The select items can be selected with the alphabetical keys. The focus visible state is better detected. - πŸ’„ We have added support for responsive font sizes. You can wrap your theme with [`responsiveFontSizes()`](/material-ui/customization/typography/#responsive-font-sizes): [![Responsive font sizes](/static/blog/april-2019-update/responsive.png)](/material-ui/customization/typography/#responsive-font-sizes) - We have added support for custom [header scroll behaviors](/material-ui/react-app-bar/#scrolling): But this summary is just scratching the surface. We have accepted 243 commits from 69 different contributors. We have changed 1,545 files with 36,461 additions and 20,237 deletions. ## Our roadmap intent for May _(We'll do our best, no guarantee!)_ - We will release MaterialΒ UI v4 stable during the React Europe conference. - We will start an effort to support more components. So far, we have identified a couple of useful ones: - Layout - Combobox - Slider (& range) - Dropdown - Tree view - Dropzone / Upload - Skeleton - Jumbotron - Carousel - Rating - Timeline - Something big 🌈 - ❓ Please upvote our [GitHub issues](https://github.com/mui/material-ui/issues) if you want something specific. The number of πŸ‘ helps us to prioritize.