6 Commits

Author SHA1 Message Date
98a9b96d02 Update src/app/catalog/page.tsx 2026-04-09 09:59:02 +00:00
c7558dbf73 Update src/app/book/[id]/page.tsx 2026-04-09 09:59:01 +00:00
6e00060249 Update src/app/styles/variables.css 2026-04-09 09:58:35 +00:00
a5f0ed9e13 Update src/app/page.tsx 2026-04-09 09:58:34 +00:00
6c5c74dd8c Add src/app/catalog/page.tsx 2026-04-09 09:58:34 +00:00
134e048849 Add src/app/book/[id]/page.tsx 2026-04-09 09:58:33 +00:00
4 changed files with 93 additions and 152 deletions

View File

@@ -0,0 +1,25 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
export default function BookPage({ params }: { params: { id: string } }) {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<ReactLenis root>
<div>Book Page for {params.id}</div>
</ReactLenis>
</ThemeProvider>
);
}

44
src/app/catalog/page.tsx Normal file
View File

@@ -0,0 +1,44 @@
"use client";
import { ThemeProvider } from "@/providers/themeProvider/ThemeProvider";
import ReactLenis from "lenis/react";
import NavbarStyleApple from '@/components/navbar/NavbarStyleApple/NavbarStyleApple';
import ProductCardOne from '@/components/sections/product/ProductCardOne';
import FooterBaseCard from '@/components/sections/footer/FooterBaseCard';
export default function CatalogPage() {
return (
<ThemeProvider
defaultButtonVariant="text-stagger"
defaultTextAnimation="entrance-slide"
borderRadius="rounded"
contentWidth="medium"
sizing="medium"
background="circleGradient"
cardStyle="glass-elevated"
primaryButtonStyle="gradient"
secondaryButtonStyle="glass"
headingFontWeight="normal"
>
<ReactLenis root>
<NavbarStyleApple navItems={[{name: "Главная", id: "/"}, {name: "Каталог", id: "/catalog"}]} brandName="StoryBooks" />
<div className="pt-24">
<ProductCardOne
animationType="slide-up"
textboxLayout="split"
gridVariant="three-columns-all-equal-width"
useInvertedBackground={false}
title="Каталог всех книг"
description="Откройте для себя наш уникальный ассортимент книг, отобранных специально для вас."
products={[
{ id: "p1", name: "Путь к вершине", price: "990 ₽", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-woman-with-book-sitting-forest_23-2147883262.jpg", onProductClick: () => window.location.href = '/book/p1' },
{ id: "p2", name: "Сквозь тернии", price: "1200 ₽", imageSrc: "http://img.b2bpic.net/free-photo/coffee-stack-books_23-2147711705.jpg", onProductClick: () => window.location.href = '/book/p2' },
{ id: "p3", name: "Бизнес с душой", price: "1500 ₽", imageSrc: "http://img.b2bpic.net/free-vector/collection-poster-flyer-brochure-annual-report-cover-layout-design-template_206725-321.jpg", onProductClick: () => window.location.href = '/book/p3' }
]}
/>
</div>
<FooterBaseCard logoText="StoryBooks" columns={[{ title: "Меню", items: [{ label: "Главная", href: "/" }, { label: "Каталог", href: "/catalog" }] }]} />
</ReactLenis>
</ThemeProvider>
);
}

View File

@@ -30,21 +30,13 @@ export default function LandingPage() {
<NavbarStyleApple <NavbarStyleApple
navItems={[ navItems={[
{ {
name: "Главная", name: "Главная", id: "hero"},
id: "hero",
},
{ {
name: "Каталог", name: "Каталог", id: "/catalog"},
id: "catalog",
},
{ {
name: "О проекте", name: "О проекте", id: "about"},
id: "about",
},
{ {
name: "Отзывы", name: "Отзывы", id: "testimonials"},
id: "testimonials",
},
]} ]}
brandName="StoryBooks" brandName="StoryBooks"
/> />
@@ -53,41 +45,26 @@ export default function LandingPage() {
<div id="hero" data-section="hero"> <div id="hero" data-section="hero">
<HeroBillboardCarousel <HeroBillboardCarousel
background={{ background={{
variant: "gradient-bars", variant: "gradient-bars"}}
}}
title="Истории, которые меняют жизнь" title="Истории, которые меняют жизнь"
description="Реальные люди. Реальные истории. Настоящие эмоции." description="Реальные люди. Реальные истории. Настоящие эмоции."
buttons={[ buttons={[
{ {
text: "Смотреть книги", text: "Смотреть книги", href: "/catalog"},
href: "#catalog",
},
]} ]}
mediaItems={[ mediaItems={[
{ {
imageSrc: "http://img.b2bpic.net/free-photo/home-cozy-interior-room-with-books-dried-flowers-vase_169016-4248.jpg", imageSrc: "http://img.b2bpic.net/free-photo/home-cozy-interior-room-with-books-dried-flowers-vase_169016-4248.jpg", imageAlt: "Reading atmosphere"},
imageAlt: "Reading atmosphere",
},
{ {
imageSrc: "http://img.b2bpic.net/free-photo/anonymous-female-reading-near-window_23-2147896700.jpg", imageSrc: "http://img.b2bpic.net/free-photo/anonymous-female-reading-near-window_23-2147896700.jpg", imageAlt: "Inspired reader"},
imageAlt: "Inspired reader",
},
{ {
imageSrc: "http://img.b2bpic.net/free-photo/close-up-positive-woman-holding-book_23-2148464492.jpg", imageSrc: "http://img.b2bpic.net/free-photo/close-up-positive-woman-holding-book_23-2148464492.jpg", imageAlt: "Book details"},
imageAlt: "Book details",
},
{ {
imageSrc: "http://img.b2bpic.net/free-photo/urban-portrait-young-man-with-orange-hair_23-2149122915.jpg", imageSrc: "http://img.b2bpic.net/free-photo/urban-portrait-young-man-with-orange-hair_23-2149122915.jpg", imageAlt: "Authentic lifestyle"},
imageAlt: "Authentic lifestyle",
},
{ {
imageSrc: "http://img.b2bpic.net/free-photo/square-book-office-mockup_23-2151731936.jpg", imageSrc: "http://img.b2bpic.net/free-vector/collection-poster-flyer-brochure-annual-report-cover-layout-design-template_206725-321.jpg", imageAlt: "Story cover"},
imageAlt: "Story cover",
},
{ {
imageSrc: "http://img.b2bpic.net/free-photo/long-shot-woman-hiking-with-flask_23-2148922255.jpg", imageSrc: "http://img.b2bpic.net/free-photo/long-shot-woman-hiking-with-flask_23-2148922255.jpg", imageAlt: "Inspirational portrait"},
imageAlt: "Inspirational portrait",
},
]} ]}
/> />
</div> </div>
@@ -99,48 +76,9 @@ export default function LandingPage() {
gridVariant="three-columns-all-equal-width" gridVariant="three-columns-all-equal-width"
useInvertedBackground={false} useInvertedBackground={false}
products={[ products={[
{ { id: "p1", name: "Путь к вершине", price: "990 ₽", imageSrc: "http://img.b2bpic.net/free-photo/cheerful-woman-with-book-sitting-forest_23-2147883262.jpg", onProductClick: () => window.location.href = '/book/p1' },
id: "p1", { id: "p2", name: "Сквозь тернии", price: "1200 ₽", imageSrc: "http://img.b2bpic.net/free-photo/coffee-stack-books_23-2147711705.jpg", onProductClick: () => window.location.href = '/book/p2' },
name: "Путь к вершине", { id: "p3", name: "Бизнес с душой", price: "1500 ₽", imageSrc: "http://img.b2bpic.net/free-vector/collection-poster-flyer-brochure-annual-report-cover-layout-design-template_206725-321.jpg", onProductClick: () => window.location.href = '/book/p3' },
price: "990 ₽",
imageSrc: "http://img.b2bpic.net/free-photo/cheerful-woman-with-book-sitting-forest_23-2147883262.jpg",
imageAlt: "Book cover minimal elegant",
},
{
id: "p2",
name: "Сквозь тернии",
price: "1200 ₽",
imageSrc: "http://img.b2bpic.net/free-photo/coffee-stack-books_23-2147711705.jpg",
imageAlt: "Minimal book cover design",
},
{
id: "p3",
name: "Бизнес с душой",
price: "1500 ₽",
imageSrc: "http://img.b2bpic.net/free-vector/collection-poster-flyer-brochure-annual-report-cover-layout-design-template_206725-321.jpg",
imageAlt: "Book cover creative layout",
},
{
id: "p4",
name: "Жизнь в моменте",
price: "850 ₽",
imageSrc: "http://img.b2bpic.net/free-vector/new-year-2021-party-poster-template_52683-52506.jpg",
imageAlt: "Book cover modern typography",
},
{
id: "p5",
name: "Тень и свет",
price: "1100 ₽",
imageSrc: "http://img.b2bpic.net/free-photo/creative-arrangement-with-different-books_23-2148851028.jpg",
imageAlt: "Book cover artistic concept",
},
{
id: "p6",
name: "Секреты успеха",
price: "1350 ₽",
imageSrc: "https://webuild-dev.s3.eu-north-1.amazonaws.com/default/no-image.jpg?id=d1swx0",
imageAlt: "Book cover unique design",
},
]} ]}
title="Каталог книг" title="Каталог книг"
description="Откройте для себя судьбы, которые вдохновляют." description="Откройте для себя судьбы, которые вдохновляют."
@@ -168,26 +106,7 @@ export default function LandingPage() {
rating={5} rating={5}
author="Марина В., предприниматель" author="Марина В., предприниматель"
avatars={[ avatars={[
{ { src: "http://img.b2bpic.net/free-photo/young-beautiful-girl-reading-sitting-cafe_176420-5902.jpg", alt: "Happy reader portrait natural" },
src: "http://img.b2bpic.net/free-photo/young-beautiful-girl-reading-sitting-cafe_176420-5902.jpg",
alt: "Happy reader portrait natural",
},
{
src: "http://img.b2bpic.net/free-photo/high-angle-beautiful-woman-reading-outside_23-2148396355.jpg",
alt: "Young reader smiling candid",
},
{
src: "http://img.b2bpic.net/free-photo/front-view-smiley-woman-posing-indoors_23-2149745617.jpg",
alt: "Person reading book side profile",
},
{
src: "http://img.b2bpic.net/free-photo/young-attractive-woman-reading-book-concept-learning-selfdevelopment_169016-65952.jpg",
alt: "Reader smiling holding book",
},
{
src: "http://img.b2bpic.net/free-photo/interested-teenage-girl-reading-book-emotion-concept_169016-65399.jpg",
alt: "Reading enthusiast portrait bright",
},
]} ]}
ratingAnimation="slide-up" ratingAnimation="slide-up"
avatarsAnimation="slide-up" avatarsAnimation="slide-up"
@@ -198,21 +117,7 @@ export default function LandingPage() {
<FaqSplitText <FaqSplitText
useInvertedBackground={false} useInvertedBackground={false}
faqs={[ faqs={[
{ { id: "f1", title: "Как оформить заказ?", content: "Выберите книгу, добавьте её в корзину и следуйте инструкциям в корзине." },
id: "f1",
title: "Как оформить заказ?",
content: "Выберите книгу, добавьте её в корзину и следуйте инструкциям в корзине.",
},
{
id: "f2",
title: "Есть ли доставка?",
content: "Да, мы осуществляем доставку по всему миру.",
},
{
id: "f3",
title: "Можно ли вернуть книгу?",
content: "Да, если книга повреждена или не соответствует описанию.",
},
]} ]}
sideTitle="Часто задаваемые вопросы" sideTitle="Часто задаваемые вопросы"
faqsAnimation="blur-reveal" faqsAnimation="blur-reveal"
@@ -223,40 +128,7 @@ export default function LandingPage() {
<FooterBaseCard <FooterBaseCard
logoText="StoryBooks" logoText="StoryBooks"
columns={[ columns={[
{ { title: "Меню", items: [{ label: "Главная", href: "/" }, { label: "Каталог", href: "/catalog" }] },
title: "Меню",
items: [
{
label: "Главная",
href: "#hero",
},
{
label: "Каталог",
href: "#catalog",
},
{
label: "О нас",
href: "#about",
},
],
},
{
title: "Поддержка",
items: [
{
label: "Контакты",
href: "#",
},
{
label: "FAQ",
href: "#",
},
{
label: "Возврат",
href: "#",
},
],
},
]} ]}
/> />
</div> </div>

View File

@@ -10,14 +10,14 @@
--accent: #ffffff; --accent: #ffffff;
--background-accent: #ffffff; */ --background-accent: #ffffff; */
--background: #f5f4ef; --background: #fbf8f5;
--card: #dad6cd; --card: #f3eee9;
--foreground: #2a2928; --foreground: #4a3f36;
--primary-cta: #2a2928; --primary-cta: #a67c52;
--primary-cta-text: #f5f4ef; --primary-cta-text: #f5f4ef;
--secondary-cta: #ecebea; --secondary-cta: #e8e1da;
--secondary-cta-text: #2a2928; --secondary-cta-text: #2a2928;
--accent: #ffffff; --accent: #d4c5b9;
--background-accent: #c6b180; --background-accent: #c6b180;
/* text sizing - set by ThemeProvider */ /* text sizing - set by ThemeProvider */