← back to Angels Flowers

app/globals.css

135 lines

@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
  :root {
    --font-inter: 'Inter', system-ui, -apple-system, sans-serif;
    --font-playfair: 'Playfair Display', Georgia, serif;

    /* Light theme CSS custom properties */
    --bg-primary: #ffffff;
    --bg-secondary: #f9fafb;
    --bg-tertiary: #f3f4f6;
    --text-primary: #111827;
    --text-secondary: #4b5563;
    --text-muted: #6b7280;
    --border: #e5e7eb;
    --border-light: #f3f4f6;
    --shadow: rgba(0, 0, 0, 0.1);
    --shadow-lg: rgba(0, 0, 0, 0.15);

    /* Hero overlay for light mode */
    --hero-overlay-start: rgba(123, 35, 68, 0.9);
    --hero-overlay-end: rgba(208, 56, 98, 0.8);
  }

  /* Dark theme CSS custom properties */
  :root[data-theme="dark"],
  :root.dark {
    --bg-primary: #030712;
    --bg-secondary: #111827;
    --bg-tertiary: #1f2937;
    --text-primary: #f9fafb;
    --text-secondary: #9ca3af;
    --text-muted: #6b7280;
    --border: #374151;
    --border-light: #1f2937;
    --shadow: rgba(0, 0, 0, 0.5);
    --shadow-lg: rgba(0, 0, 0, 0.7);

    /* Hero overlay for dark mode - slightly darker for better contrast */
    --hero-overlay-start: rgba(91, 26, 51, 0.95);
    --hero-overlay-end: rgba(174, 40, 81, 0.9);
  }

  body {
    background-color: var(--bg-primary);
    color: var(--text-primary);
    @apply transition-colors duration-300;
  }

  h1, h2, h3, h4, h5, h6 {
    @apply font-serif;
  }
}

@layer components {
  .container-custom {
    @apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8;
  }

  .btn-primary {
    @apply inline-flex items-center justify-center px-6 py-3 border border-transparent text-base font-medium rounded-md text-white bg-primary-600 hover:bg-primary-700 dark:bg-primary-500 dark:hover:bg-primary-600 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 dark:focus:ring-offset-gray-900;
  }

  .btn-secondary {
    @apply inline-flex items-center justify-center px-6 py-3 border border-gray-300 dark:border-gray-600 text-base font-medium rounded-md text-gray-700 dark:text-gray-200 bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary-500 dark:focus:ring-offset-gray-900;
  }

  .section-padding {
    @apply py-16 md:py-24;
  }

  .heading-xl {
    @apply text-4xl sm:text-5xl md:text-6xl font-bold tracking-tight;
  }

  .heading-lg {
    @apply text-3xl sm:text-4xl md:text-5xl font-bold tracking-tight;
  }

  .heading-md {
    @apply text-2xl sm:text-3xl md:text-4xl font-bold tracking-tight;
  }

  .card {
    @apply bg-white dark:bg-gray-800 rounded-lg shadow-md dark:shadow-gray-900/30 overflow-hidden transition-all duration-300 hover:shadow-xl dark:hover:shadow-gray-900/50 hover:-translate-y-1;
  }
}

@layer utilities {
  .text-balance {
    text-wrap: balance;
  }
}

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Image loading animation */
@keyframes shimmer {
  0% {
    background-position: -1000px 0;
  }
  100% {
    background-position: 1000px 0;
  }
}

.animate-shimmer {
  animation: shimmer 2s infinite linear;
  background: linear-gradient(to right, #f6f7f8 0%, #edeef1 20%, #f6f7f8 40%, #f6f7f8 100%);
  background-size: 1000px 100%;
}

.dark .animate-shimmer {
  background: linear-gradient(to right, #1f2937 0%, #374151 20%, #1f2937 40%, #1f2937 100%);
  background-size: 1000px 100%;
}

/* Dark mode image overlay for better contrast */
.dark .dark-image-overlay {
  position: relative;
}

.dark .dark-image-overlay::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.1);
  pointer-events: none;
}