added dark theme

This commit is contained in:
2021-05-25 23:22:26 +02:00
parent 1abc9eeec2
commit b5ffd5fa1e
5 changed files with 130 additions and 25 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
+10 -6
View File
@@ -1,4 +1,4 @@
import React from 'react';
import React, { useState } from 'react';
import { Container } from '@material-ui/core';
import {
ThemeProvider,
@@ -23,6 +23,11 @@ const useStyles = makeStyles((theme) => ({
},
}));
const White = (props) => {
const { children } = props;
const classes = useStyles();
const [darkMode, setDarkMode] = useState(true);
let theme = createMuiTheme({
typography: {
fontFamily: 'Yeon Sung',
@@ -32,17 +37,16 @@ let theme = createMuiTheme({
// paddingLeft: 0,
// },
},
palette: {
type: darkMode ? 'dark' : 'light',
},
});
theme = responsiveFontSizes(theme);
const White = (props) => {
const { children } = props;
const classes = useStyles();
return (
<ThemeProvider theme={theme}>
<div id="back-to-top-anchor" />
<Header />
<Header darkMode={darkMode} setDarkMode={setDarkMode} />
<Container className={classes.container}>{children}</Container>
<Footer />
</ThemeProvider>
+23 -9
View File
@@ -1,5 +1,5 @@
import React from 'react';
import {Link} from 'react-router-dom'
import { Link } from 'react-router-dom';
import {
AppBar,
Toolbar,
@@ -9,22 +9,25 @@ import {
Link as MaterialLink,
Grid,
} from '@material-ui/core';
import SwitchToogle from './switchToogle'
import CachedOutlinedIcon from '@material-ui/icons/CachedOutlined';
import { makeStyles } from '@material-ui/styles';
const useStyles = makeStyles((theme) => ({
appBar: {
position: 'fixed',
zIndex: 1301,
backgroundColor: '#FAFAFA',
backgroundColor: 'transparent',
},
name: {
textTransform: 'uppercase',
letterSpacing: '.5rem',
},
cached: {
color: '#a5d6a7',
},
}));
function handleClick(event) {
const handleClick = (event) => {
event.preventDefault();
const anchor = (event.target.ownerDocument || document).querySelector(
'#footer'
@@ -33,10 +36,11 @@ function handleClick(event) {
if (anchor) {
anchor.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
}
};
const Header = () => {
const Header = (props) => {
const classes = useStyles();
const { darkMode, setDarkMode } = props;
return (
<>
@@ -54,17 +58,27 @@ const Header = () => {
Dan Dobos
</Typography>
<MaterialLink color="textPrimary" to="#about" onClick={handleClick}>
<MaterialLink
color="textPrimary"
to="#about"
onClick={handleClick}
>
About
</MaterialLink>
</Breadcrumbs>
</Grid>
<Grid item >
<Link color="textPrimary" to="/projects">
<CachedOutlinedIcon/>
<Grid container alignItems="center">
<SwitchToogle
darkMode={darkMode}
setDarkMode={setDarkMode}
/>
<Link to="/projects">
<CachedOutlinedIcon className={classes.cached} />
</Link>
</Grid>
</Grid>
</Grid>
</Toolbar>
</AppBar>
<Toolbar />
@@ -0,0 +1,86 @@
import React from 'react';
import { Switch } from '@material-ui/core';
import { makeStyles } from '@material-ui/styles';
import {Brightness3Icon, WbSunnyIcon} from '@material-ui/icons';
const useStyles = makeStyles((theme) => ({
root: {
width: 80,
height: 48,
padding: 8,
},
switchBase: {
padding: 11,
color: '#ff6a00',
},
thumb: {
width: 26,
height: 26,
backgroundColor: 'transparent',
},
track: {
background: 'linear-gradient(to right, #ee0979, #ff6a00)',
opacity: '1 !important',
borderRadius: 20,
position: 'relative',
'&:before, &:after': {
display: 'inline-block',
position: 'absolute',
top: '50%',
width: '50%',
transform: 'translateY(-50%)',
color: '#fff',
textAlign: 'center',
},
'&:before': {
left: 4,
opacity: 0,
},
'&:after': {
right: 4,
},
},
checked: {
'&$switchBase': {
color: '#185a9d',
transform: 'translateX(32px)',
'&:hover': {
backgroundColor: 'rgba(24,90,257,0.08)',
},
},
'& $thumb': {
backgroundColor: 'transparent',
},
'& + $track': {
background: 'linear-gradient(to right, #43cea2, #185a9d)',
'&:before': {
opacity: 1,
},
'&:after': {
opacity: 0,
},
},
},
}));
const SwitchToogle = (props) => {
const classes = useStyles();
const { darkMode, setDarkMode } = props;
return (
<Switch
disableRipple
checked={darkMode}
onChange={() => setDarkMode(!darkMode)}
classes={{
root: classes.root,
switchBase: classes.switchBase,
thumb: classes.thumb,
track: classes.track,
checked: classes.checked,
}}
/>
);
};
export default SwitchToogle;
@@ -0,0 +1 @@
export { default } from './SwitchToogle';