Compare commits
2 Commits
b391dcc998
...
2c3d6c86b7
Author | SHA1 | Date |
---|---|---|
|
2c3d6c86b7 | 1 month ago |
|
dcfa188b85 | 1 month ago |
18 changed files with 214 additions and 3176 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
@ -0,0 +1,12 @@ |
|||||
|
.home-hero { |
||||
|
margin: 20px 20px 40px; |
||||
|
background: rgba(255, 255, 255, 0.1); |
||||
|
backdrop-filter: blur(12px); |
||||
|
} |
||||
|
|
||||
|
@media screen and (max-width: 768px) { |
||||
|
.home-hero { |
||||
|
margin: 0; |
||||
|
margin-top: 20px; |
||||
|
} |
||||
|
} |
After Width: | Height: | Size: 280 KiB |
@ -1,100 +1,10 @@ |
|||||
extends /layouts/page.pug |
extends /layouts/page.pug |
||||
|
|
||||
|
block pageHead |
||||
|
+css("css/page/index.css") |
||||
|
|
||||
block pageContent |
block pageContent |
||||
.home-hero |
.card.home-hero |
||||
h1 #{$site.site_title} |
h1 #{$site.site_title} |
||||
//- p.subtitle #{$site.site_description} |
p.subtitle #{$site.site_description} |
||||
.actions |
|
||||
a.btn-primary(href="/about") 了解更多 |
|
||||
a.btn-secondary(href="/contact") 联系我们 |
|
||||
|
|
||||
.features |
|
||||
.feature |
|
||||
h2 🚀 极速开发 |
|
||||
p 使用 Koa3 和现代前端技术,快速搭建高效网站。 |
|
||||
.feature |
|
||||
h2 🔒 安全可靠 |
|
||||
p 内置多项安全机制,保障数据与用户安全。 |
|
||||
.feature |
|
||||
h2 🌈 易于扩展 |
|
||||
p 结构清晰,方便二次开发和功能拓展。 |
|
||||
|
|
||||
style. |
|
||||
.home-hero { |
|
||||
text-align: center; |
|
||||
padding: 60px 0 40px 0; |
|
||||
margin: 20px 20px; |
|
||||
background: linear-gradient(90deg, #4fc3f7 0%, #1976d2 100%); |
|
||||
color: #fff; |
|
||||
border-radius: 12px; |
|
||||
margin-bottom: 40px; |
|
||||
} |
|
||||
.home-hero h1 { |
|
||||
font-size: 2.8em; |
|
||||
margin-bottom: 42px; |
|
||||
letter-spacing: 2px; |
|
||||
} |
|
||||
.home-hero .subtitle { |
|
||||
font-size: 1.3em; |
|
||||
margin-bottom: 28px; |
|
||||
color: #e3f2fd; |
|
||||
} |
|
||||
.home-hero .actions { |
|
||||
margin-top: 18px; |
|
||||
} |
|
||||
.btn-primary, .btn-secondary { |
|
||||
display: inline-block; |
|
||||
padding: 10px 28px; |
|
||||
border-radius: 24px; |
|
||||
font-size: 1em; |
|
||||
margin: 0 10px; |
|
||||
text-decoration: none; |
|
||||
transition: background 0.2s, color 0.2s; |
|
||||
} |
|
||||
.btn-primary { |
|
||||
background: #fff; |
|
||||
color: #1976d2; |
|
||||
font-weight: bold; |
|
||||
border: none; |
|
||||
} |
|
||||
.btn-primary:hover { |
|
||||
background: #e3f2fd; |
|
||||
color: #1565c0; |
|
||||
} |
|
||||
.btn-secondary { |
|
||||
background: transparent; |
|
||||
color: #fff; |
|
||||
border: 1px solid #fff; |
|
||||
} |
|
||||
.btn-secondary:hover { |
|
||||
background: #1976d2; |
|
||||
color: #fff; |
|
||||
border-color: #e3f2fd; |
|
||||
} |
|
||||
.features { |
|
||||
display: flex; |
|
||||
justify-content: space-around; |
|
||||
margin-top: 40px; |
|
||||
gap: 24px; |
|
||||
flex-wrap: wrap; |
|
||||
} |
|
||||
.feature { |
|
||||
background: #fafbfc; |
|
||||
border-radius: 10px; |
|
||||
box-shadow: 0 2px 8px rgba(30, 136, 229, 0.08); |
|
||||
padding: 28px 24px; |
|
||||
flex: 1 1 220px; |
|
||||
min-width: 220px; |
|
||||
max-width: 320px; |
|
||||
text-align: center; |
|
||||
margin: 0 8px; |
|
||||
} |
|
||||
.feature h2 { |
|
||||
font-size: 1.3em; |
|
||||
margin-bottom: 10px; |
|
||||
color: #1976d2; |
|
||||
} |
|
||||
.feature p { |
|
||||
color: #333; |
|
||||
font-size: 1em; |
|
||||
margin: 0; |
|
@ -0,0 +1,83 @@ |
|||||
|
import { dirname, resolve } from "node:path" |
||||
|
import { fileURLToPath } from "node:url" |
||||
|
import module from "node:module" |
||||
|
import { defineConfig } from "vite" |
||||
|
import pkg from "./package.json" |
||||
|
import { viteStaticCopy } from "vite-plugin-static-copy" |
||||
|
|
||||
|
const __dirname = dirname(fileURLToPath(import.meta.url)) |
||||
|
|
||||
|
function getExternal(): string[] { |
||||
|
return [...Object.keys(pkg.dependencies || {}), ...module.builtinModules] |
||||
|
} |
||||
|
|
||||
|
export default defineConfig({ |
||||
|
publicDir: false, |
||||
|
resolve: { |
||||
|
alias: { |
||||
|
"@": resolve(__dirname, "src"), |
||||
|
db: resolve(__dirname, "src/db"), |
||||
|
config: resolve(__dirname, "src/config"), |
||||
|
utils: resolve(__dirname, "src/utils"), |
||||
|
services: resolve(__dirname, "src/services"), |
||||
|
}, |
||||
|
}, |
||||
|
build: { |
||||
|
lib: { |
||||
|
entry: resolve(__dirname, "src/main.js"), |
||||
|
formats: ["es"], |
||||
|
fileName: () => `[name].js`, |
||||
|
}, |
||||
|
outDir: resolve(__dirname, "dist"), |
||||
|
rollupOptions: { |
||||
|
external: getExternal(), |
||||
|
// watch: {
|
||||
|
// include: "src/**",
|
||||
|
// exclude: "node_modules/**",
|
||||
|
// },
|
||||
|
output: { |
||||
|
preserveModules: true, |
||||
|
preserveModulesRoot: "src", |
||||
|
inlineDynamicImports: false, |
||||
|
}, |
||||
|
}, |
||||
|
}, |
||||
|
plugins: [ |
||||
|
viteStaticCopy({ |
||||
|
targets: [ |
||||
|
{ |
||||
|
src: "public", |
||||
|
dest: "", |
||||
|
}, |
||||
|
{ |
||||
|
src: "src/views", |
||||
|
dest: "", |
||||
|
}, |
||||
|
{ |
||||
|
src: "src/db/migrations", |
||||
|
dest: "db", |
||||
|
}, |
||||
|
{ |
||||
|
src: "src/db/seeds", |
||||
|
dest: "db", |
||||
|
}, |
||||
|
{ |
||||
|
src: "entrypoint.sh", |
||||
|
dest: "", |
||||
|
}, |
||||
|
{ |
||||
|
src: "package.json", |
||||
|
dest: "", |
||||
|
}, |
||||
|
{ |
||||
|
src: "knexfile.mjs", |
||||
|
dest: "", |
||||
|
}, |
||||
|
{ |
||||
|
src: "bun.lockb", |
||||
|
dest: "", |
||||
|
}, |
||||
|
], |
||||
|
}), |
||||
|
], |
||||
|
}) |
Loading…
Reference in new issue