@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.
50 lines (49 loc) • 1.46 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createColorScheme;
exports.getOpacity = getOpacity;
exports.getOverlays = getOverlays;
var _createPalette = _interopRequireDefault(require("./createPalette"));
var _getOverlayAlpha = _interopRequireDefault(require("./getOverlayAlpha"));
const defaultDarkOverlays = [...Array(25)].map((_, index) => {
if (index === 0) {
return 'none';
}
const overlay = (0, _getOverlayAlpha.default)(index);
return `linear-gradient(rgba(255 255 255 / ${overlay}), rgba(255 255 255 / ${overlay}))`;
});
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
};
}
function getOverlays(mode) {
return mode === 'dark' ? defaultDarkOverlays : [];
}
function createColorScheme(options) {
const {
palette: paletteInput = {
mode: 'light'
},
// need to cast to avoid module augmentation test
opacity,
overlays,
...rest
} = options;
const palette = (0, _createPalette.default)(paletteInput);
return {
palette,
opacity: {
...getOpacity(palette.mode),
...opacity
},
overlays: overlays || getOverlays(palette.mode),
...rest
};
}
;