Theming

Customize the look and feel of components

CSS Variables

Components use CSS variables for theming. This makes it easy to change colors across your entire application.

Color Scheme
Define your color scheme in globals.css
@layer base {
  :root {
    --background: 0 0% 100%;
    --foreground: 222.2 84% 4.9%;
    
    --card: 0 0% 100%;
    --card-foreground: 222.2 84% 4.9%;
    
    --primary: 222.2 47.4% 11.2%;
    --primary-foreground: 210 40% 98%;
    
    --secondary: 210 40% 96.1%;
    --secondary-foreground: 222.2 47.4% 11.2%;
    
    --muted: 210 40% 96.1%;
    --muted-foreground: 215.4 16.3% 46.9%;
    
    --accent: 210 40% 96.1%;
    --accent-foreground: 222.2 47.4% 11.2%;
    
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 210 40% 98%;
    
    --border: 214.3 31.8% 91.4%;
    --input: 214.3 31.8% 91.4%;
    --ring: 222.2 84% 4.9%;
    
    --radius: 0.5rem;
  }
}

Dark Mode

Add dark mode support by defining a .dark class with different colors:

Dark Mode Colors
Override colors for dark mode
@layer base {
  .dark {
    --background: 222.2 84% 4.9%;
    --foreground: 210 40% 98%;
    
    --card: 222.2 84% 4.9%;
    --card-foreground: 210 40% 98%;
    
    --primary: 210 40% 98%;
    --primary-foreground: 222.2 47.4% 11.2%;
    
    --secondary: 217.2 32.6% 17.5%;
    --secondary-foreground: 210 40% 98%;
    
    --muted: 217.2 32.6% 17.5%;
    --muted-foreground: 215 20.2% 65.1%;
    
    --accent: 217.2 32.6% 17.5%;
    --accent-foreground: 210 40% 98%;
    
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 210 40% 98%;
    
    --border: 217.2 32.6% 17.5%;
    --input: 217.2 32.6% 17.5%;
    --ring: 212.7 26.8% 83.9%;
  }
}

Custom Styles

All components accept a className prop for custom styling:

Extending Components
Add custom classes to any component
import { LogoSvg } from '@/components/homeontour-ui/logo-svg'

// Add custom classes
<LogoSvg className="h-16 drop-shadow-xl hover:drop-shadow-2xl">
  Custom Logo
</LogoSvg>

// Custom colors and styles
<LogoSvg 
  signatureColor="#FF6B6B" 
  textColor="#4ECDC4"
  className="h-12 transition-transform hover:scale-110"
/>

Modifying Components

Since you own the code, you can modify components directly:

Adding New Variants
Example: Add a new button variant
// components/homeontour-ui/logo-svg.tsx

export const LogoSvg = React.forwardRef<SVGSVGElement, LogoSvgProps>(
  ({ 
    className, 
    // Change default colors for your brand
    signatureColor = "#FF6B6B",  // Your brand primary
    textColor = "#4ECDC4",        // Your brand secondary
    ...props 
  }, ref) => {
    return (
      <svg ref={ref} className={cn("w-auto", className)} {...props}>
        {/* SVG content */}
      </svg>
    )
  }
)

// Use it
<LogoSvg className="h-10" />  // Uses your custom defaults