import minifyTheme from 'minify-css-string';
export default {
/*
** Nuxt target
** See https://nuxtjs.org/api/configuration-target
*/
target: 'server',
/*
** Loading configuration
** See https://nuxtjs.org/api/configuration-loading
*/
loading: false,
/*
** Headers of the page
** See https://nuxtjs.org/api/configuration-head
*/
head: {
titleTemplate: '%s - Hello',
title: 'Hello',
htmlAttrs: { lang: 'en' },
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
],
link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }],
},
/*
** Global CSS
*/
css: [],
/*
** Plugins to load before mounting the App
** https://nuxtjs.org/guide/plugins
*/
plugins: ['~/plugins/vee-validate.ts'],
/*
** Auto import components
** See https://nuxtjs.org/api/configuration-components
*/
components: [{ path: '~/components', prefix: 's' }],
/*
** Nuxt.js dev-modules
*/
buildModules: ['@nuxt/typescript-build', '@nuxt/image', '@nuxtjs/vuetify', 'nuxt-windicss'],
/*
** Nuxt.js modules
*/
modules: [
// Doc: https://axios.nuxtjs.org/usage
'@nuxtjs/axios',
],
/*
** Public Runtime Config
*/
publicRuntimeConfig: {
},
/*
** Private Runtime Config
*/
privateRuntimeConfig: {},
/*
** Axios module configuration
** See https://axios.nuxtjs.org/options
*/
axios: {
baseURL: process.env.API_ENDPOINT_URL,
},
/*
** Router configuration
*/
router: {
},
/*
** Vuetify configuration
** See https://github.com/nuxt-community/vuetify-module
*/
vuetify: {
customVariables: ['~/assets/scss/vuetify.scss'],
treeShake: true,
defaultAssets: {
icons: false,
},
theme: {
themes: {
light: {
primary: {
base: '#6415ff',
100: '#e5d9ff',
200: '#c5aaff',
300: '#8344ff',
400: '#742cff',
500: '#6415ff',
600: '#5a13e6',
700: '#5011cc',
800: '#460fb3',
900: '#3c0d99',
lighten4: '#e5d9ff',
lighten3: '#c5aaff',
lighten2: '#8344ff',
lighten1: '#742cff',
darken1: '#5a13e6',
darken2: '#5011cc',
darken3: '#460fb3',
darken4: '#3c0d99',
},
secondary: {
base: '#243E63',
100: '#7c8ba1',
200: '#667892',
300: '#506582',
400: '#3a5173',
500: '#243E63',
600: '#203859',
700: '#1d324f',
800: '#192b45',
900: '#16253b',
lighten4: '#7c8ba1',
lighten3: '#667892',
lighten2: '#506582',
lighten1: '#3a5173',
darken1: '#203859',
darken2: '#1d324f',
darken3: '#192b45',
darken4: '#16253b',
},
error: {
base: '#f56565',
100: '#fff5f5',
200: '#fed7d7',
300: '#feb2b2',
400: '#fc8181',
500: '#f56565',
600: '#e53e3e',
700: '#c53030',
800: '#9b2c2c',
900: '#742a2a',
lighten4: '#fff5f5',
lighten3: '#fed7d7',
lighten2: '#feb2b2',
lighten1: '#fc8181',
darken1: '#e53e3e',
darken2: '#c53030',
darken3: '#9b2c2c',
darken4: '#742a2a',
},
info: {
base: '#4299e1',
100: '#ebf8ff',
200: '#bee3f8',
300: '#90cdf4',
400: '#63b3ed',
500: '#4299e1',
600: '#3182ce',
700: '#2b6cb0',
800: '#2c5282',
900: '#2a4365',
lighten4: '#ebf8ff',
lighten3: '#bee3f8',
lighten2: '#90cdf4',
lighten1: '#63b3ed',
darken1: '#3182ce',
darken2: '#2b6cb0',
darken3: '#2c5282',
darken4: '#2a4365',
},
success: {
base: '#48bb78',
100: '#f0fff4',
200: '#c6f6d5',
300: '#9ae6b4',
400: '#68d391',
500: '#48bb78',
600: '#38a169',
700: '#2f855a',
800: '#276749',
900: '#22543d',
lighten4: '#f0fff4',
lighten3: '#c6f6d5',
lighten2: '#9ae6b4',
lighten1: '#68d391',
darken1: '#38a169',
darken2: '#2f855a',
darken3: '#276749',
darken4: '#22543d',
},
warning: {
base: '#ed8936',
100: '#fffaf0',
200: '#feebc8',
300: '#fbd38d',
400: '#f6ad55',
500: '#ed8936',
600: '#dd6b20',
700: '#c05621',
800: '#9c4221',
900: '#7b341e',
lighten4: '#fffaf0',
lighten3: '#feebc8',
lighten2: '#fbd38d',
lighten1: '#f6ad55',
darken1: '#dd6b20',
darken2: '#c05621',
darken3: '#9c4221',
darken4: '#7b341e',
},
},
},
options: {
minifyTheme,
},
},
},
/*
** Build configuration
** See https://nuxtjs.org/api/configuration-build/
*/
build: {
transpile: ['vee-validate/dist/rules'],
analyze: false,
extractCSS: {
ignoreOrder: true,
},
optimizeCSS: true,
html: {
minify: {
collapseBooleanAttributes: true,
decodeEntities: true,
minifyCSS: true,
minifyJS: true,
processConditionalComments: true,
removeEmptyAttributes: true,
removeRedundantAttributes: true,
trimCustomFragments: true,
useShortDoctype: true,
preserveLineBreaks: false,
collapseWhitespace: true,
},
},
},
};
const typography = require('windicss/plugin/typography');
const forms = require('windicss/plugin/forms');
const aspectRatio = require('windicss/plugin/aspect-ratio');
const lineClamp = require('windicss/plugin/line-clamp');
module.exports = {
prefix: 'tw-',
darkMode: 'class',
theme: {
fontFamily: {
sans: ['Roboto', 'sans-serif'],
},
colors: {
transparent: 'transparent',
black: '#000',
white: '#fff',
primary: {
100: '#e5d9ff',
200: '#c5aaff',
300: '#8344ff',
400: '#742cff',
500: '#6415FF',
600: '#5a13e6',
700: '#5011cc',
800: '#460fb3',
900: '#3c0d99',
},
secondary: {
100: '#7c8ba1',
200: '#667892',
300: '#506582',
400: '#3a5173',
500: '#243E63',
600: '#203859',
700: '#1d324f',
800: '#192b45',
900: '#16253b',
},
gray: {
100: '#f7fafc',
200: '#edf2f7',
300: '#e2e8f0',
400: '#cbd5e0',
500: '#a0aec0',
600: '#718096',
700: '#4a5568',
800: '#2d3748',
900: '#1a202c',
},
red: {
100: '#fff5f5',
200: '#fed7d7',
300: '#feb2b2',
400: '#fc8181',
500: '#f56565',
600: '#e53e3e',
700: '#c53030',
800: '#9b2c2c',
900: '#742a2a',
},
orange: {
100: '#fffaf0',
200: '#feebc8',
300: '#fbd38d',
400: '#f6ad55',
500: '#ed8936',
600: '#dd6b20',
700: '#c05621',
800: '#9c4221',
900: '#7b341e',
},
yellow: {
100: '#fffff0',
200: '#fefcbf',
300: '#faf089',
400: '#f6e05e',
500: '#ecc94b',
600: '#d69e2e',
700: '#b7791f',
800: '#975a16',
900: '#744210',
},
green: {
100: '#f0fff4',
200: '#c6f6d5',
300: '#9ae6b4',
400: '#68d391',
500: '#48bb78',
600: '#38a169',
700: '#2f855a',
800: '#276749',
900: '#22543d',
},
teal: {
100: '#e6fffa',
200: '#b2f5ea',
300: '#81e6d9',
400: '#4fd1c5',
500: '#38b2ac',
600: '#319795',
700: '#2c7a7b',
800: '#285e61',
900: '#234e52',
},
blue: {
100: '#ebf8ff',
200: '#bee3f8',
300: '#90cdf4',
400: '#63b3ed',
500: '#4299e1',
600: '#3182ce',
700: '#2b6cb0',
800: '#2c5282',
900: '#2a4365',
},
indigo: {
100: '#ebf4ff',
200: '#c3dafe',
300: '#a3bffa',
400: '#7f9cf5',
500: '#667eea',
600: '#5a67d8',
700: '#4c51bf',
800: '#434190',
900: '#3c366b',
},
purple: {
100: '#faf5ff',
200: '#e9d8fd',
300: '#d6bcfa',
400: '#b794f4',
500: '#9f7aea',
600: '#805ad5',
700: '#6b46c1',
800: '#553c9a',
900: '#44337a',
},
pink: {
100: '#fff5f7',
200: '#fed7e2',
300: '#fbb6ce',
400: '#f687b3',
500: '#ed64a6',
600: '#d53f8c',
700: '#b83280',
800: '#97266d',
900: '#702459',
},
},
},
variants: {},
plugins: [typography, forms, aspectRatio, lineClamp],
};