Better product carsouel

This commit is contained in:
2025-07-29 01:14:03 +08:00
parent 4597cc345e
commit 9c150d4a84
4 changed files with 35 additions and 5 deletions

View File

@@ -48,5 +48,11 @@ body {
padding: 0; padding: 0;
margin: 0; margin: 0;
font-family: Nunito Variable, sans-serif; font-family: Nunito Variable, sans-serif;
scroll-behavior: smooth;
}
.n-layout-scroll-container {
scroll-behavior: smooth;
} }
</style> </style>

View File

@@ -8,18 +8,18 @@
that interesting. that interesting.
</p> </p>
<n-space justify="center"> <n-space justify="center">
<n-button type="primary" size="large" round>Explore around</n-button> <n-button type="primary" size="large" round tag="a" href="#products">Explore around</n-button>
<n-button type="default" size="large" round>About us</n-button> <n-button type="default" size="large" round>About us</n-button>
</n-space> </n-space>
</div> </div>
<div id="about" class="pb-36"> <div id="products" class="pb-56">
<client-only> <client-only>
<n-grid cols="1 m:2 l:2" responsive="screen" x-gap="32" y-gap="16"> <n-grid cols="1 m:2 l:2" responsive="screen" x-gap="32" y-gap="16">
<n-gi> <n-gi>
<div class="flex items-center justify-center"> <div class="flex items-center justify-center">
<n-carousel <n-carousel
show-arrow show-arrow
draggable autoplay
dot-type="line" dot-type="line"
class="rounded-xl w-full max-h-[360px] aspect-video flex-shrink-1" class="rounded-xl w-full max-h-[360px] aspect-video flex-shrink-1"
> >
@@ -45,6 +45,14 @@
" "
class="absolute left-0 right-0 top-1/2 bottom-0" class="absolute left-0 right-0 top-1/2 bottom-0"
/> />
<div class="absolute left-0 right-0 top-0 px-4 pt-4 flex justify-end gap-2.5">
<n-button v-if="product.repo" circle color="white" size="small" tag="a" :href="product.repo" target="_blank">
<n-icon><code-round /></n-icon>
</n-button>
<n-button v-if="product.url" circle color="white" size="small" tag="a" :href="product.url" target="_blank">
<n-icon><launch-round /></n-icon>
</n-button>
</div>
<div <div
class="absolute bottom-0 px-6 py-8 w-full" class="absolute bottom-0 px-6 py-8 w-full"
style="z-index: 2" style="z-index: 2"
@@ -64,8 +72,14 @@
class="flex justify-center text-right h-full py-8 px-4 flex flex-col" class="flex justify-center text-right h-full py-8 px-4 flex flex-col"
> >
<h2 class="text-3xl font-bold mb-3">Our products</h2> <h2 class="text-3xl font-bold mb-3">Our products</h2>
<p class="text-lg mb-1">The made various of software, from social network to cloud drive.</p> <p class="text-lg mb-1">
<p class="text-lg">Take a look of them on the left on your own <code>(&gt;&lt;)</code></p> The made various of software, from social network to cloud
drive.
</p>
<p class="text-lg">
Take a look of them on the left on your own
<code>(&gt;&lt;)</code>
</p>
</div> </div>
</n-gi> </n-gi>
</n-grid> </n-grid>
@@ -82,8 +96,10 @@ import {
NGi, NGi,
NCarousel, NCarousel,
NCarouselItem, NCarouselItem,
NIcon,
useThemeVars, useThemeVars,
} from "naive-ui"; } from "naive-ui";
import { LaunchRound, CodeRound } from "@vicons/material";
import Typed from "typed.js"; import Typed from "typed.js";
const route = useRoute(); const route = useRoute();

View File

