From 3e8500d466b641ef34c24f8b0de8163a44ba7a9e Mon Sep 17 00:00:00 2001 From: jackyzha0 Date: Fri, 5 Mar 2021 22:17:18 -0800 Subject: refactoring css --- frontend/public/index.html | 1 - frontend/src/App.js | 60 +++++++ frontend/src/components/App.js | 76 -------- frontend/src/components/Footer.js | 5 +- frontend/src/components/Form/Button.js | 0 frontend/src/components/Form/Input.js | 3 + frontend/src/components/Form/index.js | 0 frontend/src/components/Form/mixins.js | 33 ++++ frontend/src/components/Inputs.js | 200 --------------------- frontend/src/components/Inputs/Code.js | 35 ++++ frontend/src/components/Inputs/Dropdown.js | 84 +++++++++ frontend/src/components/Inputs/Password.js | 14 ++ frontend/src/components/Inputs/Text.js | 25 +++ frontend/src/components/Inputs/index.js | 6 + frontend/src/components/Inputs/shared.js | 25 +++ frontend/src/components/NewPaste.js | 7 +- frontend/src/components/Options.js | 8 +- frontend/src/components/PasteInfo.js | 4 +- frontend/src/components/ViewPaste.js | 5 +- frontend/src/components/Watermark.js | 26 +++ .../src/components/decorators/FloatingLabel.js | 32 ++-- frontend/src/components/modals/PasswordModal.js | 4 +- frontend/src/components/modals/PasteModal.js | 8 +- frontend/src/css/index.css | 33 ---- frontend/src/index.js | 3 +- frontend/src/theme/GlobalStyle.js | 11 ++ frontend/src/theme/ThemeProvider.js | 12 ++ 27 files changed, 372 insertions(+), 348 deletions(-) create mode 100644 frontend/src/App.js delete mode 100644 frontend/src/components/App.js create mode 100644 frontend/src/components/Form/Button.js create mode 100644 frontend/src/components/Form/Input.js create mode 100644 frontend/src/components/Form/index.js create mode 100644 frontend/src/components/Form/mixins.js delete mode 100644 frontend/src/components/Inputs.js create mode 100644 frontend/src/components/Inputs/Code.js create mode 100644 frontend/src/components/Inputs/Dropdown.js create mode 100644 frontend/src/components/Inputs/Password.js create mode 100644 frontend/src/components/Inputs/Text.js create mode 100644 frontend/src/components/Inputs/index.js create mode 100644 frontend/src/components/Inputs/shared.js create mode 100644 frontend/src/components/Watermark.js create mode 100644 frontend/src/theme/GlobalStyle.js create mode 100644 frontend/src/theme/ThemeProvider.js diff --git a/frontend/public/index.html b/frontend/public/index.html index b328944..8ca24a5 100644 --- a/frontend/public/index.html +++ b/frontend/public/index.html @@ -9,7 +9,6 @@ content="a modern, open-source pastebin with latex and markdown rendering support" /> - ctrl-v | a modern, open-source pastebin diff --git a/frontend/src/App.js b/frontend/src/App.js new file mode 100644 index 0000000..99e71ae --- /dev/null +++ b/frontend/src/App.js @@ -0,0 +1,60 @@ +import React from 'react'; +import NewPaste from './components/NewPaste' +import ViewPaste from './components/ViewPaste' +import Footer from './components/Footer' +import styled from 'styled-components' +import { + BrowserRouter as Router, + Switch, + Route, + useParams +} from "react-router-dom"; +import Raw from './components/renderers/Raw' +import ThemeProvider from './theme/ThemeProvider' +import GlobalStyle from './theme/GlobalStyle' +import {Watermark} from "./components/Watermark"; + +const Main = styled.div` + margin-top: 10vh; + padding: 0 20vw 30px 20vw; +` + +const GetPasteWithParam = () => { + let { hash } = useParams(); + return ; +} + +const GetRawWithParam = () => { + let { hash } = useParams(); + return ; +} + +const App = () => { + return ( + + + + + + + +
+ + + + + + + + +
+
+
+
+
+
+ ); +} + + +export default App; diff --git a/frontend/src/components/App.js b/frontend/src/components/App.js deleted file mode 100644 index f28a220..0000000 --- a/frontend/src/components/App.js +++ /dev/null @@ -1,76 +0,0 @@ -import React from 'react'; -import NewPaste from './NewPaste' -import ViewPaste from './ViewPaste' -import Footer from './Footer' -import styled from 'styled-components' -import { - BrowserRouter as Router, - Switch, - Route, - useParams -} from "react-router-dom"; -import Raw from './renderers/Raw' - -const Logo = styled.div` - position: absolute; - bottom: 1.5em; - left: 2em; - opacity: 0.3; - - & h1 { - font-size: 3rem; - } -` - -const Main = styled.main` - margin-top: 10vh; -` - -const GetPasteWithParam = () => { - let { hash } = useParams(); - return ; -} - -const GetRawWithParam = () => { - let { hash } = useParams(); - return ; -} - -const App = () => { - return ( - - - } - /> - -
- - - - -
- - } - /> - - - - -
- -
-
-
-
-
- ); -} - - -export default App; diff --git a/frontend/src/components/Footer.js b/frontend/src/components/Footer.js index 3186a42..1074fcb 100644 --- a/frontend/src/components/Footer.js +++ b/frontend/src/components/Footer.js @@ -3,6 +3,9 @@ import styled from 'styled-components' const SpacedFooter = styled.div` margin: 2em 0; + & a { + color: ${p => p.theme.colors.text}; + } ` const Link = (props) => { @@ -14,7 +17,7 @@ const Link = (props) => { const Footer = () => { return ( - (c) 2020 — , +

(c) 2020 — ,

); } diff --git a/frontend/src/components/Form/Button.js b/frontend/src/components/Form/Button.js new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/components/Form/Input.js b/frontend/src/components/Form/Input.js new file mode 100644 index 0000000..86af7d1 --- /dev/null +++ b/frontend/src/components/Form/Input.js @@ -0,0 +1,3 @@ +import {RelPositioning} from "../Inputs/shared"; +import React from "react"; + diff --git a/frontend/src/components/Form/index.js b/frontend/src/components/Form/index.js new file mode 100644 index 0000000..e69de29 diff --git a/frontend/src/components/Form/mixins.js b/frontend/src/components/Form/mixins.js new file mode 100644 index 0000000..dd26f7e --- /dev/null +++ b/frontend/src/components/Form/mixins.js @@ -0,0 +1,33 @@ +import {css} from 'styled-components'; + +export const Dropshadow = css` + box-shadow: 0 14px 28px rgba(27, 33, 48,0.06), 0 10px 10px rgba(27, 33, 48,0.02); +` + +export const InputLike = css` + width: 100%; + font-family: 'JetBrains Mono', monospace; + font-size: 0.8em; + padding: calc(0.8em - 1px); + border-radius: 3px; + border: 1px solid ${p => p.theme.colors.border}; + outline: none; + margin: 1.7em 0; +` + +export const ButtonLike = css` + font-family: 'JetBrains Mono', serif; + font-weight: 700; + padding: 0.8em 2em; + margin: 2em 0; + outline: 0; + + ${p => p.primary ? ` + color: #faf9f5; + background-color: #111111; + ` : ` + color: #faf9f5; + background-color: #111111; + `} + +` \ No newline at end of file diff --git a/frontend/src/components/Inputs.js b/frontend/src/components/Inputs.js deleted file mode 100644 index e18133d..0000000 --- a/frontend/src/components/Inputs.js +++ /dev/null @@ -1,200 +0,0 @@ -import React, {useEffect, useRef} from 'react'; -import CharLimit from './decorators/CharLimit' -import styled from 'styled-components' -import FloatingLabel from './decorators/FloatingLabel' -import Dropdown from 'react-dropdown'; -import { LANGS, THEMES } from './renderers/Code'; -import * as indentation from 'indent-textarea'; - -const RelPositioning = styled.div` - position: relative; - height: calc(100% - 4em); -` - -const FlexChild = styled.div` - display: block; - margin-left: 2em; -` - -const TitleInput = (props) => { - return ( - - - - - - ); -} - -const PasteInput = ({content, ...props}) => { - const textInput = useRef(null); - - useEffect(() => { - indentation.watch(textInput.current); - }, [textInput]) - - return ( - - -