172 lines
4.5 KiB
TypeScript
172 lines
4.5 KiB
TypeScript
// https://nuxt.com/docs/api/configuration/nuxt-config
|
|
import vuePlugin from 'rollup-plugin-vue'
|
|
|
|
export default defineNuxtConfig({
|
|
compatibilityDate: '2024-04-03',
|
|
modules: [
|
|
'@nuxtjs/color-mode',
|
|
'nuxt-security',
|
|
'@nuxtjs/tailwindcss',
|
|
'@vueuse/nuxt',
|
|
'radix-vue/nuxt',
|
|
'@nuxtjs/sitemap',
|
|
],
|
|
tailwindcss: {
|
|
viewer: false,
|
|
config: {
|
|
theme: {
|
|
extend: {
|
|
boxShadow: {
|
|
raw: '0 0 0 2px var(--tw-shadow-color)'
|
|
},
|
|
keyframes: {
|
|
slideDownAndFade: {
|
|
from: { opacity: '0', transform: 'translateY(-2px)' },
|
|
to: { opacity: '1', transform: 'translateY(0)' },
|
|
},
|
|
slideLeftAndFade: {
|
|
from: { opacity: '0', transform: 'translateX(2px)' },
|
|
to: { opacity: '1', transform: 'translateX(0)' },
|
|
},
|
|
slideUpAndFade: {
|
|
from: { opacity: '0', transform: 'translateY(2px)' },
|
|
to: { opacity: '1', transform: 'translateY(0)' },
|
|
},
|
|
slideRightAndFade: {
|
|
from: { opacity: '0', transform: 'translateX(-2px)' },
|
|
to: { opacity: '1', transform: 'translateX(0)' },
|
|
},
|
|
contentShow: {
|
|
from: { opacity: '0', transform: 'translate(-50%, -48%) scale(0.96)' },
|
|
to: { opacity: '1', transform: 'translate(-50%, -50%) scale(1)' },
|
|
},
|
|
},
|
|
animation: {
|
|
slideDownAndFade: 'slideDownAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
|
|
slideLeftAndFade: 'slideLeftAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
|
|
slideUpAndFade: 'slideUpAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
|
|
slideRightAndFade: 'slideRightAndFade 400ms cubic-bezier(0.16, 1, 0.3, 1)',
|
|
contentShow: 'contentShow 150ms cubic-bezier(0.16, 1, 0.3, 1)',
|
|
},
|
|
},
|
|
colors: {
|
|
transparent: 'transparent',
|
|
current: 'currentColor',
|
|
light: {
|
|
red: '#e93147',
|
|
redBack: '#F9C7CD',
|
|
orange: '#ec7500',
|
|
yellow: '#e0ac00',
|
|
green: '#08b94e',
|
|
greenBack: '#BCECCF',
|
|
cyan: '#00bfbc',
|
|
blue: '#086ddd',
|
|
purple: '#7852ee',
|
|
pink: '#d53984',
|
|
0: "#ffffff",
|
|
5: "#fcfcfc",
|
|
10: "#fafafa",
|
|
20: "#f7f7f7",
|
|
25: "#e4e4e4",
|
|
30: "#dfdfdf",
|
|
35: "#d2d2d2",
|
|
40: "#bdbdbd",
|
|
50: "#ababab",
|
|
60: "#707070",
|
|
70: "#5c5c5c",
|
|
100: "#202020",
|
|
},
|
|
dark: {
|
|
red: '#fb464c',
|
|
redBack: '#5A292B',
|
|
orange: '#e9973f',
|
|
yellow: '#e0de71',
|
|
green: '#44cf6e',
|
|
greenBack: '#284E34',
|
|
cyan: '#53dfdd',
|
|
blue: '#027aff',
|
|
purple: '#a882ff',
|
|
pink: '#fa99cd',
|
|
0: '#1e1e1e',
|
|
5: '#212121',
|
|
10: '#242424',
|
|
20: '#262626',
|
|
25: '#2a2a2a',
|
|
30: '#363636',
|
|
35: '#3f3f3f',
|
|
40: '#555555',
|
|
50: '#666666',
|
|
60: '#999999',
|
|
70: '#b3b3b3',
|
|
100: '#dadada',
|
|
},
|
|
accent: {
|
|
purple: '#8a5cf5',
|
|
blue: '#53aaf5',
|
|
},
|
|
}
|
|
}
|
|
}
|
|
},
|
|
app: {
|
|
pageTransition: false,
|
|
layoutTransition: false
|
|
},
|
|
components: [
|
|
{
|
|
path: '~/components',
|
|
pathPrefix: false,
|
|
},
|
|
],
|
|
nitro: {
|
|
preset: 'bun',
|
|
experimental: {
|
|
tasks: true,
|
|
},
|
|
rollupConfig: {
|
|
external: ['bun'],
|
|
plugins: [
|
|
vuePlugin({ include: /\.vue$/, target: 'node' })
|
|
]
|
|
},
|
|
},
|
|
runtimeConfig: {
|
|
session: {
|
|
password: '699c46bd-9aaa-4364-ad01-510ee4fe7013'
|
|
},
|
|
database: 'db.sqlite',
|
|
mail: {
|
|
host: '',
|
|
port: '',
|
|
user: '',
|
|
passwd: '',
|
|
dkim: '',
|
|
}
|
|
},
|
|
security: {
|
|
rateLimiter: false,
|
|
headers: {
|
|
contentSecurityPolicy: {
|
|
"img-src": "'self' data: blob:"
|
|
}
|
|
},
|
|
xssValidator: false,
|
|
},
|
|
sitemap: {
|
|
exclude: ['/admin/**', '/explore/edit', '/user/mailvalidated', '/user/changing-password', '/user/reset-password'],
|
|
sources: ['/api/__sitemap__/urls']
|
|
},
|
|
experimental: {
|
|
componentIslands: {
|
|
selectiveClient: true,
|
|
},
|
|
defaults: {
|
|
nuxtLink: {
|
|
prefetchOn: {
|
|
interaction: false,
|
|
visibility: false,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}) |