tanghaolin
7 天以前 f4693216c0d19774d7d0587727ccc9c60cae38d7
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
// 使用函数全部生成没有提示
// function genThemeColor() {
//     const colors = ['primary', 'success', 'warning', 'danger', 'info'];
//     const colorMap = {};
//     for (const item of colors) {
//         const branchMap = {};
//         for (let i = 1; i <= 4; i++) {
//             const key = `light-${2 * i + 1}`;
//             const colorValue = `var(--alloy-color-${item}-${key}`;
//             branchMap[key] = colorValue;
//         }
//         branchMap['light-8'] = `var(--alloy-color-${item}-light-8)`;
//         branchMap['dark-2'] = `var(--alloy-color-${item}-dark-2)`;
//         branchMap['default'] = `var(--alloy-color-${item})`;
//         colorMap[item] = branchMap;
//     }
//     return colorMap;
// }
 
const namespace = 'alloy';
 
function genThemeColor(branchName) {
    return {
        'light-3': `var(--${namespace}-color-${branchName}-light-3)`,
        'light-5': `var(--${namespace}-color-${branchName}-light-5)`,
        'light-7': `var(--${namespace}-color-${branchName}-light-7)`,
        'light-8': `var(--${namespace}-color-${branchName}-light-8)`,
        'light-9': `var(--${namespace}-color-${branchName}-light-9)`,
        DEFAULT: `var(--${namespace}-color-${branchName})`,
        'dark-2': `var(--${namespace}-color-${branchName}-dark-2)`,
    };
}
 
/** @type {import('tailwindcss').Config} */
module.exports = {
    content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
    theme: {
        extend: {
            fontWeight: {
                'weight-default': `var(--${namespace}-font-weight-primary)`,
            },
 
            lineHeight: {
                default: `var(--${namespace}-font-line-height-primary)`,
            },
            transitionDuration: {
                default: `var(--${namespace}-transition-duration)`,
                fast: `var(--${namespace}-transition-duration-fast)`,
            },
            borderRadius: {
                base: `var(--${namespace}-border-radius-base)`,
                small: `var(--${namespace}-border-radius-small)`,
                round: `var(--${namespace}-border-radius-round)`,
                circle: `var(--${namespace}-border-radius-circle)`,
            },
        },
 
        fontFamily: {
            'family-default': `var(--${namespace}-font-family)`,
        },
        fontSize: {
            'extra-small': `var(--${namespace}-font-size-extra-small)`,
            small: `var(--${namespace}-font-size-small)`,
            base: `var(--${namespace}-font-size-base)`,
            medium: `var(--${namespace}-font-size-medium)`,
            large: `var(--${namespace}-font-size-large)`,
            'extra-large': `var(--${namespace}-font-size-extra-large)`,
        },
        borderWidth: {
            'w-default': `var(--${namespace}-border-width)`,
        },
        backgroundColor: {
            primary: genThemeColor('primary'),
            success: genThemeColor('success'),
            warning: genThemeColor('warning'),
            danger: genThemeColor('danger'),
            info: genThemeColor('info'),
 
            default: `var(--${namespace}-bg-color)`,
            page: `var(--${namespace}-bg-color-page)`,
            overlay: `var(--${namespace}-bg-color-overlay)`,
            disabled: `var(--${namespace}-disabled-bg-color)`,
 
            white: `var(--${namespace}-color-white)`,
            black: `var(--${namespace}-color-black)`,
        },
        textColor: {
            primary: genThemeColor('primary'),
            success: genThemeColor('success'),
            warning: genThemeColor('warning'),
            danger: genThemeColor('danger'),
            info: genThemeColor('info'),
            white: `var(--${namespace}-color-white)`,
            black: `var(--${namespace}-color-black)`,
            'color-default': `var(--${namespace}-text-color-primary)`,
            regular: `var(--${namespace}-text-color-regular)`,
            secondary: `var(--${namespace}-text-color-secondary)`,
            placeholder: `var(--${namespace}-text-color-placeholder)`,
            disabled: `var(--${namespace}-text-color-disabled)`,
        },
        borderColor: {
            primary: genThemeColor('primary'),
            success: genThemeColor('success'),
            warning: genThemeColor('warning'),
            danger: genThemeColor('danger'),
            info: genThemeColor('info'),
 
            'color-default': `var(--${namespace}-border-color)`,
            light: `var(--${namespace}-border-color-light)`,
            lighter: `var(--${namespace}-border-color-lighter)`,
            extraLight: `var(--${namespace}-border-color-extra-light)`,
            dark: `var(--${namespace}-border-color-dark)`,
            darker: `var(--${namespace}-border-color-darker)`,
            hover: `var(--${namespace}-border-color-hover)`,
            disabled: `var(--${namespace}-disabled-border-color)`,
        },
    },
    corePlugins: {
        preflight: false,
    },
};