Merge version_1 into main #2
134
src/app/page.tsx
134
src/app/page.tsx
@@ -1,12 +1,14 @@
|
||||
"use client";
|
||||
|
||||
import Link from "next/link";
|
||||
import { Music } from "lucide-react";
|
||||
import { Music, Video, Calendar, Mail } from "lucide-react";
|
||||
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
|
||||
import NavbarStyleFullscreen from "@/components/navbar/NavbarStyleFullscreen/NavbarStyleFullscreen";
|
||||
import HeroBillboard from "@/components/sections/hero/HeroBillboard";
|
||||
import InlineImageSplitTextAbout from "@/components/sections/about/InlineImageSplitTextAbout";
|
||||
import FeatureCardOne from "@/components/sections/feature/FeatureCardOne";
|
||||
import BlogCardOne from "@/components/sections/blog/BlogCardOne";
|
||||
import PricingCardTwo from "@/components/sections/pricing/PricingCardTwo";
|
||||
import ContactSplit from "@/components/sections/contact/ContactSplit";
|
||||
import FooterLogoReveal from "@/components/sections/footer/FooterLogoReveal";
|
||||
|
||||
@@ -26,7 +28,7 @@ export default function HomePage() {
|
||||
borderRadius="rounded"
|
||||
contentWidth="mediumLarge"
|
||||
sizing="large"
|
||||
background="circleGradient"
|
||||
background="sparkles-gradient"
|
||||
cardStyle="gradient-mesh"
|
||||
primaryButtonStyle="flat"
|
||||
secondaryButtonStyle="layered"
|
||||
@@ -45,18 +47,14 @@ export default function HomePage() {
|
||||
<HeroBillboard
|
||||
title="Daniel Azizov"
|
||||
description="Singer • Performer"
|
||||
background={{ variant: "circleGradient" }}
|
||||
background={{ variant: "sparkles-gradient" }}
|
||||
imageSrc="http://img.b2bpic.net/free-vector/music-festival-background-flat-style_23-2147781208.jpg"
|
||||
imageAlt="Stage lights concert atmosphere"
|
||||
buttons={[
|
||||
{
|
||||
text: "Listen to Music",
|
||||
href: "/music",
|
||||
},
|
||||
text: "Listen to Music", href: "/music"},
|
||||
{
|
||||
text: "Watch Videos",
|
||||
href: "/videos",
|
||||
},
|
||||
text: "Watch Videos", href: "/videos"},
|
||||
]}
|
||||
buttonAnimation="blur-reveal"
|
||||
mediaAnimation="slide-up"
|
||||
@@ -67,15 +65,11 @@ export default function HomePage() {
|
||||
<InlineImageSplitTextAbout
|
||||
heading={[
|
||||
{
|
||||
type: "text",
|
||||
content: "Daniel Azizov - Young Vocal Talent from Uzbekistan",
|
||||
},
|
||||
type: "text", content: "Daniel Azizov - Young Vocal Talent from Uzbekistan"},
|
||||
]}
|
||||
buttons={[
|
||||
{
|
||||
text: "Learn More",
|
||||
href: "/about",
|
||||
},
|
||||
text: "Learn More", href: "/about"},
|
||||
]}
|
||||
buttonAnimation="blur-reveal"
|
||||
useInvertedBackground={false}
|
||||
@@ -86,34 +80,19 @@ export default function HomePage() {
|
||||
<FeatureCardOne
|
||||
features={[
|
||||
{
|
||||
title: "Ovoz Bolalar",
|
||||
description:
|
||||
"A powerful rendition showcasing vocal range and emotional performance",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-bearded-smiling-black-man-wool-suit_613910-16049.jpg?_wi=1",
|
||||
button: {
|
||||
text: "Play All Tracks",
|
||||
href: "/music",
|
||||
},
|
||||
title: "Ovoz Bolalar", description:
|
||||
"A powerful rendition showcasing vocal range and emotional performance", imageSrc: "http://img.b2bpic.net/free-photo/close-up-portrait-bearded-smiling-black-man-wool-suit_613910-16049.jpg", button: {
|
||||
text: "Play All Tracks", href: "/music"},
|
||||
},
|
||||
{
|
||||
title: "What's Up (Cover)",
|
||||
description:
|
||||
"Daniel's unique interpretation of the classic 4 Non Blondes hit",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/artistic-woman_23-2147781679.jpg?_wi=1",
|
||||
button: {
|
||||
text: "View Playlist",
|
||||
href: "/music",
|
||||
},
|
||||
title: "What's Up (Cover)", description:
|
||||
"Daniel's unique interpretation of the classic 4 Non Blondes hit", imageSrc: "http://img.b2bpic.net/free-photo/artistic-woman_23-2147781679.jpg", button: {
|
||||
text: "View Playlist", href: "/music"},
|
||||
},
|
||||
{
|
||||
title: "Original Compositions",
|
||||
description:
|
||||
"Explore Daniel's original songs and unreleased material",
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/control-room-desk-equipped-with-motorized-faders-amplifier_482257-124486.jpg?_wi=1",
|
||||
button: {
|
||||
text: "Discover More",
|
||||
href: "/music",
|
||||
},
|
||||
title: "Original Compositions", description:
|
||||
"Explore Daniel's original songs and unreleased material", imageSrc: "http://img.b2bpic.net/free-photo/control-room-desk-equipped-with-motorized-faders-amplifier_482257-124486.jpg", button: {
|
||||
text: "Discover More", href: "/music"},
|
||||
},
|
||||
]}
|
||||
title="Featured Tracks"
|
||||
@@ -127,6 +106,73 @@ export default function HomePage() {
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="videos" data-section="videos">
|
||||
<BlogCardOne
|
||||
blogs={[
|
||||
{
|
||||
id: "1", category: "Performance", title: "Ovoz Bolalar - Live Performance", excerpt: "Daniel's winning performance from Ovoz Bolalar vocal competition", imageSrc: "http://img.b2bpic.net/free-photo/musicial-music-live-band-performing-stage-with-different-lights_627829-10059.jpg", authorName: "Daniel Azizov", authorAvatar: "http://img.b2bpic.net/free-photo/medium-shot-man-creating-van-gogh-s-characterization_23-2149736182.jpg", date: "2024"},
|
||||
{
|
||||
id: "2", category: "Cover", title: "What's Up - 4 Non Blondes Cover", excerpt: "An energetic cover performance showcasing vocal versatility", imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-man-stage-with-microphone_23-2149215618.jpg", authorName: "Daniel Azizov", authorAvatar: "http://img.b2bpic.net/free-photo/medium-shot-man-creating-van-gogh-s-characterization_23-2149736182.jpg", date: "2024"},
|
||||
{
|
||||
id: "3", category: "International", title: "Performance in Dubai", excerpt: "Daniel's international performance at the UAE music festival", imageSrc: "http://img.b2bpic.net/free-photo/unrecognizable-person-photographing-with-smart-phone-stage-performers-music-festival_637285-575.jpg", authorName: "Daniel Azizov", authorAvatar: "http://img.b2bpic.net/free-photo/medium-shot-man-creating-van-gogh-s-characterization_23-2149736182.jpg", date: "2023"},
|
||||
{
|
||||
id: "4", category: "International", title: "Batumi Concert Series", excerpt: "Live performance at the Batumi International Music Festival in Georgia", imageSrc: "http://img.b2bpic.net/free-photo/female-rock-star-blowing-bubbles-from-chewing-gum-nightclub_482257-117350.jpg", authorName: "Daniel Azizov", authorAvatar: "http://img.b2bpic.net/free-photo/medium-shot-man-creating-van-gogh-s-characterization_23-2149736182.jpg", date: "2023"},
|
||||
]}
|
||||
title="Video Gallery"
|
||||
description="Watch Daniel perform across different stages and events"
|
||||
tag="Videos"
|
||||
tagIcon={Video}
|
||||
textboxLayout="default"
|
||||
animationType="slide-up"
|
||||
useInvertedBackground={false}
|
||||
carouselMode="buttons"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="live-shows" data-section="live-shows">
|
||||
<PricingCardTwo
|
||||
plans={[
|
||||
{
|
||||
id: "1", badge: "Chimgan Solo Concert", price: "Contact for Details", subtitle: "Daniel's first solo concert performance", buttons: [
|
||||
{
|
||||
text: "Buy Tickets", href: "#contact"},
|
||||
{
|
||||
text: "Learn More", href: "/shows"},
|
||||
],
|
||||
features: [
|
||||
"Live vocal performance", "Original compositions & covers", "Meet and greet opportunities", "Professional stage production"],
|
||||
},
|
||||
{
|
||||
id: "2", badge: "Festival Appearances", price: "TBA", subtitle: "International festival performances", buttons: [
|
||||
{
|
||||
text: "Get Updates", href: "#contact"},
|
||||
{
|
||||
text: "Subscribe", href: "#contact"},
|
||||
],
|
||||
features: [
|
||||
"Festival line-up performances", "International stages", "Networking opportunities", "Exclusive behind-the-scenes"],
|
||||
},
|
||||
{
|
||||
id: "3", badge: "Private Events", price: "Custom Quote", subtitle: "Book Daniel for your event", buttons: [
|
||||
{
|
||||
text: "Inquire Booking", href: "#contact"},
|
||||
{
|
||||
text: "Packages", href: "/shows"},
|
||||
],
|
||||
features: [
|
||||
"Custom setlist options", "Flexible performance length", "Professional sound system", "Event coordination support"],
|
||||
},
|
||||
]}
|
||||
title="Upcoming Live Shows"
|
||||
description="Book tickets to see Daniel perform live in your city"
|
||||
tag="Events"
|
||||
tagIcon={Calendar}
|
||||
textboxLayout="default"
|
||||
animationType="slide-up"
|
||||
useInvertedBackground={true}
|
||||
/>
|
||||
</div>
|
||||
|
||||
<div id="contact" data-section="contact">
|
||||
<ContactSplit
|
||||
tag="Get In Touch"
|
||||
@@ -134,7 +180,7 @@ export default function HomePage() {
|
||||
description="For booking inquiries, collaboration opportunities, or general questions, reach out through email or social media."
|
||||
background={{ variant: "sparkles-gradient" }}
|
||||
useInvertedBackground={false}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/smiley-woman-playing-guitar-medium-shot_23-2149200005.jpg?_wi=1"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/smiley-woman-playing-guitar-medium-shot_23-2149200005.jpg"
|
||||
imageAlt="Daniel Azizov performing"
|
||||
mediaAnimation="slide-up"
|
||||
mediaPosition="right"
|
||||
@@ -148,13 +194,9 @@ export default function HomePage() {
|
||||
<FooterLogoReveal
|
||||
logoText="Daniel Azizov"
|
||||
leftLink={{
|
||||
text: "© 2024 Daniel Azizov. All Rights Reserved.",
|
||||
href: "#",
|
||||
}}
|
||||
text: "© 2024 Daniel Azizov. All Rights Reserved.", href: "#"}}
|
||||
rightLink={{
|
||||
text: "All songs belong to their respective owners.",
|
||||
href: "#",
|
||||
}}
|
||||
text: "All songs belong to their respective owners.", href: "#"}}
|
||||
/>
|
||||
</div>
|
||||
</ThemeProvider>
|
||||
|
||||
@@ -1,51 +1,30 @@
|
||||
"use client";
|
||||
import React from 'react';
|
||||
|
||||
import { memo } from "react";
|
||||
import useSvgTextLogo from "./useSvgTextLogo";
|
||||
import { cls } from "@/lib/utils";
|
||||
|
||||
interface SvgTextLogoProps {
|
||||
logoText: string;
|
||||
adjustHeightFactor?: number;
|
||||
verticalAlign?: "top" | "center";
|
||||
export interface SvgTextLogoProps {
|
||||
text: string;
|
||||
className?: string;
|
||||
}
|
||||
|
||||
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 = '' }) => {
|
||||
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 300 100"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
className={className}
|
||||
aria-label={text}
|
||||
>
|
||||
<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%"
|
||||
dominantBaseline="central"
|
||||
textAnchor="middle"
|
||||
className="fill-current font-bold text-lg"
|
||||
fontSize="48"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user