Estoy creando un componente de Data Grid Toolbar
personalizado modificando los componentes existentes de la Grid Toolbar
de Material-UI .
Este es el ejemplo oficial de los componentes de la Grid Toolbar
:
Si hacemos clic en uno de los componentes de la Grid Toolbar
, se mostrará una ventana emergente como se ve en la captura de pantalla a continuación.
Lo que quiero hacer es cambiar todos los tamaños de fuente dentro de cada ventana emergente/ventana emergente de cada componente de la Grid Toolbar
.
Intento cambiar un texto, por ejemplo. Como podemos ver en la captura de pantalla a continuación, si inspeccionamos el texto y luego cambiamos las propiedades de color
y font-size
directamente, cambiaría.
Pero si tomo y copio el selector (en este caso es .MuiTypography-body1
), luego lo pego en mi código, no cambia nada (las propiedades de color
y font-size
no cambian).
Aquí está el código simple:
const CustomGridToolbarColumns = withStyles((theme) => ({ root: { color: "dodgerblue", "& .MuiTypography-body1": { fontSize: 20, color: "red" } } }))(GridToolbarColumnsButton);
También quiero cambiar todas las propiedades de color
y font-size
dentro de cada ventana emergente/ventana emergente de cada componente de la Grid Toolbar
. Inspecciono la ventana emergente/popper y luego cambio el font-size
y las propiedades de color
, pero aún no funciona como se ve en la captura de pantalla a continuación.
Aquí están las dependencias (en el archivo package.json):
"@material-ui/core": "^4.12.3", "@material-ui/styles": "^4.11.4", "@mui/x-data-grid-pro": "^4.0.0",
Aquí está el código completo: https://codesandbox.io/s/data-grid-material-ui-custom-toolbar-kd9gj
Entonces mis preguntas son:
Grid Toolbar
?Grid Toolbar
?Puede inspeccionar el elemento y ver que el componente al que necesita aplicar el estilo se llama GridPanel
. Este es el componente contenedor del panel de filtros y columnas. Vea todas las ranuras de componentes aquí como referencia.
V5
<DataGrid {...data} components={{ Toolbar: GridToolbar, }} componentsProps={{ panel: { sx: { '& .MuiTypography-root': { color: 'dodgerblue', fontSize: 20, }, '& .MuiDataGrid-filterForm': { bgcolor: 'lightblue', }, }, }, }} />
Para cambiar los estilos de los otros 2 GridMenu
s (densidad/exportación), debe apuntar al nombre de clase MuiDataGrid-menuList
. Actualmente veo que no hay otra forma de usar estilos globales porque DataGrid
no le permite personalizar el componente GridMenu
:
<GlobalStyles styles={{ '.MuiDataGrid-menuList': { backgroundColor: 'pink', '& .MuiMenuItem-root': { fontSize: 26, }, }, }} />
V4
import { DataGrid, GridToolbar, GridPanel } from "@mui/x-data-grid"; const useStyles = makeStyles({ panel: { '& .MuiTypography-root': { color: 'dodgerblue', fontSize: 20, }, }, });
<DataGrid {...data} components={{ Toolbar: GridToolbar, }} componentsProps={{ // GridPanel panel: { className: classes.panel }, }} />
<GlobalStyles styles={{ ".MuiDataGrid-gridMenuList": { backgroundColor: "pink", "& .MuiMenuItem-root": { fontSize: 26 } } }} />