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

281
Vistas
Exportación de un tema personalizado desde una biblioteca de UI usando Material-UI

Estoy creando una biblioteca de interfaz de usuario personalizada para el trabajo que usa Material-UI. La biblioteca de la interfaz de usuario tiene un tema personalizado en el que agregué al objeto de la paleta con colores personalizados de la empresa. El tema vive en la biblioteca de la interfaz de usuario, y para los elementos que viven allí, puedo usar los colores personalizados en makeStyles, pero cuando trato de usar el tema exportado en el código base principal, los colores personalizados arrojan errores en makeStyles.

Creo que el problema es que no estoy exportando el módulo personalizado del tema. No estoy seguro de cómo exportar e importar esto correctamente en la base de código principal. Actualmente, solo estoy exportando el archivo del tema e importándolo a la base de código principal.

Base de código principal :

 import { theme } from 'customUILibrary'; ... <MuiThemeProvider theme={theme}> ... </MuiThemeProvider>

Biblioteca de interfaz de usuario personalizada :

índice.ts:

 export { theme } from 'theme/theme';

tema/tema.ts

 import { createTheme, responsiveFontSizes, } from '@material-ui/core/styles'; import './extendPalette'; export const theme = responsiveFontSizes(createTheme({ palette: { gradients: { primary: 'linear-gradient(270deg, #35C7E1 -10.76%, #1A92BD 121.8%)', secondary: 'linear-gradient(270deg, #194E94 0%, #317CA6 100%)', }, }, }));

extenderPaleta.ts

 declare module '@material-ui/core/styles/createPalette' { export interface PaletteOptions { gradients: { primary: string secondary: string, }, } export interface Palette { gradients: { primary: string secondary: string, }, } }

Los atributos del tema personalizado funcionan muy bien dentro de la biblioteca de la interfaz de usuario con los elementos de la interfaz de usuario, pero cuando se importan a la base de código principal, los atributos personalizados no se seleccionan y, de hecho, causan errores.

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

0

Como se sugiere here , puede hacer algo como esto:

 declare module "@mui/material/styles" { interface Palette { custom: { pink: string; }; } interface PaletteOptions { custom: { pink: string; }; } }

Luego puede establecer su valor en el tema de forma segura:

 const theme = createTheme({ palette: { custom: { pink: "pink" } } });

y usarlo en estilos:

 <Button sx={{ color: "custom.pink" }}>Content</Button>

Ver mi ejemplo de codesandbox

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