tailwind.config.js 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. import tailwindCssAnimate from 'tailwindcss-animate'
  2. import defaultTheme from 'tailwindcss/defaultTheme'
  3. import { fonts } from './src/config/fonts'
  4. // Use destructuring with fallback to ensure fontFamily is defined
  5. const { fontFamily = { sans: ['sans-serif'] } } = defaultTheme || {}
  6. /** @type {import('tailwindcss').Config} */
  7. export default {
  8. darkMode: ['class'],
  9. content: ['./index.html', './src/**/*.{ts,tsx,js,jsx}'],
  10. safelist: fonts.map((font) => `font-${font}`),
  11. theme: {
  12. container: {
  13. center: 'true',
  14. padding: '2rem',
  15. screens: {
  16. '2xl': '1400px',
  17. },
  18. },
  19. extend: {
  20. fontFamily: {
  21. inter: ['Inter', ...fontFamily.sans],
  22. manrope: ['Manrope', ...fontFamily.sans],
  23. },
  24. borderRadius: {
  25. lg: 'var(--radius)',
  26. md: 'calc(var(--radius) - 2px)',
  27. sm: 'calc(var(--radius) - 4px)',
  28. },
  29. colors: {
  30. background: 'hsl(var(--background))',
  31. foreground: 'hsl(var(--foreground))',
  32. card: {
  33. DEFAULT: 'hsl(var(--card))',
  34. foreground: 'hsl(var(--card-foreground))',
  35. },
  36. popover: {
  37. DEFAULT: 'hsl(var(--popover))',
  38. foreground: 'hsl(var(--popover-foreground))',
  39. },
  40. primary: {
  41. DEFAULT: 'hsl(var(--primary))',
  42. foreground: 'hsl(var(--primary-foreground))',
  43. },
  44. secondary: {
  45. DEFAULT: 'hsl(var(--secondary))',
  46. foreground: 'hsl(var(--secondary-foreground))',
  47. },
  48. muted: {
  49. DEFAULT: 'hsl(var(--muted))',
  50. foreground: 'hsl(var(--muted-foreground))',
  51. },
  52. accent: {
  53. DEFAULT: 'hsl(var(--accent))',
  54. foreground: 'hsl(var(--accent-foreground))',
  55. },
  56. destructive: {
  57. DEFAULT: 'hsl(var(--destructive))',
  58. foreground: 'hsl(var(--destructive-foreground))',
  59. },
  60. border: 'hsl(var(--border))',
  61. input: 'hsl(var(--input))',
  62. ring: 'hsl(var(--ring))',
  63. chart: {
  64. 1: 'hsl(var(--chart-1))',
  65. 2: 'hsl(var(--chart-2))',
  66. 3: 'hsl(var(--chart-3))',
  67. 4: 'hsl(var(--chart-4))',
  68. 5: 'hsl(var(--chart-5))',
  69. },
  70. sidebar: {
  71. DEFAULT: 'hsl(var(--sidebar-background))',
  72. foreground: 'hsl(var(--sidebar-foreground))',
  73. primary: 'hsl(var(--sidebar-primary))',
  74. 'primary-foreground': 'hsl(var(--sidebar-primary-foreground))',
  75. accent: 'hsl(var(--sidebar-accent))',
  76. 'accent-foreground': 'hsl(var(--sidebar-accent-foreground))',
  77. border: 'hsl(var(--sidebar-border))',
  78. ring: 'hsl(var(--sidebar-ring))',
  79. },
  80. },
  81. },
  82. },
  83. plugins: [tailwindCssAnimate],
  84. }