diff --git a/external/lang b/external/lang index 697960e4..0bac1d58 160000 --- a/external/lang +++ b/external/lang @@ -1 +1 @@ -Subproject commit 697960e42a5e27947a1b8d7338b406ae5a9372dd +Subproject commit 0bac1d588e7bdf47cdc5659abbbbc75dfb75fd37 diff --git a/src/pages/home/snow.scss b/src/pages/home/snow.scss index 4df53e93..00ed4814 100644 --- a/src/pages/home/snow.scss +++ b/src/pages/home/snow.scss @@ -46,7 +46,13 @@ $fontSize: 40px; @while ($count > 0) { $left: random(100); $deltaLeft: random(2 * $windNoise * 10) / 10 - $windNoise + $windSpeed; + /*$deltaLeft: math.div(random(2 * $windNoise * 10), 10) - + $windNoise + + $windSpeed;*/ $scale: 1 + (random(2 * $sizeNoise * 10) / 10 - $sizeNoise) / 100; + /*$scale: 1 + + (math.div(random(2 * $sizeNoise * 10), 10) - $sizeNoise) / + 100;*/ .snowflake:nth-child(#{$count}) { animation: animation-snowflake-#{$count} linear infinite; diff --git a/src/pages/login/Login.module.scss b/src/pages/login/Login.module.scss index 27bd99ba..5762a104 100644 --- a/src/pages/login/Login.module.scss +++ b/src/pages/login/Login.module.scss @@ -1,78 +1,168 @@ .login { width: 100%; height: 100%; - + padding: 40px 35px; display: flex; - flex-direction: row; + user-select: none; - svg { - margin: auto; - } + background: url("/src/pages/login/background.jpg"); + background-position: center; + background-repeat: no-repeat; + background-size: cover; - > div { - flex: 1; + .nav { + display: flex; + align-items: center; + + .logo { + flex-grow: 1; + > img { + height: 24px; + } + } } .content { display: flex; flex-direction: column; - justify-content: space-between; + flex-grow: 1; + } - .attribution { - color: var(--tertiary-background); - font-size: 12px; - line-height: 12px; - margin: 8px; + select { + max-width: 180px; + padding: 4px; + height: fit-content; + background-color: rgba(36, 36, 36, 0.75); + border: 2px solid rgba(128, 128, 128, 0.15); + backdrop-filter: blur(20px); + font-size: 13px; + } - display: flex; - flex-direction: row; - justify-content: space-between; - } + .middle { + display: flex; + gap: 50px; - .modal { - display: flex; - flex-direction: row; - - justify-content: center; + .loginQR { + background-color: rgba(36, 36, 36, 0.75); + border: 2px solid rgba(128, 128, 128, 0.15); + border-radius: 8px; + width: 330px; } } - .bg { - background-size: cover !important; - } -} + .form { + background-color: rgba(36, 36, 36, 0.75); + border: 2px solid rgba(128, 128, 128, 0.15); + backdrop-filter: blur(20px); + max-width: 330px; + max-height: 600px; + padding: 30px 25px; + border-radius: 8px; + margin-inline-start: 50px; + margin-top: 20px; + margin-bottom: 20px; + box-shadow: 0 2px 10px 0 rgb(0 0 0 / 20%); -.form { - display: flex; - flex-direction: column; - font-size: 14px; + .formModal { + display: flex; + flex-direction: column; + gap: 10px; - img { - width: 260px; - margin: auto; + > span { + font-size: 13px; + + b { + font-weight: 600; + } + } + + .welcome { + font-size: 20px; + font-weight: 600; + margin-bottom: 10px; + } + + .subtitle { + font-weight: 400; + font-size: 14px; + } + + form { + display: flex; + flex-direction: column; + gap: 10px; + + > div { + margin: 0; + margin-bottom: -4px; + font-size: 12px; + color: var(--secondary-foreground); + } + + input { + background: var(--secondary-background); + /*border: 2px solid rgba(128, 128, 128, 0.15);*/ + } + + button { + padding: 8px; + background: var(--secondary-background); + margin-bottom: 15px; + } + } + } } a { - margin-top: 4px; - } + color: white; - form { - margin: 1em 0; - display: flex; - flex-direction: column; - - button { - margin-top: 24px; + &:hover { + text-decoration: underline; } } - .create { - text-align: center; - color: var(--tertiary-foreground); + .bottom { + display: flex; + align-items: center; + justify-content: space-between; + font-size: 14px; - a { - margin: 0 4px; + .links { + display: flex; + align-items: center; + gap: 15px; + + .socials { + display: flex; + gap: 10px; + + a { + transition: opacity 0.2s ease-in-out; + &:hover { + opacity: 0.7; + } + &:active { + opacity: 0.5; + } + } + } + + .bullet { + height: 5px; + width: 5px; + background: grey; + border-radius: 50%; + } + + .revolt { + display: flex; + gap: 10px; + + a { + color: white !important; + } + } } } } @@ -103,24 +193,46 @@ } } -.footer { - margin-top: 12px; - text-align: center; - color: var(--tertiary6); +@media only screen and (max-width: 768px) { + .login { + padding: 30px 20px; + background-image: unset; + background-color: var(--primary-background); - a { - color: var(--tertiary-background) !important; - cursor: pointer; - margin: 0 2px; + .content { + .nav { + .logo { + img { + height: 24px; + } + } + } - &:hover { - color: var(--tertiary-foreground) !important; + .bottom { + flex-direction: column; + + .links { + flex-direction: column; + gap: 10px; + } + + .bullet, + .attribution { + display: none; + } + } + } + + .form { + border: unset; + margin-inline-start: 0; + padding: 0; + max-width: unset; + box-shadow: unset; + } + + .loginQR { + display: none; } } } - -@media only screen and (max-width: 768px) { - .bg { - display: none; - } -} diff --git a/src/pages/login/Login.tsx b/src/pages/login/Login.tsx index bd3187d2..d37dde2c 100644 --- a/src/pages/login/Login.tsx +++ b/src/pages/login/Login.tsx @@ -1,3 +1,4 @@ +import { Twitter, Github, Mastodon } from "@styled-icons/boxicons-logos"; import { observer } from "mobx-react-lite"; import { Helmet } from "react-helmet"; import { Route, Switch } from "react-router-dom"; @@ -8,6 +9,7 @@ import { Text } from "preact-i18n"; import { useApplicationState } from "../../mobx/State"; +import wideSVG from "../../../public/assets/wide.svg"; import LocaleSelector from "../../components/common/LocaleSelector"; import background from "./background.jpg"; @@ -36,14 +38,104 @@ export default observer(() => { />
-
+
+ + + + +
+ {/*
*/} +
+ {/*
+ API: {configuration?.revolt ?? "???"}{" "} + · revolt.js: {LIBRARY_VERSION}{" "} + · App: {APP_VERSION} +
*/} + + + + + + + + + + + + + + + + + + + + +
+ {/*
*/} + {/*
*/} + +
+
+
+ + + + + + + + + +
+
+ +
+ + + ‎@fakurian ‏· + unsplash.com + +
+ {/*
API: {configuration?.revolt ?? "???"}{" "} · revolt.js: {LIBRARY_VERSION}{" "} · App: {APP_VERSION} - +
@@ -67,18 +159,8 @@ export default observer(() => { -
-
- - ‎@lorenzoherrera - ‏· unsplash.com - -
+
*/}
-
); diff --git a/src/pages/login/background-old.jpg b/src/pages/login/background-old.jpg new file mode 100644 index 00000000..44254ed7 Binary files /dev/null and b/src/pages/login/background-old.jpg differ diff --git a/src/pages/login/background.jpg b/src/pages/login/background.jpg index 44254ed7..c3a50362 100644 Binary files a/src/pages/login/background.jpg and b/src/pages/login/background.jpg differ diff --git a/src/pages/login/forms/Form.tsx b/src/pages/login/forms/Form.tsx index 35a6e14e..cd67c32b 100644 --- a/src/pages/login/forms/Form.tsx +++ b/src/pages/login/forms/Form.tsx @@ -18,7 +18,6 @@ import Preloader from "../../../components/ui/Preloader"; import FormField from "../FormField"; import { CaptchaBlock, CaptchaProps } from "./CaptchaBlock"; -import { Legal } from "./Legal"; import { MailProvider } from "./MailProvider"; interface Props { @@ -144,8 +143,16 @@ export function Form({ page, callback }: Props) { if (loading) return ; return ( -
- +
+
+
+ +
+
+ +
+
+ {/* Preact / React typing incompatabilities */}
- + + + {" "} - + + + {" "} @@ -219,13 +230,17 @@ export function Form({ page, callback }: Props) { {page === "login" && ( <> - + + + {" "} - + + + {" "} @@ -243,7 +258,6 @@ export function Form({ page, callback }: Props) { )} -
); } diff --git a/src/pages/login/forms/Legal.tsx b/src/pages/login/forms/Legal.tsx deleted file mode 100644 index bb0ef4ea..00000000 --- a/src/pages/login/forms/Legal.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import styles from "../Login.module.scss"; -import { Text } from "preact-i18n"; - -export function Legal() { - return ( - - - - - · - - - - · - - - - - ); -} diff --git a/src/pages/settings/server/Overview.tsx b/src/pages/settings/server/Overview.tsx index 9086e5fb..28141891 100644 --- a/src/pages/settings/server/Overview.tsx +++ b/src/pages/settings/server/Overview.tsx @@ -126,6 +126,7 @@ export const Overview = observer(({ server }: Props) => { alignItems: "center", }}> {i18n} + Sends a message when someone joins your server