diff --git a/README.md b/README.md
index 8593e69..83cb0d1 100644
--- a/README.md
+++ b/README.md
@@ -51,8 +51,11 @@ A completely decentralized chat system built directly on top of the swarm topolo
### 3. Visualizations
* **Particle Map:** Visualizes approximate peer locations (if enabled).
-* **Themes:** Built-in theme switcher (Hypermind, Hypermind Classic, Nord, Solarized, Tokyo Night, etc).
-
+* **Themes:** Built-in theme switcher (Hypermind, Hypermind Classic, Nord, Solarized, Tokyo Night, etc).
+
+

+

+
---
diff --git a/THEMES.md b/THEMES.md
index 852ea19..3960683 100644
--- a/THEMES.md
+++ b/THEMES.md
@@ -32,6 +32,14 @@

+### Dracula
+
+
+
+### Alucard
+
+
+
# Contributing custom themes
1. Fork `main` and clone locally to your device.
@@ -50,6 +58,8 @@
'volcano.css',
'catppuccin-mocha.css',
'catppuccin-latte.css',
+ 'dracula.css',
+ 'dracula-light.css',
'new-theme.css' // always add to the end of the list
];
```
diff --git a/assets/images/dracula-light-theme.png b/assets/images/dracula-light-theme.png
new file mode 100644
index 0000000..b482944
Binary files /dev/null and b/assets/images/dracula-light-theme.png differ
diff --git a/assets/images/dracula-theme.png b/assets/images/dracula-theme.png
new file mode 100644
index 0000000..15fc571
Binary files /dev/null and b/assets/images/dracula-theme.png differ
diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml
index 8871a5a..2a190d6 100644
--- a/docker-compose.dev.yml
+++ b/docker-compose.dev.yml
@@ -3,7 +3,11 @@ services:
build: .
image: hypermind
container_name: hypermind
- network_mode: host
+ #network_mode: host
+ ports:
+ - "3000:3000"
restart: unless-stopped
environment:
- PORT=3000
+ - ENABLE_CHAT=true
+ - ENABLE_MAP=true
diff --git a/public/app.js b/public/app.js
index 3033f7e..b22caaa 100644
--- a/public/app.js
+++ b/public/app.js
@@ -980,6 +980,8 @@ const themes = [
"volcano.css",
"catppuccin-mocha.css",
"catppuccin-latte.css",
+ "dracula.css",
+ "dracula-light.css",
];
let currentThemeIndex = 0;
diff --git a/public/themes/dracula-light.css b/public/themes/dracula-light.css
new file mode 100644
index 0000000..049a4ff
--- /dev/null
+++ b/public/themes/dracula-light.css
@@ -0,0 +1,43 @@
+:root {
+ --color-count: #644ac9;
+ --color-particle: #a3144d;
+ --color-particle-link: rgba(163, 20, 77, 0.15);
+ --color-pulse: #036a96;
+ --color-theme-toggle: #a3144d;
+ --color-theme-toggle-hover: #036a96;
+ --color-bg-main: #fffbeb;
+ --color-bg-overlay: rgba(255, 251, 235, 0.8);
+
+ --color-text-default: #1f1f1f;
+ --color-text-main-label: #644ac9;
+ --color-text-footer: #6c664b;
+ --color-text-footer-hover: #644ac9;
+ --color-text-debug: #6c664b;
+ --color-text-debug-link: #6c664b;
+ --color-text-debug-link-hover: #644ac9;
+ --color-text-anchor-link: #6c664b;
+
+ --color-modal-bg: #fffbeb;
+ --color-modal-border: #cfcfde;
+ --color-modal-title: #a3144d;
+ --color-modal-close-btn: #6c664b;
+ --color-modal-close-btn-hover: #cb3a2a;
+ --color-modal-stat-div: #cfcfde;
+ --color-modal-stat-label: #6c664b;
+ --color-modal-stat-value: #036a96;
+ --color-modal-footer: #644ac9;
+
+ --color-terminal-bg: rgba(255, 251, 235, 0.9);
+ --color-terminal-border: #cfcfde;
+ --color-terminal-shadow: rgba(0, 0, 0, 0.3);
+ --color-terminal-input-text: #036a96;
+ --color-terminal-input-divider: #cfcfde;
+ --color-terminal-output-message: #3d3d3d;
+ --color-terminal-tab-arrow: #a34d14;
+ --color-terminal-tab-arrow-hover: #036a96;
+ --color-terminal-tab-bg-hover: #cfcfde;
+ --color-terminal-status-message: #8a8a8a;
+ --color-terminal-scrollbar: #b8b8b8;
+ --color-terminal-scrollbar-hover: #8a8a8a;
+ --color-terminal-text-default: #a34d14;
+}
diff --git a/public/themes/dracula.css b/public/themes/dracula.css
new file mode 100644
index 0000000..fd4b568
--- /dev/null
+++ b/public/themes/dracula.css
@@ -0,0 +1,43 @@
+:root {
+ --color-count: #bd93f9;
+ --color-particle: #ff79c6;
+ --color-particle-link: rgba(255, 121, 198, 0.15);
+ --color-pulse: #8be9fd;
+ --color-theme-toggle: #ff79c6;
+ --color-theme-toggle-hover: #8be9fd;
+ --color-bg-main: #282a36;
+ --color-bg-overlay: rgba(40, 42, 54, 0.8);
+
+ --color-text-default: #f8f8f2;
+ --color-text-main-label: #bd93f9;
+ --color-text-footer: #6272a4;
+ --color-text-footer-hover: #bd93f9;
+ --color-text-debug: #6272a4;
+ --color-text-debug-link: #6272a4;
+ --color-text-debug-link-hover: #bd93f9;
+ --color-text-anchor-link: #6272a4;
+
+ --color-modal-bg: #282a36;
+ --color-modal-border: #44475a;
+ --color-modal-title: #ff79c6;
+ --color-modal-close-btn: #6272a4;
+ --color-modal-close-btn-hover: #ff5555;
+ --color-modal-stat-div: #44475a;
+ --color-modal-stat-label: #6272a4;
+ --color-modal-stat-value: #8be9fd;
+ --color-modal-footer: #bd93f9;
+
+ --color-terminal-bg: rgba(40, 42, 54, 0.9);
+ --color-terminal-border: #44475a;
+ --color-terminal-shadow: rgba(0, 0, 0, 0.3);
+ --color-terminal-input-text: #8be9fd;
+ --color-terminal-input-divider: #44475a;
+ --color-terminal-output-message: #50fa7b;
+ --color-terminal-tab-arrow: #ffb86c;
+ --color-terminal-tab-arrow-hover: #8be9fd;
+ --color-terminal-tab-bg-hover: #44475a;
+ --color-terminal-status-message: #6272a4;
+ --color-terminal-scrollbar: #bd93f9;
+ --color-terminal-scrollbar-hover: #8be9fd;
+ --color-terminal-text-default: #ffb86c;
+}