From b6beb5f02e8c291f2b5f2bc7d0c15d0955336c32 Mon Sep 17 00:00:00 2001 From: Jan Tuomi Date: Fri, 2 Jul 2021 11:19:25 +0300 Subject: Implement research papers --- frontend/components/Marquees/Marquee.module.css | 38 +++++++++++++++++++++++++ frontend/components/Marquees/Marquee.tsx | 20 +++++++++++++ frontend/components/Marquees/Marquees.tsx | 35 +++++++++++++++++++++++ 3 files changed, 93 insertions(+) create mode 100644 frontend/components/Marquees/Marquee.module.css create mode 100644 frontend/components/Marquees/Marquee.tsx create mode 100644 frontend/components/Marquees/Marquees.tsx (limited to 'frontend/components') diff --git a/frontend/components/Marquees/Marquee.module.css b/frontend/components/Marquees/Marquee.module.css new file mode 100644 index 0000000..0fb8ece --- /dev/null +++ b/frontend/components/Marquees/Marquee.module.css @@ -0,0 +1,38 @@ +.marqueeContainer { + height: 100vh; + overflow: hidden; + position: relative; + background: #fefefe; + color: #333; + z-index: 10; +} + +.marquee { + position: absolute; + width: 100%; + height: 50px; + margin: 0; + line-height: 50px; + text-align: center; + transform: translateX(100%); + animation: scroll-left 10s linear infinite; + text-decoration: underline; +} + +@keyframes scroll-left { + 0% { + transform: translateX(100%); + } + 100% { + transform: translateX(-100%); + } +} + +@keyframes scroll-right { + 0% { + transform: translateX(-100%); + } + 100% { + transform: translateX(100%); + } +} diff --git a/frontend/components/Marquees/Marquee.tsx b/frontend/components/Marquees/Marquee.tsx new file mode 100644 index 0000000..4cc41a2 --- /dev/null +++ b/frontend/components/Marquees/Marquee.tsx @@ -0,0 +1,20 @@ +import React, { ReactElement } from "react"; +import styles from "./Marquee.module.css"; + +interface Props { + delayShorthand: string; + topShorthand: string; + url: string; + text: string; + direction: "left" | "right"; +} + +const Marquee = ({ delayShorthand, url, text, topShorthand, direction }: Props): ReactElement => ( + {text} +); + +export default Marquee; diff --git a/frontend/components/Marquees/Marquees.tsx b/frontend/components/Marquees/Marquees.tsx new file mode 100644 index 0000000..04747fb --- /dev/null +++ b/frontend/components/Marquees/Marquees.tsx @@ -0,0 +1,35 @@ +import React, { ReactElement } from "react"; +import styles from "./Marquee.module.css"; +import Marquee from "./Marquee"; + +export interface MarqueeLink { + title: string; + url: string; +} + +interface Props { + links: MarqueeLink[] +} + +const getRandomDelayBetween = (start: number, end: number) => `${Math.random() * (end - start) + start}s`; +const getTopFromIndex = (index: number, n: number) => `calc((100% - 50px) * (${index} / ${n - 1}))`; +const getRandomAnimationName = () => Math.random() > 0.5 ? "right" : "left"; + +const Marquees = ({ links }: Props): ReactElement => { + return ( +
+ { links.map((link, idx) => ( + + ))} + + ); +}; + +export default Marquees; -- cgit v1.3