diff --git a/index.html b/index.html
index d6559be2f..0e52164c1 100644
--- a/index.html
+++ b/index.html
@@ -16,6 +16,8 @@
+
+
diff --git a/public/colors.css b/public/colors.css
new file mode 100644
index 000000000..fe14664eb
--- /dev/null
+++ b/public/colors.css
@@ -0,0 +1,119 @@
+:root {
+ --color-primary: #ff55ff;
+ --color-primary-1: #ff55ff09;
+ --color-primary-2: #ff55ff11;
+ --color-primary-3: #ff55ff22;
+ --color-primary-4: #ff55ff33;
+ --color-primary-5: #ff55ff77;
+ --color-primary-6: hsl(300, 100%, 90%);
+
+ --color-secondary: #5555ff;
+ --color-secondary-1: #5555ff09;
+ --color-secondary-2: #5555ff11;
+ --color-secondary-3: #5555ff22;
+ --color-secondary-4: #5555ff33;
+ --color-secondary-5: #5555ff77;
+ --color-secondary-6: hsl(240, 100%, 90%);
+
+ --color-tertiary: #55ffff;
+ --color-tertiary-1: #55ffff09;
+ --color-tertiary-2: #55ffff11;
+ --color-tertiary-3: #55ffff22;
+ --color-tertiary-4: #55ffff33;
+ --color-tertiary-5: #55ffff77;
+ --color-tertiary-6: #abf9f9;
+
+ --color-caution: #ffff99;
+ --color-caution-1: #ffff9909;
+ --color-caution-2: #ffff9911;
+ --color-caution-3: #ffff9922;
+ --color-caution-4: #ffff9933;
+ --color-caution-5: #ffff9977;
+ --color-caution-6: hsl(60, 100%, 90%);
+
+ --color-positive: #53db53;
+ --color-positive-1: #53db5309;
+ --color-positive-2: #53db5311;
+ --color-positive-3: #53db5322;
+ --color-positive-4: #53db5333;
+ --color-positive-5: #53db5377;
+ --color-positive-6: hsl(120, 100%, 90%);
+
+ --color-negative: #ff5555;
+ --color-negative-1: #ff555509;
+ --color-negative-2: #ff555511;
+ --color-negative-3: #ff555522;
+ --color-negative-4: #ff555533;
+ --color-negative-5: #ff555577;
+ --color-negative-6: hsl(0, 100%, 90%);
+
+ --color-foreground: #ffffff;
+ --color-foreground-1: #121a21;
+ --color-foreground-2: #181f28;
+ --color-foreground-3: #212832;
+ --color-foreground-4: #2b313d;
+ --color-foreground-5: #585c6f;
+ --color-foreground-6: #c2c3d4;
+
+ --color-background: #0b131a;
+}
+
+[data-theme="light"] {
+ --color-primary: #ff55ff;
+ --color-primary-1: #ff55ff30;
+ --color-primary-2: #ff55ff45;
+ --color-primary-3: #ff55ff60;
+ --color-primary-4: #ff55ff80;
+ --color-primary-5: #ff55ffaa;
+ --color-primary-6: hsl(300, 40%, 30%);
+
+ --color-secondary: #5555ff;
+ --color-secondary-1: #5555ff10;
+ --color-secondary-2: #5555ff20;
+ --color-secondary-3: #5555ff60;
+ --color-secondary-4: #5555ff80;
+ --color-secondary-5: #5555ffaa;
+ --color-secondary-6: hsl(240, 40%, 30%);
+
+ --color-tertiary: #2ed4c1;
+ --color-tertiary-1: #2ed4c120;
+ --color-tertiary-2: #2ed4c140;
+ --color-tertiary-3: #2ed4c160;
+ --color-tertiary-4: #2ed4c180;
+ --color-tertiary-5: #2ed4c1aa;
+ --color-tertiary-6: #005050;
+
+ --color-caution: hsl(60, 100%, 30%);
+ --color-caution-1: #d3d34d20;
+ --color-caution-2: #d3d34d40;
+ --color-caution-3: #d3d34d60;
+ --color-caution-4: #d3d34d80;
+ --color-caution-5: #d3d34daa;
+ --color-caution-6: hsl(60, 82%, 22%);
+
+ --color-positive: #53db53;
+ --color-positive-1: #53db5320;
+ --color-positive-2: #53db5340;
+ --color-positive-3: #53db5360;
+ --color-positive-4: #53db5380;
+ --color-positive-5: #53db53aa;
+ --color-positive-6: hsl(120, 40%, 30%);
+
+ --color-negative: #ff5555;
+ --color-negative-1: #ff555520;
+ --color-negative-2: #ff555540;
+ --color-negative-3: #ff555560;
+ --color-negative-4: #ff555580;
+ --color-negative-5: #ff5555aa;
+ --color-negative-6: hsl(0, 40%, 30%);
+
+ --color-foreground: #1a1a2c;
+ --color-foreground-1: #ebecf8;
+ --color-foreground-2: #e3e3f3;
+ --color-foreground-3: #d2d2e8;
+ --color-foreground-4: #9b9bc0;
+ --color-foreground-5: #6f6f8a;
+ --color-foreground-6: #42425a;
+
+ --color-background: #f3f6fd;
+}
diff --git a/public/elevations.css b/public/elevations.css
new file mode 100644
index 000000000..e7a3ab5f4
--- /dev/null
+++ b/public/elevations.css
@@ -0,0 +1,11 @@
+:root {
+ --elevation-low: 0px 16px 32px 32px #00000070;
+ --elevation-high: 0px 8px 64px var(--color-secondary-5);
+ --elevation-high-negative: 0px 8px 64px var(--color-negative-5);
+}
+
+[data-theme="light"] {
+ --elevation-low: 0px 16px 32px 16px #00000020;
+ --elevation-high: 0px 8px 64px var(--color-secondary-5);
+ --elevation-high-negative: 0px 8px 64px var(--color-negative-5);
+}
diff --git a/public/index.css b/public/index.css
index f6466295e..2d19d042f 100644
--- a/public/index.css
+++ b/public/index.css
@@ -4,74 +4,9 @@
}
:root {
- --color-primary: #ff55ff;
- --color-primary-1: #382847;
- --color-primary-2: #62326d;
- --color-primary-5: #dd44dd;
- --color-primary-6: #ffd4ff;
- --color-primary-faded: #ff55ff77;
- --color-primary-background: #ff55ff11;
- --color-primary-background-lighter: #ff55ff22;
- --color-secondary: #5555ff;
- --color-secondary-background: #5555ff11;
- --color-secondary-background-darker: #5555ff09;
- --color-secondary-faded: #5555ff77;
- --color-secondary-darker: #4343cc;
- --color-secondary-1: #212847;
- --color-secondary-2: #2c326d;
- --color-secondary-6: #e3e3ff;
- --color-tertiary: #55ffff;
- --color-tertiary-faded: #ade4e4;
- --color-tertiary-background: #55ffff11;
- --color-tertiary-1: #214047;
- --color-tertiary-2: #2c326d;
- --color-tertiary-6: #e3e3ff;
- --color-light: #add0e4;
- --color-yellow: #ffff99;
- --color-yellow-background: #ffff9911;
- --color-yellow-background-solid: #222929;
- --color-yellow-background-lighter: #ffff9922;
- --color-positive: #53db53;
- --color-positive-background: #53db5311;
- --color-positive-1: #11332b;
- --color-positive-2: #2c6837;
- --color-positive-6: #e3ffe3;
- --color-caution: #ffc555;
- --color-caution-1: #2f312d;
- --color-caution-2: #524a34;
- --color-caution-6: #ffefcf;
- --color-negative: #ff5555;
- --color-negative-background: #ff555511;
- --color-negative-1: #35202b;
- --color-negative-2: #623237;
- --color-negative-6: #ffd4d4;
- --color-foreground: #ffffff;
- --color-foreground-90: #ddddee;
- --color-foreground-80: #aaaab6;
- --color-foreground-70: #9999aa;
- --color-foreground-faded: #777788;
- --color-foreground-subtle: #444455;
- --color-foreground-subtler: #333344;
- --color-foreground-even-subtler: #292936;
- --color-foreground-background: #121a21;
- --color-foreground-background-subtle: #10171e;
- --color-foreground-background-lighter: #151f24;
- --color-foreground-1: #242e38;
- --color-foreground-2: #29343d;
- --color-foreground-3: #333e47;
- --color-foreground-4: #5e6d7a;
- --color-foreground-5: #8594a1;
- --color-foreground-6: #d3dee8;
- --color-background: #0b131a;
- --color-shadow: rgba(0, 0, 0, 0.2);
- --color-glow: #5555ff22;
- --color-glow-error: #ff555522;
- --color-scrollbar: var(--color-foreground-subtler);
-
--border-radius: 0.75rem;
--border-radius-small: 0.5rem;
--border-radius-round: 10rem;
- --box-shadow-color: var(--color-secondary-2);
--content-max-width: 1920px;
--content-min-width: 480px;
@@ -81,6 +16,22 @@
--button-regular-height: 2.5rem;
--button-small-height: 2rem;
--button-tiny-height: 1.5rem;
+
+ --glow: var(--color-secondary-3);
+ --glow-error: var(--color-negative-3);
+ --header-gradient: linear-gradient(
+ 180deg,
+ var(--color-secondary-3) 0%,
+ transparent 100%
+ );
+}
+
+[data-theme="light"] {
+ --header-gradient: linear-gradient(
+ 180deg,
+ var(--color-secondary-2) 0%,
+ transparent 100%
+ );
}
html {
@@ -95,12 +46,12 @@ body {
height: 100%;
margin: 0;
padding: 0;
- color: white;
+ color: var(--color-foreground);
text-align: left;
background-color: var(--color-background);
scrollbar-width: thin;
scrollbar-height: thin;
- scrollbar-color: var(--color-scrollbar) transparent;
+ scrollbar-color: var(--color-foreground-4) transparent;
}
@media (max-width: 720px) {
@@ -135,7 +86,7 @@ body {
}
*:hover::-webkit-scrollbar-thumb,
body::-webkit-scrollbar-thumb {
- background-color: var(--color-scrollbar);
+ background-color: var(--color-foreground-4);
}
.error::selection,
@@ -153,9 +104,9 @@ a {
text-decoration: none;
}
a.link {
- color: #d0d0d0;
+ color: var(--color-foreground-6);
text-decoration: none;
- border-bottom: 1px dashed #444;
+ border-bottom: 1px dashed var(--color-foreground-5);
}
a.link:hover {
color: var(--color-foreground);
@@ -163,11 +114,11 @@ a.link:hover {
}
a.link.primary {
color: var(--color-primary);
- border-bottom-color: var(--color-primary-faded);
+ border-bottom-color: var(--color-primary-5);
}
a.link.primary:hover {
- color: var(--color-primary-faded);
- border-bottom-color: var(--color-primary-faded);
+ color: var(--color-primary-5);
+ border-bottom-color: var(--color-primary-5);
}
a.address {
border-bottom-color: transparent;
@@ -208,10 +159,9 @@ label.input {
.error {
color: var(--color-negative) !important;
border-color: var(--color-negative) !important;
- --box-shadow-color: var(--color-negative-2) !important;
}
.error-message {
- background-color: var(--color-negative-background);
+ background-color: var(--color-negative-2);
word-wrap: break-word;
text-overflow: ellipsis;
overflow-x: hidden;
@@ -223,11 +173,7 @@ label.input {
color: var(--color-secondary);
}
.faded {
- color: var(--color-foreground-faded);
-}
-.yellow {
- color: var(--color-yellow);
- background: var(--color-yellow-background-solid);
+ color: var(--color-foreground-5);
}
.off-centered {
height: 100%;
diff --git a/public/typography.css b/public/typography.css
index 7bb984eb8..17b2dbde1 100644
--- a/public/typography.css
+++ b/public/typography.css
@@ -61,7 +61,7 @@ p {
}
.txt-missing {
- color: var(--color-foreground-faded);
+ color: var(--color-foreground-5);
font-style: italic;
}
diff --git a/src/Address.svelte b/src/Address.svelte
index 21953deac..230188bf4 100644
--- a/src/Address.svelte
+++ b/src/Address.svelte
@@ -65,13 +65,13 @@
height: 100%;
}
.address a {
- color: var(--color-foreground-90);
+ color: var(--color-foreground-6);
}
.address a:hover {
color: var(--color-foreground);
}
.highlight {
- color: var(--color-foreground-90);
+ color: var(--color-foreground-6);
font-weight: var(--font-weight-bold);
}
.wrapper {
diff --git a/src/App.svelte b/src/App.svelte
index 3742210b7..a5f428cb6 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -15,6 +15,7 @@
import Loading from "@app/Loading.svelte";
import Modal from "@app/Modal.svelte";
import LinearGradient from "@app/LinearGradient.svelte";
+ import ColorPalette from "./ColorPalette.svelte";
const loadConfig = getConfig().then(async cfg => {
if ($state.connection === Connection.Connected) {
@@ -47,7 +48,7 @@
height: 100%;
display: flex;
flex-direction: column;
- background: linear-gradient(180deg, #181a38 0%, transparent 100%);
+ background: var(--header-gradient);
background-repeat: no-repeat;
background-size: 100% 6rem;
}
@@ -80,6 +81,7 @@