@mui/material
Version:
Material UI is an open-source React component library that implements Google's Material Design. It's comprehensive and can be used in production out of the box.
41 lines • 1.14 kB
JavaScript
import createPalette from "./createPalette.js";
import getOverlayAlpha from "./getOverlayAlpha.js";
const defaultDarkOverlays = [...Array(25)].map((_, index) => {
if (index === 0) {
return 'none';
}
const overlay = getOverlayAlpha(index);
return `linear-gradient(rgba(255 255 255 / ${overlay}), rgba(255 255 255 / ${overlay}))`;
});
export function getOpacity(mode) {
return {
inputPlaceholder: mode === 'dark' ? 0.5 : 0.42,
inputUnderline: mode === 'dark' ? 0.7 : 0.42,
switchTrackDisabled: mode === 'dark' ? 0.2 : 0.12,
switchTrack: mode === 'dark' ? 0.3 : 0.38
};
}
export function getOverlays(mode) {
return mode === 'dark' ? defaultDarkOverlays : [];
}
export default function createColorScheme(options) {
const {
palette: paletteInput = {
mode: 'light'
},
// need to cast to avoid module augmentation test
opacity,
overlays,
...rest
} = options;
const palette = createPalette(paletteInput);
return {
palette,
opacity: {
...getOpacity(palette.mode),
...opacity
},
overlays: overlays || getOverlays(palette.mode),
...rest
};
}