Files
sub2api/frontend/tailwind.config.js
T
kone 6f4a680156
Release / update-version (push) Has been cancelled
Release / build-frontend (push) Has been cancelled
Release / release (push) Has been cancelled
Release / sync-version-file (push) Has been cancelled
CI / test (push) Has been cancelled
CI / frontend (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
Security Scan / backend-security (push) Has been cancelled
Security Scan / frontend-security (push) Has been cancelled
release: prepare v0.1.140
2026-06-03 23:52:28 +08:00

148 lines
6.1 KiB
JavaScript

/** @type {import('tailwindcss').Config} */
export default {
content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}'],
darkMode: 'class',
theme: {
extend: {
colors: {
gray: {
50: 'rgb(var(--color-gray-50) / <alpha-value>)',
100: 'rgb(var(--color-gray-100) / <alpha-value>)',
200: 'rgb(var(--color-gray-200) / <alpha-value>)',
300: 'rgb(var(--color-gray-300) / <alpha-value>)',
400: 'rgb(var(--color-gray-400) / <alpha-value>)',
500: 'rgb(var(--color-gray-500) / <alpha-value>)',
600: 'rgb(var(--color-gray-600) / <alpha-value>)',
700: 'rgb(var(--color-gray-700) / <alpha-value>)',
800: 'rgb(var(--color-gray-800) / <alpha-value>)',
900: 'rgb(var(--color-gray-900) / <alpha-value>)',
950: 'rgb(var(--color-gray-950) / <alpha-value>)'
},
// 主色调 - Teal/Cyan 青色系
primary: {
50: 'rgb(var(--color-primary-50) / <alpha-value>)',
100: 'rgb(var(--color-primary-100) / <alpha-value>)',
200: 'rgb(var(--color-primary-200) / <alpha-value>)',
300: 'rgb(var(--color-primary-300) / <alpha-value>)',
400: 'rgb(var(--color-primary-400) / <alpha-value>)',
500: 'rgb(var(--color-primary-500) / <alpha-value>)',
600: 'rgb(var(--color-primary-600) / <alpha-value>)',
700: 'rgb(var(--color-primary-700) / <alpha-value>)',
800: 'rgb(var(--color-primary-800) / <alpha-value>)',
900: 'rgb(var(--color-primary-900) / <alpha-value>)',
950: 'rgb(var(--color-primary-950) / <alpha-value>)'
},
// 辅助色 - 深蓝灰
accent: {
50: 'rgb(var(--color-accent-50) / <alpha-value>)',
100: 'rgb(var(--color-accent-100) / <alpha-value>)',
200: 'rgb(var(--color-accent-200) / <alpha-value>)',
300: 'rgb(var(--color-accent-300) / <alpha-value>)',
400: 'rgb(var(--color-accent-400) / <alpha-value>)',
500: 'rgb(var(--color-accent-500) / <alpha-value>)',
600: 'rgb(var(--color-accent-600) / <alpha-value>)',
700: 'rgb(var(--color-accent-700) / <alpha-value>)',
800: 'rgb(var(--color-accent-800) / <alpha-value>)',
900: 'rgb(var(--color-accent-900) / <alpha-value>)',
950: 'rgb(var(--color-accent-950) / <alpha-value>)'
},
// 深色模式背景
dark: {
50: 'rgb(var(--color-dark-50) / <alpha-value>)',
100: 'rgb(var(--color-dark-100) / <alpha-value>)',
200: 'rgb(var(--color-dark-200) / <alpha-value>)',
300: 'rgb(var(--color-dark-300) / <alpha-value>)',
400: 'rgb(var(--color-dark-400) / <alpha-value>)',
500: 'rgb(var(--color-dark-500) / <alpha-value>)',
600: 'rgb(var(--color-dark-600) / <alpha-value>)',
700: 'rgb(var(--color-dark-700) / <alpha-value>)',
800: 'rgb(var(--color-dark-800) / <alpha-value>)',
900: 'rgb(var(--color-dark-900) / <alpha-value>)',
950: 'rgb(var(--color-dark-950) / <alpha-value>)'
}
},
fontFamily: {
sans: [
'system-ui',
'-apple-system',
'BlinkMacSystemFont',
'Segoe UI',
'Roboto',
'Helvetica Neue',
'Arial',
'PingFang SC',
'Hiragino Sans GB',
'Microsoft YaHei',
'sans-serif'
],
mono: ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'monospace']
},
boxShadow: {
glass: '0 8px 32px rgba(0, 0, 0, 0.08)',
'glass-sm': '0 4px 16px rgba(0, 0, 0, 0.06)',
glow: '0 0 20px rgba(20, 184, 166, 0.25)',
'glow-lg': '0 0 40px rgba(20, 184, 166, 0.35)',
card: '0 1px 3px rgba(0, 0, 0, 0.04), 0 1px 2px rgba(0, 0, 0, 0.06)',
'card-hover': '0 10px 40px rgba(0, 0, 0, 0.08)',
'inner-glow': 'inset 0 1px 0 rgba(255, 255, 255, 0.1)'
},
backgroundImage: {
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
'gradient-primary': 'linear-gradient(135deg, #14b8a6 0%, #0d9488 100%)',
'gradient-dark': 'linear-gradient(135deg, #1e293b 0%, #0f172a 100%)',
'gradient-glass':
'linear-gradient(135deg, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0.05) 100%)',
'mesh-gradient':
'radial-gradient(at 40% 20%, rgba(20, 184, 166, 0.12) 0px, transparent 50%), radial-gradient(at 80% 0%, rgba(6, 182, 212, 0.08) 0px, transparent 50%), radial-gradient(at 0% 50%, rgba(20, 184, 166, 0.08) 0px, transparent 50%)'
},
animation: {
'fade-in': 'fadeIn 0.3s ease-out',
'slide-up': 'slideUp 0.3s ease-out',
'slide-down': 'slideDown 0.3s ease-out',
'slide-in-right': 'slideInRight 0.3s ease-out',
'scale-in': 'scaleIn 0.2s ease-out',
'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
shimmer: 'shimmer 2s linear infinite',
glow: 'glow 2s ease-in-out infinite alternate'
},
keyframes: {
fadeIn: {
'0%': { opacity: '0' },
'100%': { opacity: '1' }
},
slideUp: {
'0%': { opacity: '0', transform: 'translateY(10px)' },
'100%': { opacity: '1', transform: 'translateY(0)' }
},
slideDown: {
'0%': { opacity: '0', transform: 'translateY(-10px)' },
'100%': { opacity: '1', transform: 'translateY(0)' }
},
slideInRight: {
'0%': { opacity: '0', transform: 'translateX(20px)' },
'100%': { opacity: '1', transform: 'translateX(0)' }
},
scaleIn: {
'0%': { opacity: '0', transform: 'scale(0.95)' },
'100%': { opacity: '1', transform: 'scale(1)' }
},
shimmer: {
'0%': { backgroundPosition: '-200% 0' },
'100%': { backgroundPosition: '200% 0' }
},
glow: {
'0%': { boxShadow: '0 0 20px rgba(20, 184, 166, 0.25)' },
'100%': { boxShadow: '0 0 30px rgba(20, 184, 166, 0.4)' }
}
},
backdropBlur: {
xs: '2px'
},
borderRadius: {
'4xl': '2rem'
}
}
},
plugins: []
}