diff --git a/web/package-lock.json b/web/package-lock.json
index 318aedaa..fa609f93 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.0.1",
"license": "CC-BY-NC-SA-4.0",
"dependencies": {
+ "@fontsource-variable/noto-sans-mono": "^5.0.20",
"@fontsource/ibm-plex-mono": "^5.0.13",
"@tabler/icons-svelte": "^3.6.0"
},
@@ -403,6 +404,11 @@
"node": ">=12"
}
},
+ "node_modules/@fontsource-variable/noto-sans-mono": {
+ "version": "5.0.20",
+ "resolved": "https://registry.npmjs.org/@fontsource-variable/noto-sans-mono/-/noto-sans-mono-5.0.20.tgz",
+ "integrity": "sha512-Mik/wbKjiir7t+KBaDZnPZ5GjDnPOXpMF7obmFeyRa528ZsrKcFiSn4ZvArrn3sJMCp/k23wakOcXOWlGNc9cw=="
+ },
"node_modules/@fontsource/ibm-plex-mono": {
"version": "5.0.13",
"resolved": "https://registry.npmjs.org/@fontsource/ibm-plex-mono/-/ibm-plex-mono-5.0.13.tgz",
diff --git a/web/package.json b/web/package.json
index a675b11d..ad8cc3f1 100644
--- a/web/package.json
+++ b/web/package.json
@@ -30,6 +30,7 @@
"vite": "^5.0.3"
},
"dependencies": {
+ "@fontsource-variable/noto-sans-mono": "^5.0.20",
"@fontsource/ibm-plex-mono": "^5.0.13",
"@tabler/icons-svelte": "^3.6.0"
}
diff --git a/web/src/components/save/Omnibox.svelte b/web/src/components/save/Omnibox.svelte
new file mode 100644
index 00000000..5926135b
--- /dev/null
+++ b/web/src/components/save/Omnibox.svelte
@@ -0,0 +1,111 @@
+
+
+
+
+
+
+ isFocused = true}
+ on:focus={() => isFocused = true}
+ on:blur={() => isFocused = false}
+
+ spellcheck="false"
+ autocomplete="off"
+ autocapitalize="off"
+ maxlength="256"
+
+ placeholder="paste the link here"
+ aria-label="link input area"
+ >
+
+ {#if link.length > 0}
+ link = ""} />
+ {/if}
+ {#if validLink(link)}
+
+ {/if}
+
+
+
+
diff --git a/web/src/components/save/buttons/ClearButton.svelte b/web/src/components/save/buttons/ClearButton.svelte
new file mode 100644
index 00000000..76f20d3e
--- /dev/null
+++ b/web/src/components/save/buttons/ClearButton.svelte
@@ -0,0 +1,15 @@
+
+
+
+
+
diff --git a/web/src/components/save/buttons/DownloadButton.svelte b/web/src/components/save/buttons/DownloadButton.svelte
new file mode 100644
index 00000000..a9b09945
--- /dev/null
+++ b/web/src/components/save/buttons/DownloadButton.svelte
@@ -0,0 +1,54 @@
+
+
+
+
+
diff --git a/web/src/components/sidebar/CobaltLogo.svelte b/web/src/components/sidebar/CobaltLogo.svelte
index aa269f20..9cb25ff2 100644
--- a/web/src/components/sidebar/CobaltLogo.svelte
+++ b/web/src/components/sidebar/CobaltLogo.svelte
@@ -10,7 +10,7 @@
display: flex;
justify-content: center;
align-items: center;
- padding: calc(var(--sidebar-padding) * 2 - 2px);
+ padding: calc(var(--padding) * 2 - 2px);
}
@media screen and (max-width: 535px) {
#cobalt-logo {
diff --git a/web/src/components/sidebar/Sidebar.svelte b/web/src/components/sidebar/Sidebar.svelte
index 43b4cf58..64671620 100644
--- a/web/src/components/sidebar/Sidebar.svelte
+++ b/web/src/components/sidebar/Sidebar.svelte
@@ -60,7 +60,7 @@
}
#sidebar {
- background: black;
+ background: var(--secondary);
height: 100vh;
position: sticky;
width: var(--sidebar-width);
@@ -69,7 +69,7 @@
#sidebar-tabs {
height: 100%;
justify-content: space-between;
- padding-bottom: var(--sidebar-padding);
+ padding-bottom: var(--padding);
overflow: scroll;
}
@@ -94,7 +94,8 @@
display: block;
position: absolute;
pointer-events: none;
- background: linear-gradient(90deg,
+ background: linear-gradient(
+ 90deg,
rgba(0, 0, 0, 0.9) 0%,
rgba(0, 0, 0, 0) 4%,
rgba(0, 0, 0, 0) 50%,
diff --git a/web/src/components/sidebar/SidebarTab.svelte b/web/src/components/sidebar/SidebarTab.svelte
index cd86711e..c868295e 100644
--- a/web/src/components/sidebar/SidebarTab.svelte
+++ b/web/src/components/sidebar/SidebarTab.svelte
@@ -24,15 +24,15 @@
align-items: center;
text-align: center;
gap: 5px;
- padding: var(--sidebar-padding) 5px;
- color: var(--accent);
+ padding: var(--padding) 5px;
+ color: var(--primary);
font-size: var(--sidebar-font-size);
opacity: 0.8;
}
.sidebar-tab.active {
- color: var(--background);
- background: var(--accent);
+ color: var(--secondary);
+ background: var(--primary);
opacity: 1;
}
@@ -42,7 +42,7 @@
@media screen and (max-width: 535px) {
.sidebar-tab {
- padding: 5px var(--sidebar-padding);
+ padding: 5px var(--padding);
min-width: calc(var(--sidebar-width) / 2);
}
.sidebar-tab.active {
diff --git a/web/src/routes/+layout.svelte b/web/src/routes/+layout.svelte
index 0ef57b2a..48bb34bd 100644
--- a/web/src/routes/+layout.svelte
+++ b/web/src/routes/+layout.svelte
@@ -13,20 +13,32 @@
diff --git a/web/static/meowbalt/smile.png b/web/static/meowbalt/smile.png
new file mode 100644
index 00000000..e4b1824e
Binary files /dev/null and b/web/static/meowbalt/smile.png differ