diff --git a/.gitignore b/.gitignore
index 689d28b3..321920d0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,7 @@ dist-ssr
*.local
*.log
/.idea
+
+public/assets
+public/assets_*
+!public/assets_default
diff --git a/README.md b/README.md
index 756236f4..cc94b1b0 100644
--- a/README.md
+++ b/README.md
@@ -31,6 +31,7 @@ It is also recommended to run `git submodule update` after you pull from upstrea
| Command | Description |
| ------------------- | -------------------------------------------- |
+| `yarn pull` | Setup assets required for Revite. |
| `yarn dev` | Start the Revolt client in development mode. |
| `yarn build` | Build the Revolt client. |
| `yarn preview` | Start a local server with the built client. |
diff --git a/index.html b/index.html
index 70ebae87..2361c152 100644
--- a/index.html
+++ b/index.html
@@ -16,7 +16,7 @@
rel="apple-touch-icon"
href="public/assets/icons/apple-touch.png"
/>
-
+
-
-
-
+
\ No newline at end of file
diff --git a/public/assets/badges/early_adopter.svg b/public/assets/badges/early_adopter.svg
index 0da734ea..40c8b276 100644
--- a/public/assets/badges/early_adopter.svg
+++ b/public/assets/badges/early_adopter.svg
@@ -1,4 +1 @@
-
+
\ No newline at end of file
diff --git a/public/assets/badges/revolt_r.svg b/public/assets/badges/revolt_r.svg
index 5a0184ad..40c8b276 100644
--- a/public/assets/badges/revolt_r.svg
+++ b/public/assets/badges/revolt_r.svg
@@ -1,11 +1 @@
-
-
-
+
\ No newline at end of file
diff --git a/public/assets/badges/translator.svg b/public/assets/badges/translator.svg
index 1e8df12f..40c8b276 100644
--- a/public/assets/badges/translator.svg
+++ b/public/assets/badges/translator.svg
@@ -1,15 +1 @@
-
+
\ No newline at end of file
diff --git a/public/assets/badges/verified.svg b/public/assets/badges/verified.svg
index b31345b4..40c8b276 100644
--- a/public/assets/badges/verified.svg
+++ b/public/assets/badges/verified.svg
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/public/assets/icons/android-chrome-192x192.png b/public/assets/icons/android-chrome-192x192.png
index b9b7d32b..ba6a2fa2 100644
Binary files a/public/assets/icons/android-chrome-192x192.png and b/public/assets/icons/android-chrome-192x192.png differ
diff --git a/public/assets/icons/android-chrome-512x512.png b/public/assets/icons/android-chrome-512x512.png
index 00768e55..d81a9d78 100644
Binary files a/public/assets/icons/android-chrome-512x512.png and b/public/assets/icons/android-chrome-512x512.png differ
diff --git a/public/assets/icons/apple-touch.png b/public/assets/icons/apple-touch.png
index 19536a83..97d3a68f 100644
Binary files a/public/assets/icons/apple-touch.png and b/public/assets/icons/apple-touch.png differ
diff --git a/public/assets/icons/favicon-16x16.png b/public/assets/icons/favicon-16x16.png
index 0cbc4e32..56ee64ee 100644
Binary files a/public/assets/icons/favicon-16x16.png and b/public/assets/icons/favicon-16x16.png differ
diff --git a/public/assets/icons/favicon-32x32.png b/public/assets/icons/favicon-32x32.png
index 943eec59..fa0acc0a 100644
Binary files a/public/assets/icons/favicon-32x32.png and b/public/assets/icons/favicon-32x32.png differ
diff --git a/public/assets/icons/masking-512x512.png b/public/assets/icons/masking-512x512.png
index c1966a78..7856af0a 100644
Binary files a/public/assets/icons/masking-512x512.png and b/public/assets/icons/masking-512x512.png differ
diff --git a/public/assets/icons/monochrome.svg b/public/assets/icons/monochrome.svg
index 820183c3..3cb81b29 100644
--- a/public/assets/icons/monochrome.svg
+++ b/public/assets/icons/monochrome.svg
@@ -1,3 +1,3 @@
-
+
\ No newline at end of file
diff --git a/public/assets/icons/mstile-150x150.png b/public/assets/icons/mstile-150x150.png
index bf5bc19a..b568a473 100644
Binary files a/public/assets/icons/mstile-150x150.png and b/public/assets/icons/mstile-150x150.png differ
diff --git a/public/assets/icons/nightly-android-chrome-192x192.png b/public/assets/icons/nightly-android-chrome-192x192.png
deleted file mode 100644
index d0ac0944..00000000
Binary files a/public/assets/icons/nightly-android-chrome-192x192.png and /dev/null differ
diff --git a/public/assets/icons/nightly-android-chrome-512x512.png b/public/assets/icons/nightly-android-chrome-512x512.png
deleted file mode 100644
index cdf8bb27..00000000
Binary files a/public/assets/icons/nightly-android-chrome-512x512.png and /dev/null differ
diff --git a/public/assets/logo.png b/public/assets/logo.png
index 1969aef9..d0f604c6 100644
Binary files a/public/assets/logo.png and b/public/assets/logo.png differ
diff --git a/public/assets/splashscreens/ipad_splash.png b/public/assets/splashscreens/ipad_splash.png
index 3cf6f0b3..08396a67 100644
Binary files a/public/assets/splashscreens/ipad_splash.png and b/public/assets/splashscreens/ipad_splash.png differ
diff --git a/public/assets/splashscreens/ipadpro1_splash.png b/public/assets/splashscreens/ipadpro1_splash.png
index 1dffed13..0e38c627 100644
Binary files a/public/assets/splashscreens/ipadpro1_splash.png and b/public/assets/splashscreens/ipadpro1_splash.png differ
diff --git a/public/assets/splashscreens/ipadpro2_splash.png b/public/assets/splashscreens/ipadpro2_splash.png
index 9093218d..28573bbe 100644
Binary files a/public/assets/splashscreens/ipadpro2_splash.png and b/public/assets/splashscreens/ipadpro2_splash.png differ
diff --git a/public/assets/splashscreens/ipadpro3_splash.png b/public/assets/splashscreens/ipadpro3_splash.png
index 5688ea59..67d5e736 100644
Binary files a/public/assets/splashscreens/ipadpro3_splash.png and b/public/assets/splashscreens/ipadpro3_splash.png differ
diff --git a/public/assets/splashscreens/iphone5_splash.png b/public/assets/splashscreens/iphone5_splash.png
index a065bc88..315c272b 100644
Binary files a/public/assets/splashscreens/iphone5_splash.png and b/public/assets/splashscreens/iphone5_splash.png differ
diff --git a/public/assets/splashscreens/iphone6_splash.png b/public/assets/splashscreens/iphone6_splash.png
index 52847281..afceeb94 100644
Binary files a/public/assets/splashscreens/iphone6_splash.png and b/public/assets/splashscreens/iphone6_splash.png differ
diff --git a/public/assets/splashscreens/iphoneplus_splash.png b/public/assets/splashscreens/iphoneplus_splash.png
index 82697e79..70b8eaff 100644
Binary files a/public/assets/splashscreens/iphoneplus_splash.png and b/public/assets/splashscreens/iphoneplus_splash.png differ
diff --git a/public/assets/splashscreens/iphonex_splash.png b/public/assets/splashscreens/iphonex_splash.png
index 953182dd..6400525b 100644
Binary files a/public/assets/splashscreens/iphonex_splash.png and b/public/assets/splashscreens/iphonex_splash.png differ
diff --git a/public/assets/splashscreens/iphonexr_splash.png b/public/assets/splashscreens/iphonexr_splash.png
index 60c62883..91fbdd7c 100644
Binary files a/public/assets/splashscreens/iphonexr_splash.png and b/public/assets/splashscreens/iphonexr_splash.png differ
diff --git a/public/assets/splashscreens/iphonexsmax_splash.png b/public/assets/splashscreens/iphonexsmax_splash.png
index ceaf28da..442b1860 100644
Binary files a/public/assets/splashscreens/iphonexsmax_splash.png and b/public/assets/splashscreens/iphonexsmax_splash.png differ
diff --git a/public/assets_default/badges/developer.svg b/public/assets_default/badges/developer.svg
new file mode 100644
index 00000000..40c8b276
--- /dev/null
+++ b/public/assets_default/badges/developer.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/assets_default/badges/early_adopter.svg b/public/assets_default/badges/early_adopter.svg
new file mode 100644
index 00000000..40c8b276
--- /dev/null
+++ b/public/assets_default/badges/early_adopter.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/assets_default/badges/revolt_r.svg b/public/assets_default/badges/revolt_r.svg
new file mode 100644
index 00000000..40c8b276
--- /dev/null
+++ b/public/assets_default/badges/revolt_r.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/assets_default/badges/translator.svg b/public/assets_default/badges/translator.svg
new file mode 100644
index 00000000..40c8b276
--- /dev/null
+++ b/public/assets_default/badges/translator.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/assets_default/badges/verified.svg b/public/assets_default/badges/verified.svg
new file mode 100644
index 00000000..40c8b276
--- /dev/null
+++ b/public/assets_default/badges/verified.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/assets_default/icons/android-chrome-192x192.png b/public/assets_default/icons/android-chrome-192x192.png
new file mode 100644
index 00000000..ba6a2fa2
Binary files /dev/null and b/public/assets_default/icons/android-chrome-192x192.png differ
diff --git a/public/assets_default/icons/android-chrome-512x512.png b/public/assets_default/icons/android-chrome-512x512.png
new file mode 100644
index 00000000..d81a9d78
Binary files /dev/null and b/public/assets_default/icons/android-chrome-512x512.png differ
diff --git a/public/assets_default/icons/apple-touch.png b/public/assets_default/icons/apple-touch.png
new file mode 100644
index 00000000..97d3a68f
Binary files /dev/null and b/public/assets_default/icons/apple-touch.png differ
diff --git a/public/assets_default/icons/favicon-16x16.png b/public/assets_default/icons/favicon-16x16.png
new file mode 100644
index 00000000..56ee64ee
Binary files /dev/null and b/public/assets_default/icons/favicon-16x16.png differ
diff --git a/public/assets_default/icons/favicon-32x32.png b/public/assets_default/icons/favicon-32x32.png
new file mode 100644
index 00000000..fa0acc0a
Binary files /dev/null and b/public/assets_default/icons/favicon-32x32.png differ
diff --git a/public/assets_default/icons/masking-512x512.png b/public/assets_default/icons/masking-512x512.png
new file mode 100644
index 00000000..7856af0a
Binary files /dev/null and b/public/assets_default/icons/masking-512x512.png differ
diff --git a/public/assets_default/icons/monochrome.svg b/public/assets_default/icons/monochrome.svg
new file mode 100644
index 00000000..3cb81b29
--- /dev/null
+++ b/public/assets_default/icons/monochrome.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/public/assets_default/icons/mstile-150x150.png b/public/assets_default/icons/mstile-150x150.png
new file mode 100644
index 00000000..b568a473
Binary files /dev/null and b/public/assets_default/icons/mstile-150x150.png differ
diff --git a/public/assets_default/logo.png b/public/assets_default/logo.png
new file mode 100644
index 00000000..d0f604c6
Binary files /dev/null and b/public/assets_default/logo.png differ
diff --git a/public/assets_default/logo_round.png b/public/assets_default/logo_round.png
new file mode 100644
index 00000000..d0f604c6
Binary files /dev/null and b/public/assets_default/logo_round.png differ
diff --git a/public/assets_default/splashscreens/ipad_splash.png b/public/assets_default/splashscreens/ipad_splash.png
new file mode 100644
index 00000000..08396a67
Binary files /dev/null and b/public/assets_default/splashscreens/ipad_splash.png differ
diff --git a/public/assets_default/splashscreens/ipadpro1_splash.png b/public/assets_default/splashscreens/ipadpro1_splash.png
new file mode 100644
index 00000000..0e38c627
Binary files /dev/null and b/public/assets_default/splashscreens/ipadpro1_splash.png differ
diff --git a/public/assets_default/splashscreens/ipadpro2_splash.png b/public/assets_default/splashscreens/ipadpro2_splash.png
new file mode 100644
index 00000000..28573bbe
Binary files /dev/null and b/public/assets_default/splashscreens/ipadpro2_splash.png differ
diff --git a/public/assets_default/splashscreens/ipadpro3_splash.png b/public/assets_default/splashscreens/ipadpro3_splash.png
new file mode 100644
index 00000000..67d5e736
Binary files /dev/null and b/public/assets_default/splashscreens/ipadpro3_splash.png differ
diff --git a/public/assets_default/splashscreens/iphone5_splash.png b/public/assets_default/splashscreens/iphone5_splash.png
new file mode 100644
index 00000000..315c272b
Binary files /dev/null and b/public/assets_default/splashscreens/iphone5_splash.png differ
diff --git a/public/assets_default/splashscreens/iphone6_splash.png b/public/assets_default/splashscreens/iphone6_splash.png
new file mode 100644
index 00000000..afceeb94
Binary files /dev/null and b/public/assets_default/splashscreens/iphone6_splash.png differ
diff --git a/public/assets_default/splashscreens/iphoneplus_splash.png b/public/assets_default/splashscreens/iphoneplus_splash.png
new file mode 100644
index 00000000..70b8eaff
Binary files /dev/null and b/public/assets_default/splashscreens/iphoneplus_splash.png differ
diff --git a/public/assets_default/splashscreens/iphonex_splash.png b/public/assets_default/splashscreens/iphonex_splash.png
new file mode 100644
index 00000000..6400525b
Binary files /dev/null and b/public/assets_default/splashscreens/iphonex_splash.png differ
diff --git a/public/assets_default/splashscreens/iphonexr_splash.png b/public/assets_default/splashscreens/iphonexr_splash.png
new file mode 100644
index 00000000..91fbdd7c
Binary files /dev/null and b/public/assets_default/splashscreens/iphonexr_splash.png differ
diff --git a/public/assets_default/splashscreens/iphonexsmax_splash.png b/public/assets_default/splashscreens/iphonexsmax_splash.png
new file mode 100644
index 00000000..442b1860
Binary files /dev/null and b/public/assets_default/splashscreens/iphonexsmax_splash.png differ
diff --git a/public/assets_default/wide.svg b/public/assets_default/wide.svg
new file mode 100644
index 00000000..2a14ffa6
--- /dev/null
+++ b/public/assets_default/wide.svg
@@ -0,0 +1,21 @@
+
\ No newline at end of file
diff --git a/scripts/setup_assets.js b/scripts/setup_assets.js
new file mode 100644
index 00000000..828bf5e9
--- /dev/null
+++ b/scripts/setup_assets.js
@@ -0,0 +1,37 @@
+/* eslint-disable */
+const { copy, remove, access } = require("fs-extra");
+const { exec: cexec } = require("child_process");
+const { resolve } = require("path");
+
+let target = process.env.REVOLT_SASS;
+let DEFAULT_DIRECTORY = "public/assets_default";
+let OUT_DIRECTORY = "public/assets";
+
+function exec(command) {
+ return new Promise((fulfil, reject) => {
+ cexec(command, (err, stdout, stderr) => {
+ if (err) {
+ reject(err);
+ return;
+ }
+
+ fulfil({ stdout, stderr });
+ });
+ });
+}
+
+(async () => {
+ try {
+ await access(OUT_DIRECTORY);
+ if (process.argv[2] === "--check") return;
+
+ await remove(OUT_DIRECTORY);
+ } catch (err) {}
+
+ if (target) {
+ await exec(`git clone ${target} ${OUT_DIRECTORY}`);
+ await exec(`rm -rf ${resolve(OUT_DIRECTORY, ".git")}`);
+ } else {
+ await copy(DEFAULT_DIRECTORY, OUT_DIRECTORY);
+ }
+})();
diff --git a/src/assets/logo.svg b/src/assets/logo.svg
deleted file mode 100644
index 336b23aa..00000000
--- a/src/assets/logo.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/src/assets/logo_round.png b/src/assets/logo_round.png
deleted file mode 100644
index acc86aa3..00000000
Binary files a/src/assets/logo_round.png and /dev/null differ
diff --git a/src/assets/wide.svg b/src/assets/wide.svg
deleted file mode 100644
index 1797d592..00000000
--- a/src/assets/wide.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
diff --git a/src/context/intermediate/modals/Onboarding.tsx b/src/context/intermediate/modals/Onboarding.tsx
index bc53b746..b977b1d4 100644
--- a/src/context/intermediate/modals/Onboarding.tsx
+++ b/src/context/intermediate/modals/Onboarding.tsx
@@ -4,7 +4,6 @@ import styles from "./Onboarding.module.scss";
import { Text } from "preact-i18n";
import { useState } from "preact/hooks";
-import wideSVG from "../../../assets/wide.svg";
import Button from "../../../components/ui/Button";
import Preloader from "../../../components/ui/Preloader";
@@ -41,7 +40,7 @@ export function OnboardingModal({ onClose, callback }: Props) {
-
+
diff --git a/src/pages/home/Home.tsx b/src/pages/home/Home.tsx
index 34566ba6..dcd155e4 100644
--- a/src/pages/home/Home.tsx
+++ b/src/pages/home/Home.tsx
@@ -10,7 +10,6 @@ import { isTouchscreenDevice } from "../../lib/isTouchscreenDevice";
import { dispatch, getState } from "../../redux";
-import wideSVG from "../../assets/wide.svg";
import Emoji from "../../components/common/Emoji";
import Tooltip from "../../components/common/Tooltip";
import Header from "../../components/ui/Header";
@@ -67,7 +66,7 @@ export default function Home() {
-
+
diff --git a/src/pages/login/forms/Form.tsx b/src/pages/login/forms/Form.tsx
index 8b1a0fc2..ae9c95ee 100644
--- a/src/pages/login/forms/Form.tsx
+++ b/src/pages/login/forms/Form.tsx
@@ -9,7 +9,6 @@ import { useContext, useState } from "preact/hooks";
import { AppContext } from "../../../context/revoltjs/RevoltClient";
import { takeError } from "../../../context/revoltjs/util";
-import wideSVG from "../../../assets/wide.svg";
import Button from "../../../components/ui/Button";
import Overline from "../../../components/ui/Overline";
import Preloader from "../../../components/ui/Preloader";
@@ -146,7 +145,7 @@ export function Form({ page, callback }: Props) {
return (
-

+

{/* Preact / React typing incompatabilities */}