Merge version_2 into main #1

Merged
bender merged 3 commits from version_2 into main 2026-03-03 12:28:29 +00:00
3 changed files with 182 additions and 35 deletions

View File

@@ -1,20 +1,9 @@
import type { Metadata } from "next";
import { Raleway } from "next/font/google";
import { Halant } from "next/font/google";
import { Inter } from "next/font/google";
import "./globals.css";
import { ServiceWrapper } from "@/components/ServiceWrapper";
import Tag from "@/tag/Tag";
const raleway = Raleway({
variable: "--font-raleway", subsets: ["latin"],
});
const halant = Halant({
variable: "--font-halant", subsets: ["latin"],
weight: ["300", "400", "500", "600", "700"],
});
const inter = Inter({
variable: "--font-inter", subsets: ["latin"],
});
@@ -22,33 +11,33 @@ const inter = Inter({
export const metadata: Metadata = {
title: "EliteStream - Premium Streaming Service", description: "Stream unlimited movies, series, and exclusive content in 4K. Watch anywhere, anytime on any device. Start your free trial today.", keywords: "streaming service, movies, TV series, 4K streaming, unlimited content, entertainment", metadataBase: new URL("https://www.elitestream.stream/"),
alternates: {
canonical: "https://www.elitestream.stream/"},
canonical: "https://www.elitestream.stream/"
},
openGraph: {
title: "EliteStream - Premium Entertainment Streaming", description: "Experience premium streaming with thousands of movies and series in stunning 4K quality.", url: "https://www.elitestream.stream/", siteName: "EliteStream", type: "website", images: [
{
url: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/a-sleek-streaming-dashboard-interface-wi-1772540341145-9e37ac63.png", alt: "EliteStream streaming platform"},
],
url: "https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/a-sleek-streaming-dashboard-interface-wi-1772540341145-9e37ac63.png", alt: "EliteStream streaming platform"
}
]
},
twitter: {
card: "summary_large_image", title: "EliteStream - Premium Streaming", description: "Unlimited movies, series, and exclusive content in 4K.", images: ["https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/a-sleek-streaming-dashboard-interface-wi-1772540341145-9e37ac63.png"],
card: "summary_large_image", title: "EliteStream - Premium Streaming", description: "Unlimited movies, series, and exclusive content in 4K.", images: ["https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/a-sleek-streaming-dashboard-interface-wi-1772540341145-9e37ac63.png"]
},
robots: {
index: true,
follow: true,
},
follow: true
}
};
export default function RootLayout({
children,
children
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en" suppressHydrationWarning>
<ServiceWrapper>
<body
className={`${raleway.variable} ${halant.variable} ${inter.variable} antialiased`}
>
<body className={`${inter.variable} antialiased`}>
<Tag />
{children}

View File

@@ -10,8 +10,115 @@ import FaqBase from '@/components/sections/faq/FaqBase';
import FooterMedia from '@/components/sections/footer/FooterMedia';
import { ThemeProvider } from '@/providers/themeProvider/ThemeProvider';
import { Crown, Globe, Play, Sparkles, TrendingUp, Users } from 'lucide-react';
import 'slick-carousel/slick/slick.css';
import 'slick-carousel/slick/slick-theme.css';
import React, { useState } from 'react';
import Slider from 'react-slick';
export default function LandingPage() {
const [channelLogosIndex, setChannelLogosIndex] = useState(0);
const [moviesIndex, setMoviesIndex] = useState(0);
const [seriesIndex, setSeriesIndex] = useState(0);
const channelLogos = [
{ id: '1', name: 'Netflix', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/netflix-logo-1772540341145.png' },
{ id: '2', name: 'Disney+', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/disney-logo-1772540341145.png' },
{ id: '3', name: 'HBO Max', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/hbo-logo-1772540341145.png' },
{ id: '4', name: 'Prime Video', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/prime-logo-1772540341145.png' },
{ id: '5', name: 'Hulu', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/hulu-logo-1772540341145.png' }
];
const movies = [
{ id: '1', title: 'Action Blockbuster', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/action-movie-1772540341145.png' },
{ id: '2', title: 'Drama Masterpiece', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/drama-movie-1772540341145.png' },
{ id: '3', title: 'Comedy Gold', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/comedy-movie-1772540341145.png' },
{ id: '4', title: 'Sci-Fi Adventure', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/scifi-movie-1772540341145.png' },
{ id: '5', title: 'Thriller', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/thriller-movie-1772540341145.png' }
];
const series = [
{ id: '1', title: 'Epic Drama Series', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/drama-series-1772540341145.png' },
{ id: '2', title: 'Fantasy Adventure', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/fantasy-series-1772540341145.png' },
{ id: '3', title: 'Mystery Thriller', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/mystery-series-1772540341145.png' },
{ id: '4', title: 'Comedy Show', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/comedy-series-1772540341145.png' },
{ id: '5', title: 'Action Series', imageSrc: 'https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3AR0SASjGyc31c8JKNEwzF2PHGy/action-series-1772540341145.png' }
];
const channelLogosSettings = {
dots: false,
infinite: true,
speed: 500,
slidesToShow: 5,
slidesToScroll: 1,
autoplay: false,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
slidesToScroll: 1
}
},
{
breakpoint: 640,
settings: {
slidesToShow: 2,
slidesToScroll: 1
}
}
]
};
const moviesSettings = {
dots: false,
infinite: true,
speed: 500,
slidesToShow: 4,
slidesToScroll: 1,
autoplay: false,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
slidesToScroll: 1
}
},
{
breakpoint: 640,
settings: {
slidesToShow: 2,
slidesToScroll: 1
}
}
]
};
const seriesSettings = {
dots: false,
infinite: true,
speed: 500,
slidesToShow: 4,
slidesToScroll: 1,
autoplay: false,
responsive: [
{
breakpoint: 1024,
settings: {
slidesToShow: 3,
slidesToScroll: 1
}
},
{
breakpoint: 640,
settings: {
slidesToShow: 2,
slidesToScroll: 1
}
}
]
};
return (
<ThemeProvider
defaultButtonVariant="directional-hover"
@@ -58,6 +165,57 @@ export default function LandingPage() {
/>
</div>
<div id="channel-logos" data-section="channel-logos" className="w-full py-20">
<div className="px-6 md:px-12">
<h2 className="text-3xl font-bold mb-8 text-center">Available on Your Favorite Channels</h2>
<Slider {...channelLogosSettings}>
{channelLogos.map((channel) => (
<div key={channel.id} className="px-3">
<div className="bg-card rounded-lg p-4 flex items-center justify-center h-24">
<img src={channel.imageSrc} alt={channel.name} className="max-h-16 max-w-full" />
</div>
</div>
))}
</Slider>
</div>
</div>
<div id="movies" data-section="movies" className="w-full py-20">
<div className="px-6 md:px-12">
<h2 className="text-3xl font-bold mb-8 text-center">Featured Movies</h2>
<Slider {...moviesSettings}>
{movies.map((movie) => (
<div key={movie.id} className="px-3">
<div className="bg-card rounded-lg overflow-hidden">
<img src={movie.imageSrc} alt={movie.title} className="w-full h-64 object-cover" />
<div className="p-4">
<p className="text-center font-semibold">{movie.title}</p>
</div>
</div>
</div>
))}
</Slider>
</div>
</div>
<div id="series" data-section="series" className="w-full py-20">
<div className="px-6 md:px-12">
<h2 className="text-3xl font-bold mb-8 text-center">Popular Series</h2>
<Slider {...seriesSettings}>
{series.map((show) => (
<div key={show.id} className="px-3">
<div className="bg-card rounded-lg overflow-hidden">
<img src={show.imageSrc} alt={show.title} className="w-full h-64 object-cover" />
<div className="p-4">
<p className="text-center font-semibold">{show.title}</p>
</div>
</div>
</div>
))}
</Slider>
</div>
</div>
<div id="features" data-section="features" className="w-full py-20">
<FeatureCardTwentyThree
features={[

View File

@@ -2,23 +2,23 @@
/* Base units */
/* --vw is set by ThemeProvider */
/* --background: #fffefe;;
--card: #f6f7f4;;
--foreground: #080908;;
--primary-cta: #0e3a29;;
--secondary-cta: #e7eecd;;
--accent: #35c18b;;
--background-accent: #ecebe4;; */
/* --background: #ffffff;;
--card: #f0f8ff;;
--foreground: #000080;;
--primary-cta: #4169e1;;
--secondary-cta: #e6f0ff;;
--accent: #87ceeb;;
--background-accent: #add8e6;; */
--background: #fffefe;;
--card: #f6f7f4;;
--foreground: #080908;;
--primary-cta: #0e3a29;;
--background: #ffffff;;
--card: #f0f8ff;;
--foreground: #000080;;
--primary-cta: #4169e1;;
--primary-cta-text: #fffefe;;
--secondary-cta: #e7eecd;;
--secondary-cta: #e6f0ff;;
--secondary-cta-text: #080908;;
--accent: #35c18b;;
--background-accent: #ecebe4;;
--accent: #87ceeb;;
--background-accent: #add8e6;;
/* text sizing - set by ThemeProvider */
/* --text-2xs: clamp(0.465rem, 0.62vw, 0.62rem);