|
|
|
import { defineConfig } from 'windicss/helpers'
|
|
|
|
import formsPlugin from 'windicss/plugin/forms'
|
|
|
|
import typographyPlugin from 'windicss/plugin/typography'
|
|
|
|
import aspectRatioPlugin from 'windicss/plugin/aspect-ratio'
|
|
|
|
import lineClampPlugin from 'windicss/plugin/line-clamp'
|
|
|
|
import windiColors from 'windicss/colors'
|
|
|
|
// @ts-expect-error no types for plugin-scrollbar
|
|
|
|
import scrollbar from '@windicss/plugin-scrollbar'
|
|
|
|
// @ts-expect-error no types for plugin-animation
|
|
|
|
import animations from '@windicss/plugin-animations'
|
|
|
|
// @ts-expect-error no types for plugin-question-mark
|
|
|
|
import questionMark from '@windicss/plugin-question-mark'
|
|
|
|
|
|
|
|
import { theme as colors, themeColors, themeV2Colors } from './utils/colorsUtils'
|
|
|
|
|
|
|
|
export default defineConfig({
|
|
|
|
extract: {
|
|
|
|
include: ['**/*.{vue,html,jsx,tsx,css,scss}'],
|
|
|
|
exclude: ['node_modules', '.git'],
|
|
|
|
},
|
|
|
|
|
|
|
|
darkMode: 'class',
|
|
|
|
|
|
|
|
plugins: [
|
|
|
|
scrollbar,
|
|
|
|
animations,
|
|
|
|
questionMark,
|
|
|
|
formsPlugin,
|
|
|
|
typographyPlugin({
|
|
|
|
dark: true,
|
|
|
|
}),
|
|
|
|
aspectRatioPlugin,
|
|
|
|
lineClampPlugin,
|
|
|
|
],
|
|
|
|
|
|
|
|
preflight: {
|
|
|
|
alias: {
|
|
|
|
'nuxt-link': 'a',
|
|
|
|
'nuxt-img': 'img',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
shortcuts: {
|
|
|
|
'color-transition': 'transition-color duration-100 ease-in',
|
|
|
|
'scrollbar-thin-primary': 'scrollbar scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-primary scrollbar-track-white',
|
|
|
|
'scrollbar-thin-dull': 'scrollbar scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-gray-300 scrollbar-track-white',
|
|
|
|
},
|
|
|
|
|
|
|
|
theme: {
|
|
|
|
fontFamily: {
|
|
|
|
sans: ['Vazirmatn', 'sans-serif'],
|
|
|
|
serif: ['Vazirmatn', 'serif'],
|
|
|
|
mono: ['Roboto', 'mono'],
|
|
|
|
},
|
|
|
|
extend: {
|
|
|
|
textColor: {
|
|
|
|
primary: 'rgba(var(--color-primary), var(--tw-text-opacity))',
|
|
|
|
accent: 'rgba(var(--color-accent), var(--tw-text-opacity))',
|
|
|
|
},
|
|
|
|
borderColor: {
|
|
|
|
primary: 'rgba(var(--color-primary), var(--tw-border-opacity))',
|
|
|
|
accent: 'rgba(var(--color-accent), var(--tw-border-opacity))',
|
|
|
|
},
|
|
|
|
backgroundColor: {
|
|
|
|
primary: 'rgba(var(--color-primary), var(--tw-bg-opacity))',
|
|
|
|
accent: 'rgba(var(--color-accent), var(--tw-bg-opacity))',
|
|
|
|
},
|
|
|
|
colors: {
|
|
|
|
...windiColors,
|
|
|
|
...themeColors,
|
|
|
|
...themeV2Colors,
|
|
|
|
primary: 'rgba(var(--color-primary), var(--tw-bg-opacity))',
|
|
|
|
accent: 'rgba(var(--color-accent), var(--tw-bg-opacity))',
|
|
|
|
dark: colors.dark,
|
|
|
|
light: colors.light,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
})
|