tailwind.config.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. /** @type {import('tailwindcss').Config} */
  2. export default {
  3. content: [
  4. "./index.html",
  5. "./src/**/*.{vue,js,ts,jsx,tsx}",
  6. ],
  7. theme: {
  8. extend: {
  9. // 自定义颜色体系
  10. colors: {
  11. primary: {
  12. 50: '#eff6ff',
  13. 100: '#dbeafe',
  14. 200: '#bfdbfe',
  15. 300: '#93c5fd',
  16. 400: '#60a5fa',
  17. 500: '#3b82f6',
  18. 600: '#2563eb',
  19. 700: '#1d4ed8',
  20. 800: '#1e40af',
  21. 900: '#1e3a8a',
  22. },
  23. brand: {
  24. blue: '#2D71FF',
  25. purple: '#6366f1',
  26. pink: '#ec4899',
  27. cyan: '#06b6d4',
  28. green: '#10b981',
  29. orange: '#f97316',
  30. },
  31. },
  32. // 自定义字体
  33. fontFamily: {
  34. sans: [
  35. 'Inter',
  36. 'PingFang SC',
  37. 'Microsoft YaHei',
  38. 'Helvetica Neue',
  39. 'Arial',
  40. 'sans-serif',
  41. ],
  42. },
  43. // 自定义动画
  44. animation: {
  45. 'fade-in': 'fadeIn 0.3s ease-in-out',
  46. 'slide-up': 'slideUp 0.3s ease-out',
  47. 'slide-down': 'slideDown 0.3s ease-out',
  48. 'scale-in': 'scaleIn 0.2s ease-out',
  49. 'float': 'float 3s ease-in-out infinite',
  50. 'glow': 'glow 2s ease-in-out infinite',
  51. 'shimmer': 'shimmer 2s linear infinite',
  52. },
  53. keyframes: {
  54. fadeIn: {
  55. '0%': { opacity: '0' },
  56. '100%': { opacity: '1' },
  57. },
  58. slideUp: {
  59. '0%': { opacity: '0', transform: 'translateY(16px)' },
  60. '100%': { opacity: '1', transform: 'translateY(0)' },
  61. },
  62. slideDown: {
  63. '0%': { opacity: '0', transform: 'translateY(-16px)' },
  64. '100%': { opacity: '1', transform: 'translateY(0)' },
  65. },
  66. scaleIn: {
  67. '0%': { opacity: '0', transform: 'scale(0.95)' },
  68. '100%': { opacity: '1', transform: 'scale(1)' },
  69. },
  70. float: {
  71. '0%, 100%': { transform: 'translateY(0)' },
  72. '50%': { transform: 'translateY(-8px)' },
  73. },
  74. glow: {
  75. '0%, 100%': { boxShadow: '0 0 20px rgba(59, 130, 246, 0.3)' },
  76. '50%': { boxShadow: '0 0 40px rgba(59, 130, 246, 0.6)' },
  77. },
  78. shimmer: {
  79. '0%': { backgroundPosition: '-200% 0' },
  80. '100%': { backgroundPosition: '200% 0' },
  81. },
  82. },
  83. // 自定义阴影
  84. boxShadow: {
  85. 'card': '0 2px 12px rgba(0, 0, 0, 0.06)',
  86. 'card-hover': '0 8px 32px rgba(45, 113, 255, 0.12)',
  87. 'glass': '0 8px 32px rgba(31, 38, 135, 0.08)',
  88. 'primary': '0 4px 16px rgba(45, 113, 255, 0.3)',
  89. 'glow-blue': '0 0 30px rgba(59, 130, 246, 0.4)',
  90. 'glow-purple': '0 0 30px rgba(99, 102, 241, 0.4)',
  91. },
  92. // 自定义圆角
  93. borderRadius: {
  94. '2xl': '1rem',
  95. '3xl': '1.5rem',
  96. '4xl': '2rem',
  97. },
  98. // 自定义间距
  99. spacing: {
  100. '18': '4.5rem',
  101. '88': '22rem',
  102. '128': '32rem',
  103. },
  104. // 自定义屏幕断点
  105. screens: {
  106. 'xs': '480px',
  107. '3xl': '1920px',
  108. },
  109. // 自定义背景模糊
  110. backdropBlur: {
  111. xs: '2px',
  112. },
  113. },
  114. },
  115. plugins: [],
  116. }