Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

246
Vistas
Uso de los colores de la paleta de temas en la variante del botón MUI personalizado

Tengo una variante de botón MUI 5 en la que me gustaría usar los colores de la paleta de temas existente. Tengo mi appTheme.ts configurado así:

 import { createTheme, Theme } from '@mui/material/styles'; import { alpha } from '@mui/material/styles'; declare module '@mui/material/Button' { interface ButtonPropsVariantOverrides { light: true; } } export const theme: Theme = createTheme({ palette: { primary: { main: 'black', light: 'white', }, secondary: { main: 'gray', light: 'white', }, info: { main: 'white', }, warning: { main: 'red', }, }, typography: { fontFamily: 'Lato', }, components: { MuiButton: { variants: [ { props: { variant: 'light', color: 'primary' }, style: { textTransform: 'none', border: 'none', backgroundColor: 'primary.light', color: 'primary', borderRadius: 8, '&:hover': { backgroundColor: alpha('primary.main', 0.16), '&:active': { backgroundColor: alpha('primary.main', 0.32), }, }, }, }, ], }, }, });

Esto funciona, excepto por las propiedades de estado &:hover , que no saben nada sobre la declaración del tema, y por lo tanto, errores con MUI: Unsupported 'primary.main' color.

¿Hay alguna manera de que pueda usar los colores del tema de esta manera dentro de la declaración del tema, o estoy atascado anulándolo en el nivel del envoltorio del tema? Juro que vi esto en alguna documentación en alguna parte, pero no puedo encontrarlo.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El problema aquí es que está tratando de hacer referencia a los colores de la paleta de temas en una definición de anulación de tema, lo que está causando un problema. Entonces, el parámetro del método alfa es irreconocible.

Para acceder al color de su paleta de temas, primero defínalo por separado y luego acceda a él.

 const globalTheme = createTheme({ palette: { primary: { main: purple[500] }, secondary: { main: "#11cb5f" } } }); const theme = createTheme( { components: { MuiButton: { variants: [ { props: { variant: "text", color: "primary" }, style: { textTransform: "none", border: "none", backgroundColor: globalTheme.palette.primary.light, color: "#fff", borderRadius: 8, "&:hover": { color: globalTheme.palette.primary.light, backgroundColor: alpha(globalTheme.palette.primary.main, 0.16) }, "&:active": { backgroundColor: globalTheme.palette.primary.dark, color: "#fff" } } } ] } } }, globalTheme );

consulte el ejemplo de trabajo aquí: https://codesandbox.io/s/mui-button-variant-override-e18vg

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda