| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import { createVuetify } from 'vuetify'
- import 'vuetify/styles'
- import { aliases, fa } from 'vuetify/iconsets/fa'
- import '@fortawesome/fontawesome-free/css/all.css'
- import { en } from 'vuetify/locale'
- import { defineNuxtPlugin } from '#app'
- interface Theme {
- dark: boolean,
- colors: {
- 'background': string,
- 'on-background': string,
- 'surface': string,
- 'on-surface': string,
- 'primary': string,
- 'on-primary': string,
- }
- }
- export const lightTheme: Theme = {
- dark: false,
- colors: {
- 'background': '#ffffff',
- 'on-background': '#333333',
- 'on-background--clickable': '#404040',
- 'surface': '#f9f9f9',
- 'on-surface': '#4d4d4d',
- 'primary': '#e6e6e6',
- 'on-primary': '#1a1a1a',
- 'on-primary--clickable': '#4d4d4d',
- }
- }
- export const darkTheme: Theme = {
- dark: true,
- colors: {
- 'background': '#1a1a1a',
- 'on-background': '#e6e6e6',
- 'on-background--clickable': '#e6e6e6',
- 'surface': '#262626',
- 'on-surface': '#ffffff',
- 'primary': '#13263a',
- 'on-primary': '#e6e6e6',
- 'on-primary-alt--clickable': '#ffffff',
- }
- }
- export default defineNuxtPlugin((nuxtApp) => {
- const vuetify = createVuetify({
- ssr: true,
- locale: {
- locale: 'en',
- messages: { en },
- },
- theme: {
- defaultTheme: 'dark',
- themes: {
- light: lightTheme,
- dark: darkTheme
- },
- },
- icons: {
- defaultSet: 'fa',
- aliases,
- sets: {
- fa,
- },
- },
- })
- nuxtApp.vueApp.use(vuetify)
- })
|