Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

236
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!