tailwind.config.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /** @type {import('tailwindcss').Config} */
  2. export default {
  3. content: ['./index.html', './src/**/*.{ts,tsx}'],
  4. darkMode: 'class',
  5. theme: {
  6. extend: {
  7. fontFamily: {
  8. sans: [
  9. '-apple-system',
  10. 'BlinkMacSystemFont',
  11. 'SF Pro Display',
  12. 'SF Pro Text',
  13. 'Helvetica Neue',
  14. 'Helvetica',
  15. 'Arial',
  16. 'sans-serif',
  17. ],
  18. },
  19. colors: {
  20. // Apple-inspired palette
  21. ink: {
  22. 50: '#fafafa',
  23. 100: '#f5f5f7',
  24. 200: '#e8e8ed',
  25. 300: '#d2d2d7',
  26. 400: '#a1a1a6',
  27. 500: '#86868b',
  28. 600: '#6e6e73',
  29. 700: '#424245',
  30. 800: '#1d1d1f',
  31. 900: '#0a0a0c',
  32. 950: '#000000',
  33. },
  34. accent: {
  35. DEFAULT: '#0071e3', // Apple blue
  36. dark: '#0a84ff',
  37. },
  38. },
  39. fontSize: {
  40. // Apple display sizes
  41. 'hero': ['clamp(3.5rem, 8vw, 7rem)', { lineHeight: '1.05', letterSpacing: '-0.04em', fontWeight: '600' }],
  42. 'h1': ['clamp(2.5rem, 5vw, 4rem)', { lineHeight: '1.1', letterSpacing: '-0.03em', fontWeight: '600' }],
  43. 'h2': ['clamp(2rem, 3.5vw, 2.75rem)', { lineHeight: '1.15', letterSpacing: '-0.025em', fontWeight: '600' }],
  44. 'h3': ['1.5rem', { lineHeight: '1.3', letterSpacing: '-0.02em', fontWeight: '600' }],
  45. 'body-lg': ['1.25rem', { lineHeight: '1.5', letterSpacing: '-0.01em', fontWeight: '400' }],
  46. 'body': ['1.0625rem', { lineHeight: '1.5' }],
  47. 'small': ['0.9375rem', { lineHeight: '1.4' }],
  48. 'caption': ['0.8125rem', { lineHeight: '1.3' }],
  49. },
  50. backdropBlur: {
  51. xs: '2px',
  52. },
  53. animation: {
  54. 'fade-in': 'fadeIn 0.6s ease-out',
  55. 'slide-up': 'slideUp 0.6s ease-out',
  56. 'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
  57. },
  58. keyframes: {
  59. fadeIn: { '0%': { opacity: '0' }, '100%': { opacity: '1' } },
  60. slideUp: { '0%': { opacity: '0', transform: 'translateY(20px)' }, '100%': { opacity: '1', transform: 'translateY(0)' } },
  61. },
  62. },
  63. },
  64. plugins: [],
  65. }