干燥机配套车间生产管理系统/云平台前端
bsw215583320
2024-08-05 ef93984c4aac13d88f3dbbe2342f28256549d4a2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
import { defineConfig } from 'vite-plugin-windicss'
import { primaryColor } from './build/config/themeConfig'
 
export default defineConfig({
    darkMode: 'class',
    plugins: [createEnterPlugin()],
    theme: {
        extend: {
            zIndex: {
                '-1': '-1',
            },
            colors: {
                primary: primaryColor,
            },
            screens: {
                sm: '576px',
                md: '768px',
                lg: '992px',
                xl: '1200px',
                '2xl': '1600px',
            },
        },
    },
})
 
/**
 * Used for animation when the element is displayed
 * @param maxOutput The larger the maxOutput output, the larger the generated css volume
 */
function createEnterPlugin(maxOutput = 8) {
    const createCss = (index: number, d = 'x') => {
        const upd = d.toUpperCase()
        return {
            [`*> .enter-${d}:nth-child(${index})`]: {
                transform: `translate${upd}(50px)`,
            },
            [`*> .-enter-${d}:nth-child(${index})`]: {
                transform: `translate${upd}(-50px)`,
            },
            [`* > .enter-${d}:nth-child(${index}),* > .-enter-${d}:nth-child(${index})`]: {
                'z-index': `${10 - index}`,
                opacity: '0',
                animation: `enter-${d}-animation 0.4s ease-in-out 0.3s`,
                'animation-fill-mode': 'forwards',
                'animation-delay': `${(index * 1) / 10}s`,
            },
        }
    }
    const handler = ({ addBase }) => {
        const addRawCss = {}
        for (let index = 1; index < maxOutput; index++) {
            Object.assign(addRawCss, {
                ...createCss(index, 'x'),
                ...createCss(index, 'y'),
            })
        }
        addBase({
            ...addRawCss,
            [`@keyframes enter-x-animation`]: {
                to: {
                    opacity: '1',
                    transform: 'translateX(0)',
                },
            },
            [`@keyframes enter-y-animation`]: {
                to: {
                    opacity: '1',
                    transform: 'translateY(0)',
                },
            },
        })
    }
    return { handler }
}