mirror of https://github.com/VERT-sh/VERT.git
feat: document colours!
This commit is contained in:
parent
48c2a9847e
commit
02a0bd0640
15
src/app.scss
15
src/app.scss
|
@ -6,7 +6,8 @@
|
||||||
@import url("$lib/assets/style/host-grotesk.css");
|
@import url("$lib/assets/style/host-grotesk.css");
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--font-body: "Host Grotesk", system-ui, -apple-system, BlinkMacSystemFont,
|
--font-body:
|
||||||
|
"Host Grotesk", system-ui, -apple-system, BlinkMacSystemFont,
|
||||||
"Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans",
|
"Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans",
|
||||||
"Helvetica Neue", sans-serif;
|
"Helvetica Neue", sans-serif;
|
||||||
--font-display: "Radio Canada Big", var(--font-body);
|
--font-display: "Radio Canada Big", var(--font-body);
|
||||||
|
@ -39,6 +40,8 @@
|
||||||
--accent-purple-alt: hsl(264, 100%, 50%);
|
--accent-purple-alt: hsl(264, 100%, 50%);
|
||||||
--accent-blue: hsl(220, 100%, 78%);
|
--accent-blue: hsl(220, 100%, 78%);
|
||||||
--accent-blue-alt: hsl(220, 100%, 50%);
|
--accent-blue-alt: hsl(220, 100%, 50%);
|
||||||
|
--accent-green: hsl(140, 70%, 74%);
|
||||||
|
--accent-green-alt: hsl(140, 70%, 30%);
|
||||||
--accent: var(--accent-pink);
|
--accent: var(--accent-pink);
|
||||||
--accent-alt: var(--accent-pink-alt);
|
--accent-alt: var(--accent-pink-alt);
|
||||||
|
|
||||||
|
@ -98,6 +101,16 @@
|
||||||
var(--accent-blue),
|
var(--accent-blue),
|
||||||
hsl(220, 100%, 91%) 100%
|
hsl(220, 100%, 91%) 100%
|
||||||
);
|
);
|
||||||
|
--bg-gradient-green: linear-gradient(
|
||||||
|
to bottom,
|
||||||
|
var(--accent-green),
|
||||||
|
hsla(140, 70%, 30%, 0) 25%
|
||||||
|
);
|
||||||
|
--bg-gradient-green-alt: linear-gradient(
|
||||||
|
to top,
|
||||||
|
var(--accent-green),
|
||||||
|
hsl(140, 70%, 91%) 100%
|
||||||
|
);
|
||||||
--bg-gradient-image: linear-gradient(
|
--bg-gradient-image: linear-gradient(
|
||||||
to bottom,
|
to bottom,
|
||||||
hsla(0, 0%, 95%, 0.5),
|
hsla(0, 0%, 95%, 0.5),
|
||||||
|
|
|
@ -2,7 +2,8 @@
|
||||||
import Uploader from "$lib/components/functional/Uploader.svelte";
|
import Uploader from "$lib/components/functional/Uploader.svelte";
|
||||||
import { converters } from "$lib/converters";
|
import { converters } from "$lib/converters";
|
||||||
import { vertdLoaded } from "$lib/store/index.svelte";
|
import { vertdLoaded } from "$lib/store/index.svelte";
|
||||||
import { AudioLines, Check, Film, Image } from "lucide-svelte";
|
import clsx from "clsx";
|
||||||
|
import { AudioLines, BookText, Check, Film, Image } from "lucide-svelte";
|
||||||
|
|
||||||
const { data } = $props();
|
const { data } = $props();
|
||||||
|
|
||||||
|
@ -30,7 +31,7 @@
|
||||||
Documents: {
|
Documents: {
|
||||||
ready: converters.find((c) => c.name === "pandoc")?.ready || false,
|
ready: converters.find((c) => c.name === "pandoc")?.ready || false,
|
||||||
formats: getSupportedFormats("pandoc"),
|
formats: getSupportedFormats("pandoc"),
|
||||||
icon: Image,
|
icon: BookText,
|
||||||
},
|
},
|
||||||
Video: {
|
Video: {
|
||||||
ready:
|
ready:
|
||||||
|
@ -77,7 +78,14 @@
|
||||||
{@const Icon = s.icon}
|
{@const Icon = s.icon}
|
||||||
<div class="file-category-card w-full">
|
<div class="file-category-card w-full">
|
||||||
<div class="file-category-card-inner">
|
<div class="file-category-card-inner">
|
||||||
<div class="icon-container bg-accent-blue">
|
<div
|
||||||
|
class={clsx("icon-container", {
|
||||||
|
"bg-accent-blue": key === "Images",
|
||||||
|
"bg-accent-purple": key === "Audio",
|
||||||
|
"bg-accent-green": key === "Documents",
|
||||||
|
"bg-accent-red": key === "Video",
|
||||||
|
})}
|
||||||
|
>
|
||||||
<Icon size="20" />
|
<Icon size="20" />
|
||||||
</div>
|
</div>
|
||||||
<span>{key}</span>
|
<span>{key}</span>
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
import { VertFile } from "$lib/types";
|
import { VertFile } from "$lib/types";
|
||||||
import {
|
import {
|
||||||
AudioLines,
|
AudioLines,
|
||||||
|
BookText,
|
||||||
DownloadIcon,
|
DownloadIcon,
|
||||||
FileMusicIcon,
|
FileMusicIcon,
|
||||||
FileQuestionIcon,
|
FileQuestionIcon,
|
||||||
|
@ -55,6 +56,10 @@
|
||||||
(file) => file.findConverter()?.name === "vertd",
|
(file) => file.findConverter()?.name === "vertd",
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const allDocuments = files.files.every(
|
||||||
|
(file) => file.findConverter()?.name === "pandoc",
|
||||||
|
);
|
||||||
|
|
||||||
if (files.files.length === 1 && files.files[0].blobUrl && !allVideos) {
|
if (files.files.length === 1 && files.files[0].blobUrl && !allVideos) {
|
||||||
showGradient.set(false);
|
showGradient.set(false);
|
||||||
} else {
|
} else {
|
||||||
|
@ -67,7 +72,15 @@
|
||||||
) {
|
) {
|
||||||
gradientColor.set("");
|
gradientColor.set("");
|
||||||
} else {
|
} else {
|
||||||
gradientColor.set(allAudio ? "purple" : allVideos ? "red" : "blue");
|
gradientColor.set(
|
||||||
|
allAudio
|
||||||
|
? "purple"
|
||||||
|
: allVideos
|
||||||
|
? "red"
|
||||||
|
: allDocuments
|
||||||
|
? "green"
|
||||||
|
: "blue",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@ -88,6 +101,9 @@
|
||||||
{@const isImage = converters
|
{@const isImage = converters
|
||||||
.find((c) => c.name === "libvips")
|
.find((c) => c.name === "libvips")
|
||||||
?.supportedFormats.includes(file.from)}
|
?.supportedFormats.includes(file.from)}
|
||||||
|
{@const isDocument = converters
|
||||||
|
.find((c) => c.name === "pandoc")
|
||||||
|
?.supportedFormats.includes(file.from)}
|
||||||
<Panel class="p-5 flex flex-col min-w-0 gap-4 relative">
|
<Panel class="p-5 flex flex-col min-w-0 gap-4 relative">
|
||||||
<div class="flex-shrink-0 h-8 w-full flex items-center gap-2">
|
<div class="flex-shrink-0 h-8 w-full flex items-center gap-2">
|
||||||
{#if !converters.length}
|
{#if !converters.length}
|
||||||
|
@ -96,6 +112,8 @@
|
||||||
<AudioLines size="24" class="flex-shrink-0" />
|
<AudioLines size="24" class="flex-shrink-0" />
|
||||||
{:else if isVideo}
|
{:else if isVideo}
|
||||||
<FilmIcon size="24" class="flex-shrink-0" />
|
<FilmIcon size="24" class="flex-shrink-0" />
|
||||||
|
{:else if isDocument}
|
||||||
|
<BookText size="24" class="flex-shrink-0" />
|
||||||
{:else}
|
{:else}
|
||||||
<ImageIcon size="24" class="flex-shrink-0" />
|
<ImageIcon size="24" class="flex-shrink-0" />
|
||||||
{/if}
|
{/if}
|
||||||
|
@ -149,7 +167,7 @@
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
{/if}
|
{/if}
|
||||||
{:else if isVideo && !isAudio && !isImage && !$vertdLoaded}
|
{:else if isVideo && !isAudio && !isImage && !isDocument && !$vertdLoaded}
|
||||||
<div
|
<div
|
||||||
class="h-full flex flex-col text-center justify-center text-failure"
|
class="h-full flex flex-col text-center justify-center text-failure"
|
||||||
>
|
>
|
||||||
|
@ -178,12 +196,16 @@
|
||||||
? '--bg-gradient-purple-alt'
|
? '--bg-gradient-purple-alt'
|
||||||
: isVideo
|
: isVideo
|
||||||
? '--bg-gradient-red-alt'
|
? '--bg-gradient-red-alt'
|
||||||
: '--bg-gradient-blue-alt'})"
|
: isDocument
|
||||||
|
? '--bg-gradient-green-alt'
|
||||||
|
: '--bg-gradient-blue-alt'})"
|
||||||
>
|
>
|
||||||
{#if isAudio}
|
{#if isAudio}
|
||||||
<FileMusicIcon size="56" />
|
<FileMusicIcon size="56" />
|
||||||
{:else if isVideo}
|
{:else if isVideo}
|
||||||
<FileVideo2 size="56" />
|
<FileVideo2 size="56" />
|
||||||
|
{:else if isDocument}
|
||||||
|
<BookText size="56" />
|
||||||
{:else}
|
{:else}
|
||||||
<ImageOffIcon size="56" />
|
<ImageOffIcon size="56" />
|
||||||
{/if}
|
{/if}
|
||||||
|
@ -217,7 +239,9 @@
|
||||||
? 'bg-accent-purple'
|
? 'bg-accent-purple'
|
||||||
: isVideo
|
: isVideo
|
||||||
? 'bg-accent-red'
|
? 'bg-accent-red'
|
||||||
: 'bg-accent-blue'}"
|
: isDocument
|
||||||
|
? 'bg-accent-green'
|
||||||
|
: 'bg-accent-blue'}"
|
||||||
disabled={!files.ready}
|
disabled={!files.ready}
|
||||||
onclick={file.convert}
|
onclick={file.convert}
|
||||||
>
|
>
|
||||||
|
|
|
@ -36,6 +36,8 @@ export default {
|
||||||
"accent-purple": "var(--accent-purple)",
|
"accent-purple": "var(--accent-purple)",
|
||||||
"accent-blue": "var(--accent-blue)",
|
"accent-blue": "var(--accent-blue)",
|
||||||
"accent-blue-alt": "var(--accent-blue-alt)",
|
"accent-blue-alt": "var(--accent-blue-alt)",
|
||||||
|
"accent-green": "var(--accent-green)",
|
||||||
|
"accent-green-alt": "var(--accent-green-alt)",
|
||||||
},
|
},
|
||||||
boxShadow: {
|
boxShadow: {
|
||||||
panel: "var(--shadow-panel)",
|
panel: "var(--shadow-panel)",
|
||||||
|
|
Loading…
Reference in New Issue