diff --git a/index.html b/index.html index 890b67a..500ac38 100644 --- a/index.html +++ b/index.html @@ -3,17 +3,18 @@ - energie-finder-profi - - + EnergieProfis - Erneuerbare Energie Installateure in Deutschland + + + - - + + - + diff --git a/src/App.tsx b/src/App.tsx index 18daf2e..bab50a2 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -4,6 +4,8 @@ import { TooltipProvider } from "@/components/ui/tooltip"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { BrowserRouter, Routes, Route } from "react-router-dom"; import Index from "./pages/Index"; +import Solar from "./pages/Solar"; +import Wind from "./pages/Wind"; import NotFound from "./pages/NotFound"; const queryClient = new QueryClient(); @@ -16,6 +18,8 @@ const App = () => ( } /> + } /> + } /> {/* ADD ALL CUSTOM ROUTES ABOVE THE CATCH-ALL "*" ROUTE */} } /> diff --git a/src/assets/battery-storage.jpg b/src/assets/battery-storage.jpg new file mode 100644 index 0000000..d3878fb Binary files /dev/null and b/src/assets/battery-storage.jpg differ diff --git a/src/assets/geothermal-system.jpg b/src/assets/geothermal-system.jpg new file mode 100644 index 0000000..fef4935 Binary files /dev/null and b/src/assets/geothermal-system.jpg differ diff --git a/src/assets/hero-renewable-energy.jpg b/src/assets/hero-renewable-energy.jpg new file mode 100644 index 0000000..d427996 Binary files /dev/null and b/src/assets/hero-renewable-energy.jpg differ diff --git a/src/assets/solar-installation.jpg b/src/assets/solar-installation.jpg new file mode 100644 index 0000000..d8ddf2b Binary files /dev/null and b/src/assets/solar-installation.jpg differ diff --git a/src/assets/wind-turbines.jpg b/src/assets/wind-turbines.jpg new file mode 100644 index 0000000..bc06210 Binary files /dev/null and b/src/assets/wind-turbines.jpg differ diff --git a/src/components/EnergyTypeCard.tsx b/src/components/EnergyTypeCard.tsx new file mode 100644 index 0000000..e9f6fe9 --- /dev/null +++ b/src/components/EnergyTypeCard.tsx @@ -0,0 +1,65 @@ +import { Button } from "@/components/ui/button"; +import { Card, CardContent } from "@/components/ui/card"; +import { ArrowRight } from "lucide-react"; +import { Link } from "react-router-dom"; + +interface EnergyTypeCardProps { + title: string; + description: string; + image: string; + gradient: string; + buttonVariant: "solar" | "wind" | "geo" | "battery"; + href: string; + features: string[]; +} + +const EnergyTypeCard = ({ + title, + description, + image, + gradient, + buttonVariant, + href, + features +}: EnergyTypeCardProps) => { + return ( + +
+ {title} +
+
+
+ {title.charAt(0)} +
+
+
+ + +

{title}

+

{description}

+ +
    + {features.map((feature, index) => ( +
  • +
    + {feature} +
  • + ))} +
+ + +
+
+ ); +}; + +export default EnergyTypeCard; \ No newline at end of file diff --git a/src/components/EnergyTypesSection.tsx b/src/components/EnergyTypesSection.tsx new file mode 100644 index 0000000..865d6eb --- /dev/null +++ b/src/components/EnergyTypesSection.tsx @@ -0,0 +1,90 @@ +import EnergyTypeCard from "./EnergyTypeCard"; +import solarImage from "@/assets/solar-installation.jpg"; +import windImage from "@/assets/wind-turbines.jpg"; +import geoImage from "@/assets/geothermal-system.jpg"; +import batteryImage from "@/assets/battery-storage.jpg"; + +const EnergyTypesSection = () => { + const energyTypes = [ + { + title: "Solar", + description: "Nutzen Sie die Kraft der Sonne mit modernsten Photovoltaik-Anlagen für Ihr Zuhause oder Unternehmen.", + image: solarImage, + gradient: "bg-gradient-solar", + buttonVariant: "solar" as const, + href: "/solar", + features: [ + "Bis zu 70% Stromkostenersparnis", + "20+ Jahre Garantie", + "Staatliche Förderungen verfügbar", + "Umweltfreundlich & nachhaltig" + ] + }, + { + title: "Wind", + description: "Erzeugen Sie saubere Energie mit effizienten Windkraftanlagen für private und gewerbliche Nutzung.", + image: windImage, + gradient: "bg-gradient-wind", + buttonVariant: "wind" as const, + href: "/wind", + features: [ + "Konstante Energieproduktion", + "Hohe Effizienz auch bei schwachem Wind", + "Wartungsarme Technologie", + "Ideale Ergänzung zu Solar" + ] + }, + { + title: "Geothermie", + description: "Heizen und kühlen Sie Ihr Gebäude mit der natürlichen Erdwärme - effizient und umweltschonend.", + image: geoImage, + gradient: "bg-gradient-geo", + buttonVariant: "geo" as const, + href: "/geothermie", + features: [ + "Ganzjährig konstante Temperaturen", + "Niedrige Betriebskosten", + "Heizen und Kühlen in einem System", + "Sehr lange Lebensdauer" + ] + }, + { + title: "Batteriespeicher", + description: "Speichern Sie überschüssige Energie und nutzen Sie sie bei Bedarf - für maximale Unabhängigkeit.", + image: batteryImage, + gradient: "bg-gradient-battery", + buttonVariant: "battery" as const, + href: "/batteriespeicher", + features: [ + "24/7 Energieverfügbarkeit", + "Notstromfunktion", + "Intelligente Steuerung", + "Erhöhte Eigenverbrauchsquote" + ] + } + ]; + + return ( +
+
+
+

+ Erneuerbare Energielösungen +

+

+ Entdecken Sie die Vielfalt nachhaltiger Energietechnologien und finden Sie + die perfekte Lösung für Ihre Bedürfnisse. +

+
+ +
+ {energyTypes.map((type) => ( + + ))} +
+
+
+ ); +}; + +export default EnergyTypesSection; \ No newline at end of file diff --git a/src/components/Footer.tsx b/src/components/Footer.tsx new file mode 100644 index 0000000..bc90642 --- /dev/null +++ b/src/components/Footer.tsx @@ -0,0 +1,159 @@ +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { Link } from "react-router-dom"; +import { Mail, Phone, MapPin, Facebook, Twitter, Linkedin, Instagram } from "lucide-react"; + +const Footer = () => { + return ( + + ); +}; + +export default Footer; \ No newline at end of file diff --git a/src/components/Header.tsx b/src/components/Header.tsx new file mode 100644 index 0000000..1a7a6a6 --- /dev/null +++ b/src/components/Header.tsx @@ -0,0 +1,60 @@ +import { Button } from "@/components/ui/button"; +import { Menu, Search, Phone } from "lucide-react"; +import { Link } from "react-router-dom"; + +const Header = () => { + return ( +
+
+
+ {/* Logo */} + +
+ E +
+ EnergieProfis + + + {/* Desktop Navigation */} + + + {/* Action Buttons */} +
+ + +
+ + {/* Mobile Menu Button */} + +
+
+
+ ); +}; + +export default Header; \ No newline at end of file diff --git a/src/components/HeroSection.tsx b/src/components/HeroSection.tsx new file mode 100644 index 0000000..347f468 --- /dev/null +++ b/src/components/HeroSection.tsx @@ -0,0 +1,102 @@ +import { Button } from "@/components/ui/button"; +import { Input } from "@/components/ui/input"; +import { Search, MapPin, Zap } from "lucide-react"; +import { Link } from "react-router-dom"; +import heroImage from "@/assets/hero-renewable-energy.jpg"; + +const HeroSection = () => { + return ( +
+ {/* Background Image with Overlay */} +
+ Renewable Energy Solutions in Germany +
+
+ + {/* Content */} +
+
+

+ Finden Sie Ihren perfekten{" "} + + Erneuerbaren Energie + {" "} + Installateur +

+ +

+ Vergleichen Sie qualifizierte Fachbetriebe für Solar, Wind, Geothermie + und Batteriespeicher in Ihrer Region. Kostenlos und unverbindlich. +

+ + {/* Search Box */} +
+
+
+ + +
+
+ + +
+ +
+
+ + {/* CTA Buttons */} +
+ + +
+
+
+ + {/* Floating Stats */} +
+
+
+
+
500+
+
Installateure
+
+
+
2,500+
+
Projekte
+
+
+
4.8★
+
Bewertung
+
+
+
+
+
+ ); +}; + +export default HeroSection; \ No newline at end of file diff --git a/src/components/WhyChooseUsSection.tsx b/src/components/WhyChooseUsSection.tsx new file mode 100644 index 0000000..b586563 --- /dev/null +++ b/src/components/WhyChooseUsSection.tsx @@ -0,0 +1,81 @@ +import { Card, CardContent } from "@/components/ui/card"; +import { Shield, Users, Award, Clock, HeartHandshake, TrendingUp } from "lucide-react"; + +const WhyChooseUsSection = () => { + const features = [ + { + icon: Shield, + title: "Verifizierte Installateure", + description: "Alle Fachbetriebe werden sorgfältig geprüft und zertifiziert für höchste Qualitätsstandards.", + gradient: "bg-gradient-solar" + }, + { + icon: Users, + title: "Kostenlose Beratung", + description: "Erhalten Sie unverbindliche Beratung und bis zu 3 Angebote von qualifizierten Experten.", + gradient: "bg-gradient-wind" + }, + { + icon: Award, + title: "Beste Preise", + description: "Durch unseren Vergleich erhalten Sie garantiert die besten Konditionen für Ihr Projekt.", + gradient: "bg-gradient-geo" + }, + { + icon: Clock, + title: "Schnelle Vermittlung", + description: "In nur wenigen Minuten erhalten Sie passende Installateur-Vorschläge für Ihre Region.", + gradient: "bg-gradient-battery" + }, + { + icon: HeartHandshake, + title: "Persönlicher Service", + description: "Unser Expertenteam steht Ihnen bei allen Fragen rund um erneuerbare Energien zur Seite.", + gradient: "bg-gradient-solar" + }, + { + icon: TrendingUp, + title: "Langfristige Erfolge", + description: "Profitieren Sie von nachhaltigen Energielösungen und langfristigen Kosteneinsparungen.", + gradient: "bg-gradient-wind" + } + ]; + + return ( +
+
+
+

+ Warum EnergieProfis? +

+

+ Wir verbinden Sie mit den besten Fachbetrieben für erneuerbare Energien + und sorgen für eine professionelle Umsetzung Ihres Projekts. +

+
+ +
+ {features.map((feature, index) => ( + + +
+ +
+ +

+ {feature.title} +

+ +

+ {feature.description} +

+
+
+ ))} +
+
+
+ ); +}; + +export default WhyChooseUsSection; \ No newline at end of file diff --git a/src/components/ui/button.tsx b/src/components/ui/button.tsx index 36496a2..d41793a 100644 --- a/src/components/ui/button.tsx +++ b/src/components/ui/button.tsx @@ -5,24 +5,35 @@ import { cva, type VariantProps } from "class-variance-authority" import { cn } from "@/lib/utils" const buttonVariants = cva( - "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", + "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-lg text-sm font-semibold transition-all duration-300 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", { variants: { variant: { - default: "bg-primary text-primary-foreground hover:bg-primary/90", + default: "bg-primary text-primary-foreground hover:bg-primary/90 shadow-md hover:shadow-lg transform hover:scale-105", destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/90", outline: - "border border-input bg-background hover:bg-accent hover:text-accent-foreground", + "border-2 border-primary bg-transparent text-primary hover:bg-primary hover:text-primary-foreground", secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80", ghost: "hover:bg-accent hover:text-accent-foreground", link: "text-primary underline-offset-4 hover:underline", + // Energy-specific variants + solar: "bg-gradient-solar text-white hover:shadow-solar transform hover:scale-105", + wind: "bg-gradient-wind text-white hover:shadow-wind transform hover:scale-105", + geo: "bg-gradient-geo text-white hover:shadow-geo transform hover:scale-105", + battery: "bg-gradient-battery text-white hover:shadow-battery transform hover:scale-105", + "solar-outline": "border-2 border-solar bg-transparent text-solar hover:bg-solar hover:text-white", + "wind-outline": "border-2 border-wind bg-transparent text-wind hover:bg-wind hover:text-white", + "geo-outline": "border-2 border-geo bg-transparent text-geo hover:bg-geo hover:text-white", + "battery-outline": "border-2 border-battery bg-transparent text-battery hover:bg-battery hover:text-white", + hero: "bg-gradient-hero text-white hover:shadow-lg transform hover:scale-105 border border-white/20", }, size: { - default: "h-10 px-4 py-2", + default: "h-12 px-6 py-3", sm: "h-9 rounded-md px-3", - lg: "h-11 rounded-md px-8", + lg: "h-14 rounded-lg px-8 text-base", + xl: "h-16 rounded-lg px-10 text-lg", icon: "h-10 w-10", }, }, diff --git a/src/index.css b/src/index.css index 02c3260..6510a5c 100644 --- a/src/index.css +++ b/src/index.css @@ -2,41 +2,80 @@ @tailwind components; @tailwind utilities; -/* Definition of the design system. All colors, gradients, fonts, etc should be defined here. -All colors MUST be HSL. -*/ +/* EnergieProfis Design System - German Renewable Energy Platform */ @layer base { :root { + /* Base System Colors */ --background: 0 0% 100%; - --foreground: 222.2 84% 4.9%; - + --foreground: 218 11% 15%; --card: 0 0% 100%; - --card-foreground: 222.2 84% 4.9%; - + --card-foreground: 218 11% 15%; --popover: 0 0% 100%; - --popover-foreground: 222.2 84% 4.9%; - - --primary: 222.2 47.4% 11.2%; + --popover-foreground: 218 11% 15%; + + /* Energy Type Colors - Solar Orange */ + --solar-primary: 22 95% 58%; + --solar-secondary: 31 95% 60%; + --solar-light: 31 100% 85%; + --solar-dark: 22 85% 45%; + + /* Energy Type Colors - Wind Blue */ + --wind-primary: 207 90% 54%; + --wind-secondary: 207 90% 61%; + --wind-light: 207 100% 85%; + --wind-dark: 207 80% 41%; + + /* Energy Type Colors - Geothermal Green */ + --geo-primary: 122 39% 49%; + --geo-secondary: 122 40% 56%; + --geo-light: 122 45% 80%; + --geo-dark: 122 35% 36%; + + /* Energy Type Colors - Battery Purple */ + --battery-primary: 291 64% 42%; + --battery-secondary: 291 64% 49%; + --battery-light: 291 70% 80%; + --battery-dark: 291 60% 29%; + + /* Brand Colors */ + --primary: 218 47% 18%; --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%; + --secondary: 210 20% 94%; + --secondary-foreground: 218 47% 18%; + + /* Utility Colors */ + --muted: 210 20% 94%; + --muted-foreground: 218 11% 50%; + --accent: 210 20% 92%; + --accent-foreground: 218 47% 18%; + --destructive: 0 84% 60%; --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; + --border: 214 32% 91%; + --input: 214 32% 91%; + --ring: 218 47% 18%; + + /* Energy Gradients */ + --gradient-solar: linear-gradient(135deg, hsl(var(--solar-primary)) 0%, hsl(var(--solar-secondary)) 100%); + --gradient-wind: linear-gradient(135deg, hsl(var(--wind-primary)) 0%, hsl(var(--wind-secondary)) 100%); + --gradient-geo: linear-gradient(135deg, hsl(var(--geo-primary)) 0%, hsl(var(--geo-secondary)) 100%); + --gradient-battery: linear-gradient(135deg, hsl(var(--battery-primary)) 0%, hsl(var(--battery-secondary)) 100%); + --gradient-hero: linear-gradient(135deg, hsl(var(--primary)) 0%, hsl(218 47% 25%) 100%); + + /* Shadows */ + --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --shadow-solar: 0 8px 32px hsl(var(--solar-primary) / 0.25); + --shadow-wind: 0 8px 32px hsl(var(--wind-primary) / 0.25); + --shadow-geo: 0 8px 32px hsl(var(--geo-primary) / 0.25); + --shadow-battery: 0 8px 32px hsl(var(--battery-primary) / 0.25); + + /* Animations */ + --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1); + --transition-bounce: all 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55); + + --radius: 0.75rem; --sidebar-background: 0 0% 98%; @@ -100,6 +139,67 @@ All colors MUST be HSL. } body { - @apply bg-background text-foreground; + @apply bg-background text-foreground font-sans; + } + + /* Custom scrollbar */ + ::-webkit-scrollbar { + width: 8px; + } + + ::-webkit-scrollbar-track { + @apply bg-secondary; + } + + ::-webkit-scrollbar-thumb { + @apply bg-muted-foreground/30 rounded-full; + } + + ::-webkit-scrollbar-thumb:hover { + @apply bg-muted-foreground/50; + } + + /* Smooth animations for all elements */ + * { + transition: var(--transition-smooth); + } + + /* Focus styles */ + *:focus-visible { + @apply outline-none ring-2 ring-primary ring-offset-2 ring-offset-background; + } + + /* Selection styles */ + ::selection { + @apply bg-primary/20; + } + + /* Custom gradient text utilities */ + .gradient-text-solar { + background: var(--gradient-solar); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + } + + .gradient-text-wind { + background: var(--gradient-wind); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + } + + .gradient-text-geo { + background: var(--gradient-geo); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; + } + + .gradient-text-battery { + background: var(--gradient-battery); + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; + background-clip: text; } } \ No newline at end of file diff --git a/src/pages/Index.tsx b/src/pages/Index.tsx index 99637ff..3dddef8 100644 --- a/src/pages/Index.tsx +++ b/src/pages/Index.tsx @@ -1,12 +1,19 @@ -// Update this page (the content is just a fallback if you fail to update the page) +import Header from "@/components/Header"; +import HeroSection from "@/components/HeroSection"; +import EnergyTypesSection from "@/components/EnergyTypesSection"; +import WhyChooseUsSection from "@/components/WhyChooseUsSection"; +import Footer from "@/components/Footer"; const Index = () => { return ( -
-
-

Welcome to Your Blank App

-

Start building your amazing project here!

-
+
+
+
+ + + +
+
); }; diff --git a/src/pages/Solar.tsx b/src/pages/Solar.tsx new file mode 100644 index 0000000..fa28619 --- /dev/null +++ b/src/pages/Solar.tsx @@ -0,0 +1,135 @@ +import Header from "@/components/Header"; +import Footer from "@/components/Footer"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent } from "@/components/ui/card"; +import { Sun, Zap, TrendingUp, Shield, ArrowRight } from "lucide-react"; +import { Link } from "react-router-dom"; +import solarImage from "@/assets/solar-installation.jpg"; + +const Solar = () => { + const benefits = [ + { + icon: Sun, + title: "Nachhaltige Energie", + description: "100% saubere, erneuerbare Energie direkt von der Sonne" + }, + { + icon: Zap, + title: "Kosteneinsparung", + description: "Bis zu 70% Reduzierung Ihrer Stromkosten" + }, + { + icon: TrendingUp, + title: "Wertsteigerung", + description: "Erhöhung des Immobilienwerts um bis zu 10%" + }, + { + icon: Shield, + title: "Langzeitgarantie", + description: "20+ Jahre Produktgarantie und Leistungsgarantie" + } + ]; + + return ( +
+
+ + {/* Hero Section */} +
+
+ Solar Installation +
+
+ +
+
+

+ Solar-Installateure in Ihrer Nähe +

+ +

+ Finden Sie qualifizierte Solartechnik-Experten für Photovoltaik-Anlagen, + Solarthermie und komplette Energiesysteme. +

+ +
+ + +
+
+
+
+ + {/* Benefits Section */} +
+
+
+

+ Warum Solar? +

+

+ Investieren Sie in die Zukunft mit nachhaltiger Solarenergie +

+
+ +
+ {benefits.map((benefit, index) => ( + + +
+ +
+ +

+ {benefit.title} +

+ +

+ {benefit.description} +

+
+
+ ))} +
+
+
+ + {/* CTA Section */} +
+
+

+ Bereit für Ihre Solar-Installation? +

+

+ Erhalten Sie kostenlose Angebote von geprüften Solar-Installateuren in Ihrer Region +

+ +
+ +
+
+
+ +
+
+ ); +}; + +export default Solar; \ No newline at end of file diff --git a/src/pages/Wind.tsx b/src/pages/Wind.tsx new file mode 100644 index 0000000..08ceaa4 --- /dev/null +++ b/src/pages/Wind.tsx @@ -0,0 +1,135 @@ +import Header from "@/components/Header"; +import Footer from "@/components/Footer"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent } from "@/components/ui/card"; +import { Wind, Zap, TrendingUp, Shield, ArrowRight } from "lucide-react"; +import { Link } from "react-router-dom"; +import windImage from "@/assets/wind-turbines.jpg"; + +const WindPage = () => { + const benefits = [ + { + icon: Wind, + title: "Konstante Energie", + description: "24/7 Energieproduktion bei ausreichender Windgeschwindigkeit" + }, + { + icon: Zap, + title: "Hohe Effizienz", + description: "Moderne Anlagen nutzen auch schwache Winde effektiv" + }, + { + icon: TrendingUp, + title: "Skalierbarkeit", + description: "Von kleinen Anlagen bis zu großen Windparks" + }, + { + icon: Shield, + title: "Bewährte Technologie", + description: "Jahrzehntelange Erfahrung und zuverlässige Systeme" + } + ]; + + return ( +
+
+ + {/* Hero Section */} +
+
+ Wind Turbines +
+
+ +
+
+

+ Wind-Installateure für Ihre Region +

+ +

+ Entdecken Sie die Kraft des Windes mit modernen Windkraftanlagen + für private und gewerbliche Nutzung. +

+ +
+ + +
+
+
+
+ + {/* Benefits Section */} +
+
+
+

+ Warum Windenergie? +

+

+ Nutzen Sie die unerschöpfliche Kraft des Windes für saubere Energie +

+
+ +
+ {benefits.map((benefit, index) => ( + + +
+ +
+ +

+ {benefit.title} +

+ +

+ {benefit.description} +

+
+
+ ))} +
+
+
+ + {/* CTA Section */} +
+
+

+ Bereit für Ihre Windkraft-Installation? +

+

+ Erhalten Sie kostenlose Angebote von geprüften Wind-Installateuren in Ihrer Region +

+ +
+ +
+
+
+ +
+ ); +}; + +export default WindPage; \ No newline at end of file diff --git a/tailwind.config.ts b/tailwind.config.ts index 8706086..bbc045d 100644 --- a/tailwind.config.ts +++ b/tailwind.config.ts @@ -52,6 +52,31 @@ export default { DEFAULT: 'hsl(var(--card))', foreground: 'hsl(var(--card-foreground))' }, + // Energy Type Colors + solar: { + DEFAULT: 'hsl(var(--solar-primary))', + secondary: 'hsl(var(--solar-secondary))', + light: 'hsl(var(--solar-light))', + dark: 'hsl(var(--solar-dark))' + }, + wind: { + DEFAULT: 'hsl(var(--wind-primary))', + secondary: 'hsl(var(--wind-secondary))', + light: 'hsl(var(--wind-light))', + dark: 'hsl(var(--wind-dark))' + }, + geo: { + DEFAULT: 'hsl(var(--geo-primary))', + secondary: 'hsl(var(--geo-secondary))', + light: 'hsl(var(--geo-light))', + dark: 'hsl(var(--geo-dark))' + }, + battery: { + DEFAULT: 'hsl(var(--battery-primary))', + secondary: 'hsl(var(--battery-secondary))', + light: 'hsl(var(--battery-light))', + dark: 'hsl(var(--battery-dark))' + }, sidebar: { DEFAULT: 'hsl(var(--sidebar-background))', foreground: 'hsl(var(--sidebar-foreground))', @@ -63,6 +88,23 @@ export default { ring: 'hsl(var(--sidebar-ring))' } }, + backgroundImage: { + 'gradient-solar': 'var(--gradient-solar)', + 'gradient-wind': 'var(--gradient-wind)', + 'gradient-geo': 'var(--gradient-geo)', + 'gradient-battery': 'var(--gradient-battery)', + 'gradient-hero': 'var(--gradient-hero)' + }, + boxShadow: { + 'solar': 'var(--shadow-solar)', + 'wind': 'var(--shadow-wind)', + 'geo': 'var(--shadow-geo)', + 'battery': 'var(--shadow-battery)' + }, + transitionTimingFunction: { + 'smooth': 'cubic-bezier(0.4, 0, 0.2, 1)', + 'bounce': 'cubic-bezier(0.68, -0.55, 0.265, 1.55)' + }, borderRadius: { lg: 'var(--radius)', md: 'calc(var(--radius) - 2px)',