在Material UI Next(reactjs)中为自定义主题添加断点

时间:2018-04-09 18:43:40

标签: reactjs material-ui

我正在用mui创建一个自定义主题,如下所示:

export default createMuiTheme({
  breakpoints: {
    keys: [
      "xxs",
      "xs",
      "sm",
      "md",
      "lg",
      "xl",
    ],
    values: {
      xxs: 0,
      xs: 414, // iPhone X and below in portrait mode
      sm: 600,
      md: 960,
      lg: 1280,
      xl: 1920,
    },
  },
})

但是当我尝试在类声明中使用它时:

const styles = theme => ({
  root: {
    [theme.breakpoints.down('xxs')]: {
      textAlign: "center",
      padding: theme.spacing.unit * 2,
    },
  },
})

我得到以下CSS:

@media (max-width:NaNpx) {
  .root-3 {
    padding: 16px;
    text-align: center;
  }
}

是否有一种特殊的方法来添加自定义断点而不仅仅是修改现有断点?

2 个答案:

答案 0 :(得分:2)

目前,只能自定义预定义断点的。这是一个例子:

const theme = createMuiTheme({
  breakpoints: {
    values: {
      xs: 0,
      sm: 450,
      md: 600,
      lg: 900,
      xl: 1200
    }
  }
});

Edit Material-UI Custom breakpoints

无法配置断点名称。 createBreakpoints.js中有一条评论说明了这一点:

// Sorted ASC by size. That's important.
// It can't be configured as it's used statically for propTypes.
export const keys = ['xs', 'sm', 'md', 'lg', 'xl'];

更新(2018年9月):

此功能已被要求,目前正在讨论中。见material-ui/issues/11649

答案 1 :(得分:0)

如果您不想更改默认值,
您可以使用一种快速的解决方法, 使用主题断点字段在需要的地方更改断点值。

例如:

xxl断点

 [theme.breakpoints.up(theme.breakpoints.values.xl + CUSTOM_BREAKPOINT_DIFFERENCE)]: {
  padding: "0 3.5rem",
},