Density 密度
如何为 Material-UI 组件设置自定义的密度。
使用密度
本节解释了如何应用密度。 这不包括一些潜在的用例,也不包括在应用程序中使用密度的注意事项。 在 Material design 规范中有一个 全面的指南,它详细地介绍了本章的内容。
实现密度(density)
通过给设置某些组件的属性,可以得到更大的密度。 组件页面至少有一个例子,它使用各自的组件并具有较大的密度。
对于不同的组件,可以通过缩小组件的间距(spacing)或简单地减小组件的尺寸(size)来应用密度。
以下组件有一些能够达到较大密度的属性:
- Button
- Fab
- FilledInput
- FormControl
- FormHelperText
- IconButton
- InputBase
- InputLabel
- ListItem
- OutlinedInput
- Table
- TextField
- Toolbar
探索主题的密度
该工具允许您可以来通过 spacing 和 component 属性来应用密度。 您可以浏览一下,看看在 Material-UI 组件上使用后的整体感觉如何。
如果您启用了较大的密度,那么一个自定义的主题将被应用到当前的文档中。 该主题仅为演示使用。 您 不应该 将此主题应用在整个应用程序中,因为这可能会对用户的体验产生一些负面影响。 在 Material design 规范 的示例中,列举了不应该使用密度的情景。
主题配置有以下选项:
const theme = createTheme({
components: {
MuiButton: {
defaultProps: {
size: 'small',
},
},
MuiFilledInput: {
defaultProps: {
margin: 'dense',
},
},
MuiFormControl: {
defaultProps: {
margin: 'dense',
},
},
MuiFormHelperText: {
defaultProps: {
margin: 'dense',
},
},
MuiIconButton: {
defaultProps: {
size: 'small',
},
styleOverrides: {
sizeSmall: {
// Adjust spacing to reach minimal touch target hitbox
marginLeft: 4,
marginRight: 4,
padding: 12,
},
},
},
MuiInputBase: {
defaultProps: {
margin: 'dense',
},
},
MuiInputLabel: {
defaultProps: {
margin: 'dense',
},
},
MuiListItem: {
defaultProps: {
dense: true,
},
},
MuiOutlinedInput: {
defaultProps: {
margin: 'dense',
},
},
MuiFab: {
defaultProps: {
size: 'small',
},
},
MuiTable: {
defaultProps: {
size: 'small',
},
},
MuiTextField: {
defaultProps: {
margin: 'dense',
},
},
MuiToolbar: {
defaultProps: {
variant: 'dense',
},
},
},
});
间隔单元