mirror of
https://github.com/Unleash/unleash.git
synced 2025-01-06 00:07:44 +01:00
418 lines
13 KiB
TypeScript
418 lines
13 KiB
TypeScript
|
import { createTheme } from '@mui/material/styles';
|
||
|
import { colors } from './colors';
|
||
|
|
||
|
const themeColors = {
|
||
|
main: colors.darkblue[900],
|
||
|
secondary: colors.darkblue[800],
|
||
|
textColor: '#ffffffe6',
|
||
|
hover: 'rgb(255, 255, 255, 0.7)',
|
||
|
};
|
||
|
|
||
|
export default createTheme({
|
||
|
breakpoints: {
|
||
|
values: {
|
||
|
xs: 0,
|
||
|
sm: 600,
|
||
|
md: 960,
|
||
|
lg: 1260,
|
||
|
xl: 1536,
|
||
|
},
|
||
|
},
|
||
|
boxShadows: {
|
||
|
main: '0px 2px 4px rgba(129, 122, 254, 0.2)',
|
||
|
card: '0px 2px 10px rgba(28, 25, 78, 0.12)',
|
||
|
elevated: '0px 1px 20px rgba(45, 42, 89, 0.1)',
|
||
|
},
|
||
|
typography: {
|
||
|
fontFamily: 'Sen, Roboto, sans-serif',
|
||
|
fontWeightBold: '700',
|
||
|
fontWeightMedium: '700',
|
||
|
allVariants: { lineHeight: 1.4 },
|
||
|
button: { lineHeight: 1.75 },
|
||
|
h1: {
|
||
|
fontSize: '1.5rem',
|
||
|
lineHeight: 1.875,
|
||
|
},
|
||
|
h3: {
|
||
|
fontSize: '1rem',
|
||
|
fontWeight: '700',
|
||
|
},
|
||
|
caption: {
|
||
|
fontSize: `${12 / 16}rem`,
|
||
|
},
|
||
|
},
|
||
|
fontSizes: {
|
||
|
mainHeader: '1.25rem',
|
||
|
bodySize: '1rem',
|
||
|
smallBody: `${14 / 16}rem`,
|
||
|
smallerBody: `${12 / 16}rem`,
|
||
|
},
|
||
|
fontWeight: {
|
||
|
thin: 300,
|
||
|
medium: 400,
|
||
|
semi: 700,
|
||
|
bold: 700,
|
||
|
},
|
||
|
shape: {
|
||
|
borderRadius: 4,
|
||
|
borderRadiusMedium: 8,
|
||
|
borderRadiusLarge: 12,
|
||
|
borderRadiusExtraLarge: 20,
|
||
|
tableRowHeight: 64,
|
||
|
tableRowHeightCompact: 56,
|
||
|
tableRowHeightDense: 48,
|
||
|
},
|
||
|
palette: {
|
||
|
primary: {
|
||
|
main: themeColors.textColor,
|
||
|
light: colors.purple[700],
|
||
|
dark: colors.purple[900],
|
||
|
},
|
||
|
secondary: {
|
||
|
main: colors.purple[800],
|
||
|
light: colors.purple[700],
|
||
|
dark: colors.purple[900],
|
||
|
},
|
||
|
info: {
|
||
|
light: colors.blue[50],
|
||
|
main: colors.blue[500],
|
||
|
dark: colors.blue[700],
|
||
|
border: colors.blue[200],
|
||
|
},
|
||
|
success: {
|
||
|
light: colors.green[50],
|
||
|
main: colors.green[600],
|
||
|
dark: themeColors.main,
|
||
|
border: colors.green[300],
|
||
|
},
|
||
|
warning: {
|
||
|
light: colors.orange[100],
|
||
|
main: colors.orange[800],
|
||
|
dark: colors.orange[900],
|
||
|
border: colors.orange[500],
|
||
|
},
|
||
|
error: {
|
||
|
light: colors.red[50],
|
||
|
main: colors.red[700],
|
||
|
dark: colors.red[800],
|
||
|
border: colors.red[300],
|
||
|
},
|
||
|
background: {
|
||
|
paper: themeColors.main,
|
||
|
},
|
||
|
divider: themeColors.secondary,
|
||
|
dividerAlternative: colors.grey[400],
|
||
|
tableHeaderHover: colors.darkblue[700],
|
||
|
tableHeaderBackground: themeColors.secondary,
|
||
|
tableHeaderColor: themeColors.textColor,
|
||
|
highlight: '#FFEACC',
|
||
|
secondaryContainer: themeColors.secondary,
|
||
|
contentWrapper: colors.darkblue[800],
|
||
|
formBackground: themeColors.main,
|
||
|
formSidebar: colors.darkblue[1000],
|
||
|
headerBackground: themeColors.main,
|
||
|
footerBackground: themeColors.main,
|
||
|
sidebarContainer: 'rgba(32,32,33, 0.2)',
|
||
|
codebox: colors.darkblue[600],
|
||
|
featureMetaData: colors.darkblue[1000],
|
||
|
playgroundBackground: colors.darkblue[600],
|
||
|
playgroundFormBackground: themeColors.secondary,
|
||
|
standaloneBackground: colors.black,
|
||
|
featureStrategySegmentChipBackground: themeColors.secondary,
|
||
|
featureSegmentSearchBackground: themeColors.secondary,
|
||
|
dialogHeaderBackground: themeColors.secondary,
|
||
|
dialogHeaderText: themeColors.textColor,
|
||
|
lightBorder: colors.darkblue[500],
|
||
|
constraintAccordion: {
|
||
|
editBackground: colors.darkblue[600],
|
||
|
background: themeColors.secondary,
|
||
|
operatorBackground: themeColors.main,
|
||
|
},
|
||
|
standaloneBannerGradient: {
|
||
|
from: colors.darkblue[1000],
|
||
|
to: colors.black,
|
||
|
},
|
||
|
projectCard: {
|
||
|
hover: themeColors.secondary,
|
||
|
textColor: themeColors.textColor,
|
||
|
},
|
||
|
formSidebarTextColor: themeColors.textColor,
|
||
|
checkmarkBadge: themeColors.secondary,
|
||
|
inputLabelBackground: 'transparent',
|
||
|
grey: colors.grey,
|
||
|
text: {
|
||
|
primary: themeColors.textColor,
|
||
|
secondary: colors.grey[800],
|
||
|
disabled: colors.grey[600],
|
||
|
},
|
||
|
code: {
|
||
|
main: '#0b8c8f',
|
||
|
diffAdd: 'green',
|
||
|
diffSub: 'red',
|
||
|
diffNeutral: 'black',
|
||
|
edited: 'blue',
|
||
|
},
|
||
|
neutral: {
|
||
|
light: colors.darkblue[500],
|
||
|
main: colors.grey[700],
|
||
|
dark: colors.grey[800],
|
||
|
border: colors.grey[500],
|
||
|
},
|
||
|
activityIndicators: {
|
||
|
primary: themeColors.secondary,
|
||
|
unknown: themeColors.secondary,
|
||
|
recent: themeColors.secondary,
|
||
|
inactive: themeColors.secondary,
|
||
|
abandoned: themeColors.secondary,
|
||
|
},
|
||
|
tertiary: {
|
||
|
light: themeColors.secondary,
|
||
|
main: colors.grey[400],
|
||
|
dark: colors.grey[600],
|
||
|
background: 'white',
|
||
|
contrast: colors.grey[300],
|
||
|
},
|
||
|
inactiveIcon: colors.grey[600],
|
||
|
},
|
||
|
components: {
|
||
|
MuiAppBar: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
color: themeColors.textColor,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiInputLabel: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
color: themeColors.textColor,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiIconButton: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
color: colors.white,
|
||
|
'&:hover': {
|
||
|
backgroundColor: themeColors.hover,
|
||
|
},
|
||
|
'&.Mui-disabled': {
|
||
|
'& .MuiSvgIcon-root': {
|
||
|
color: colors.grey[700],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiLink: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
color: colors.white,
|
||
|
'&:hover': {
|
||
|
textDecoration: 'none',
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiBreadcrumbs: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
color: themeColors.textColor,
|
||
|
fontSize: '0.875rem',
|
||
|
'& a': {
|
||
|
color: themeColors.textColor,
|
||
|
textDecoration: 'underline',
|
||
|
'&:hover': {
|
||
|
textDecoration: 'none',
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiTableHead: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
background: 'transparent',
|
||
|
'& th': {
|
||
|
background: colors.grey[200],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiTableRow: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
'&.MuiTableRow-hover:hover': {
|
||
|
background: themeColors.secondary,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiTableCell: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
borderBottomColor: themeColors.main,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiAlert: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
borderRadius: '8px',
|
||
|
a: {
|
||
|
color: 'inherit',
|
||
|
},
|
||
|
'&.MuiAlert-standardInfo': {
|
||
|
backgroundColor: colors.blue[50],
|
||
|
color: colors.blue[700],
|
||
|
border: `1px solid ${colors.blue[200]}`,
|
||
|
'& .MuiAlert-icon .MuiSvgIcon-root': {
|
||
|
color: colors.blue[500],
|
||
|
},
|
||
|
},
|
||
|
'&.MuiAlert-standardSuccess': {
|
||
|
backgroundColor: colors.green[50],
|
||
|
color: colors.green[800],
|
||
|
border: `1px solid ${colors.green[300]}`,
|
||
|
'& .MuiAlert-icon .MuiSvgIcon-root': {
|
||
|
color: colors.green[500],
|
||
|
},
|
||
|
},
|
||
|
'&.MuiAlert-standardWarning': {
|
||
|
backgroundColor: colors.orange[100],
|
||
|
color: colors.orange[900],
|
||
|
border: `1px solid ${colors.orange[500]}`,
|
||
|
'& .MuiAlert-icon .MuiSvgIcon-root': {
|
||
|
color: colors.orange[800],
|
||
|
},
|
||
|
},
|
||
|
'&.MuiAlert-standardError': {
|
||
|
backgroundColor: colors.red[50],
|
||
|
color: colors.red[800],
|
||
|
border: `1px solid ${colors.red[300]}`,
|
||
|
'& .MuiAlert-icon .MuiSvgIcon-root': {
|
||
|
color: colors.red[700],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiButton: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
'&.Mui-disabled': {
|
||
|
backgroundColor: colors.grey[400],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiSvgIcon: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
color: themeColors.textColor,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiTabs: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
backgroundColor: themeColors.main,
|
||
|
color: themeColors.textColor,
|
||
|
'& .MuiTabs-indicator': {
|
||
|
height: '4px',
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiTab: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
color: themeColors.textColor,
|
||
|
fontSize: '1rem',
|
||
|
textTransform: 'none',
|
||
|
fontWeight: 400,
|
||
|
minHeight: '62px',
|
||
|
'&:hover': {
|
||
|
backgroundColor: themeColors.secondary,
|
||
|
},
|
||
|
'&.Mui-selected': {
|
||
|
color: themeColors.textColor,
|
||
|
fontWeight: 700,
|
||
|
},
|
||
|
'& > span': {
|
||
|
color: colors.purple[900],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiAccordionSummary: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
'& > .MuiAccordionSummary-content.Mui-expanded': {
|
||
|
margin: '12px 0',
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiSwitch: {
|
||
|
styleOverrides: {
|
||
|
switchBase: {
|
||
|
zIndex: 1,
|
||
|
'&:not(.Mui-checked) .MuiTouchRipple-child': {
|
||
|
color: colors.grey['500'],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiIcon: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
color: colors.white,
|
||
|
},
|
||
|
colorDisabled: {
|
||
|
color: colors.white[600],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiMenu: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
'.MuiMenu-list': {
|
||
|
backgroundColor: colors.darkblue[600],
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiMenuItem: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
'&.Mui-disabled': {
|
||
|
opacity: 0.66,
|
||
|
},
|
||
|
'&:hover': {
|
||
|
backgroundColor: themeColors.secondary,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiInputBase: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
backgroundColor: colors.darkblue[1000],
|
||
|
'.MuiSvgIcon-root': {
|
||
|
color: '#fff',
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
MuiPaper: {
|
||
|
styleOverrides: {
|
||
|
root: {
|
||
|
backgroundColor: themeColors.main,
|
||
|
color: themeColors.textColor,
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
});
|