diff --git a/source/assets/chrome-web-store.png b/source/assets/chrome-web-store.png
new file mode 100644
index 0000000..4e48b8a
Binary files /dev/null and b/source/assets/chrome-web-store.png differ
diff --git a/source/assets/microsoft.png b/source/assets/microsoft.png
new file mode 100644
index 0000000..acd479e
Binary files /dev/null and b/source/assets/microsoft.png differ
diff --git a/source/assets/mozilla-addons.png b/source/assets/mozilla-addons.png
new file mode 100644
index 0000000..f640023
Binary files /dev/null and b/source/assets/mozilla-addons.png differ
diff --git a/source/assets/queue-screenshot.png b/source/assets/queue-screenshot.png
new file mode 100644
index 0000000..0c064cd
Binary files /dev/null and b/source/assets/queue-screenshot.png differ
diff --git a/source/assets/queue.png b/source/assets/queue.png
new file mode 100644
index 0000000..7426cc7
Binary files /dev/null and b/source/assets/queue.png differ
diff --git a/source/queue/index.html b/source/queue/index.html
new file mode 100644
index 0000000..0bb58d7
--- /dev/null
+++ b/source/queue/index.html
@@ -0,0 +1,47 @@
+{% extends "source/includes/base.html" %}
+{% import "source/includes/macros.html" as macros %}
+
+{% set title = "Queue ⇥" %}
+
+{% block head %}
+
+{% endblock %}
+
+{% block body %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{% endblock %}
diff --git a/source/scss/mixins.scss b/source/scss/mixins.scss
index b27ff1b..f358880 100644
--- a/source/scss/mixins.scss
+++ b/source/scss/mixins.scss
@@ -1,12 +1,12 @@
$medium-breakpoint: 900px;
$large-breakpoint: 1200px;
-@mixin responsive-container {
+@mixin responsive-container($width-breakpoint: $large-breakpoint) {
margin-left: auto;
margin-right: auto;
- width: $large-breakpoint;
+ width: $width-breakpoint;
- @media (max-width: $large-breakpoint) {
+ @media (max-width: $width-breakpoint) {
width: 100%;
}
}
diff --git a/source/scss/queue/queue.scss b/source/scss/queue/queue.scss
new file mode 100644
index 0000000..4a573d6
--- /dev/null
+++ b/source/scss/queue/queue.scss
@@ -0,0 +1,77 @@
+@use '../mixins';
+
+body {
+ padding: var(--spacing-16);
+}
+
+.page-header {
+ @include mixins.responsive-container($width-breakpoint: 600px);
+
+ margin-bottom: var(--spacing-16);
+
+ h1 {
+ align-items: center;
+ border: 1px solid var(--foreground-2);
+ display: flex;
+ font-size: 2.5rem;
+ margin-bottom: var(--spacing-08);
+ }
+
+ .icon {
+ align-items: center;
+ background-color: var(--df-2);
+ color: var(--db-1);
+ display: inline-flex;
+ height: 4.5rem;
+ justify-content: center;
+ margin-right: var(--spacing-08);
+ width: 4.5rem;
+ }
+
+ .byline {
+ background-color: var(--background-2);
+ font-weight: bold;
+ padding: var(--spacing-08);
+ text-align: center;
+ }
+}
+
+.page-main {
+ @include mixins.responsive-container($width-breakpoint: 900px);
+
+ margin-bottom: var(--spacing-16);
+ display: flex;
+ flex-direction: column;
+
+ .store-links {
+ align-items: center;
+ display: flex;
+ gap: var(--spacing-08);
+ justify-content: center;
+ margin-bottom: var(--spacing-16);
+
+ @media (max-width: 600px) {
+ flex-direction: column;
+ }
+
+ a {
+ padding: var(--spacing-04);
+ text-decoration: none;
+ }
+
+ img {
+ display: block;
+ height: fit-content;
+ }
+ }
+
+ .screenshot {
+ border: 1px solid var(--foreground-2);
+ }
+}
+
+.page-footer {
+ @include mixins.responsive-container($width-breakpoint: 600px);
+
+ text-align: center;
+}
diff --git a/source/static/_redirects b/source/static/_redirects
new file mode 100644
index 0000000..54d0620
--- /dev/null
+++ b/source/static/_redirects
@@ -0,0 +1,6 @@
+# Redirect any non-existing files to /
+/* / 200
+
+# Redirect projects to Gitea
+/fangs/gitea https://git.bauke.xyz/Holllo/fangs 301
+/queue/gitea https://git.bauke.xyz/Holllo/queue 301
diff --git a/vite.config.ts b/vite.config.ts
index 64c9f53..b9ced45 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -13,6 +13,12 @@ export default defineConfig({
build: {
minify: false,
outDir: buildDir,
+ rollupOptions: {
+ input: {
+ home: path.join(sourceDir, 'index.html'),
+ queue: path.join(sourceDir, 'queue/index.html'),
+ },
+ },
sourcemap: true,
},
plugins: [
@@ -22,5 +28,6 @@ export default defineConfig({
},
}),
],
+ publicDir: path.join(sourceDir, 'static'),
root: sourceDir,
});