diff --git a/src/components/buttons/Custom.tsx b/src/components/buttons/Custom.tsx new file mode 100644 index 0000000..ce4d71e --- /dev/null +++ b/src/components/buttons/Custom.tsx @@ -0,0 +1,26 @@ +import React /*, { useEffect, useRef, useState }*/ from "react"; +import { Box, Link, Button, BoxProps } from "@chakra-ui/react"; +import { Icon } from "@iconify/react"; +import { motion } from "framer-motion"; + +interface CustomButtonProps { + text: string; + link: string; + type: "primary" | "secondary" | "footer"; +} + +const MotionBox = motion(Box); + +const CustomButton = ({ text, link, type }: CustomButtonProps): JSX.Element => { + return ( + + + + + + ); +}; + +export default CustomButton; diff --git a/src/components/buttons/Patreon.tsx b/src/components/buttons/Patreon.tsx new file mode 100644 index 0000000..a76fd67 --- /dev/null +++ b/src/components/buttons/Patreon.tsx @@ -0,0 +1,27 @@ +import React /*, { useEffect, useRef, useState }*/ from "react"; +import { Box, Link, Button, BoxProps } from "@chakra-ui/react"; +import { Icon } from "@iconify/react"; +import { motion } from "framer-motion"; + +const MotionBox = motion(Box); + +const Patreon = (): JSX.Element => { + return ( + + + + + + ); +}; + +export default Patreon; diff --git a/src/components/buttons/Twitter.tsx b/src/components/buttons/Twitter.tsx new file mode 100644 index 0000000..c8af77b --- /dev/null +++ b/src/components/buttons/Twitter.tsx @@ -0,0 +1,27 @@ +import React /*, { useEffect, useRef, useState }*/ from "react"; +import { Box, Link, Button, BoxProps } from "@chakra-ui/react"; +import { Icon } from "@iconify/react"; +import { motion } from "framer-motion"; + +const MotionBox = motion(Box); + +const Twitter = (): JSX.Element => { + return ( + + + + + + ); +}; + +export default Twitter; diff --git a/src/components/calender/index.tsx b/src/components/calender/index.tsx index d306faf..9287d25 100644 --- a/src/components/calender/index.tsx +++ b/src/components/calender/index.tsx @@ -106,7 +106,13 @@ const Calender = ({ ); })} - + {Object.keys(month).map((week) => { const thisWeek = month[week]; @@ -142,7 +148,7 @@ const Calender = ({ id.length ? id : format(toDateObj, "yyyyddLL") + - `/${sticker === null ? 0 : sticker}` + `/${sticker === null ? 0 : sticker}` } /> ); diff --git a/src/components/tutorial/CalenderExample.tsx b/src/components/tutorial/CalenderExample.tsx index 115ee88..d131b42 100644 --- a/src/components/tutorial/CalenderExample.tsx +++ b/src/components/tutorial/CalenderExample.tsx @@ -108,7 +108,13 @@ const CalenderExample = ({ type }: CalenderExampleProps): JSX.Element => { ); })} - + {currWeek.map((day: MonthDay) => { const { date, isOverflow, overflowDirection } = day; @@ -142,7 +148,7 @@ const CalenderExample = ({ type }: CalenderExampleProps): JSX.Element => { id.length ? id : format(toDateObj, "yyyyddLL") + - `/${sticker === null ? 0 : sticker}` + `/${sticker === null ? 0 : sticker}` } /> ); diff --git a/src/components/tutorial/index.tsx b/src/components/tutorial/index.tsx index bcfd32c..f7dd4ab 100644 --- a/src/components/tutorial/index.tsx +++ b/src/components/tutorial/index.tsx @@ -5,10 +5,14 @@ import { Divider, Heading, HStack, + Link, Text, VStack } from "@chakra-ui/react"; import React, { useState } from "react"; +import CustomButton from "../buttons/Custom"; +import Patreon from "../buttons/Patreon"; +import Twitter from "../buttons/Twitter"; import CalenderExample from "./CalenderExample"; interface TutorialProps { @@ -138,7 +142,8 @@ const Tutorial = ({ @@ -170,7 +175,8 @@ const Tutorial = ({ @@ -193,7 +199,8 @@ const Tutorial = ({ @@ -215,6 +222,43 @@ const Tutorial = ({ + {/* Links */} + + + {"More Info"} + + + + + + + + + {/* Complete tutorial */} | StyleFunctionProps) => ({ bg: "brand.primary", fontSize: "xl", - p: "2", + py: 3, + px: 4, + color: "whiteAlpha", _hover: { bg: mode( whiten("brand.primary", 20), @@ -26,9 +28,11 @@ const buttonStyles = { } }), secondary: (props: Dict | StyleFunctionProps) => ({ - bg: "transparent", + bg: "brand.secondary", fontSize: "xl", - p: "2", + py: 3, + px: 4, + color: "whiteAlpha", _hover: { bg: mode( whiten("brand.secondary", 20), @@ -39,9 +43,12 @@ const buttonStyles = { skip: (props: Dict | StyleFunctionProps) => ({ bg: "transparent", fontSize: "xl", - p: "2", + py: 3, + px: 4, + color: "gray.400", _hover: { - bg: mode(whiten("brand.danger", 20), darken("brand.danger", 20))(props) + bg: mode(whiten("brand.danger", 20), darken("brand.danger", 20))(props), + color: "whiteAlpha.900" } }), stickerButton: (props: Dict | StyleFunctionProps) => ({ @@ -56,27 +63,10 @@ const buttonStyles = { )(props) } }), - project: (props: Dict | StyleFunctionProps) => ({ - bg: "transparent", - fontSize: "md", - py: 2, - px: 4, - boxShadow: - "rgba(0, 134, 255, 0.2) 0px 0px 15px, rgba(0, 134, 255, 0.15) 0px 0px 3px 1px", - border: "1px solid rgba(0, 134, 255, 0.4)", - _hover: { - bg: mode( - whiten("brand.secondary", 20), - darken("brand.secondary", 20) - )(props), - boxShadow: - "rgba(0, 104, 255, 0.5) 0px 0px 15px, rgba(0, 104, 255, 0.3) 0px 0px 3px 1px" - } - }), nav: (props: Dict | StyleFunctionProps) => ({ bg: "transparent", fontSize: "md", - px: "2", + px: 2, _hover: { bg: mode( whiten("brand.secondary", 20), @@ -87,15 +77,16 @@ const buttonStyles = { stickyNav: (/* props: Dict | StyleFunctionProps */) => ({ bg: "transparent", fontSize: "md", - px: "2", + px: 2, _hover: { textDecoration: "underline" } }), - credits: (props: Dict | StyleFunctionProps) => ({ + footer: (props: Dict | StyleFunctionProps) => ({ bg: "brand.main", fontSize: "lg", - p: 3, + py: 3, + px: 4, color: "whiteAlpha", _hover: { bg: mode(whiten("brand.main", 20), darken("brand.main", 20))(props) @@ -121,22 +112,6 @@ const buttonStyles = { border: "1px solid rgba(0, 134, 255, 1)" } }), - collapse: (props: Dict | StyleFunctionProps) => ({ - bg: "transparent", - fontSize: "md", - p: 2, - h: 8, - color: "brand.hover", - textDecoration: "underline", - _hover: { - bg: mode( - whiten("brand.secondary", 20), - darken("brand.secondary", 20) - )(props), - color: "whiteAlpha.900", - textDecoration: "none" - } - }), submit: (props: Dict | StyleFunctionProps) => ({ fontSize: "lg", py: 2, @@ -159,7 +134,7 @@ const buttonStyles = { mobileNav: (props: Dict | StyleFunctionProps) => ({ // bg: "transparent", fontSize: "md", - px: "2", + px: 2, boxShadow: "rgba(0, 134, 255, 0.30) 0px 0px 15px, rgba(0, 134, 255, 0.15) 0px 0px 3px 1px", _hover: { @@ -188,6 +163,19 @@ const buttonStyles = { darken("brand.patreon", 20) )(props) } + }), + twitter: (props: Dict | StyleFunctionProps) => ({ + bg: "brand.twitter", + fontSize: "lg", + py: 3, + px: 4, + color: "whiteAlpha", + _hover: { + bg: mode( + whiten("brand.twitter", 20), + darken("brand.twitter", 20) + )(props) + } }) }, // default values for `size` and `variant` diff --git a/src/theme/layout/Footer.tsx b/src/theme/layout/Footer.tsx index a9d4620..a59d391 100644 --- a/src/theme/layout/Footer.tsx +++ b/src/theme/layout/Footer.tsx @@ -4,16 +4,17 @@ import { Text, VStack, Link, - HStack, // Image, Button, BoxProps } from "@chakra-ui/react"; -import { Icon } from "@iconify/react"; // import BackToTopButton from "./BackToTopButton"; import { motion } from "framer-motion"; +import Patreon from "../../components/buttons/Patreon"; +import CustomButton from "../../components/buttons/Custom"; +import Twitter from "../../components/buttons/Twitter"; -export const MotionBox = motion(Box); +const MotionBox = motion(Box); const Footer = (): JSX.Element => { // const [showBackToTop, setShowBackToTop] = useState(false); @@ -68,32 +69,15 @@ const Footer = (): JSX.Element => { */} - - - - - - - - - - + + + © {` 2021 - ${new Date().getFullYear()} `}