🎉 Initial Commit
This commit is contained in:
commit
4bd65aee9f
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# Nuxt dev/build outputs
|
||||||
|
.output
|
||||||
|
.data
|
||||||
|
.nuxt
|
||||||
|
.nitro
|
||||||
|
.cache
|
||||||
|
dist
|
||||||
|
|
||||||
|
# Node dependencies
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
.DS_Store
|
||||||
|
.fleet
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Local env files
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
75
README.md
Normal file
75
README.md
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
# Nuxt 3 Minimal Starter
|
||||||
|
|
||||||
|
Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Make sure to install the dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm install
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn install
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development Server
|
||||||
|
|
||||||
|
Start the development server on `http://localhost:3000`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run dev
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm run dev
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn dev
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Production
|
||||||
|
|
||||||
|
Build the application for production:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm run build
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn build
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run build
|
||||||
|
```
|
||||||
|
|
||||||
|
Locally preview production build:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run preview
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm run preview
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn preview
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run preview
|
||||||
|
```
|
||||||
|
|
||||||
|
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
|
8
app.vue
Normal file
8
app.vue
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
<template>
|
||||||
|
<v-app>
|
||||||
|
<nuxt-layout>
|
||||||
|
<nuxt-loading-indicator />
|
||||||
|
<nuxt-page />
|
||||||
|
</nuxt-layout>
|
||||||
|
</v-app>
|
||||||
|
</template>
|
BIN
assets/products/feature.jpg
Normal file
BIN
assets/products/feature.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.0 MiB |
17
assets/products/solar.svg
Executable file
17
assets/products/solar.svg
Executable file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 29 KiB |
6
content/products/solarpass.md
Normal file
6
content/products/solarpass.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
icon: "https://id.solsynth.dev/favicon.svg"
|
||||||
|
name: "Solarpass"
|
||||||
|
code: "Hydrogen.Solarpass"
|
||||||
|
description: "The unified identity service for Solar Network."
|
||||||
|
---
|
26
layouts/default.vue
Normal file
26
layouts/default.vue
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
<template>
|
||||||
|
<v-app-bar flat scroll-behavior="elevated">
|
||||||
|
<v-container class="mx-auto d-flex align-center justify-center">
|
||||||
|
<v-avatar
|
||||||
|
class="me-4"
|
||||||
|
color="transparent"
|
||||||
|
size="32"
|
||||||
|
image="/favicon.svg"
|
||||||
|
></v-avatar>
|
||||||
|
|
||||||
|
<nuxt-link v-for="link in navbars" :to="link.to">
|
||||||
|
<v-btn variant="text">{{ link.label }}</v-btn>
|
||||||
|
</nuxt-link>
|
||||||
|
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
</v-container>
|
||||||
|
</v-app-bar>
|
||||||
|
|
||||||
|
<v-main class="bg-grey-lighten-3 min-h-[calc(100vh - 64px)]">
|
||||||
|
<slot />
|
||||||
|
</v-main>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
const navbars = [{ label: "Home", to: "/" }];
|
||||||
|
</script>
|
42
nuxt.config.ts
Normal file
42
nuxt.config.ts
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import vuetify, { transformAssetUrls } from "vite-plugin-vuetify";
|
||||||
|
|
||||||
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
|
export default defineNuxtConfig({
|
||||||
|
devtools: { enabled: true },
|
||||||
|
|
||||||
|
app: {
|
||||||
|
head: {
|
||||||
|
title: "Solsynth",
|
||||||
|
meta: [
|
||||||
|
{
|
||||||
|
name: "description",
|
||||||
|
content:
|
||||||
|
"Solsynth LLC official website. We build amazing, wonderful, open-source software.",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
link: [{ rel: "icon", type: "image/xml+svg", href: "/favicon.svg" }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
content: {},
|
||||||
|
|
||||||
|
build: {
|
||||||
|
transpile: ["vuetify"],
|
||||||
|
},
|
||||||
|
modules: [
|
||||||
|
"@unocss/nuxt",
|
||||||
|
"@nuxt/content",
|
||||||
|
(_options, nuxt) => {
|
||||||
|
nuxt.hooks.hook("vite:extendConfig", (config) => {
|
||||||
|
// @ts-expect-error
|
||||||
|
config.plugins.push(vuetify({ autoImport: true }));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
],
|
||||||
|
vite: {
|
||||||
|
vue: {
|
||||||
|
template: {
|
||||||
|
transformAssetUrls,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
26
package.json
Normal file
26
package.json
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"name": "nuxt-app",
|
||||||
|
"private": true,
|
||||||
|
"type": "module",
|
||||||
|
"scripts": {
|
||||||
|
"build": "nuxt build",
|
||||||
|
"dev": "nuxt dev",
|
||||||
|
"generate": "nuxt generate",
|
||||||
|
"preview": "nuxt preview",
|
||||||
|
"postinstall": "nuxt prepare"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@fontsource/roboto": "^5.0.12",
|
||||||
|
"@mdi/font": "^7.4.47",
|
||||||
|
"@nuxt/content": "^2.12.1",
|
||||||
|
"nuxt": "^3.10.3",
|
||||||
|
"vue": "^3.4.21",
|
||||||
|
"vue-router": "^4.3.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@unocss/nuxt": "^0.58.6",
|
||||||
|
"@unocss/reset": "^0.58.6",
|
||||||
|
"vite-plugin-vuetify": "^2.0.3",
|
||||||
|
"vuetify": "^3.5.9"
|
||||||
|
}
|
||||||
|
}
|
132
pages/index.vue
Normal file
132
pages/index.vue
Normal file
@ -0,0 +1,132 @@
|
|||||||
|
<template>
|
||||||
|
<v-container>
|
||||||
|
<v-row class="h-fullpage" align-content="center" id="landing">
|
||||||
|
<v-col :xs="12" :sm="6" class="max-md:text-center">
|
||||||
|
<img
|
||||||
|
src="/assets/products/solar.svg"
|
||||||
|
class="w-[180px] h-[192px] max-md:mx-auto"
|
||||||
|
/>
|
||||||
|
<h1 class="text-6xl font-bold mt-8">
|
||||||
|
<span class="text-primary">Internet.</span> <br />
|
||||||
|
<span>Redefined.</span>
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
<p class="text-lg mt-3">This is, the Solar Network.</p>
|
||||||
|
|
||||||
|
<div class="mt-12 w-full flex max-md:justify-center">
|
||||||
|
<v-btn
|
||||||
|
append-icon="mdi-magnify"
|
||||||
|
variant="tonal"
|
||||||
|
size="large"
|
||||||
|
href="#about"
|
||||||
|
>
|
||||||
|
Explore more
|
||||||
|
</v-btn>
|
||||||
|
</div>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
:xs="12"
|
||||||
|
:sm="6"
|
||||||
|
class="flex items-center max-md:justify-center md:justify-end"
|
||||||
|
>
|
||||||
|
<v-card class="w-full">
|
||||||
|
<img src="/assets/products/feature.jpg" class="object-cover" />
|
||||||
|
</v-card>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
|
||||||
|
<v-row class="h-fullpage" align-content="center" id="about">
|
||||||
|
<v-col :xs="12" :sm="6" class="max-md:text-center">
|
||||||
|
<v-icon
|
||||||
|
icon="mdi-information-slab-symbol"
|
||||||
|
size="48"
|
||||||
|
color="grey-darken-3"
|
||||||
|
class="mb-3 mx-[-16px]"
|
||||||
|
/>
|
||||||
|
<h1 class="text-2xl font-bold">About us</h1>
|
||||||
|
<p>
|
||||||
|
We are a group of developers who are love open-source. Founded in
|
||||||
|
2019. We've been building open-source software that people love ever
|
||||||
|
since. For us, "By open-source, for open-source" is not only a
|
||||||
|
principle, but also the motto of our faith.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div class="mt-3 w-full flex max-md:justify-center">
|
||||||
|
<v-btn
|
||||||
|
class="mx-[-16px]"
|
||||||
|
append-icon="mdi-shape"
|
||||||
|
variant="text"
|
||||||
|
href="#products"
|
||||||
|
>
|
||||||
|
Discover products
|
||||||
|
</v-btn>
|
||||||
|
</div>
|
||||||
|
</v-col>
|
||||||
|
|
||||||
|
<v-col
|
||||||
|
:xs="12"
|
||||||
|
:sm="6"
|
||||||
|
class="flex flex-col gap-2 max-md:items-center md:items-end"
|
||||||
|
>
|
||||||
|
<v-card hover class="pa-5">
|
||||||
|
<template #text>
|
||||||
|
<img src="/favicon.svg" width="128" height="128" />
|
||||||
|
</template>
|
||||||
|
</v-card>
|
||||||
|
<p class="uppercase caption">Crystal Lotus</p>
|
||||||
|
<p class="text-sm opacity-80 mt-[-8px] md:text-right">
|
||||||
|
A crystal flower born in GoatLand. <br />
|
||||||
|
Home flower of Solsynth. <br />
|
||||||
|
Mr. Sheep felt homesick every time he saw it.
|
||||||
|
</p>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
|
||||||
|
<v-row
|
||||||
|
class="h-fullpage text-center"
|
||||||
|
align-content="center"
|
||||||
|
justify="center"
|
||||||
|
id="products"
|
||||||
|
>
|
||||||
|
<v-col :cols="12">
|
||||||
|
<h2 class="text-2xl font-bold">Products</h2>
|
||||||
|
<p>Let's see what we got.</p>
|
||||||
|
|
||||||
|
<div class="mt-4 flex justify-center gap-2">
|
||||||
|
<v-tooltip v-for="item in products" location="top">
|
||||||
|
<template #activator="{ props }">
|
||||||
|
<v-card v-bind="props" hover class="w-24 h-24">
|
||||||
|
<div class="h-full w-full flex justify-center items-center">
|
||||||
|
<img :src="item.icon" width="64" height="64" class="block" />
|
||||||
|
</div>
|
||||||
|
</v-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<p class="font-bold">{{ item.title }}</p>
|
||||||
|
<p class="font-mono text-xs">{{ item.code }}</p>
|
||||||
|
<p class="mt-2">{{ item.description }}</p>
|
||||||
|
</div>
|
||||||
|
</v-tooltip>
|
||||||
|
</div>
|
||||||
|
</v-col>
|
||||||
|
</v-row>
|
||||||
|
</v-container>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup lang="ts">
|
||||||
|
const { data: products } = await useAsyncData("products", () =>
|
||||||
|
queryContent("products").limit(5).find()
|
||||||
|
);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.h-fullpage {
|
||||||
|
height: calc(100vh - 64px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.caption {
|
||||||
|
letter-spacing: 2px;
|
||||||
|
}
|
||||||
|
</style>
|
4
plugins/unocss.ts
Normal file
4
plugins/unocss.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
import "@unocss/reset/tailwind.css"
|
||||||
|
import "@fontsource/roboto/latin.css"
|
||||||
|
|
||||||
|
export default defineNuxtPlugin(() => {})
|
36
plugins/vuetify.ts
Normal file
36
plugins/vuetify.ts
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import "@mdi/font/css/materialdesignicons.min.css";
|
||||||
|
|
||||||
|
import "vuetify/styles";
|
||||||
|
import { createVuetify } from "vuetify";
|
||||||
|
import { md3 } from "vuetify/blueprints";
|
||||||
|
import * as components from "vuetify/components";
|
||||||
|
import * as labsComponents from "vuetify/labs/components";
|
||||||
|
import * as directives from "vuetify/directives";
|
||||||
|
|
||||||
|
export default defineNuxtPlugin((app) => {
|
||||||
|
const vuetify = createVuetify({
|
||||||
|
directives,
|
||||||
|
components: {
|
||||||
|
...components,
|
||||||
|
...labsComponents,
|
||||||
|
},
|
||||||
|
blueprint: md3,
|
||||||
|
theme: {
|
||||||
|
defaultTheme: "original",
|
||||||
|
themes: {
|
||||||
|
original: {
|
||||||
|
colors: {
|
||||||
|
primary: "#4a5099",
|
||||||
|
secondary: "#2196f3",
|
||||||
|
accent: "#009688",
|
||||||
|
error: "#f44336",
|
||||||
|
warning: "#ff9800",
|
||||||
|
info: "#03a9f4",
|
||||||
|
success: "#4caf50",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
app.vueApp.use(vuetify);
|
||||||
|
});
|
12
public/favicon.svg
Executable file
12
public/favicon.svg
Executable file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 28 KiB |
3
server/tsconfig.json
Normal file
3
server/tsconfig.json
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"extends": "../.nuxt/tsconfig.server.json"
|
||||||
|
}
|
4
tsconfig.json
Normal file
4
tsconfig.json
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
// https://nuxt.com/docs/guide/concepts/typescript
|
||||||
|
"extends": "./.nuxt/tsconfig.json"
|
||||||
|
}
|
5
uno.config.ts
Normal file
5
uno.config.ts
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
import { defineConfig, presetAttributify, presetTypography, presetUno } from "unocss";
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
presets: [presetAttributify(), presetTypography(), presetUno({ preflight: false })]
|
||||||
|
})
|
Loading…
x
Reference in New Issue
Block a user