diff --git a/web/app/globals.css b/web/app/globals.css index ed2de9d..21bea7b 100644 --- a/web/app/globals.css +++ b/web/app/globals.css @@ -126,3 +126,7 @@ body { ); background-size: 20px 20px; } + +.perspective-1000 { + perspective: 1000px; +} diff --git a/web/components/3d-dancing-header.tsx b/web/components/3d-dancing-header.tsx new file mode 100644 index 0000000..6ae618c --- /dev/null +++ b/web/components/3d-dancing-header.tsx @@ -0,0 +1,67 @@ +import React, { useEffect } from "react"; +import { motion, useAnimationControls } from "framer-motion"; + +const Dancing3DHeading = () => { + const controls = useAnimationControls(); + + const headingVariants = { + hidden: { opacity: 0, y: 50 }, + visible: { + opacity: 1, + y: 0, + transition: { duration: 0.8, ease: "easeOut" }, + }, + hover: { + scale: 1.05, + rotateX: 10, + rotateY: 10, + transition: { duration: 0.3, ease: "easeInOut" }, + }, + }; + + useEffect(() => { + controls.start((i) => ({ + y: [0, -10, 0], + transition: { + repeat: Infinity, + repeatType: "mirror", + duration: 1 + i * 0.1, + ease: "easeInOut", + }, + })); + }, [controls]); + + const text = "Empower Your Data with DataVinci"; + + return ( + + {text.split(" ").map((word, wordIndex) => ( + + {word.split("").map((char, charIndex) => ( + + {char} + + ))} + {wordIndex < text.split(" ").length - 1 && "\u00A0"} + + ))} + + ); +}; + +export default Dancing3DHeading; diff --git a/web/components/hover-animated-3d.tsx b/web/components/hover-animated-3d.tsx new file mode 100644 index 0000000..0da4caa --- /dev/null +++ b/web/components/hover-animated-3d.tsx @@ -0,0 +1,58 @@ +import React from "react"; +import { motion, Variants } from "framer-motion"; + +const HoverAnimated3DHeading: React.FC = () => { + const headingVariants: Variants = { + initial: { opacity: 1, y: 0 }, + hover: { + scale: 1.05, + rotateX: 10, + rotateY: 10, + transition: { duration: 0.3, ease: "easeInOut" }, + }, + }; + + const letterVariants: Variants = { + initial: { y: 0 }, + hover: { + y: [-5, 5, -5], + transition: { repeat: Infinity, duration: 1, ease: "easeInOut" }, + }, + }; + + const text = "Empower Your Data with DataVinci"; + + return ( + + {text.split(" ").map((word, wordIndex) => ( + + {word.split("").map((char, charIndex) => ( + + {char} + + ))} + {wordIndex < text.split(" ").length - 1 && "\u00A0"} + + ))} + + ); +}; + +export default HoverAnimated3DHeading; diff --git a/web/components/landing-page.tsx b/web/components/landing-page.tsx index 2d8b68c..b86bac7 100644 --- a/web/components/landing-page.tsx +++ b/web/components/landing-page.tsx @@ -1,15 +1,9 @@ /* eslint-disable react/no-unescaped-entities */ "use client"; -import React, { useState, useEffect } from "react"; +import React, { useState, useEffect, ReactNode } from "react"; import Link from "next/link"; -import { - Card, - CardHeader, - CardTitle, - CardDescription, - CardContent, -} from "@/components/ui/card"; +import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"; import { motion, useScroll, useTransform } from "framer-motion"; import { LineChart, @@ -24,16 +18,13 @@ import { Database, Terminal, Chrome, - TrendingUp, - Package, - Info, - ChevronDown, - Code, Cpu, - GitBranch, Cloud, Share2, + Code, + GitBranch, } from "lucide-react"; +import Dancing3DHeading from "./3d-dancing-header"; const mockData = [ { name: "Jan", value: 4000 }, @@ -52,7 +43,7 @@ const features = [ "Connect to various databases, APIs, and data sources effortlessly.", }, { - icon: , + icon: , title: "Advanced Visualizations", description: "Create stunning, interactive charts and dashboards.", }, @@ -81,6 +72,23 @@ const features = [ }, ]; +interface GlowingCardProps { + children: ReactNode; + className?: string; +} + +const GlowingCard: React.FC = ({ + children, + className = "", +}) => ( + + {children} + +); + export function LandingPage() { const [isVisible, setIsVisible] = useState(false); const [activeTab, setActiveTab] = useState("aggregate"); @@ -110,43 +118,34 @@ export function LandingPage() { transition={{ duration: 0.5 }} style={{ opacity, scale }} > -
-
-
- + +
+ + DataVinci is the ultimate data management and visualization + platform for developers. Harness the power of your data with + advanced analytics, AI-driven insights, and seamless + integration. + + + - Empower Your Data with DataVinci - -
-
- + - DataVinci is the ultimate data management and visualization - platform for developers. Harness the power of your data with - advanced analytics, AI-driven insights, and seamless - integration. - - - - Get Started - - - View Demo - - -
+ View Demo + +
@@ -163,18 +162,19 @@ export function LandingPage() {
{features.map((feature, index) => ( - +
-
{feature.icon}
-

{feature.title}

+
+ {feature.icon} +
+

+ {feature.title} +

-

{feature.description}

-
+

+ {feature.description} +

+ ))}
@@ -190,36 +190,19 @@ export function LandingPage() { Explore DataVinci
- - - + {["aggregate", "visualize", "analyze"].map((tab) => ( + + ))}
@@ -233,22 +216,17 @@ export function LandingPage() { Connect seamlessly to various data sources:

-
- - Databases -
-
- - APIs -
-
- - Web Scraping -
-
- - Logs -
+ {[ + { icon: Database, text: "Databases" }, + { icon: Terminal, text: "APIs" }, + { icon: Chrome, text: "Web Scraping" }, + { icon: Terminal, text: "Logs" }, + ].map((item, index) => ( +
+ + {item.text} +
+ ))}
)} @@ -282,10 +260,14 @@ export function LandingPage() { Leverage advanced AI models for data analysis:

    -
  • Anomaly detection
  • -
  • Predictive analytics
  • -
  • Natural language processing
  • -
  • Pattern recognition
  • + {[ + "Anomaly detection", + "Predictive analytics", + "Natural language processing", + "Pattern recognition", + ].map((item, index) => ( +
  • {item}
  • + ))}
)} @@ -300,7 +282,7 @@ export function LandingPage() { variants={fadeIn} transition={{ duration: 0.5, delay: 0.6 }} > -
+

Built for Developers, by Developers

@@ -337,26 +319,21 @@ chart.save("sales_forecast.png")`} and integrate with your favorite tools.

    -
  • - - Custom data connectors -
  • -
  • - - Version control integration -
  • -
  • - - Cloud deployment options -
  • -
  • - - Collaboration features -
  • + {[ + { icon: Code, text: "Custom data connectors" }, + { icon: GitBranch, text: "Version control integration" }, + { icon: Cloud, text: "Cloud deployment options" }, + { icon: Share2, text: "Collaboration features" }, + ].map((item, index) => ( +
  • + + {item.text} +
  • + ))}
- +
- - - Open Source - - -

- Contribute to DataVinci's core and help shape the future of - data analysis. -

-
-
- - - Developer Forum - - -

- Connect with other developers, share insights, and get help - from the community. -

-
-
- - - Resources - - -

- Access tutorials, documentation, and best practices to make - the most of DataVinci. -

-
-
+ {[ + { + title: "Open Source", + content: + "Contribute to DataVinci's core and help shape the future of data analysis.", + }, + { + title: "Developer Forum", + content: + "Connect with other developers, share insights, and get help from the community.", + }, + { + title: "Resources", + content: + "Access tutorials, documentation, and best practices to make the most of DataVinci.", + }, + ].map((item, index) => ( + + + {item.title} + + +

+ {item.content} +

+
+
+ ))}
@@ -413,40 +385,39 @@ chart.save("sales_forecast.png")`} variants={fadeIn} transition={{ duration: 0.5, delay: 1 }} > -
+

