Материал пользовательского размера — кнопка пользовательского интерфейса

#material-ui

#материал-пользовательский интерфейс

Вопрос:

Я использую material-ui с NextJS и хотел бы, чтобы кнопка была примерно в 4 раза больше ширины большой кнопки. Свойство width, похоже, не имеет никакого эффекта

Компонент

 export function ShiButton(props) {
const classes = useStyles();

const {
    path,
    text,
    colour = "primary",
    variant = "contained",
    size = "large",
} = props;
return (
    <Link href={path} passHref>
        <Button size={size} variant={variant} color={colour} width={900}>
            {text}
        </Button>
    </Link>
);
  

}
Страница вызова

     <ShiButton path="" text="Sign-up" size="large" />
  

Ответ №1:

Вы можете использовать решение для стилизации Material-UI в своем приложении :

Это CSS для большой кнопки

введите описание изображения здесь

Поэтому просто увеличьте отступ и / или размер шрифта на X, чтобы добиться большей ширины

 const useStyles = makeStyles({
  FourTimesLargeBtn: {
    padding: "32px 88px",
    fontSize: "3.75rem"
  }
});

function ShiButton(props) {
  const classes = useStyles();

  const {
    path,
    text,
    colour = "primary",
    variant = "contained",
    size = "large"
  } = props;
  return (
    <Link href={path}>
      <Button
        classes={{ root: classes.FourTimesLargeBtn }}
        size={size}
        variant={variant}
        color={colour}
        width={900}
      >
        {text}
      </Button>
    </Link>
  );
}

function App() {
  return <ShiButton text="Hello" />;
}


ReactDOM.render(<App/>, document.getElementById("root"));  
 <div id="root"></div>

<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>
<script src="https://unpkg.com/@material-ui/core@latest/umd/material-ui.development.js"></script>

<script type="text/babel">
  const { Button, makeStyles, Link } = MaterialUI;
</script>  

Ответ №2:

Я использую MUI v5 и пользовательскую тему и завершил создание пользовательской кнопки многократного использования большего размера, создав новый вариант xlarge на основе size реквизита.

Итак, в моем пользовательском объекте темы

 {
  ...otherThemeStuff,
  components: {
    MuiButton: {
      variants: [
        {
          props: { size: 'xlarge' },
          style: {
            padding: '14px 28px'
          },
        },
      ],
    }
  }
}
  

Затем в моем компоненте я могу использовать кнопку следующим образом

 <Button size='xlarge'>My button</Button>