import { memo } from "react"; import NextLink from "next/link"; import { HeartIcon, NextjsLogo } from "../Icons"; import { keyframes, styled } from "../../lib/styles/stitches.config"; import * as config from "../../lib/config"; import type { ComponentProps } from "react"; const Wrapper = styled("footer", { width: "100%", padding: "1.25em 1.5em", borderTop: "1px solid $kindaLight", backgroundColor: "$backgroundOuter", color: "$mediumDark", // light-dark theme switch fading transition: "background 0.25s ease, border 0.25s ease", "@medium": { padding: "1em 1.25em", }, }); const Row = styled("div", { display: "flex", width: "100%", maxWidth: "865px", margin: "0 auto", justifyContent: "space-between", fontSize: "0.85em", lineHeight: 2.3, // stack columns on left instead of flexboxing across "@medium": { fontSize: "0.8em", display: "block", }, }); const Link = styled("a", { color: "$mediumDark", textDecoration: "none", }); const NextjsLink = styled(Link, { "&:hover": { color: "$medium", }, }); const ViewSourceLink = styled(Link, { paddingBottom: "2px", borderBottom: "1px solid $light", "&:hover": { borderColor: "$kindaLight", }, }); const beat = keyframes({ "0%": { transform: "scale(1)" }, "2%": { transform: "scale(1.25)" }, "4%": { transform: "scale(1)" }, "6%": { transform: "scale(1.2)" }, "8%": { transform: "scale(1)" }, // pause for ~9 out of 10 seconds "100%": { transform: "scale(1)" }, }); const Heart = styled("span", { display: "inline-block", animation: `${beat} 10s infinite`, animationDelay: "7.5s", willChange: "transform", }); const Icon = styled("svg", { width: "1.25em", height: "1.25em", verticalAlign: "-0.25em", margin: "0 0.075em", }); export type FooterProps = ComponentProps; const Footer = ({ ...rest }: FooterProps) => (
Content{" "} licensed under CC-BY-4.0 ,{" "} 2001 {" "} – {new Date().getFullYear()}.
Made with{" "} {" "} and{" "} .{" "} View source.
); export default memo(Footer);