Skip to content

v3.5.1

Compare
Choose a tag to compare
@oliviertassinari oliviertassinari released this 12 Nov 23:16
· 17944 commits to master since this release
Nov 13, 2018

Big thanks to the 13 contributors who made this release possible!

Here are some highlights ✨:

The Material-UI's styling solution has pretty much stayed the same for the last 12 months.
Some interesting CSS-in-JS libraries like styled-components, emotion or linaria have emerged.
This new package is a significant step forward. Some of the key features:

  • Supports 4 different APIs: hooks, styled-components, higher-order components and render props.
  • Allow accessing the component's props from within the style object.
  • Replace the usage of the old React APIs with the new ones.
  • 15.0 KB gzipped.

Here is an example: https://codesandbox.io/s/vjzn5z4k77.

import Button from '@material-ui/core/Button';
import React from 'react';
import { makeStyles } from '@material-ui/styles';

// Like https://github.com/brunobertolini/styled-by
const styledBy = (property, mapping) => props => mapping[props[property]];

const useStyles = makeStyles({
  root: {
    background: styledBy('color', {
      red: 'linear-gradient(45deg, #FE6B8B 30%, #FF8E53 90%)',
      blue: 'linear-gradient(45deg, #2196F3 30%, #21CBF3 90%)',
    }),
    border: 0,
    borderRadius: 3,
    boxShadow: styledBy('color', {
      red: '0 3px 5px 2px rgba(255, 105, 135, .3)',
      blue: '0 3px 5px 2px rgba(33, 203, 243, .3)',
    }),
    color: 'white',
    height: 48,
    padding: '0 30px',
  },
});

function MyButton(props) {
  const { color, ...other } = props;
  const classes = useStyles(props);
  return <Button className={classes.root} {...other} />;
}

function AdaptingHook() {
  return (
    <div>
      <MyButton color="red">Red</MyButton>
      <br />
      <br />
      <MyButton color="blue">Blue</MyButton>
    </div>
  );
}

export default AdaptingHook;

Powered by JSS.

  • Remove some usages of the old React's APIs (#13487, #13529, #13503) @eps1lon.
  • Add a language menu in the documentation and persist states between repeated visits (#13544, #13567) @mbrookes
  • And many more 🐛 bug fixes and 📝 documentation improvements.

@material-ui/[email protected]

@material-ui/[email protected]

Docs

Core