What Developers Are Saying

-
-

- "DataVinci has revolutionized our data pipeline. It's - intuitive, powerful, and saves us countless hours every week." -

-

- - Sarah Chen, Senior Data Engineer -

-
-
-

- "The AI-powered insights have given us a competitive edge. - It's like having a data scientist on call 24/7." -

-

- - Alex Rodriguez, CTO -

-
-
-

- "DataVinci's extensibility is a game-changer. We've integrated - it seamlessly with our existing tools and workflows." -

-

- - Jamie Taylor, Lead Developer -

-
+ {[ + { + content: + "DataVinci has revolutionized our data pipeline. It's intuitive, powerful, and saves us countless hours every week.", + author: "Sarah Chen, Senior Data Engineer", + }, + { + content: + "The AI-powered insights have given us a competitive edge. It's like having a data scientist on call 24/7.", + author: "Alex Rodriguez, CTO", + }, + { + content: + "DataVinci's extensibility is a game-changer. We've integrated it seamlessly with our existing tools and workflows.", + author: "Jamie Taylor, Lead Developer", + }, + ].map((testimonial, index) => ( + +

+ "{testimonial.content}" +

+

+ - {testimonial.author} +

+
+ ))}
-
+ -
+

Ready to Transform Your Data?

-

+

Join thousands of developers who are already leveraging DataVinci to unlock the full potential of their data.

@@ -480,161 +451,52 @@ chart.save("sales_forecast.png")`} Schedule a Demo
- +