summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAdam Malczewski <[email protected]>2026-06-22 16:03:06 +0900
committerAdam Malczewski <[email protected]>2026-06-22 16:03:06 +0900
commit1df0831551a06496294ea40f9001bf3a86f1bc09 (patch)
tree539aae543c94e0c366d372307a62b54ed9160050
parent0c7e7ceae36930e87fc30993f18e30cf54888295 (diff)
downloaddispatch-web-1df0831551a06496294ea40f9001bf3a86f1bc09.tar.gz
dispatch-web-1df0831551a06496294ea40f9001bf3a86f1bc09.zip
feat: switch theme from dracula to monokai (custom)
Replace dracula with a custom monokai theme (from dachinat/daisyui-themes, with modifications: all -content colors set to black, base-300 changed to #3b3a3a). Dracula is unloaded; monokai is the sole bundled theme and default. Also adds .env.development (dev ports 24203/24205) and .env.production (arch ports 24991/24990) so Vite uses the correct backend per mode. Excludes src/themes/ from biome (third-party CSS). 683 tests green.
-rw-r--r--.env.development2
-rw-r--r--.env.production2
-rw-r--r--biome.json9
-rw-r--r--index.html2
-rw-r--r--src/app.css11
-rw-r--r--src/themes/monokai.css40
6 files changed, 60 insertions, 6 deletions
diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..f13cae8
--- /dev/null
+++ b/.env.development
@@ -0,0 +1,2 @@
+VITE_HTTP_PORT=24203
+VITE_WS_PORT=24205
diff --git a/.env.production b/.env.production
new file mode 100644
index 0000000..dfd8d2b
--- /dev/null
+++ b/.env.production
@@ -0,0 +1,2 @@
+VITE_HTTP_PORT=24991
+VITE_WS_PORT=24990
diff --git a/biome.json b/biome.json
index 3f6be88..129f686 100644
--- a/biome.json
+++ b/biome.json
@@ -6,6 +6,13 @@
"javascript": { "formatter": { "quoteStyle": "double", "semicolons": "always" } },
"css": { "parser": { "tailwindDirectives": true } },
"files": {
- "includes": ["**", "!**/node_modules", "!**/dist", "!**/build", "!**/*.svelte"]
+ "includes": [
+ "**",
+ "!**/node_modules",
+ "!**/dist",
+ "!**/build",
+ "!**/*.svelte",
+ "!**/src/themes"
+ ]
}
}
diff --git a/index.html b/index.html
index 117e502..337a32e 100644
--- a/index.html
+++ b/index.html
@@ -1,5 +1,5 @@
<!doctype html>
-<html lang="en" data-theme="dracula">
+<html lang="en" data-theme="monokai">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
diff --git a/src/app.css b/src/app.css
index 2c30b5f..4c59d90 100644
--- a/src/app.css
+++ b/src/app.css
@@ -2,11 +2,14 @@
/* Syntax-highlight theme for fenced code blocks in rendered Markdown. */
@import "highlight.js/styles/atom-one-dark.min.css";
-/* DaisyUI v5 — enable the plugin AND bundle the dracula theme (set as default,
- applied via <html data-theme="dracula">). Themes not listed here are NOT
- bundled, so dracula must be named explicitly, not merely referenced. */
+/* Custom monokai theme — must be imported BEFORE the @plugin block. */
+@import "./themes/monokai.css";
+
+/* DaisyUI v5 — enable the plugin AND bundle the monokai theme (set as default,
+ applied via <html data-theme="monokai">). Themes not listed here are NOT
+ bundled, so monokai must be named explicitly, not merely referenced. */
@plugin "daisyui" {
- themes: dracula --default;
+ themes: monokai --default;
}
/* Rendered-Markdown (assistant messages) typography — scoped to .markdown-body
diff --git a/src/themes/monokai.css b/src/themes/monokai.css
new file mode 100644
index 0000000..1597700
--- /dev/null
+++ b/src/themes/monokai.css
@@ -0,0 +1,40 @@
+/*!
+ * Author: Dachi — https://github.com/dachinat
+ * License: CC BY 4.0 — https://creativecommons.org/licenses/by/4.0/
+ * Repo: https://github.com/dachinat/daisyui-themes
+ */
+
+@plugin "daisyui/theme" {
+ name: "monokai";
+ default: false;
+ prefersdark: false;
+ color-scheme: "dark";
+ --color-base-100: #2e2e2e;
+ --color-base-200: #292825;
+ --color-base-300: #3b3a3a;
+ --color-base-content: #d6d6d6;
+ --color-primary: #6c99bb;
+ --color-primary-content: #000000;
+ --color-secondary: #9e86c8;
+ --color-secondary-content: #000000;
+ --color-accent: #b05279;
+ --color-accent-content: #000000;
+ --color-neutral: #e87d3e;
+ --color-neutral-content: #000000;
+ --color-info: #268bd2;
+ --color-info-content: oklch(29% 0.066 243.157);
+ --color-success: #b4d273;
+ --color-success-content: #000000;
+ --color-warning: #e5b567;
+ --color-warning-content: #000000;
+ --color-error: #dc322f;
+ --color-error-content: #000000;
+ --radius-selector: 0.25rem;
+ --radius-field: 0.5rem;
+ --radius-box: 0.25rem;
+ --size-selector: 0.25rem;
+ --size-field: 0.25rem;
+ --border: 1px;
+ --depth: 1;
+ --noise: 0;
+}