init
All checks were successful
Deploy / build (push) Successful in 46s

This commit is contained in:
alsaze 2025-11-26 21:55:55 +03:00
parent dc6ecdd223
commit ded1c8af22
8 changed files with 124 additions and 14 deletions

View File

@ -29,6 +29,10 @@ body {
-ms-overflow-style: -ms-autohiding-scrollbar; -ms-overflow-style: -ms-autohiding-scrollbar;
} }
html {
scroll-behavior: smooth;
}
//swiper //swiper
.swiper { .swiper {
width: 100%; width: 100%;

View File

@ -1,5 +1,5 @@
@mixin mobile { @mixin mobile {
@media (max-width: 768px) { @media (max-width: 1279px) {
@content; @content;
} }
} }

100
components/Benefits.vue Normal file
View File

@ -0,0 +1,100 @@
<template>
<UPageSection
id="benefits"
title="Почему выбирают нас"
description="Преимущества сервиса"
:ui="{ container: '!p-0' }"
>
<template #body>
<div class="benefits">
<div
v-for="benefit in benefits"
:key="benefit.title"
class="benefit"
>
<div class="benefit__icon">
{{ benefit.icon }}
</div>
<div class="benefit__title">
{{ benefit.title }}
</div>
<div class="benefit__description">
{{ benefit.description }}
</div>
</div>
</div>
</template>
</UPageSection>
</template>
<script setup lang="ts">
const benefits = [
{
icon: '⏱️',
title: 'Экономия времени',
description: 'Мы берем на себя все рутинные задачи — от поиска до оформления документов',
},
{
icon: '🛡️',
title: 'Безопасность сделок',
description: 'Полная юридическая проверка объектов и контрагентов',
},
{
icon: '👤',
title: 'Личный менеджер',
description: 'Персональный консультант на всех этапах работы',
},
{
icon: '⭐',
title: 'Лучшие условия',
description: 'Используем партнерскую сеть для получения выгодных предложений',
},
{
icon: '💬',
title: 'Поддержка 24/7',
description: 'Всегда на связи для решения любых вопросов',
},
{
icon: '🏆',
title: 'Опыт и экспертиза',
description: 'Более 10 лет на рынке консьерж-услуг',
},
]
</script>
<style lang="scss">
.benefits {
display: grid;
gap: 20px;
grid-template-columns: repeat(3, minmax(150px, 350px));
justify-content: center;
@include mobile {
gap: 10px;
grid-template-columns: repeat(2, minmax(150px, 350px));
}
}
.benefit {
display: flex;
flex-direction: column;
gap: 10px;
width: 100%;
max-width: 300px;
&__icon {
font-size: 24px;
}
&__title {
font-size: 20px;
font-weight: 600;
}
&__description {
font-size: 14px;
}
}
</style>

View File

@ -2,13 +2,15 @@
<UPageSection <UPageSection
title="Что мы предлагаем" title="Что мы предлагаем"
description="Полный спектр консьерж-услуг для работы с недвижимостью и автомобилями" description="Полный спектр консьерж-услуг для работы с недвижимостью и автомобилями"
:ui="{ container: '!p-0' }"
> >
<template #body> <template #body>
<div class="services"> <div class="services">
<div <NuxtLink
v-for="service in services" v-for="service in services"
:key="service.name" :key="service.name"
class="service" class="service"
:to="service.name"
> >
<img :src="service.img" :alt="`Service Image ${service.name}`"> <img :src="service.img" :alt="`Service Image ${service.name}`">
@ -32,7 +34,7 @@
</div> </div>
</div> </div>
</div> </div>
</div> </NuxtLink>
</div> </div>
</template> </template>
</UPageSection> </UPageSection>
@ -103,8 +105,6 @@ const services = [
cursor: pointer; cursor: pointer;
width: 100%; width: 100%;
height: 100%; height: 100%;
max-width: 600px;
max-height: 500px;
position: relative; position: relative;
border-radius: 24px; border-radius: 24px;
overflow: hidden; overflow: hidden;
@ -122,9 +122,9 @@ const services = [
} }
&__title { &__title {
font-size: 1.25rem; font-size: 20px;
font-weight: 600; font-weight: 600;
margin: 1rem; margin: 16px;
} }
&__items { &__items {

View File

@ -5,7 +5,7 @@
:toggle="false" :toggle="false"
:ui="{ :ui="{
root: 'fixed bg-transparent w-full', root: 'fixed bg-transparent w-full',
left: 'justify-between w-full', left: 'relative flex items-center w-full',
container: 'gap-0', container: 'gap-0',
right: 'hidden', right: 'hidden',
}" }"
@ -14,8 +14,14 @@
<NuxtLink to="/"> <NuxtLink to="/">
Rental Rental
</NuxtLink> </NuxtLink>
<UTabs v-model="activeTab" :content="false" :items="tabs" />
<UColorModeButton /> <div class="absolute left-1/2 transform -translate-x-1/2">
<UTabs v-model="activeTab" :size="isMobile ? 'md' : 'xl'" :content="false" :items="tabs" />
</div>
<div class="ml-auto">
<UButton href="#benefits" :size="isMobile ? 'md' : 'xl'" label="Связаться" />
</div>
</template> </template>
</UHeader> </UHeader>
@ -24,7 +30,7 @@
</UMain> </UMain>
<UFooter> <UFooter>
<div class="flex flex-col md:flex-row justify-between items-center w-full text-sm opacity-70"> <div class="flex flex-col md:flex-row items-center text-sm opacity-70">
<div> <div>
© {{ new Date().getFullYear() }} Rental. Все права защищены. © {{ new Date().getFullYear() }} Rental. Все права защищены.
</div> </div>

View File

@ -7,8 +7,10 @@
class="index-page__hero" class="index-page__hero"
/> />
<UContainer> <UContainer class="flex flex-col gap-32 my-32">
<Services /> <Services />
<Benefits />
</UContainer> </UContainer>
</div> </div>
</template> </template>

View File

@ -1,5 +1,4 @@
<template> <template>
nedvizhimost
</template> </template>
<script setup lang="ts"> <script setup lang="ts">

View File

@ -1,5 +1,4 @@
<template> <template>
transport
</template> </template>
<script setup lang="ts"> <script setup lang="ts">