diff --git a/components/Button/index.tsx b/components/Button/index.tsx index 92858ba..fe96075 100644 --- a/components/Button/index.tsx +++ b/components/Button/index.tsx @@ -1,5 +1,5 @@ import { FC, useContext } from 'react'; -import { DarkModeContext } from '../../components/DarkMode'; +import { ThemeContext } from '../../styles/theme'; import { Props } from './types'; import { Btn } from './styles'; import Link from 'next/link'; @@ -12,18 +12,9 @@ const Button: FC = ({ children, className }) => { - const { dark } = useContext(DarkModeContext); - return ( - + {children} diff --git a/components/Button/types.ts b/components/Button/types.ts index 4a93d13..068454b 100644 --- a/components/Button/types.ts +++ b/components/Button/types.ts @@ -3,5 +3,4 @@ export type Props = { href: string; target?: HTMLAnchorElement['target']; onClick?: () => void; - dark?: boolean; }; diff --git a/components/Card/index.tsx b/components/Card/index.tsx index f8989b7..a790be5 100644 --- a/components/Card/index.tsx +++ b/components/Card/index.tsx @@ -1,5 +1,4 @@ -import { FC, useContext } from 'react'; -import { DarkModeContext } from '../../components/DarkMode'; +import { FC } from 'react'; import { StyledCard } from './styles'; import Image from 'next/image'; import Link from 'next/link'; @@ -15,11 +14,9 @@ interface Props { } const Card: FC = ({ title, description, image, tags, href, target, onClick }) => { - const { dark } = useContext(DarkModeContext); - return ( - +

{title}

{description}

diff --git a/components/Card/styles.tsx b/components/Card/styles.tsx index 94c55bc..ad20bfa 100644 --- a/components/Card/styles.tsx +++ b/components/Card/styles.tsx @@ -1,6 +1,6 @@ import styled from 'styled-components'; -export const StyledCard = styled.div<{ dark: boolean; image: boolean }>` +export const StyledCard = styled.div<{ image: boolean }>` cursor: pointer; width: 100%; display: grid; diff --git a/components/Footer/index.tsx b/components/Footer/index.tsx index 4d67a68..10a5dc5 100644 --- a/components/Footer/index.tsx +++ b/components/Footer/index.tsx @@ -1,44 +1,44 @@ import { FC, useContext } from 'react'; -import { DarkModeContext } from '../../components/DarkMode'; +import { ThemeContext } from '../../styles/theme'; import { StyledFooter } from './styles'; import IconButton from '../../components/IconButton'; const Footer: FC = () => { - const { dark } = useContext(DarkModeContext); + const { mode } = useContext(ThemeContext); return (
` +const GlobalStyles = createGlobalStyle` * { margin: 0; padding: 0; @@ -71,10 +66,4 @@ const Global = createGlobalStyle` } `; -const GlobalStyles: FC = () => { - const { dark } = useContext(DarkModeContext); - - return ; -}; - export default GlobalStyles; diff --git a/components/Hero/index.tsx b/components/Hero/index.tsx index 58f07fa..c4ead8f 100644 --- a/components/Hero/index.tsx +++ b/components/Hero/index.tsx @@ -1,10 +1,10 @@ import { FC, useContext } from 'react'; -import { DarkModeContext } from '../../components/DarkMode'; +import { ThemeContext } from '../../styles/theme'; import { Wrapper } from './styles'; import Image from 'next/image'; const Hero: FC = () => { - const { dark } = useContext(DarkModeContext); + const { mode } = useContext(ThemeContext); return ( @@ -16,7 +16,7 @@ const Hero: FC = () => {
) => void; } -const SmallField = styled.input<{ dark: boolean }>` +const SmallField = styled.input` border: none; padding: 1rem; background: var(--secondary-background); color: var(--text); `; -const BigField = styled.textarea<{ dark: boolean }>` +const BigField = styled.textarea` resize: none; border: none; padding: 1rem; @@ -37,11 +36,8 @@ const Input: FC = ({ className, onChange }) => { - const { dark } = useContext(DarkModeContext); - return variant === 'small' ? ( = ({ /> ) : ( = ({ disabled, className }) => { - const { dark } = useContext(DarkModeContext); + const { mode } = useContext(ThemeContext); return link ? ( @@ -22,7 +22,7 @@ const MDXButton: FC = ({ target={target} variant={variant} type={type} - dark={dark} + mode={mode} disabled={disabled} className={className} > @@ -30,7 +30,7 @@ const MDXButton: FC = ({ ) : ( - + {children} ); diff --git a/components/MDXButton/styles.tsx b/components/MDXButton/styles.tsx index 91489b3..5c54ff6 100644 --- a/components/MDXButton/styles.tsx +++ b/components/MDXButton/styles.tsx @@ -7,10 +7,11 @@ export const Btn = styled.button` ['action', 'outline'].includes(variant as string) ? 'block' : 'inline'}; width: ${({ variant }) => (['action', 'outline'].includes(variant as string) ? '100%' : 'auto')}; /* TODO: fix theme blue color problem */ - background: ${({ variant, theme }) => (variant === 'action' ? '#1573CA' : 'none')}; - color: ${({ variant, dark }) => (variant === 'action' ? 'white' : dark ? 'white' : 'black')}; - border: ${({ variant, dark }) => - variant === 'outline' ? `2px solid ${dark ? 'white' : 'black'}` : 'none'}; + background: ${({ variant }) => (variant === 'action' ? '#1573CA' : 'none')}; + color: ${({ variant, mode }) => + variant === 'action' ? 'white' : mode === 'dark' ? 'white' : 'black'}; + border: ${({ variant, mode }) => + variant === 'outline' ? `2px solid ${mode === 'dark' ? 'white' : 'black'}` : 'none'}; font-weight: bold; font-size: ${({ variant }) => ['action', 'outline'].includes(variant as string) ? '1.05rem' : 'inherit'}; diff --git a/components/MDXButton/types.ts b/components/MDXButton/types.ts index ad1343c..d7bee50 100644 --- a/components/MDXButton/types.ts +++ b/components/MDXButton/types.ts @@ -3,6 +3,6 @@ export type Props = { type?: 'button' | 'submit'; link?: string; target?: HTMLAnchorElement['target']; - dark?: boolean; + mode?: string; disabled?: boolean; }; diff --git a/components/MobileNav/index.tsx b/components/MobileNav/index.tsx index 5beebcc..496d691 100644 --- a/components/MobileNav/index.tsx +++ b/components/MobileNav/index.tsx @@ -1,12 +1,12 @@ import { FC, useContext, useRef, useEffect } from 'react'; -import { DarkModeContext } from '../DarkMode'; +import { ThemeContext } from '../../styles/theme'; import { Props } from './types'; import { Bar } from './styles'; import IconButton from '../IconButton'; import Button from '../Button'; const MobileNav: FC = ({ open, close }) => { - const { dark, toggle } = useContext(DarkModeContext); + const { mode, toggle } = useContext(ThemeContext); const ref = useRef(null); useEffect(() => { @@ -29,16 +29,16 @@ const MobileNav: FC = ({ open, close }) => { }); return ( - +
diff --git a/components/MobileNav/types.ts b/components/MobileNav/types.ts index 1ff2cf3..5d15207 100644 --- a/components/MobileNav/types.ts +++ b/components/MobileNav/types.ts @@ -4,6 +4,5 @@ export type Props = { }; export type StyledProps = { - dark: boolean; open: boolean; }; diff --git a/components/Nav/index.tsx b/components/Nav/index.tsx index 0f658d6..0831506 100644 --- a/components/Nav/index.tsx +++ b/components/Nav/index.tsx @@ -1,5 +1,5 @@ import { FC, useContext, useState } from 'react'; -import { DarkModeContext } from '../DarkMode'; +import { ThemeContext } from '../../styles/theme'; import { Bar } from './styles'; import Link from 'next/link'; import Image from 'next/image'; @@ -9,7 +9,7 @@ import MobileNav from '../MobileNav'; const Nav: FC = () => { const [mobileNavOpen, setMobileNavOpen] = useState(false); - const { dark, toggle } = useContext(DarkModeContext); + const { mode, toggle } = useContext(ThemeContext); return ( @@ -17,7 +17,7 @@ const Nav: FC = () => { Logo Image {
- + @@ -39,7 +42,7 @@ const Nav: FC = () => { Resume setMobileNavOpen(true)} />
diff --git a/pages/_app.tsx b/pages/_app.tsx index 29106f7..ae4bf75 100644 --- a/pages/_app.tsx +++ b/pages/_app.tsx @@ -5,10 +5,10 @@ import Head from 'next/head'; import { useRouter } from 'next/router'; import Nav from '../components/Nav'; -import DarkMode from '../components/DarkMode'; +import Theme from '../styles/theme'; import Container from '../components/Container'; import GlobalStyles from '../components/GlobalStyles'; -import Theme from '../components/Theme'; +import SharedStyles from '../styles/shared'; import Footer from '../components/Footer'; import NProgress from 'nprogress'; @@ -42,16 +42,16 @@ const App = ({ Component, pageProps }: AppProps) => { rel='stylesheet' /> - - + +