` + nick + `
diff --git a/client_src/mdui-prettier.css b/client_src/mdui-prettier.css
new file mode 100644
index 0000000..4b86b3b
--- /dev/null
+++ b/client_src/mdui-prettier.css
@@ -0,0 +1,53 @@
+/*
+ * ©2024 满月叶
+ * GitHub: MoonLeeeaf
+ * 是 UI 美化,好耶!
+ */
+
+/* 美化UI */
+
+body {
+ font-family: -apple-system, system-ui, -webkit-system-font;
+}
+.mdui-dialog {
+ border-radius: 23px;
+}
+.mdui-menu {
+ border-radius: 10px;
+}
+.mdui-menu-item > a {
+ padding-right: 3px;
+}
+.mdui-btn:not(.mdui-btn-icon, .mdui-dialog-actions button, .mdui-dialog-actions a) {
+ padding-left: 20px;
+ padding-right: 20px;
+ height: 40px;
+ border-radius: 10px;
+}
+.mdui-dialog-actions a,
+.mdui-dialog-actions button {
+ padding-left: 20px;
+ padding-right: 20px;
+ height: 40px;
+ border-radius: 40px;
+}
+.mdui-select-open {
+ border-radius: 10px;
+}
+@media not screen and (min-width: 768px) {
+ .mdui-snackbar {
+ border-radius: 10px;
+ }
+}
+
+/* 配色方案 */
+
+.mdui-theme-color-auto {
+ background-color: #fff;
+}
+
+@media (prefers-color-scheme: dark) {
+ .mdui-theme-color-auto {
+ background-color: #303030;
+ }
+}
diff --git a/client_src/res/config.json b/client_src/res/config.json
new file mode 100644
index 0000000..d8ada1e
--- /dev/null
+++ b/client_src/res/config.json
@@ -0,0 +1,4 @@
+{
+ "appTitle": "",
+ "canChangeServer": true
+}
\ No newline at end of file
diff --git a/client_src/res/default_head.png b/client_src/res/default_head.png
new file mode 100644
index 0000000..4f6f226
Binary files /dev/null and b/client_src/res/default_head.png differ
diff --git a/client_src/res/icon.ico b/client_src/res/icon.ico
new file mode 100644
index 0000000..8677e11
Binary files /dev/null and b/client_src/res/icon.ico differ
diff --git a/client_src/res/license.txt b/client_src/res/license.txt
new file mode 100644
index 0000000..5c226ee
--- /dev/null
+++ b/client_src/res/license.txt
@@ -0,0 +1,13 @@
+Copyright 2024 MoonLeeeaf
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
\ No newline at end of file
diff --git a/run_build.sh b/run_build.sh
new file mode 100644
index 0000000..578e89a
--- /dev/null
+++ b/run_build.sh
@@ -0,0 +1,11 @@
+# 复制资源文件,这些文件不需要编译
+mkdir -p ling_chair_http
+cp -r client_src/* build_cache/
+
+# 向前兼容脚本
+cd babel_lib
+node node_modules/@babel/cli/bin/babel ../client_src --out-dir ../build_cache --presets=@babel/env
+
+# 打包以减小负载
+cd ../webpack_lib
+node node_modules/webpack-cli/bin/cli.js --config webpack_config.js
diff --git a/webpack_lib/.gitignore b/webpack_lib/.gitignore
new file mode 100644
index 0000000..c2658d7
--- /dev/null
+++ b/webpack_lib/.gitignore
@@ -0,0 +1 @@
+node_modules/
diff --git a/webpack_lib/readme.md b/webpack_lib/readme.md
new file mode 100644
index 0000000..f355d2b
--- /dev/null
+++ b/webpack_lib/readme.md
@@ -0,0 +1,3 @@
+## Webpack
+
+请从本仓库根目录的 .github 文件夹内找到对应的zip文件,并把 node_modules 解压在此,方可使用
diff --git a/webpack_lib/webpack_config.js b/webpack_lib/webpack_config.js
new file mode 100644
index 0000000..30b20f9
--- /dev/null
+++ b/webpack_lib/webpack_config.js
@@ -0,0 +1,20 @@
+const path = require('path')
+const { BannerPlugin } = require('webpack')
+const HtmlWebpackPlugin = require('html-webpack-plugin')
+const MiniCssExtractPlugin = require('mini-css-extract-plugin')
+
+module.exports = {
+ entry: '../build_cache/index.js',
+ output: {
+ filename: 'index.js',
+ path: path.resolve(__dirname, '../ling_chair_http'),
+ },
+ module: {
+ rules: [
+ {
+ test: /\.css$/i,
+ use: ['style-loader', 'css-loader'],
+ },
+ ],
+ },
+}