diff --git a/package.json b/package.json
index 6bf2b0b..2223cfa 100644
--- a/package.json
+++ b/package.json
@@ -21,8 +21,10 @@
"devDependencies": {
"@tsconfig/node22": "^22.0.2",
"@types/node": "^22.18.6",
+ "@vicons/ionicons5": "^0.13.0",
"@vitejs/plugin-vue": "^6.0.1",
"@vue/tsconfig": "^0.8.1",
+ "naive-ui": "^2.43.1",
"npm-run-all2": "^8.0.4",
"typescript": "~5.9.0",
"vite": "^7.1.7",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4f645bf..2e3219f 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -24,12 +24,18 @@ importers:
'@types/node':
specifier: ^22.18.6
version: 22.18.11
+ '@vicons/ionicons5':
+ specifier: ^0.13.0
+ version: 0.13.0
'@vitejs/plugin-vue':
specifier: ^6.0.1
version: 6.0.1(vite@7.1.10(@types/node@22.18.11))(vue@3.5.22(typescript@5.9.3))
'@vue/tsconfig':
specifier: ^0.8.1
version: 0.8.1(typescript@5.9.3)(vue@3.5.22(typescript@5.9.3))
+ naive-ui:
+ specifier: ^2.43.1
+ version: 2.43.1(vue@3.5.22(typescript@5.9.3))
npm-run-all2:
specifier: ^8.0.4
version: 8.0.4
@@ -188,6 +194,19 @@ packages:
resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==}
engines: {node: '>=6.9.0'}
+ '@css-render/plugin-bem@0.15.14':
+ resolution: {integrity: sha512-QK513CJ7yEQxm/P3EwsI+d+ha8kSOcjGvD6SevM41neEMxdULE+18iuQK6tEChAWMOQNQPLG/Rw3Khb69r5neg==}
+ peerDependencies:
+ css-render: ~0.15.14
+
+ '@css-render/vue3-ssr@0.15.14':
+ resolution: {integrity: sha512-//8027GSbxE9n3QlD73xFY6z4ZbHbvrOVB7AO6hsmrEzGbg+h2A09HboUyDgu+xsmj7JnvJD39Irt+2D0+iV8g==}
+ peerDependencies:
+ vue: ^3.0.11
+
+ '@emotion/hash@0.8.0':
+ resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==}
+
'@esbuild/aix-ppc64@0.25.11':
resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==}
engines: {node: '>=18'}
@@ -360,6 +379,9 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+ '@juggle/resize-observer@3.4.0':
+ resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==}
+
'@polka/url@1.0.0-next.29':
resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==}
@@ -500,9 +522,21 @@ packages:
'@types/estree@1.0.8':
resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==}
+ '@types/katex@0.16.7':
+ resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==}
+
+ '@types/lodash-es@4.17.12':
+ resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==}
+
+ '@types/lodash@4.17.20':
+ resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==}
+
'@types/node@22.18.11':
resolution: {integrity: sha512-Gd33J2XIrXurb+eT2ktze3rJAfAp9ZNjlBdh4SVgyrKEOADwCbdUDaK7QgJno8Ue4kcajscsKqu6n8OBG3hhCQ==}
+ '@vicons/ionicons5@0.13.0':
+ resolution: {integrity: sha512-zvZKBPjEXKN7AXNo2Na2uy+nvuv6SP4KAMQxpKL2vfHMj0fSvuw7JZcOPCjQC3e7ayssKnaoFVAhbYcW6v41qQ==}
+
'@vitejs/plugin-vue@6.0.1':
resolution: {integrity: sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -617,6 +651,9 @@ packages:
resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==}
engines: {node: '>=14'}
+ async-validator@4.2.5:
+ resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
+
baseline-browser-mapping@2.8.17:
resolution: {integrity: sha512-j5zJcx6golJYTG6c05LUZ3Z8Gi+M62zRT/ycz4Xq4iCOdpcxwg7ngEYD4KA0eWZC7U17qh/Smq8bYbACJ0ipBA==}
hasBin: true
@@ -647,9 +684,23 @@ packages:
resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==}
engines: {node: '>= 8'}
+ css-render@0.15.14:
+ resolution: {integrity: sha512-9nF4PdUle+5ta4W5SyZdLCCmFd37uVimSjg1evcTqKJCyvCEEj12WKzOSBNak6r4im4J4iYXKH1OWpUV5LBYFg==}
+
+ csstype@3.0.11:
+ resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==}
+
csstype@3.1.3:
resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
+ date-fns-tz@3.2.0:
+ resolution: {integrity: sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==}
+ peerDependencies:
+ date-fns: ^3.0.0 || ^4.0.0
+
+ date-fns@3.6.0:
+ resolution: {integrity: sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==}
+
debug@4.4.3:
resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==}
engines: {node: '>=6.0'}
@@ -693,6 +744,9 @@ packages:
estree-walker@2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+ evtd@0.2.4:
+ resolution: {integrity: sha512-qaeGN5bx63s/AXgQo8gj6fBkxge+OoLddLniox5qtLAEY5HSnuSlISXVPxnSae1dWblvTh4/HoMIB+mbMsvZzw==}
+
execa@9.6.0:
resolution: {integrity: sha512-jpWzZ1ZhwUmeWRhS7Qv3mhpOhLfwI+uAX4e5fOcXqwMR7EcJ0pj2kV1CVzHVMX/LphnKWD3LObjZCoJ71lKpHw==}
engines: {node: ^18.19.0 || >=20.5.0}
@@ -723,6 +777,10 @@ packages:
resolution: {integrity: sha512-kVCxPF3vQM/N0B1PmoqVUqgHP+EeVjmZSQn+1oCRPxd2P21P2F19lIgbR3HBosbB1PUhOAoctJnfEn2GbN2eZA==}
engines: {node: '>=18'}
+ highlight.js@11.11.1:
+ resolution: {integrity: sha512-Xwwo44whKBVCYoliBQwaPvtd/2tYFkRQtXDWj1nackaV2JPXx3L0+Jvd8/qCJ2p+ML0/XVkJ2q+Mr+UVdpJK5w==}
+ engines: {node: '>=12.0.0'}
+
hookable@5.5.3:
resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
@@ -787,6 +845,12 @@ packages:
kolorist@1.8.0:
resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
+ lodash-es@4.17.21:
+ resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+
+ lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@@ -810,6 +874,11 @@ packages:
muggle-string@0.4.1:
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
+ naive-ui@2.43.1:
+ resolution: {integrity: sha512-w52W0mOhdOGt4uucFSZmP0DI44PCsFyuxeLSs9aoUThfIuxms90MYjv46Qrr7xprjyJRw5RU6vYpCx4o9ind3A==}
+ peerDependencies:
+ vue: ^3.0.0
+
nanoid@3.3.11:
resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@@ -912,6 +981,9 @@ packages:
resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==}
engines: {node: '>=18'}
+ seemly@0.3.10:
+ resolution: {integrity: sha512-2+SMxtG1PcsL0uyhkumlOU6Qo9TAQ/WyH7tthnPIOQB05/12jz9naq6GZ6iZ6ApVsO3rr2gsnTf3++OV63kE1Q==}
+
semver@6.3.1:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
@@ -960,6 +1032,9 @@ packages:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
+ treemate@0.3.11:
+ resolution: {integrity: sha512-M8RGFoKtZ8dF+iwJfAJTOH/SM4KluKOKRJpjCMhI8bG3qB74zrFoArKZ62ll0Fr3mqkMJiQOmWYkdYgDeITYQg==}
+
typescript@5.9.3:
resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==}
engines: {node: '>=14.17'}
@@ -982,6 +1057,11 @@ packages:
peerDependencies:
browserslist: '>= 4.21.0'
+ vdirs@0.1.8:
+ resolution: {integrity: sha512-H9V1zGRLQZg9b+GdMk8MXDN2Lva0zx72MPahDKc30v+DtwKjfyOSXWRIX4t2mhDubM1H09gPhWeth/BJWPHGUw==}
+ peerDependencies:
+ vue: ^3.0.11
+
vite-dev-rpc@1.1.0:
resolution: {integrity: sha512-pKXZlgoXGoE8sEKiKJSng4hI1sQ4wi5YT24FCrwrLt6opmkjlqPPVmiPWWJn8M8byMxRGzp1CrFuqQs4M/Z39A==}
peerDependencies:
@@ -1053,6 +1133,11 @@ packages:
yaml:
optional: true
+ vooks@0.2.12:
+ resolution: {integrity: sha512-iox0I3RZzxtKlcgYaStQYKEzWWGAduMmq+jS7OrNdQo1FgGfPMubGL3uGHOU9n97NIvfFDBGnpSvkWyb/NSn/Q==}
+ peerDependencies:
+ vue: ^3.0.0
+
vscode-uri@3.1.0:
resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==}
@@ -1075,6 +1160,11 @@ packages:
typescript:
optional: true
+ vueuc@0.4.65:
+ resolution: {integrity: sha512-lXuMl+8gsBmruudfxnMF9HW4be8rFziylXFu1VHVNbLVhRTXXV4njvpRuJapD/8q+oFEMSfQMH16E/85VoWRyQ==}
+ peerDependencies:
+ vue: ^3.0.11
+
which@2.0.2:
resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
engines: {node: '>= 8'}
@@ -1289,6 +1379,16 @@ snapshots:
'@babel/helper-string-parser': 7.27.1
'@babel/helper-validator-identifier': 7.27.1
+ '@css-render/plugin-bem@0.15.14(css-render@0.15.14)':
+ dependencies:
+ css-render: 0.15.14
+
+ '@css-render/vue3-ssr@0.15.14(vue@3.5.22(typescript@5.9.3))':
+ dependencies:
+ vue: 3.5.22(typescript@5.9.3)
+
+ '@emotion/hash@0.8.0': {}
+
'@esbuild/aix-ppc64@0.25.11':
optional: true
@@ -1386,6 +1486,8 @@ snapshots:
'@jridgewell/resolve-uri': 3.1.2
'@jridgewell/sourcemap-codec': 1.5.5
+ '@juggle/resize-observer@3.4.0': {}
+
'@polka/url@1.0.0-next.29': {}
'@rolldown/pluginutils@1.0.0-beta.29': {}
@@ -1464,10 +1566,20 @@ snapshots:
'@types/estree@1.0.8': {}
+ '@types/katex@0.16.7': {}
+
+ '@types/lodash-es@4.17.12':
+ dependencies:
+ '@types/lodash': 4.17.20
+
+ '@types/lodash@4.17.20': {}
+
'@types/node@22.18.11':
dependencies:
undici-types: 6.21.0
+ '@vicons/ionicons5@0.13.0': {}
+
'@vitejs/plugin-vue@6.0.1(vite@7.1.10(@types/node@22.18.11))(vue@3.5.22(typescript@5.9.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-beta.29
@@ -1638,6 +1750,8 @@ snapshots:
ansis@4.2.0: {}
+ async-validator@4.2.5: {}
+
baseline-browser-mapping@2.8.17: {}
birpc@2.6.1: {}
@@ -1668,8 +1782,21 @@ snapshots:
shebang-command: 2.0.0
which: 2.0.2
+ css-render@0.15.14:
+ dependencies:
+ '@emotion/hash': 0.8.0
+ csstype: 3.0.11
+
+ csstype@3.0.11: {}
+
csstype@3.1.3: {}
+ date-fns-tz@3.2.0(date-fns@3.6.0):
+ dependencies:
+ date-fns: 3.6.0
+
+ date-fns@3.6.0: {}
+
debug@4.4.3:
dependencies:
ms: 2.1.3
@@ -1722,6 +1849,8 @@ snapshots:
estree-walker@2.0.2: {}
+ evtd@0.2.4: {}
+
execa@9.6.0:
dependencies:
'@sindresorhus/merge-streams': 4.0.0
@@ -1755,6 +1884,8 @@ snapshots:
'@sec-ant/readable-stream': 0.4.1
is-stream: 4.0.1
+ highlight.js@11.11.1: {}
+
hookable@5.5.3: {}
human-signals@8.0.1: {}
@@ -1791,6 +1922,10 @@ snapshots:
kolorist@1.8.0: {}
+ lodash-es@4.17.21: {}
+
+ lodash@4.17.21: {}
+
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@@ -1809,6 +1944,29 @@ snapshots:
muggle-string@0.4.1: {}
+ naive-ui@2.43.1(vue@3.5.22(typescript@5.9.3)):
+ dependencies:
+ '@css-render/plugin-bem': 0.15.14(css-render@0.15.14)
+ '@css-render/vue3-ssr': 0.15.14(vue@3.5.22(typescript@5.9.3))
+ '@types/katex': 0.16.7
+ '@types/lodash': 4.17.20
+ '@types/lodash-es': 4.17.12
+ async-validator: 4.2.5
+ css-render: 0.15.14
+ csstype: 3.1.3
+ date-fns: 3.6.0
+ date-fns-tz: 3.2.0(date-fns@3.6.0)
+ evtd: 0.2.4
+ highlight.js: 11.11.1
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+ seemly: 0.3.10
+ treemate: 0.3.11
+ vdirs: 0.1.8(vue@3.5.22(typescript@5.9.3))
+ vooks: 0.2.12(vue@3.5.22(typescript@5.9.3))
+ vue: 3.5.22(typescript@5.9.3)
+ vueuc: 0.4.65(vue@3.5.22(typescript@5.9.3))
+
nanoid@3.3.11: {}
nanoid@5.1.6: {}
@@ -1916,6 +2074,8 @@ snapshots:
run-applescript@7.1.0: {}
+ seemly@0.3.10: {}
+
semver@6.3.1: {}
shebang-command@2.0.0:
@@ -1951,6 +2111,8 @@ snapshots:
totalist@3.0.1: {}
+ treemate@0.3.11: {}
+
typescript@5.9.3: {}
undici-types@6.21.0: {}
@@ -1968,6 +2130,11 @@ snapshots:
escalade: 3.2.0
picocolors: 1.1.1
+ vdirs@0.1.8(vue@3.5.22(typescript@5.9.3)):
+ dependencies:
+ evtd: 0.2.4
+ vue: 3.5.22(typescript@5.9.3)
+
vite-dev-rpc@1.1.0(vite@7.1.10(@types/node@22.18.11)):
dependencies:
birpc: 2.6.1
@@ -2035,6 +2202,11 @@ snapshots:
'@types/node': 22.18.11
fsevents: 2.3.3
+ vooks@0.2.12(vue@3.5.22(typescript@5.9.3)):
+ dependencies:
+ evtd: 0.2.4
+ vue: 3.5.22(typescript@5.9.3)
+
vscode-uri@3.1.0: {}
vue-router@4.6.3(vue@3.5.22(typescript@5.9.3)):
@@ -2058,6 +2230,17 @@ snapshots:
optionalDependencies:
typescript: 5.9.3
+ vueuc@0.4.65(vue@3.5.22(typescript@5.9.3)):
+ dependencies:
+ '@css-render/vue3-ssr': 0.15.14(vue@3.5.22(typescript@5.9.3))
+ '@juggle/resize-observer': 3.4.0
+ css-render: 0.15.14
+ evtd: 0.2.4
+ seemly: 0.3.10
+ vdirs: 0.1.8(vue@3.5.22(typescript@5.9.3))
+ vooks: 0.2.12(vue@3.5.22(typescript@5.9.3))
+ vue: 3.5.22(typescript@5.9.3)
+
which@2.0.2:
dependencies:
isexe: 2.0.0
diff --git a/src/App.vue b/src/App.vue
index 7905b05..265ce4c 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,85 +1,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/src/assets/base.css b/src/assets/base.css
index 8816868..e69de29 100644
--- a/src/assets/base.css
+++ b/src/assets/base.css
@@ -1,86 +0,0 @@
-/* color palette from */
-:root {
- --vt-c-white: #ffffff;
- --vt-c-white-soft: #f8f8f8;
- --vt-c-white-mute: #f2f2f2;
-
- --vt-c-black: #181818;
- --vt-c-black-soft: #222222;
- --vt-c-black-mute: #282828;
-
- --vt-c-indigo: #2c3e50;
-
- --vt-c-divider-light-1: rgba(60, 60, 60, 0.29);
- --vt-c-divider-light-2: rgba(60, 60, 60, 0.12);
- --vt-c-divider-dark-1: rgba(84, 84, 84, 0.65);
- --vt-c-divider-dark-2: rgba(84, 84, 84, 0.48);
-
- --vt-c-text-light-1: var(--vt-c-indigo);
- --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
- --vt-c-text-dark-1: var(--vt-c-white);
- --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
-}
-
-/* semantic color variables for this project */
-:root {
- --color-background: var(--vt-c-white);
- --color-background-soft: var(--vt-c-white-soft);
- --color-background-mute: var(--vt-c-white-mute);
-
- --color-border: var(--vt-c-divider-light-2);
- --color-border-hover: var(--vt-c-divider-light-1);
-
- --color-heading: var(--vt-c-text-light-1);
- --color-text: var(--vt-c-text-light-1);
-
- --section-gap: 160px;
-}
-
-@media (prefers-color-scheme: dark) {
- :root {
- --color-background: var(--vt-c-black);
- --color-background-soft: var(--vt-c-black-soft);
- --color-background-mute: var(--vt-c-black-mute);
-
- --color-border: var(--vt-c-divider-dark-2);
- --color-border-hover: var(--vt-c-divider-dark-1);
-
- --color-heading: var(--vt-c-text-dark-1);
- --color-text: var(--vt-c-text-dark-2);
- }
-}
-
-*,
-*::before,
-*::after {
- box-sizing: border-box;
- margin: 0;
- font-weight: normal;
-}
-
-body {
- min-height: 100vh;
- color: var(--color-text);
- background: var(--color-background);
- transition:
- color 0.5s,
- background-color 0.5s;
- line-height: 1.6;
- font-family:
- Inter,
- -apple-system,
- BlinkMacSystemFont,
- 'Segoe UI',
- Roboto,
- Oxygen,
- Ubuntu,
- Cantarell,
- 'Fira Sans',
- 'Droid Sans',
- 'Helvetica Neue',
- sans-serif;
- font-size: 15px;
- text-rendering: optimizeLegibility;
- -webkit-font-smoothing: antialiased;
- -moz-osx-font-smoothing: grayscale;
-}
diff --git a/src/assets/main.css b/src/assets/main.css
index 36fb845..e69de29 100644
--- a/src/assets/main.css
+++ b/src/assets/main.css
@@ -1,35 +0,0 @@
-@import './base.css';
-
-#app {
- max-width: 1280px;
- margin: 0 auto;
- padding: 2rem;
- font-weight: normal;
-}
-
-a,
-.green {
- text-decoration: none;
- color: hsla(160, 100%, 37%, 1);
- transition: 0.4s;
- padding: 3px;
-}
-
-@media (hover: hover) {
- a:hover {
- background-color: hsla(160, 100%, 37%, 0.2);
- }
-}
-
-@media (min-width: 1024px) {
- body {
- display: flex;
- place-items: center;
- }
-
- #app {
- display: grid;
- grid-template-columns: 1fr 1fr;
- padding: 0 2rem;
- }
-}
diff --git a/src/layouts/Layout.vue b/src/layouts/Layout.vue
new file mode 100644
index 0000000..375a9a9
--- /dev/null
+++ b/src/layouts/Layout.vue
@@ -0,0 +1,119 @@
+
+
+ Nexus-人生管理系统
+
+
+
+
+
+ 按钮
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main.ts b/src/main.ts
index 5dcad83..2e260b8 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -1,14 +1,12 @@
import './assets/main.css'
import { createApp } from 'vue'
-import { createPinia } from 'pinia'
import App from './App.vue'
-import router from './router'
+import { registerPlugins } from './plugins'
const app = createApp(App)
-app.use(createPinia())
-app.use(router)
+registerPlugins(app)
app.mount('#app')
diff --git a/src/plugins/index.ts b/src/plugins/index.ts
new file mode 100644
index 0000000..0a3eb11
--- /dev/null
+++ b/src/plugins/index.ts
@@ -0,0 +1,23 @@
+import { create, NButton, NConfigProvider, NIcon, NLayout, NLayoutContent, NLayoutFooter, NLayoutHeader, NLayoutSider, NMenu } from 'naive-ui'
+import type { App } from 'vue'
+import pinia from '../stores'
+import router from '../router'
+
+const navie = create({
+ components: [NButton,
+ NConfigProvider,
+ NLayout,
+ NLayoutHeader,
+ NLayoutFooter,
+ NLayoutContent,
+ NLayoutSider,
+ NIcon,
+ NMenu,
+ ],
+})
+
+export function registerPlugins(app: App) {
+ app.use(navie)
+ app.use(pinia)
+ app.use(router)
+}
\ No newline at end of file
diff --git a/src/stores/index.ts b/src/stores/index.ts
new file mode 100644
index 0000000..473e799
--- /dev/null
+++ b/src/stores/index.ts
@@ -0,0 +1,3 @@
+import { createPinia } from "pinia";
+
+export default createPinia()
\ No newline at end of file