🎉 Initial Commit
This commit is contained in:
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
|
5
.prettierrc
Normal file
5
.prettierrc
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"trailingComma": "none",
|
||||||
|
"semi": false,
|
||||||
|
"singleQuote": false
|
||||||
|
}
|
75
README.md
Normal file
75
README.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# Nuxt Minimal Starter
|
||||||
|
|
||||||
|
Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Make sure to install 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 dev
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn dev
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Production
|
||||||
|
|
||||||
|
Build the application for production:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm build
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn build
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run build
|
||||||
|
```
|
||||||
|
|
||||||
|
Locally preview production build:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run preview
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm preview
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn preview
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run preview
|
||||||
|
```
|
||||||
|
|
||||||
|
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
|
10
app/app.vue
Normal file
10
app/app.vue
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
<template>
|
||||||
|
<nuxt-layout>
|
||||||
|
<nuxt-page />
|
||||||
|
</nuxt-layout>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import "@fontsource-variable/nunito"
|
||||||
|
import "@mdi/font/css/materialdesignicons.css"
|
||||||
|
</script>
|
22
app/composables/useCustomTheme.ts
Normal file
22
app/composables/useCustomTheme.ts
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
import { useDark, useToggle } from "@vueuse/core"
|
||||||
|
|
||||||
|
// composables/useCustomTheme.ts
|
||||||
|
export function useCustomTheme(): {
|
||||||
|
isDark: WritableComputedRef<boolean, boolean>
|
||||||
|
toggle: (value?: boolean | undefined) => boolean
|
||||||
|
} {
|
||||||
|
const { $vuetify } = useNuxtApp()
|
||||||
|
|
||||||
|
const isDark = useDark({
|
||||||
|
valueDark: "dark",
|
||||||
|
valueLight: "light",
|
||||||
|
initialValue: "light",
|
||||||
|
onChanged: (dark: boolean) => {
|
||||||
|
$vuetify.theme.global.name.value = dark ? "dark" : "light"
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
const toggle = useToggle(isDark)
|
||||||
|
|
||||||
|
return { isDark, toggle }
|
||||||
|
}
|
41
app/layouts/default.vue
Normal file
41
app/layouts/default.vue
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
<template>
|
||||||
|
<v-app :theme="isDark ? 'dark' : 'light'">
|
||||||
|
<v-app-bar flat>
|
||||||
|
<v-container class="mx-auto d-flex align-center justify-center">
|
||||||
|
<v-btn
|
||||||
|
v-for="link in links"
|
||||||
|
:key="link.title"
|
||||||
|
:text="link.title"
|
||||||
|
:to="link.href"
|
||||||
|
:prepend-icon="link.icon"
|
||||||
|
variant="text"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<v-spacer />
|
||||||
|
|
||||||
|
<v-responsive max-width="160">
|
||||||
|
<v-avatar class="me-4" color="grey-darken-1" size="32" />
|
||||||
|
</v-responsive>
|
||||||
|
</v-container>
|
||||||
|
</v-app-bar>
|
||||||
|
|
||||||
|
<v-main>
|
||||||
|
<slot />
|
||||||
|
</v-main>
|
||||||
|
</v-app>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts" setup>
|
||||||
|
import { useCustomTheme } from "~/composables/useCustomTheme"
|
||||||
|
import type { NavLink } from "~/types/navlink"
|
||||||
|
|
||||||
|
const { isDark } = useCustomTheme()
|
||||||
|
|
||||||
|
const links: NavLink[] = [
|
||||||
|
{
|
||||||
|
title: "Explore",
|
||||||
|
href: "/",
|
||||||
|
icon: "mdi-compass"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
</script>
|
5
app/pages/index.vue
Normal file
5
app/pages/index.vue
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
<template>
|
||||||
|
<v-container>
|
||||||
|
<h1>Welcome!</h1>
|
||||||
|
</v-container>
|
||||||
|
</template>
|
5
app/types/navlink.ts
Normal file
5
app/types/navlink.ts
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
export interface NavLink {
|
||||||
|
title: string
|
||||||
|
href: string
|
||||||
|
icon: string
|
||||||
|
}
|
11
eslint.config.mjs
Normal file
11
eslint.config.mjs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
// @ts-check
|
||||||
|
import withNuxt from './.nuxt/eslint.config.mjs'
|
||||||
|
|
||||||
|
export default withNuxt(
|
||||||
|
// Your custom configs here
|
||||||
|
{
|
||||||
|
rules: {
|
||||||
|
'vue/multi-word-component-names': 'off'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
16
nuxt.config.ts
Normal file
16
nuxt.config.ts
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
|
export default defineNuxtConfig({
|
||||||
|
compatibilityDate: "2025-07-15",
|
||||||
|
devtools: { enabled: true },
|
||||||
|
modules: [
|
||||||
|
"@nuxt/image",
|
||||||
|
"@nuxt/eslint",
|
||||||
|
"@nuxtjs/tailwindcss",
|
||||||
|
"@pinia/nuxt",
|
||||||
|
"vuetify-nuxt-module",
|
||||||
|
"@nuxtjs/i18n"
|
||||||
|
],
|
||||||
|
features: {
|
||||||
|
inlineStyles: false
|
||||||
|
}
|
||||||
|
})
|
35
package.json
Normal file
35
package.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"name": "nuxt-app",
|
||||||
|
"type": "module",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"build": "nuxt build",
|
||||||
|
"dev": "nuxt dev",
|
||||||
|
"generate": "nuxt generate",
|
||||||
|
"preview": "nuxt preview",
|
||||||
|
"postinstall": "nuxt prepare"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@date-io/luxon": "^3.2.0",
|
||||||
|
"@fingerprintjs/fingerprintjs": "^4.6.2",
|
||||||
|
"@fontsource-variable/nunito": "^5.2.7",
|
||||||
|
"@nuxt/eslint": "1.9.0",
|
||||||
|
"@nuxt/image": "1.11.0",
|
||||||
|
"@nuxtjs/i18n": "10.1.0",
|
||||||
|
"@nuxtjs/tailwindcss": "6.14.0",
|
||||||
|
"@pinia/nuxt": "0.11.2",
|
||||||
|
"@vueuse/core": "^13.9.0",
|
||||||
|
"cfturnstile-vue3": "^2.0.0",
|
||||||
|
"eslint": "^9.0.0",
|
||||||
|
"luxon": "^3.7.2",
|
||||||
|
"marked": "^16.3.0",
|
||||||
|
"nuxt": "^4.1.2",
|
||||||
|
"pinia": "^3.0.3",
|
||||||
|
"vue": "^3.5.21",
|
||||||
|
"vue-router": "^4.5.1",
|
||||||
|
"vuetify-nuxt-module": "0.18.7"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@mdi/font": "^7.4.47"
|
||||||
|
}
|
||||||
|
}
|
2
public/robots.txt
Normal file
2
public/robots.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
User-Agent: *
|
||||||
|
Disallow:
|
18
tsconfig.json
Normal file
18
tsconfig.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
// https://nuxt.com/docs/guide/concepts/typescript
|
||||||
|
"files": [],
|
||||||
|
"references": [
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.app.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.server.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.shared.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.node.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
12
vuetify.config.ts
Normal file
12
vuetify.config.ts
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
import { defineVuetifyConfiguration } from "vuetify-nuxt-module/custom-configuration";
|
||||||
|
import { md3 } from "vuetify/blueprints";
|
||||||
|
|
||||||
|
export default defineVuetifyConfiguration({
|
||||||
|
blueprint: md3,
|
||||||
|
icons: {
|
||||||
|
defaultSet: 'mdi'
|
||||||
|
},
|
||||||
|
date: {
|
||||||
|
adapter: 'luxon'
|
||||||
|
}
|
||||||
|
});
|
Reference in New Issue
Block a user