Merge version_1 into main #2
@@ -48,18 +48,18 @@ export default function LandingPage() {
|
||||
tag="Премудрая Студия Красоты"
|
||||
tagIcon={Sparkles}
|
||||
tagAnimation="slide-up"
|
||||
background={{ variant: "circleGradient" }}
|
||||
background={{ variant: "glowing-orb" }}
|
||||
leftCarouselItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/hairdresser-taking-care-her-client_23-2149319772.jpg?_wi=1", imageAlt: "Интерьер салона красоты Премудрая" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/furniture-room-background-sofa-contemporary_1203-4464.jpg?_wi=1", imageAlt: "Салон красоты дизайн интерьер" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-masseur-working_23-2148531268.jpg?_wi=1", imageAlt: "Услуга массажа в салоне" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/woman-getting-her-hair-dyed-beauty-salon_23-2149167372.jpg?_wi=1", imageAlt: "Профессиональная укладка волос" }
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/hairdresser-taking-care-her-client_23-2149319772.jpg", imageAlt: "Интерьер салона красоты Премудрая" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/furniture-room-background-sofa-contemporary_1203-4464.jpg", imageAlt: "Салон красоты дизайн интерьер" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-masseur-working_23-2148531268.jpg", imageAlt: "Услуга массажа в салоне" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/woman-getting-her-hair-dyed-beauty-salon_23-2149167372.jpg", imageAlt: "Профессиональная укладка волос" }
|
||||
]}
|
||||
rightCarouselItems={[
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/woman-applying-cosmetics-model_23-2148398679.jpg?_wi=1", imageAlt: "Профессиональный макияж" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-beauty-nail-art_23-2149249941.jpg?_wi=1", imageAlt: "Ногтевой сервис и маникюр" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/woman-taking-care-girl-salon_23-2147769838.jpg?_wi=1", imageAlt: "Парикмахерские услуги" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/female-makeup-artist-showing-stylish-eyeshadow-palette_23-2148113252.jpg?_wi=1", imageAlt: "Макияж невесты" }
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/woman-applying-cosmetics-model_23-2148398679.jpg", imageAlt: "Профессиональный макияж" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/close-up-beauty-nail-art_23-2149249941.jpg", imageAlt: "Ногтевой сервис и маникюр" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/woman-taking-care-girl-salon_23-2147769838.jpg", imageAlt: "Парикмахерские услуги" },
|
||||
{ imageSrc: "http://img.b2bpic.net/free-photo/female-makeup-artist-showing-stylish-eyeshadow-palette_23-2148113252.jpg", imageAlt: "Макияж невесты" }
|
||||
]}
|
||||
buttons={[
|
||||
{ text: "Записаться на процедуру", href: "booking" },
|
||||
@@ -75,15 +75,15 @@ export default function LandingPage() {
|
||||
features={[
|
||||
{
|
||||
id: "makeup", title: "Макияж", author: "Профессиональные услуги", description: "Образ невесты (6000 ₽) • Экспресс сбор (4100 ₽) • Вечерний макияж (2400 ₽) • Дневной макияж (2000 ₽)", tags: ["Макияж", "Укладка"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-applying-cosmetics-model_23-2148398679.jpg?_wi=2", imageAlt: "Профессиональный макияж"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-applying-cosmetics-model_23-2148398679.jpg", imageAlt: "Профессиональный макияж"
|
||||
},
|
||||
{
|
||||
id: "hair", title: "Парикмахерские услуги", author: "Мастера-стилисты", description: "Женская стрижка (от 2000 ₽) • Окрашивание корней (4300 ₽) • Однотонное окрашивание (5400 ₽) • Airtouch/Баллаяж/Мелирование (8500 ₽) • Укладка волос (1700 ₽)", tags: ["Стрижка", "Окрашивание"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-taking-care-girl-salon_23-2147769838.jpg?_wi=2", imageAlt: "Парикмахерские услуги"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/woman-taking-care-girl-salon_23-2147769838.jpg", imageAlt: "Парикмахерские услуги"
|
||||
},
|
||||
{
|
||||
id: "nails", title: "Ногтевой сервис", author: "Специалисты по ногтям", description: "Маникюр + гель лак (2300 ₽) • Педикюр + гель лак (2900 ₽) • Наращивание ногтей (3100 ₽) • Гигиенический маникюр (1300 ₽) • Гигиенический педикюр (2300 ₽)", tags: ["Маникюр", "Педикюр"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-beauty-nail-art_23-2149249941.jpg?_wi=2", imageAlt: "Ногтевой сервис"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/close-up-beauty-nail-art_23-2149249941.jpg", imageAlt: "Ногтевой сервис"
|
||||
},
|
||||
{
|
||||
id: "brows-lashes", title: "Брови и ресницы", author: "Мастера красоты", description: "Окрашивание бровей (900 ₽) • Долговременная укладка бровей (2000 ₽) • Ламинирование + окрашивание ресниц (2000 ₽)", tags: ["Брови", "Ресницы"],
|
||||
@@ -91,7 +91,7 @@ export default function LandingPage() {
|
||||
},
|
||||
{
|
||||
id: "massage", title: "Массаж", author: "Мастера терапевты", description: "Массаж тела (от 2800 ₽) • Массаж лица (3300 ₽) • Лимфодренажный массаж • Скульптурно-буккальный массаж", tags: ["Массаж", "Спа"],
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-masseur-working_23-2148531268.jpg?_wi=2", imageAlt: "Массаж тела и лица"
|
||||
imageSrc: "http://img.b2bpic.net/free-photo/medium-shot-masseur-working_23-2148531268.jpg", imageAlt: "Массаж тела и лица"
|
||||
}
|
||||
]}
|
||||
animationType="slide-up"
|
||||
@@ -99,7 +99,7 @@ export default function LandingPage() {
|
||||
description="Полный спектр услуг красоты и ухода от опытных мастеров с использованием сертифицированных материалов"
|
||||
tag="Услуги"
|
||||
tagIcon={Sparkles}
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
buttons={[
|
||||
@@ -115,7 +115,7 @@ export default function LandingPage() {
|
||||
description="Премудрая - это салон красоты, где профессионализм встречается с заботой. Каждая клиентка получает индивидуальный подход и высочайший уровень сервиса."
|
||||
tag="О нас"
|
||||
tagIcon={Heart}
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
bulletPoints={[
|
||||
{ title: "Опытные мастера", description: "Команда квалифицированных специалистов с многолетним опытом в индустрии красоты", icon: Award },
|
||||
{ title: "Сертифицированные материалы", description: "Используем только профессиональные и сертифицированные материалы премиум-качества", icon: CheckCircle },
|
||||
@@ -124,7 +124,7 @@ export default function LandingPage() {
|
||||
{ title: "Удобное расположение", description: "Центральное расположение в ЖК Ocean City с ближайшей парковкой", icon: MapPin },
|
||||
{ title: "Режим работы 8:00 - 21:00", description: "Работаем ежедневно, чтобы вы могли записаться в удобное для вас время", icon: Clock }
|
||||
]}
|
||||
imageSrc="http://img.b2bpic.net/free-photo/hairdresser-taking-care-her-client_23-2149319772.jpg?_wi=2"
|
||||
imageSrc="http://img.b2bpic.net/free-photo/hairdresser-taking-care-her-client_23-2149319772.jpg"
|
||||
imageAlt="Интерьер салона красоты Премудрая"
|
||||
mediaAnimation="slide-up"
|
||||
imagePosition="right"
|
||||
@@ -137,13 +137,13 @@ export default function LandingPage() {
|
||||
<ContactCTA
|
||||
tag="Весенняя акция"
|
||||
tagIcon={Leaf}
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
title="Весеннее обновление для вашего тела и лица"
|
||||
description="Весной наш организм нуждается в перезагрузке. Снимите напряжение, избавьтесь от отёков и верните коже сияние. Специальная цена на первый сеанс для новых гостей!"
|
||||
buttons={[
|
||||
{ text: "Записаться на массаж", href: "booking" }
|
||||
]}
|
||||
buttonAnimation="entrance-slide"
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "radial-gradient" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
@@ -175,7 +175,7 @@ export default function LandingPage() {
|
||||
description="Мнения и впечатления реальных посетительниц салона красоты Премудрая"
|
||||
tag="Отзывы"
|
||||
tagIcon={Star}
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
@@ -185,16 +185,16 @@ export default function LandingPage() {
|
||||
<ProductCardFour
|
||||
products={[
|
||||
{
|
||||
id: "gallery-1", name: "Интерьер салона", price: "Атмосфера", variant: "Комфорт и уют", imageSrc: "http://img.b2bpic.net/free-photo/furniture-room-background-sofa-contemporary_1203-4464.jpg?_wi=2", imageAlt: "Интерьер салона красоты"
|
||||
id: "gallery-1", name: "Интерьер салона", price: "Атмосфера", variant: "Комфорт и уют", imageSrc: "http://img.b2bpic.net/free-photo/furniture-room-background-sofa-contemporary_1203-4464.jpg", imageAlt: "Интерьер салона красоты"
|
||||
},
|
||||
{
|
||||
id: "gallery-2", name: "Профессиональный маникюр", price: "Красота", variant: "Гель-лак премиум", imageSrc: "http://img.b2bpic.net/free-photo/beautiful-female-hands-finger-nail-treatment-making-process-professional-nail-file-drill-action-beauty-hand-care-concept_343596-1827.jpg", imageAlt: "Маникюр с гель-лаком"
|
||||
},
|
||||
{
|
||||
id: "gallery-3", name: "Трендовая прическа", price: "Стиль", variant: "Многоуровневая укладка", imageSrc: "http://img.b2bpic.net/free-photo/woman-getting-her-hair-dyed-beauty-salon_23-2149167372.jpg?_wi=2", imageAlt: "Современная прическа"
|
||||
id: "gallery-3", name: "Трендовая прическа", price: "Стиль", variant: "Многоуровневая укладка", imageSrc: "http://img.b2bpic.net/free-photo/woman-getting-her-hair-dyed-beauty-salon_23-2149167372.jpg", imageAlt: "Современная прическа"
|
||||
},
|
||||
{
|
||||
id: "gallery-4", name: "Макияж невесты", price: "Элегантность", variant: "Свадебный образ", imageSrc: "http://img.b2bpic.net/free-photo/female-makeup-artist-showing-stylish-eyeshadow-palette_23-2148113252.jpg?_wi=2", imageAlt: "Свадебный макияж"
|
||||
id: "gallery-4", name: "Макияж невесты", price: "Элегантность", variant: "Свадебный образ", imageSrc: "http://img.b2bpic.net/free-photo/female-makeup-artist-showing-stylish-eyeshadow-palette_23-2148113252.jpg", imageAlt: "Свадебный макияж"
|
||||
}
|
||||
]}
|
||||
gridVariant="asymmetric-60-wide-40-narrow"
|
||||
@@ -203,7 +203,7 @@ export default function LandingPage() {
|
||||
description="Примеры результатов работы наших мастеров - вдохновение для вашего преображения"
|
||||
tag="Галерея"
|
||||
tagIcon={Image}
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
textboxLayout="default"
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
@@ -231,14 +231,14 @@ export default function LandingPage() {
|
||||
<ContactCTA
|
||||
tag="Связаться с нами"
|
||||
tagIcon={Phone}
|
||||
tagAnimation="entrance-slide"
|
||||
tagAnimation="slide-up"
|
||||
title="Записаться на процедуру"
|
||||
description="Позвоните нам, напишите в WhatsApp или заполните форму. Администратор свяжется с вами в течение 10 минут для подтверждения записи."
|
||||
buttons={[
|
||||
{ text: "Позвонить +7 (3412) 33-01-91", href: "tel:+73412330191" },
|
||||
{ text: "Написать в WhatsApp", href: "https://wa.me/79026550191" }
|
||||
]}
|
||||
buttonAnimation="entrance-slide"
|
||||
buttonAnimation="slide-up"
|
||||
background={{ variant: "plain" }}
|
||||
useInvertedBackground={false}
|
||||
/>
|
||||
|
||||
@@ -1,51 +1,44 @@
|
||||
"use client";
|
||||
import { SVGProps } from 'react';
|
||||
|
||||
import { memo } from "react";
|
||||
import useSvgTextLogo from "./useSvgTextLogo";
|
||||
import { cls } from "@/lib/utils";
|
||||
|
||||
interface SvgTextLogoProps {
|
||||
logoText: string;
|
||||
adjustHeightFactor?: number;
|
||||
verticalAlign?: "top" | "center";
|
||||
className?: string;
|
||||
export interface SvgTextLogoProps extends SVGProps<SVGSVGElement> {
|
||||
text?: string;
|
||||
fontSize?: number;
|
||||
fontWeight?: 'normal' | 'bold';
|
||||
letterSpacing?: number;
|
||||
fillColor?: 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 = 'Logo',
|
||||
fontSize = 48,
|
||||
fontWeight = 'bold',
|
||||
letterSpacing = 0,
|
||||
fillColor = '#000000',
|
||||
...props
|
||||
}) => {
|
||||
return (
|
||||
<svg
|
||||
ref={svgRef}
|
||||
viewBox={viewBox}
|
||||
className={cls("w-full", className)}
|
||||
style={{ aspectRatio: aspectRatio }}
|
||||
preserveAspectRatio="none"
|
||||
role="img"
|
||||
aria-label={`${logoText} logo`}
|
||||
width={300}
|
||||
height={100}
|
||||
viewBox="0 0 300 100"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
{...props}
|
||||
>
|
||||
<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="central"
|
||||
fontSize={fontSize}
|
||||
fontWeight={fontWeight}
|
||||
letterSpacing={letterSpacing}
|
||||
fill={fillColor}
|
||||
fontFamily="Arial, sans-serif"
|
||||
>
|
||||
{logoText}
|
||||
{text}
|
||||
</text>
|
||||
</svg>
|
||||
);
|
||||
});
|
||||
};
|
||||
|
||||
SvgTextLogo.displayName = "SvgTextLogo";
|
||||
|
||||
export default SvgTextLogo;
|
||||
export default SvgTextLogo;
|
||||
Reference in New Issue
Block a user