This commit is contained in:
2021-06-05 20:18:11 +02:00
parent abbdb6027c
commit 0b28182458
14 changed files with 50 additions and 264 deletions
+1 -1
View File
File diff suppressed because one or more lines are too long
-38
View File
@@ -1,38 +0,0 @@
.App {
text-align: center;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
+12 -5
View File
@@ -1,17 +1,24 @@
import React from 'react';
import React,{useState,} from 'react';
import { BrowserRouter as Router } from 'react-router-dom';
import { ThemeProvider } from '@material-ui/core/styles';
import { ThemeProvider,responsiveFontSizes } from '@material-ui/core/styles';
import theme from './themes';
import Routes from './routes';
function App() {
export const ThemeContext = React.createContext()
const App = () => {
const [darkMode, setDarkMode] = useState(true);
const responsiveFontsTheme = responsiveFontSizes(theme);
return (
<ThemeProvider theme={theme}>
<ThemeContext.Provider value={{ darkMode, setDarkMode }}>
<ThemeProvider theme={responsiveFontsTheme}>
<Router basename={process.env.PUBLIC_URL}>
<Routes />
</Router>
</ThemeProvider>
</ThemeContext.Provider>
);
}
-13
View File
@@ -1,13 +0,0 @@
body {
margin: 0;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
code {
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
monospace;
}
-1
View File
@@ -1,6 +1,5 @@
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
@@ -1,5 +1,5 @@
import React from 'react';
import { AppBar, Toolbar, Grid, Typography } from '@material-ui/core';
import {Grid, Typography } from '@material-ui/core';
const Footer = () => {
return (
@@ -123,12 +123,7 @@ const Navigation = (props) => {
}
});
}, [value, routes]);
useEffect(() => {
setTimeout(() => {
tabsActions.current?.updateIndicator();
}, 100);
});
return (
<Container ref={wrapper}>
<Hidden mdUp>
+6 -10
View File
@@ -1,11 +1,11 @@
import React, { useState } from 'react';
import React, { useContext } from 'react';
import { Container } from '@material-ui/core';
import {
ThemeProvider,
createMuiTheme,
makeStyles,
responsiveFontSizes,
} from '@material-ui/core/styles';
import {ThemeContext} from '../../App'
import Footer from './components/footer';
import Header from './components/header';
@@ -23,30 +23,26 @@ const useStyles = makeStyles((theme) => ({
},
}));
const White = (props) => {
const { children } = props;
const classes = useStyles();
const [darkMode, setDarkMode] = useState(true);
const { darkMode} = useContext(ThemeContext);
let theme = createMuiTheme({
typography: {
fontFamily: 'Yeon Sung',
transform: 'matrix(1, 0, 0, 1, 0, 0)',
// h1: {
// // marginLeft: '-.5rem',
// paddingLeft: 0,
// },
},
palette: {
type: darkMode ? 'dark' : 'light',
},
});
theme = responsiveFontSizes(theme);
return (
<ThemeProvider theme={theme}>
<div id="back-to-top-anchor" />
<Header darkMode={darkMode} setDarkMode={setDarkMode} />
<Header />
<Container className={classes.container}>{children}</Container>
<Footer />
</ThemeProvider>
+15 -20
View File
@@ -8,33 +8,31 @@ import {
Breadcrumbs,
Link as MaterialLink,
Grid,
IconButton
} from '@material-ui/core';
import DarkModeToogle from './darkModeToogle'
import ArtTrackOutlinedIcon from '@material-ui/icons/ArtTrackOutlined';
import { makeStyles } from '@material-ui/styles';
import HideOnScroll from '../../../../common/hideOnScroll'
import ThreeSixtyOutlinedIcon from '@material-ui/icons/ThreeSixtyOutlined';
const useStyles = makeStyles((theme) => ({
appBar: {
position: 'fixed',
zIndex: 1301,
backgroundColor: 'transparent',
background: 'transparent',
[theme.breakpoints.down('lg')]: {
backgroundColor: theme.palette.background.default,
},
},
name: {
textTransform: 'uppercase',
letterSpacing: '.5rem',
},
white: {
color: "#fff",
},
black: {
color: "#000",
},
}
}));
const handleClick = (event) => {
const handleScrollDown = (event) => {
event.preventDefault();
const anchor = (event.target.ownerDocument || document).querySelector(
'#footer'
@@ -45,10 +43,8 @@ const handleClick = (event) => {
}
};
const Header = (props) => {
const Header = () => {
const classes = useStyles();
const { darkMode, setDarkMode } = props;
return (
<>
@@ -70,7 +66,7 @@ const Header = (props) => {
<MaterialLink
color="textPrimary"
to="#about"
onClick={handleClick}
onClick={handleScrollDown}
>
About
</MaterialLink>
@@ -78,13 +74,12 @@ const Header = (props) => {
</Grid>
<Grid item >
<Grid container alignItems="center">
<DarkModeToogle
darkMode={darkMode}
setDarkMode={setDarkMode}
/>
<DarkModeToogle/>
<Link to="/projects">
<ArtTrackOutlinedIcon className={darkMode ? classes.white: classes.black} />
</Link>
<IconButton disableRipple>
<ThreeSixtyOutlinedIcon />
</IconButton>
</Link>
</Grid>
</Grid>
</Grid>
@@ -1,29 +1,22 @@
import React from 'react';
import { makeStyles } from '@material-ui/styles';
import React,{useContext} from 'react';
import {IconButton} from '@material-ui/core'
import {ThemeContext} from '../../../../../App'
import WbSunnyOutlinedIcon from '@material-ui/icons/WbSunnyOutlined';
import NightsStayOutlinedIcon from '@material-ui/icons/NightsStayOutlined';
const DarkModeToogle = () => {
const useStyles = makeStyles((theme) => ({
white: {
color: "#fff",
marginRight:'1rem'
},
black: {
color: "#000",
marginRight:'1rem'
},
}));
const DarkModeToogle = (props) => {
const classes = useStyles();
const { darkMode, setDarkMode } = props;
const { darkMode, setDarkMode } = useContext(ThemeContext);
const icon = darkMode ?
<WbSunnyOutlinedIcon /> : <NightsStayOutlinedIcon />
return (
<span onClick={() => setDarkMode(!darkMode)}>
{darkMode ?
<WbSunnyOutlinedIcon className={classes.white}/> : <NightsStayOutlinedIcon className={classes.black}/>}
</span>
<IconButton
disableRipple
onClick={() => setDarkMode(!darkMode)}
>
{icon}
</IconButton>
);
};
@@ -1,139 +0,0 @@
import React, { useState, useEffect, createRef } from 'react';
import { Link } from 'react-router-dom';
import {
Container,
Hidden,
Tabs,
Tab,
useMediaQuery,
IconButton,
SwipeableDrawer,
} from '@material-ui/core';
import MenuIcon from '@material-ui/icons/Menu';
import MenuOpenIcon from '@material-ui/icons/MenuOpen';
import { makeStyles, useTheme } from '@material-ui/styles';
const useStyles = makeStyles((theme) => ({
toolbar: theme.mixins.toolbar,
drawerIconContainer: {
alignSelf: 'center',
'&:hover': { backgroundColor: 'transparent' },
[theme.breakpoints.down('md')]: { padding: 0 },
},
drawerIcon: {
height: '40px',
width: '40px',
color: 'white',
},
drawer: { minWidth: '50vw' },
tab: {
alignItems: 'flex-start',
fontSize: '2rem',
textTransform: 'capitalize',
},
right: {},
}));
const Navigation = (props) => {
const classes = useStyles();
const theme = useTheme();
const matches = useMediaQuery(theme.breakpoints.down('sm'));
const iOS = process.browser && /iPad|iPhone|iPod/.test(navigator.userAgent);
const [value, setValue] = useState(0);
const [openDrawer, setOpenDrawer] = useState(false);
const handleTabsChange = (e, newValue) => {
setValue(newValue);
setOpenDrawer(false);
};
const open = () => {
setOpenDrawer(true);
};
const close = () => {
setOpenDrawer(false);
};
const wrapper = createRef();
return (
<Container ref={wrapper}>
<Hidden mdUp>
<IconButton
onClick={() => setOpenDrawer(!openDrawer)}
disableRipple
className={classes.drawerIconContainer}
>
{openDrawer ? (
<MenuOpenIcon className={classes.drawerIcon} />
) : (
<MenuIcon className={classes.drawerIcon} />
)}
</IconButton>
</Hidden>
{matches ? (
<SwipeableDrawer
disableBackdropTransition={!iOS}
disableDiscovery={iOS}
open={openDrawer}
onOpen={open}
onClose={close}
classes={{ paper: classes.drawer }}
>
<div className={classes.toolbar} />
<Tabs
value={value}
onChange={handleTabsChange}
orientation="vertical"
indicatorColor="primary"
>
<Tab
label="Home"
component={Link}
to="/"
classes={{ wrapper: classes.tab }}
/>
<Tab
label="Projects"
component={Link}
to="/projects"
classes={{ wrapper: classes.tab }}
/>
<Tab
label="Games"
component={Link}
to="/games"
classes={{ wrapper: classes.tab }}
/>
<Tab
label="Snippets"
component={Link}
to="/snippets"
classes={{ wrapper: classes.tab }}
/>
<Tab
label="About"
component={Link}
to="/about"
classes={{ wrapper: classes.tab }}
/>
</Tabs>
</SwipeableDrawer>
) : (
<Hidden smDown>
<Tabs value={value} onChange={handleTabsChange} centered>
<Tab label="Home" component={Link} to="/" />
<Tab label="Projects" component={Link} to="/projects" />
<Tab label="Games" component={Link} to="/games" />
<Tab label="Snippets" component={Link} to="/snippets" />
<Tab label="About" component={Link} to="/about" />
</Tabs>
</Hidden>
)}
</Container>
);
};
export default Navigation;
@@ -1 +0,0 @@
export { default } from './Navigation';
-1
View File
@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#61DAFB"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg>

Before

Width:  |  Height:  |  Size: 2.6 KiB

+1 -8
View File
@@ -4,14 +4,7 @@ const Projects = () => {
return (
<div style={{ minHeight: 'calc(100vh-128px)' }}>
Projects ...in progress
{[...new Array(120)]
.map(
() => `Cras mattis consectetur purus sit amet fermentum.
Cras justo odio, dapibus ac facilisis in, egestas eget quam.
Morbi leo risus, porta ac consectetur ac, vestibulum at eros.
Praesent commodo cursus magna, vel scelerisque nisl consectetur et.`,
)
.join('\n')}
</div>
)
}