@@ -21,6 +21,9 @@
"vue": "^3.5.18", "vue": "^3.5.18",
"vue-router": "^4.5.1", "vue-router": "^4.5.1",
}, },
"devDependencies": {
"@vicons/material": "^0.13.0",
},
}, },
}, },
"packages": { "packages": {
@@ -604,6 +607,8 @@
"@vercel/nft": ["@vercel/nft@0.29.4", "", { "dependencies": { "@mapbox/node-pre-gyp": "^2.0.0", "@rollup/pluginutils": "^5.1.3", "acorn": "^8.6.0", "acorn-import-attributes": "^1.9.5", "async-sema": "^3.1.1", "bindings": "^1.4.0", "estree-walker": "2.0.2", "glob": "^10.4.5", "graceful-fs": "^4.2.9", "node-gyp-build": "^4.2.2", "picomatch": "^4.0.2", "resolve-from": "^5.0.0" }, "bin": { "nft": "out/cli.js" } }, "sha512-6lLqMNX3TuycBPABycx7A9F1bHQR7kiQln6abjFbPrf5C/05qHM9M5E4PeTE59c7z8g6vHnx1Ioihb2AQl7BTA=="], "@vercel/nft": ["@vercel/nft@0.29.4", "", { "dependencies": { "@mapbox/node-pre-gyp": "^2.0.0", "@rollup/pluginutils": "^5.1.3", "acorn": "^8.6.0", "acorn-import-attributes": "^1.9.5", "async-sema": "^3.1.1", "bindings": "^1.4.0", "estree-walker": "2.0.2", "glob": "^10.4.5", "graceful-fs": "^4.2.9", "node-gyp-build": "^4.2.2", "picomatch": "^4.0.2", "resolve-from": "^5.0.0" }, "bin": { "nft": "out/cli.js" } }, "sha512-6lLqMNX3TuycBPABycx7A9F1bHQR7kiQln6abjFbPrf5C/05qHM9M5E4PeTE59c7z8g6vHnx1Ioihb2AQl7BTA=="],
"@vicons/material": ["@vicons/material@0.13.0", "", {}, "sha512-lKVxFNprM+CaBkUH3gt6VjIeiMsKQl2zARQMwTCZruQl2vRHzyeZiKeCflWS99CEfv2JzX/6y697smxlzyxcVw=="],
"@vitejs/plugin-vue": ["@vitejs/plugin-vue@6.0.1", "", { "dependencies": { "@rolldown/pluginutils": "1.0.0-beta.29" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", "vue": "^3.2.25" } }, "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw=="], "@vitejs/plugin-vue": ["@vitejs/plugin-vue@6.0.1", "", { "dependencies": { "@rolldown/pluginutils": "1.0.0-beta.29" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", "vue": "^3.2.25" } }, "sha512-+MaE752hU0wfPFJEUAIxqw18+20euHHdxVtMvbFcOEpjEyfqXH/5DCoTHiVJ0J29EhTJdoTkjEv5YBKU9dnoTw=="],
"@vitejs/plugin-vue-jsx": ["@vitejs/plugin-vue-jsx@5.0.1", "", { "dependencies": { "@babel/core": "^7.27.7", "@babel/plugin-transform-typescript": "^7.27.1", "@rolldown/pluginutils": "^1.0.0-beta.21", "@vue/babel-plugin-jsx": "^1.4.0" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", "vue": "^3.0.0" } }, "sha512-X7qmQMXbdDh+sfHUttXokPD0cjPkMFoae7SgbkF9vi3idGUKmxLcnU2Ug49FHwiKXebfzQRIm5yK3sfCJzNBbg=="], "@vitejs/plugin-vue-jsx": ["@vitejs/plugin-vue-jsx@5.0.1", "", { "dependencies": { "@babel/core": "^7.27.7", "@babel/plugin-transform-typescript": "^7.27.1", "@rolldown/pluginutils": "^1.0.0-beta.21", "@vue/babel-plugin-jsx": "^1.4.0" }, "peerDependencies": { "vite": "^5.0.0 || ^6.0.0 || ^7.0.0", "vue": "^3.0.0" } }, "sha512-X7qmQMXbdDh+sfHUttXokPD0cjPkMFoae7SgbkF9vi3idGUKmxLcnU2Ug49FHwiKXebfzQRIm5yK3sfCJzNBbg=="],

View File

@@ -26,5 +26,8 @@
"typed.js": "^2.1.0", "typed.js": "^2.1.0",
"vue": "^3.5.18", "vue": "^3.5.18",
"vue-router": "^4.5.1" "vue-router": "^4.5.1"
},
"devDependencies": {
"@vicons/material": "^0.13.0"
} }
} }