185 lines
4.2 KiB
TypeScript
185 lines
4.2 KiB
TypeScript
import { alpha } from '@mui/material/styles';
|
|
|
|
// ----------------------------------------------------------------------
|
|
|
|
function createGradient(color1: string, color2: string) {
|
|
return `linear-gradient(to bottom, ${color1}, ${color2})`;
|
|
}
|
|
|
|
export type ColorSchema = 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'error';
|
|
|
|
interface GradientsPaletteOptions {
|
|
primary: string;
|
|
info: string;
|
|
success: string;
|
|
warning: string;
|
|
error: string;
|
|
}
|
|
|
|
interface ChartPaletteOptions {
|
|
violet: string[];
|
|
blue: string[];
|
|
green: string[];
|
|
yellow: string[];
|
|
red: string[];
|
|
}
|
|
|
|
declare module '@mui/material/styles/createPalette' {
|
|
interface TypeBackground {
|
|
neutral: string;
|
|
}
|
|
interface SimplePaletteColorOptions {
|
|
lighter: string;
|
|
darker: string;
|
|
}
|
|
interface PaletteColor {
|
|
lighter: string;
|
|
darker: string;
|
|
}
|
|
interface Palette {
|
|
gradients: GradientsPaletteOptions;
|
|
chart: ChartPaletteOptions;
|
|
}
|
|
interface PaletteOptions {
|
|
gradients: GradientsPaletteOptions;
|
|
chart: ChartPaletteOptions;
|
|
}
|
|
}
|
|
|
|
declare module '@mui/material' {
|
|
interface Color {
|
|
0: string;
|
|
500_8: string;
|
|
500_12: string;
|
|
500_16: string;
|
|
500_24: string;
|
|
500_32: string;
|
|
500_48: string;
|
|
500_56: string;
|
|
500_80: string;
|
|
}
|
|
}
|
|
|
|
// SETUP COLORS
|
|
const PRIMARY = {
|
|
lighter: '#D0FBEC',
|
|
light: '#70EAD5',
|
|
main: '#19BBBB',
|
|
dark: '#0C7186',
|
|
darker: '#043C59',
|
|
};
|
|
const SECONDARY = {
|
|
lighter: '#D6E4FF',
|
|
light: '#84A9FF',
|
|
main: '#3366FF',
|
|
dark: '#1939B7',
|
|
darker: '#091A7A',
|
|
};
|
|
const INFO = {
|
|
lighter: '#D0F2FF',
|
|
light: '#74CAFF',
|
|
main: '#1890FF',
|
|
dark: '#0C53B7',
|
|
darker: '#04297A',
|
|
};
|
|
const SUCCESS = {
|
|
lighter: '#E9FCD4',
|
|
light: '#AAF27F',
|
|
main: '#54D62C',
|
|
dark: '#229A16',
|
|
darker: '#08660D',
|
|
};
|
|
const WARNING = {
|
|
lighter: '#FFF7CD',
|
|
light: '#FFE16A',
|
|
main: '#FFC107',
|
|
dark: '#B78103',
|
|
darker: '#7A4F01',
|
|
};
|
|
const ERROR = {
|
|
lighter: '#FFE7D9',
|
|
light: '#FFA48D',
|
|
main: '#FF4842',
|
|
dark: '#B72136',
|
|
darker: '#7A0C2E',
|
|
};
|
|
|
|
const GREY = {
|
|
0: '#FFFFFF',
|
|
100: '#F9FAFB',
|
|
200: '#F4F6F8',
|
|
300: '#DFE3E8',
|
|
400: '#C4CDD5',
|
|
500: '#919EAB',
|
|
600: '#637381',
|
|
700: '#454F5B',
|
|
800: '#212B36',
|
|
900: '#161C24',
|
|
500_8: alpha('#919EAB', 0.08),
|
|
500_12: alpha('#919EAB', 0.12),
|
|
500_16: alpha('#919EAB', 0.16),
|
|
500_24: alpha('#919EAB', 0.24),
|
|
500_32: alpha('#919EAB', 0.32),
|
|
500_48: alpha('#919EAB', 0.48),
|
|
500_56: alpha('#919EAB', 0.56),
|
|
500_80: alpha('#919EAB', 0.8),
|
|
};
|
|
|
|
const GRADIENTS = {
|
|
primary: createGradient(PRIMARY.light, PRIMARY.main),
|
|
info: createGradient(INFO.light, INFO.main),
|
|
success: createGradient(SUCCESS.light, SUCCESS.main),
|
|
warning: createGradient(WARNING.light, WARNING.main),
|
|
error: createGradient(ERROR.light, ERROR.main),
|
|
};
|
|
|
|
const CHART_COLORS = {
|
|
violet: ['#826AF9', '#9E86FF', '#D0AEFF', '#F7D2FF'],
|
|
blue: ['#2D99FF', '#83CFFF', '#A5F3FF', '#CCFAFF'],
|
|
green: ['#2CD9C5', '#60F1C8', '#A4F7CC', '#C0F2DC'],
|
|
yellow: ['#FFE700', '#FFEF5A', '#FFF7AE', '#FFF3D6'],
|
|
red: ['#FF6C40', '#FF8F6D', '#FFBD98', '#FFF2D4'],
|
|
};
|
|
|
|
const COMMON = {
|
|
common: { black: '#000', white: '#fff' },
|
|
primary: { ...PRIMARY, contrastText: '#fff' },
|
|
secondary: { ...SECONDARY, contrastText: '#fff' },
|
|
info: { ...INFO, contrastText: '#fff' },
|
|
success: { ...SUCCESS, contrastText: GREY[800] },
|
|
warning: { ...WARNING, contrastText: GREY[800] },
|
|
error: { ...ERROR, contrastText: '#fff' },
|
|
grey: GREY,
|
|
gradients: GRADIENTS,
|
|
chart: CHART_COLORS,
|
|
divider: GREY[500_24],
|
|
action: {
|
|
hover: GREY[500_8],
|
|
selected: GREY[500_16],
|
|
disabled: GREY[500_80],
|
|
disabledBackground: GREY[500_24],
|
|
focus: GREY[500_24],
|
|
hoverOpacity: 0.08,
|
|
disabledOpacity: 0.48,
|
|
},
|
|
};
|
|
|
|
const palette = {
|
|
light: {
|
|
...COMMON,
|
|
mode: 'light',
|
|
text: { primary: GREY[800], secondary: GREY[600], disabled: GREY[500] },
|
|
background: { paper: '#fff', default: '#fff', neutral: GREY[200] },
|
|
action: { active: GREY[600], ...COMMON.action },
|
|
},
|
|
dark: {
|
|
...COMMON,
|
|
mode: 'dark',
|
|
text: { primary: '#fff', secondary: GREY[500], disabled: GREY[600] },
|
|
background: { paper: GREY[800], default: GREY[900], neutral: GREY[500_16] },
|
|
action: { active: GREY[500], ...COMMON.action },
|
|
},
|
|
} as const;
|
|
|
|
export default palette;
|