Merge version_1 into main #2
@@ -19,8 +19,7 @@ export default function GeneratorPage() {
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Product",
|
||||
items: [
|
||||
title: "Product", items: [
|
||||
{ label: "Idea Generator", href: "/generator" },
|
||||
{ label: "Creator Tools", href: "#tools" },
|
||||
{ label: "Categories", href: "#categories" },
|
||||
@@ -28,8 +27,7 @@ export default function GeneratorPage() {
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Resources",
|
||||
items: [
|
||||
title: "Resources", items: [
|
||||
{ label: "Creator Tips Blog", href: "/blog" },
|
||||
{ label: "Documentation", href: "#" },
|
||||
{ label: "API Reference", href: "#" },
|
||||
@@ -37,8 +35,7 @@ export default function GeneratorPage() {
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
title: "Company", items: [
|
||||
{ label: "About Us", href: "#" },
|
||||
{ label: "Contact", href: "#" },
|
||||
{ label: "Privacy Policy", href: "#" },
|
||||
@@ -54,7 +51,7 @@ export default function GeneratorPage() {
|
||||
borderRadius="soft"
|
||||
contentWidth="mediumLarge"
|
||||
sizing="medium"
|
||||
background="noise"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="gradient"
|
||||
secondaryButtonStyle="radial-glow"
|
||||
@@ -64,9 +61,7 @@ export default function GeneratorPage() {
|
||||
<NavbarStyleCentered
|
||||
navItems={navItems}
|
||||
button={{
|
||||
text: "Start Creating",
|
||||
href: "/generator",
|
||||
}}
|
||||
text: "Start Creating", href: "/generator"}}
|
||||
brandName="ViralSpark"
|
||||
/>
|
||||
</div>
|
||||
@@ -75,7 +70,7 @@ export default function GeneratorPage() {
|
||||
<HeroLogoBillboardSplit
|
||||
logoText="IDEA GENERATOR"
|
||||
description="Unlock unlimited viral video concepts with AI-powered idea generation. Get personalized suggestions for your niche, optimize every element, and start creating content that trends. Powered by machine learning trained on millions of viral videos."
|
||||
background={{ variant: "noise" }}
|
||||
background={{ variant: "radial-gradient" }}
|
||||
buttons={[
|
||||
{ text: "Generate Now", href: "#" },
|
||||
{ text: "View Examples", href: "#" },
|
||||
@@ -93,42 +88,20 @@ export default function GeneratorPage() {
|
||||
<PricingCardThree
|
||||
plans={[
|
||||
{
|
||||
id: "title-gen",
|
||||
price: "Free",
|
||||
name: "Title Generator",
|
||||
buttons: [{ text: "Start Generating", href: "#" }],
|
||||
id: "title-gen", price: "Free", name: "Title Generator", buttons: [{ text: "Start Generating", href: "#" }],
|
||||
features: [
|
||||
"AI-powered title suggestions",
|
||||
"SEO-optimized for discovery",
|
||||
"Trending keyword analysis",
|
||||
"Unlimited generation attempts",
|
||||
],
|
||||
"AI-powered title suggestions", "SEO-optimized for discovery", "Trending keyword analysis", "Unlimited generation attempts"],
|
||||
},
|
||||
{
|
||||
id: "hook-gen",
|
||||
badge: "Most Powerful",
|
||||
badgeIcon: Sparkles,
|
||||
price: "Free",
|
||||
name: "Hook Generator",
|
||||
buttons: [{ text: "Start Generating", href: "#" }],
|
||||
id: "hook-gen", badge: "Most Powerful", badgeIcon: Sparkles,
|
||||
price: "Free", name: "Hook Generator", buttons: [{ text: "Start Generating", href: "#" }],
|
||||
features: [
|
||||
"First 3-second hook formulas",
|
||||
"Platform-specific optimization",
|
||||
"Psychological engagement triggers",
|
||||
"Real-time performance feedback",
|
||||
],
|
||||
"First 3-second hook formulas", "Platform-specific optimization", "Psychological engagement triggers", "Real-time performance feedback"],
|
||||
},
|
||||
{
|
||||
id: "thumbnail-gen",
|
||||
price: "Free",
|
||||
name: "Thumbnail Text",
|
||||
buttons: [{ text: "Start Generating", href: "#" }],
|
||||
id: "thumbnail-gen", price: "Free", name: "Thumbnail Text", buttons: [{ text: "Start Generating", href: "#" }],
|
||||
features: [
|
||||
"Eye-catching text overlays",
|
||||
"Font pairing suggestions",
|
||||
"Color psychology matching",
|
||||
"Live thumbnail preview",
|
||||
],
|
||||
"Eye-catching text overlays", "Font pairing suggestions", "Color psychology matching", "Live thumbnail preview"],
|
||||
},
|
||||
]}
|
||||
title="AI-Powered Content Tools"
|
||||
|
||||
209
src/app/page.tsx
209
src/app/page.tsx
@@ -23,8 +23,7 @@ export default function HomePage() {
|
||||
|
||||
const footerColumns = [
|
||||
{
|
||||
title: "Product",
|
||||
items: [
|
||||
title: "Product", items: [
|
||||
{ label: "Idea Generator", href: "/generator" },
|
||||
{ label: "Creator Tools", href: "#tools" },
|
||||
{ label: "Categories", href: "#categories" },
|
||||
@@ -32,8 +31,7 @@ export default function HomePage() {
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Resources",
|
||||
items: [
|
||||
title: "Resources", items: [
|
||||
{ label: "Creator Tips Blog", href: "/blog" },
|
||||
{ label: "Documentation", href: "#" },
|
||||
{ label: "API Reference", href: "#" },
|
||||
@@ -41,8 +39,7 @@ export default function HomePage() {
|
||||
],
|
||||
},
|
||||
{
|
||||
title: "Company",
|
||||
items: [
|
||||
title: "Company", items: [
|
||||
{ label: "About Us", href: "#" },
|
||||
{ label: "Contact", href: "#" },
|
||||
{ label: "Privacy Policy", href: "#" },
|
||||
@@ -58,7 +55,7 @@ export default function HomePage() {
|
||||
borderRadius="soft"
|
||||
contentWidth="mediumLarge"
|
||||
sizing="medium"
|
||||
background="noise"
|
||||
background="circleGradient"
|
||||
cardStyle="glass-elevated"
|
||||
primaryButtonStyle="gradient"
|
||||
secondaryButtonStyle="radial-glow"
|
||||
@@ -68,9 +65,7 @@ export default function HomePage() {
|
||||
<NavbarStyleCentered
|
||||
navItems={navItems}
|
||||
button={{
|
||||
text: "Start Creating",
|
||||
href: "/generator",
|
||||
}}
|
||||
text: "Start Creating", href: "/generator"}}
|
||||
brandName="ViralSpark"
|
||||
/>
|
||||
</div>
|
||||
@@ -79,13 +74,13 @@ export default function HomePage() {
|
||||
<HeroLogoBillboardSplit
|
||||
logoText="VIRALSPARK"
|
||||
description="Never run out of viral ideas. Get instant YouTube Shorts, TikTok, and social media video concepts powered by AI. Generate hooks, titles, and thumbnail text in seconds."
|
||||
background={{ variant: "noise" }}
|
||||
background={{ variant: "radial-gradient" }}
|
||||
buttons={[
|
||||
{ text: "Generate Idea", href: "/generator" },
|
||||
{ text: "Explore Categories", href: "#categories" },
|
||||
]}
|
||||
layoutOrder="default"
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AmWlwff0FtmoItRzjz0krmLJ7e/a-sleek-futuristic-ai-dashboard-interfac-1773198527173-b6dc6974.png?_wi=1"
|
||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AmWlwff0FtmoItRzjz0krmLJ7e/a-sleek-futuristic-ai-dashboard-interfac-1773198527173-b6dc6974.png"
|
||||
imageAlt="ViralSpark AI Dashboard"
|
||||
frameStyle="browser"
|
||||
buttonAnimation="slide-up"
|
||||
@@ -97,63 +92,28 @@ export default function HomePage() {
|
||||
<FeatureCardTwelve
|
||||
features={[
|
||||
{
|
||||
id: "shorts",
|
||||
label: "Shorts",
|
||||
title: "YouTube Shorts Ideas",
|
||||
items: [
|
||||
"High-engagement hooks",
|
||||
"30-60 second concepts",
|
||||
"Viral optimization",
|
||||
"Algorithm-friendly formats",
|
||||
],
|
||||
id: "shorts", label: "Shorts", title: "YouTube Shorts Ideas", items: [
|
||||
"High-engagement hooks", "30-60 second concepts", "Viral optimization", "Algorithm-friendly formats"],
|
||||
buttons: [{ text: "Explore", href: "#" }],
|
||||
},
|
||||
{
|
||||
id: "gaming",
|
||||
label: "Gaming",
|
||||
title: "Gaming Content Concepts",
|
||||
items: [
|
||||
"Livestream highlights",
|
||||
"Clip suggestions",
|
||||
"Game-specific trends",
|
||||
"Community engagement ideas",
|
||||
],
|
||||
id: "gaming", label: "Gaming", title: "Gaming Content Concepts", items: [
|
||||
"Livestream highlights", "Clip suggestions", "Game-specific trends", "Community engagement ideas"],
|
||||
buttons: [{ text: "Explore", href: "#" }],
|
||||
},
|
||||
{
|
||||
id: "motivation",
|
||||
label: "Motivation",
|
||||
title: "Inspirational Content",
|
||||
items: [
|
||||
"Daily affirmations",
|
||||
"Success stories",
|
||||
"Personal development",
|
||||
"Transformation narratives",
|
||||
],
|
||||
id: "motivation", label: "Motivation", title: "Inspirational Content", items: [
|
||||
"Daily affirmations", "Success stories", "Personal development", "Transformation narratives"],
|
||||
buttons: [{ text: "Explore", href: "#" }],
|
||||
},
|
||||
{
|
||||
id: "football",
|
||||
label: "Football",
|
||||
title: "Sports Content Ideas",
|
||||
items: [
|
||||
"Match highlights",
|
||||
"Player analysis",
|
||||
"Fantasy insights",
|
||||
"Trending moments",
|
||||
],
|
||||
id: "football", label: "Football", title: "Sports Content Ideas", items: [
|
||||
"Match highlights", "Player analysis", "Fantasy insights", "Trending moments"],
|
||||
buttons: [{ text: "Explore", href: "#" }],
|
||||
},
|
||||
{
|
||||
id: "tech",
|
||||
label: "AI & Tech",
|
||||
title: "Technology Updates",
|
||||
items: [
|
||||
"AI breakthroughs",
|
||||
"Tech reviews",
|
||||
"Product launches",
|
||||
"Future trends",
|
||||
],
|
||||
id: "tech", label: "AI & Tech", title: "Technology Updates", items: [
|
||||
"AI breakthroughs", "Tech reviews", "Product launches", "Future trends"],
|
||||
buttons: [{ text: "Explore", href: "#" }],
|
||||
},
|
||||
]}
|
||||
@@ -170,29 +130,14 @@ export default function HomePage() {
|
||||
<ProductCardOne
|
||||
products={[
|
||||
{
|
||||
id: "1",
|
||||
name: "Get Rich Quick Motivation",
|
||||
price: "1.2M Views",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AmWlwff0FtmoItRzjz0krmLJ7e/a-viral-youtube-shorts-thumbnail-with-bo-1773198527032-bf6cee8d.png",
|
||||
imageAlt: "Motivation video thumbnail",
|
||||
},
|
||||
id: "1", name: "Get Rich Quick Motivation", price: "1.2M Views", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AmWlwff0FtmoItRzjz0krmLJ7e/a-viral-youtube-shorts-thumbnail-with-bo-1773198527032-bf6cee8d.png", imageAlt: "Motivation video thumbnail"},
|
||||
{
|
||||
id: "2",
|
||||
name: "Gaming Rage Reaction",
|
||||
price: "980K Views",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AmWlwff0FtmoItRzjz0krmLJ7e/a-gaming-related-viral-video-thumbnail-w-1773198526863-31ffa9db.png",
|
||||
imageAlt: "Gaming content thumbnail",
|
||||
},
|
||||
id: "2", name: "Gaming Rage Reaction", price: "980K Views", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AmWlwff0FtmoItRzjz0krmLJ7e/a-gaming-related-viral-video-thumbnail-w-1773198526863-31ffa9db.png", imageAlt: "Gaming content thumbnail"},
|
||||
{
|
||||
id: "3",
|
||||
name: "AI Breakthrough Explained",
|
||||
price: "750K Views",
|
||||
imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AmWlwff0FtmoItRzjz0krmLJ7e/a-motivational-inspirational-video-thumb-1773198526708-d81e8189.png",
|
||||
imageAlt: "Tech content thumbnail",
|
||||
},
|
||||
id: "3", name: "AI Breakthrough Explained", price: "750K Views", imageSrc:
|
||||
"https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AmWlwff0FtmoItRzjz0krmLJ7e/a-motivational-inspirational-video-thumb-1773198526708-d81e8189.png", imageAlt: "Tech content thumbnail"},
|
||||
]}
|
||||
title="Trending Ideas"
|
||||
description="See what's going viral this week across all platforms."
|
||||
@@ -208,42 +153,20 @@ export default function HomePage() {
|
||||
<PricingCardThree
|
||||
plans={[
|
||||
{
|
||||
id: "title-gen",
|
||||
price: "Free",
|
||||
name: "Title Generator",
|
||||
buttons: [{ text: "Try Now", href: "/generator" }],
|
||||
id: "title-gen", price: "Free", name: "Title Generator", buttons: [{ text: "Try Now", href: "/generator" }],
|
||||
features: [
|
||||
"AI-powered suggestions",
|
||||
"SEO optimization",
|
||||
"Trend analysis",
|
||||
"Unlimited generations",
|
||||
],
|
||||
"AI-powered suggestions", "SEO optimization", "Trend analysis", "Unlimited generations"],
|
||||
},
|
||||
{
|
||||
id: "hook-gen",
|
||||
badge: "Most Popular",
|
||||
badgeIcon: Sparkles,
|
||||
price: "Free",
|
||||
name: "Hook Generator",
|
||||
buttons: [{ text: "Try Now", href: "/generator" }],
|
||||
id: "hook-gen", badge: "Most Popular", badgeIcon: Sparkles,
|
||||
price: "Free", name: "Hook Generator", buttons: [{ text: "Try Now", href: "/generator" }],
|
||||
features: [
|
||||
"First 3-second hooks",
|
||||
"Platform-specific",
|
||||
"Psychology-based",
|
||||
"Real-time feedback",
|
||||
],
|
||||
"First 3-second hooks", "Platform-specific", "Psychology-based", "Real-time feedback"],
|
||||
},
|
||||
{
|
||||
id: "thumbnail-gen",
|
||||
price: "Free",
|
||||
name: "Thumbnail Text",
|
||||
buttons: [{ text: "Try Now", href: "/generator" }],
|
||||
id: "thumbnail-gen", price: "Free", name: "Thumbnail Text", buttons: [{ text: "Try Now", href: "/generator" }],
|
||||
features: [
|
||||
"Text overlay ideas",
|
||||
"Font suggestions",
|
||||
"Color matching",
|
||||
"Preview generator",
|
||||
],
|
||||
"Text overlay ideas", "Font suggestions", "Color matching", "Preview generator"],
|
||||
},
|
||||
]}
|
||||
title="Creator Tools"
|
||||
@@ -259,65 +182,29 @@ export default function HomePage() {
|
||||
<TestimonialCardThirteen
|
||||
testimonials={[
|
||||
{
|
||||
id: "1",
|
||||
name: "Alex Chen",
|
||||
handle: "@alexcreates",
|
||||
testimonial:
|
||||
"ViralSpark saved me hours. I went from 10K to 100K subscribers in 3 months using their idea generator.",
|
||||
rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp?_wi=1",
|
||||
imageAlt: "Alex Chen",
|
||||
},
|
||||
id: "1", name: "Alex Chen", handle: "@alexcreates", testimonial:
|
||||
"ViralSpark saved me hours. I went from 10K to 100K subscribers in 3 months using their idea generator.", rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp", imageAlt: "Alex Chen"},
|
||||
{
|
||||
id: "2",
|
||||
name: "Maya Rodriguez",
|
||||
handle: "@mayatech",
|
||||
testimonial:
|
||||
"The hook generator changed everything. My click-through rate jumped 40% after using these suggestions.",
|
||||
rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp?_wi=2",
|
||||
imageAlt: "Maya Rodriguez",
|
||||
},
|
||||
id: "2", name: "Maya Rodriguez", handle: "@mayatech", testimonial:
|
||||
"The hook generator changed everything. My click-through rate jumped 40% after using these suggestions.", rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp", imageAlt: "Maya Rodriguez"},
|
||||
{
|
||||
id: "3",
|
||||
name: "Jordan Kim",
|
||||
handle: "@jordangames",
|
||||
testimonial:
|
||||
"Finally, a tool that understands gaming content. My stream thumbnails look 10x better now.",
|
||||
rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp?_wi=3",
|
||||
imageAlt: "Jordan Kim",
|
||||
},
|
||||
id: "3", name: "Jordan Kim", handle: "@jordangames", testimonial:
|
||||
"Finally, a tool that understands gaming content. My stream thumbnails look 10x better now.", rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp", imageAlt: "Jordan Kim"},
|
||||
{
|
||||
id: "4",
|
||||
name: "Taylor Swift",
|
||||
handle: "@musiccreator",
|
||||
testimonial:
|
||||
"ViralSpark's AI predictions are insane. I'm now consistently hitting trending status with their ideas.",
|
||||
rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp?_wi=4",
|
||||
imageAlt: "Taylor Swift",
|
||||
},
|
||||
id: "4", name: "Taylor Swift", handle: "@musiccreator", testimonial:
|
||||
"ViralSpark's AI predictions are insane. I'm now consistently hitting trending status with their ideas.", rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp", imageAlt: "Taylor Swift"},
|
||||
{
|
||||
id: "5",
|
||||
name: "Marcus Johnson",
|
||||
handle: "@motivatemarx",
|
||||
testimonial:
|
||||
"Best investment I made for my channel. The content suggestions are genuinely helpful.",
|
||||
rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp?_wi=5",
|
||||
imageAlt: "Marcus Johnson",
|
||||
},
|
||||
id: "5", name: "Marcus Johnson", handle: "@motivatemarx", testimonial:
|
||||
"Best investment I made for my channel. The content suggestions are genuinely helpful.", rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp", imageAlt: "Marcus Johnson"},
|
||||
{
|
||||
id: "6",
|
||||
name: "Sophie Chen",
|
||||
handle: "@sophieinnovates",
|
||||
testimonial:
|
||||
"The AI tech behind ViralSpark is actually incredible. Worth every penny for serious creators.",
|
||||
rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp?_wi=6",
|
||||
imageAlt: "Sophie Chen",
|
||||
},
|
||||
id: "6", name: "Sophie Chen", handle: "@sophieinnovates", testimonial:
|
||||
"The AI tech behind ViralSpark is actually incredible. Worth every penny for serious creators.", rating: 5,
|
||||
imageSrc: "/placeholders/placeholder1.webp", imageAlt: "Sophie Chen"},
|
||||
]}
|
||||
showRating={true}
|
||||
animationType="slide-up"
|
||||
|
||||
@@ -1,51 +1,36 @@
|
||||
"use client";
|
||||
|
||||
import { memo } from "react";
|
||||
import useSvgTextLogo from "./useSvgTextLogo";
|
||||
import { cls } from "@/lib/utils";
|
||||
import React from "react";
|
||||
|
||||
interface SvgTextLogoProps {
|
||||
logoText: string;
|
||||
adjustHeightFactor?: number;
|
||||
verticalAlign?: "top" | "center";
|
||||
text: string;
|
||||
className?: string;
|
||||
fontSize?: number;
|
||||
fontWeight?: string | number;
|
||||
dominantBaseline?: "auto" | "text-bottom" | "alphabetic" | "ideographic" | "middle" | "central" | "mathematical" | "hanging";
|
||||
}
|
||||
|
||||
const SvgTextLogo = memo<SvgTextLogoProps>(function SvgTextLogo({
|
||||
logoText,
|
||||
adjustHeightFactor,
|
||||
verticalAlign = "top",
|
||||
className = "",
|
||||
}) {
|
||||
const { svgRef, textRef, viewBox, aspectRatio } = useSvgTextLogo(logoText, false, adjustHeightFactor);
|
||||
|
||||
const SvgTextLogo: React.FC<SvgTextLogoProps> = ({
|
||||
text,
|
||||
className = "", fontSize = 48,
|
||||
fontWeight = "bold", dominantBaseline = "middle"}) => {
|
||||
return (
|
||||
<svg
|
||||
ref={svgRef}
|
||||
viewBox={viewBox}
|
||||
className={cls("w-full", className)}
|
||||
style={{ aspectRatio: aspectRatio }}
|
||||
preserveAspectRatio="none"
|
||||
role="img"
|
||||
aria-label={`${logoText} logo`}
|
||||
viewBox={`0 0 ${text.length * fontSize * 0.6} ${fontSize * 1.2}`}
|
||||
className={`w-full h-auto ${className}`}
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
>
|
||||
<text
|
||||
ref={textRef}
|
||||
x="0"
|
||||
y={verticalAlign === "center" ? "50%" : "0"}
|
||||
className="font-bold fill-current"
|
||||
style={{
|
||||
fontSize: "20px",
|
||||
letterSpacing: "-0.02em",
|
||||
dominantBaseline: verticalAlign === "center" ? "middle" : "text-before-edge"
|
||||
}}
|
||||
x="50%"
|
||||
y="50%"
|
||||
textAnchor="middle"
|
||||
dominantBaseline={dominantBaseline}
|
||||
fontSize={fontSize}
|
||||
fontWeight={fontWeight}
|
||||
fill="currentColor"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user