mirror of
https://github.com/rocky-linux/peridot.git
synced 2024-11-14 01:41:23 +00:00
190 lines
4.8 KiB
TypeScript
190 lines
4.8 KiB
TypeScript
/*
|
|
* Copyright (c) All respective contributors to the Peridot Project. All rights reserved.
|
|
* Copyright (c) 2021-2022 Rocky Enterprise Software Foundation, Inc. All rights reserved.
|
|
* Copyright (c) 2021-2022 Ctrl IQ, Inc. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are met:
|
|
*
|
|
* 1. Redistributions of source code must retain the above copyright notice,
|
|
* this list of conditions and the following disclaimer.
|
|
*
|
|
* 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
* this list of conditions and the following disclaimer in the documentation
|
|
* and/or other materials provided with the distribution.
|
|
*
|
|
* 3. Neither the name of the copyright holder nor the names of its contributors
|
|
* may be used to endorse or promote products derived from this software without
|
|
* specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
|
|
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
* POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
import React from 'react';
|
|
import { ThemeOptions, createTheme } from '@mui/material/styles';
|
|
import ThemeProvider, {
|
|
ThemeProviderProps,
|
|
} from '@mui/material/styles/ThemeProvider';
|
|
|
|
export const primaryColor = '#1976d2';
|
|
export const secondaryColor = '#19b2d1';
|
|
|
|
export const peridotThemeOptions: ThemeOptions = {
|
|
palette: {
|
|
primary: {
|
|
light: '#63ccff',
|
|
main: '#009be5',
|
|
dark: '#006db3',
|
|
},
|
|
},
|
|
typography: {
|
|
fontFamily: 'Inter',
|
|
h5: {
|
|
fontWeight: 500,
|
|
fontSize: 26,
|
|
letterSpacing: 0.5,
|
|
},
|
|
},
|
|
shape: {
|
|
borderRadius: 8,
|
|
},
|
|
mixins: {
|
|
toolbar: {
|
|
minHeight: 48,
|
|
},
|
|
},
|
|
};
|
|
|
|
export let peridotTheme = createTheme(peridotThemeOptions);
|
|
|
|
peridotTheme = {
|
|
...peridotTheme,
|
|
components: {
|
|
MuiDrawer: {
|
|
styleOverrides: {
|
|
paper: {
|
|
backgroundColor: '#081627',
|
|
},
|
|
},
|
|
},
|
|
MuiButton: {
|
|
styleOverrides: {
|
|
root: {
|
|
textTransform: 'none',
|
|
},
|
|
contained: {
|
|
boxShadow: 'none',
|
|
'&:active': {
|
|
boxShadow: 'none',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
MuiTabs: {
|
|
styleOverrides: {
|
|
root: {
|
|
marginLeft: peridotTheme.spacing(1),
|
|
},
|
|
indicator: {
|
|
height: 3,
|
|
borderTopLeftRadius: 3,
|
|
borderTopRightRadius: 3,
|
|
},
|
|
},
|
|
},
|
|
MuiTab: {
|
|
styleOverrides: {
|
|
root: {
|
|
textTransform: 'none',
|
|
minWidth: 0,
|
|
padding: 0,
|
|
[peridotTheme.breakpoints.up('md')]: {
|
|
padding: '0 10px',
|
|
minWidth: 0,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
MuiIconButton: {
|
|
styleOverrides: {
|
|
root: {
|
|
padding: peridotTheme.spacing(1),
|
|
},
|
|
},
|
|
},
|
|
MuiTooltip: {
|
|
styleOverrides: {
|
|
tooltip: {
|
|
borderRadius: 4,
|
|
},
|
|
},
|
|
},
|
|
MuiDivider: {
|
|
styleOverrides: {
|
|
root: {
|
|
backgroundColor: 'rgb(255,255,255,0.15)',
|
|
},
|
|
},
|
|
},
|
|
MuiListItemButton: {
|
|
styleOverrides: {
|
|
root: {
|
|
'&.Mui-selected': {
|
|
color: '#4fc3f7',
|
|
},
|
|
},
|
|
},
|
|
},
|
|
MuiListItemText: {
|
|
styleOverrides: {
|
|
primary: {
|
|
fontSize: 14,
|
|
fontWeight: peridotTheme.typography.fontWeightMedium,
|
|
},
|
|
},
|
|
},
|
|
MuiListItemIcon: {
|
|
styleOverrides: {
|
|
root: {
|
|
color: 'inherit',
|
|
minWidth: 'auto',
|
|
marginRight: peridotTheme.spacing(2),
|
|
'& svg': {
|
|
fontSize: 20,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
MuiAvatar: {
|
|
styleOverrides: {
|
|
root: {
|
|
width: 32,
|
|
height: 32,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
export interface PeridotThemeProviderProps
|
|
extends Omit<ThemeProviderProps, 'theme'> {}
|
|
|
|
export const PeridotThemeProvider = (props: PeridotThemeProviderProps) => {
|
|
const { children, ...restProps } = props;
|
|
return (
|
|
<ThemeProvider theme={peridotTheme} {...restProps}>
|
|
{props.children}
|
|
</ThemeProvider>
|
|
);
|
|
};
|