diff --git a/biome.json b/biome.json
index f415cc6..cad608c 100644
--- a/biome.json
+++ b/biome.json
@@ -28,7 +28,8 @@
"rules": {
"recommended": true,
"correctness": {
- "noUnusedImports": "error"
+ "noUnusedImports": "error",
+ "useJsxKeyInIterable": "off"
}
}
},
diff --git a/package.json b/package.json
index 6ee16d4..11e2c34 100644
--- a/package.json
+++ b/package.json
@@ -6,7 +6,7 @@
"type": "module",
"scripts": {
"start": "bun run build && bun src/serve.ts",
- "dev": "bun src/index.ts --dev",
+ "dev": "bun run --hot src/index.ts --dev",
"build": "bun run src/build.ts",
"lint": "bunx biome check",
"lint:fix": "bunx biome check --fix",
diff --git a/src/index.ts b/src/index.ts
index ac86a7c..f89adeb 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,6 +1,8 @@
-import { resolve } from "node:path";
import { environment, verifyRequiredVariables } from "@config";
import { logger } from "@creations.works/logger";
+import { routeFiles } from "@views/manifest";
+
+import { resolve } from "node:path";
import { type PluginOption, createServer } from "vite";
import solidPlugin from "vite-plugin-solid";
import tsconfigPaths from "vite-tsconfig-paths";
@@ -34,6 +36,12 @@ const server = await createServer({
await server.listen();
-logger.info(
- `Server is running at http://${environment.host}:${environment.port}`,
+logger.info(`Server is running at ${environment.fqdn}`);
+logger.info("Available routes:");
+
+const sorted = Object.entries(routeFiles).sort(([a], [b]) =>
+ a.localeCompare(b),
);
+for (const [route, file] of sorted) {
+ logger.info(`Route: ${route}, File: ${file}`);
+}
diff --git a/src/views/app.tsx b/src/views/app.tsx
index b087bb6..ed8e08b 100644
--- a/src/views/app.tsx
+++ b/src/views/app.tsx
@@ -1,17 +1,14 @@
-import { Route } from "@solidjs/router";
-import { about } from "@views/pages/about";
-import { error } from "@views/pages/error";
-import { home } from "@views/pages/home";
-import { login } from "@views/pages/login";
+import { routesManifest } from "@views/manifest";
+import { Route } from "@solidjs/router";
+import { lazy } from "solid-js";
import type { Component } from "solid-js";
const app: Component = () => (
<>
-
-
-
-
+ {Object.entries(routesManifest).map(([path, loader]) => (
+
+ ))}
>
);
diff --git a/src/views/css/global.css b/src/views/css/global.css
index 0cf0da0..c80cd9b 100644
--- a/src/views/css/global.css
+++ b/src/views/css/global.css
@@ -3,21 +3,26 @@
--text: #000;
--input-background: #fff;
--input-border: #ccc;
+ --input-focus-border: #4f46e5;
--button-background: #4f46e5;
--button-hover-background: #4338ca;
--button-text: #fff;
}
:root[data-theme="dark"] {
- --background: #18181b;
- --text: #f9fafb;
- --input-background: #27272a;
- --input-border: #3f3f46;
- --button-background: #6366f1;
- --button-hover-background: #4f46e5;
- --button-text: #fff;
+ --background: #000000;
+ --text: #ffffff;
+
+ --input-background: #111111;
+ --input-border: #333333;
+ --input-focus-border: #727272;
+
+ --button-background: rgb(80, 78, 78);
+ --button-hover-background: #3d3c3c;
+ --button-text: #000000;
}
+
body {
margin: 0;
padding: 0;
diff --git a/src/views/css/login.module.css b/src/views/css/login.module.css
index 564fd8a..09ce0ba 100644
--- a/src/views/css/login.module.css
+++ b/src/views/css/login.module.css
@@ -27,6 +27,13 @@
color: var(--text);
border: 1px solid var(--input-border);
border-radius: 4px;
+
+ transition: border-color 0.2s;
+}
+
+.input:focus {
+ outline: none;
+ border-color: var(--input-focus-border);
}
.button {
diff --git a/src/views/manifest.ts b/src/views/manifest.ts
new file mode 100644
index 0000000..e56e3e1
--- /dev/null
+++ b/src/views/manifest.ts
@@ -0,0 +1,13 @@
+export const routesManifest = {
+ "/": () => import("@views/pages/home"),
+ "/login": () => import("@views/pages/login"),
+ "/about": () => import("@views/pages/about"),
+ "*": () => import("@views/pages/error"),
+};
+
+export const routeFiles = {
+ "/": "src/views/pages/home.tsx",
+ "/login": "src/views/pages/login.tsx",
+ "/about": "src/views/pages/about.tsx",
+ "*": "src/views/pages/error.tsx",
+};
diff --git a/src/views/pages/about.tsx b/src/views/pages/about.tsx
index c79162d..99f4fb8 100644
--- a/src/views/pages/about.tsx
+++ b/src/views/pages/about.tsx
@@ -9,4 +9,4 @@ const about: Component = () => {
);
};
-export { about };
+export default about;
diff --git a/src/views/pages/error.tsx b/src/views/pages/error.tsx
index bce87c3..e079bad 100644
--- a/src/views/pages/error.tsx
+++ b/src/views/pages/error.tsx
@@ -9,4 +9,4 @@ const error: Component = () => {
);
};
-export { error };
+export default error;
diff --git a/src/views/pages/home.tsx b/src/views/pages/home.tsx
index fbfa83b..099de54 100644
--- a/src/views/pages/home.tsx
+++ b/src/views/pages/home.tsx
@@ -30,4 +30,4 @@ const home = () => {
return null;
};
-export { home };
+export default home;
diff --git a/src/views/pages/login.tsx b/src/views/pages/login.tsx
index 512ccb0..3b3a823 100644
--- a/src/views/pages/login.tsx
+++ b/src/views/pages/login.tsx
@@ -16,4 +16,4 @@ const login: Component = () => {
);
};
-export { login };
+export default login;