Система внутренней аналитики программы собирает информацию о поведении пользователя и эффективности работы менеджеров для создания отчета, содержащего необходимые метрики.
+
+
+
+
+
+ Конверсия менеджеров в брони
+
+
К.Н. Федоров
+
+
+
+
+
+
45%
+
+
+
И.Ф. Яковлева
+
+
+
+
+
+
30%
+
+
+
+
А.М. Ташева
+
+
+
+
+
+
28%
+
+
+
+
А.А. Фетисов
+
+
+
+
+
+
5%
+
+
+
+
+ Популярные типы квартир, %
+
+
+
+
+
+
Студии
+
+
+
+
1-к. квартиры
+
+
+
+
2-к. квартиры
+
+
+
+
3-к. квартиры
+
+
+
+
4-к. квартиры
+
+
+
+
+
+ Воронка продаж
+
+
+
+
Сеансы
+
+
+
+
+
+
В избранное
+
+
93,47%
+
+
+
+
Брони
+
+
45,68%
+
+
+
+
Продажи
+
+
29,13%
+
+
+
+
+
+
+
+ Среднее время сеанса, мин.
+
+ 12:45
+
+
+
+ Сформировано коммерческих предложений, шт
+
+ 856
+
+
+
+ Конверсия из сеанса в продажу, %
+
+ 12,44
+
+
+
+ Продано через Graff.estate, млн.руб.
+
+ 134,5
+
+
+
+
Полученный отчет позволяет сделать процесс демонстрации жилого комплекса еще эффективнее.
Интерактивная презентация увлекает покупателей и предоставляет актуальную информацию о жилом комплексе, отвечая на все интересующие вопросы и показывая важные особенности и преимущества объекта.
Помогаем девелоперам эффективно демонстрировать свой объект. Продавать больше и быстрее.
+
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/components/Title/video.mp4 b/src/components/Title/video.mp4
new file mode 100644
index 0000000..562c244
Binary files /dev/null and b/src/components/Title/video.mp4 differ
diff --git a/src/components/VirtualTour/VirtualTour.css b/src/components/VirtualTour/VirtualTour.css
new file mode 100644
index 0000000..95a08ab
--- /dev/null
+++ b/src/components/VirtualTour/VirtualTour.css
@@ -0,0 +1,27 @@
+.virtual-section {
+ margin-bottom: 400px;
+}
+
+.virtual-container {
+ display: grid;
+ gap: 32px;
+ grid-template-columns: 1fr 1fr;
+}
+
+.virtual-image-container {
+ position: relative;
+}
+
+.virtual-image {
+ position: absolute;
+ top: -80%;
+ left: -50%;
+ z-index: -1;
+
+}
+
+.virtual-text-container {
+ display: flex;
+ flex-direction: column;
+ gap: 32px;
+}
\ No newline at end of file
diff --git a/src/components/VirtualTour/VirtualTour.js b/src/components/VirtualTour/VirtualTour.js
new file mode 100644
index 0000000..462f3e0
--- /dev/null
+++ b/src/components/VirtualTour/VirtualTour.js
@@ -0,0 +1,21 @@
+import './VirtualTour.css'
+import glasses from 'images/Photo.png'
+
+export const VirtualTour = () => {
+ return (
+
+
+
+
+
+
Экскурсия в виртуальной реальности
+
Клиенту достаточно надеть шлем виртуальной реальности, чтобы прогуляться, оценить и ощутить пространство.
+ Он полностью погружается в воссозданную реальность, чувствует удобство и уровень комфорта.
+
+
+
+
+ )
+}
\ No newline at end of file
diff --git a/src/images/FilterSearch.png b/src/images/FilterSearch.png
new file mode 100644
index 0000000..e0c3a39
Binary files /dev/null and b/src/images/FilterSearch.png differ
diff --git a/src/images/Form.png b/src/images/Form.png
new file mode 100644
index 0000000..b3206bb
Binary files /dev/null and b/src/images/Form.png differ
diff --git a/src/images/Infrastructure.png b/src/images/Infrastructure.png
new file mode 100644
index 0000000..9ae87e6
Binary files /dev/null and b/src/images/Infrastructure.png differ
diff --git a/src/images/Interior.png b/src/images/Interior.png
new file mode 100644
index 0000000..cf7b5c5
Binary files /dev/null and b/src/images/Interior.png differ
diff --git a/src/images/Photo.png b/src/images/Photo.png
new file mode 100644
index 0000000..6924396
Binary files /dev/null and b/src/images/Photo.png differ
diff --git a/src/images/Render.png b/src/images/Render.png
new file mode 100644
index 0000000..2f5bdd2
Binary files /dev/null and b/src/images/Render.png differ
diff --git a/src/images/Wishlist.png b/src/images/Wishlist.png
new file mode 100644
index 0000000..e0c3a39
Binary files /dev/null and b/src/images/Wishlist.png differ
diff --git a/src/images/icons/Arrow_Left.svg b/src/images/icons/Arrow_Left.svg
new file mode 100644
index 0000000..cb58dd5
--- /dev/null
+++ b/src/images/icons/Arrow_Left.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/images/icons/Arrow_Right.svg b/src/images/icons/Arrow_Right.svg
new file mode 100644
index 0000000..a89c5d3
--- /dev/null
+++ b/src/images/icons/Arrow_Right.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/images/icons/EN.svg b/src/images/icons/EN.svg
new file mode 100644
index 0000000..e9e4b79
--- /dev/null
+++ b/src/images/icons/EN.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/images/icons/RU.svg b/src/images/icons/RU.svg
new file mode 100644
index 0000000..eee0b13
--- /dev/null
+++ b/src/images/icons/RU.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/images/icons/Send.svg b/src/images/icons/Send.svg
new file mode 100644
index 0000000..501cbe4
--- /dev/null
+++ b/src/images/icons/Send.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/images/logoIcon.svg b/src/images/logoIcon.svg
new file mode 100644
index 0000000..21b0f36
--- /dev/null
+++ b/src/images/logoIcon.svg
@@ -0,0 +1,13 @@
+
diff --git a/src/index.css b/src/index.css
index ec2585e..83b6f84 100644
--- a/src/index.css
+++ b/src/index.css
@@ -1,13 +1,17 @@
+@import url(./styles/styles.css);
+
body {
- margin: 0;
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
- 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+ margin: 0 auto;
+ min-height: 100vh;
+ overflow-x: hidden;
+ font-family: -apple-system, BlinkMacSystemFont, 'Inter', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
+ background: #151619;
}
code {
- font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
+ font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 'Inter',
monospace;
-}
+}
\ No newline at end of file
diff --git a/src/styles/fonts/Gilroy_Bold.woff b/src/styles/fonts/Gilroy_Bold.woff
new file mode 100644
index 0000000..c5bbebb
Binary files /dev/null and b/src/styles/fonts/Gilroy_Bold.woff differ
diff --git a/src/styles/fonts/Gilroy_Bold.woff2 b/src/styles/fonts/Gilroy_Bold.woff2
new file mode 100644
index 0000000..bb8d73a
Binary files /dev/null and b/src/styles/fonts/Gilroy_Bold.woff2 differ
diff --git a/src/styles/fonts/Gilroy_Light.woff b/src/styles/fonts/Gilroy_Light.woff
new file mode 100644
index 0000000..3c8aca8
Binary files /dev/null and b/src/styles/fonts/Gilroy_Light.woff differ
diff --git a/src/styles/fonts/Gilroy_Light.woff2 b/src/styles/fonts/Gilroy_Light.woff2
new file mode 100644
index 0000000..bac74f7
Binary files /dev/null and b/src/styles/fonts/Gilroy_Light.woff2 differ
diff --git a/src/styles/fonts/Gilroy_Medium.woff b/src/styles/fonts/Gilroy_Medium.woff
new file mode 100644
index 0000000..af869f6
Binary files /dev/null and b/src/styles/fonts/Gilroy_Medium.woff differ
diff --git a/src/styles/fonts/Gilroy_Medium.woff2 b/src/styles/fonts/Gilroy_Medium.woff2
new file mode 100644
index 0000000..dfaa5b6
Binary files /dev/null and b/src/styles/fonts/Gilroy_Medium.woff2 differ
diff --git a/src/styles/fonts/Gilroy_Regular.woff b/src/styles/fonts/Gilroy_Regular.woff
new file mode 100644
index 0000000..d7ddc7e
Binary files /dev/null and b/src/styles/fonts/Gilroy_Regular.woff differ
diff --git a/src/styles/fonts/Gilroy_Regular.woff2 b/src/styles/fonts/Gilroy_Regular.woff2
new file mode 100644
index 0000000..57b277d
Binary files /dev/null and b/src/styles/fonts/Gilroy_Regular.woff2 differ
diff --git a/src/styles/fonts/Gilroy_SemiBold.woff b/src/styles/fonts/Gilroy_SemiBold.woff
new file mode 100644
index 0000000..acdf98e
Binary files /dev/null and b/src/styles/fonts/Gilroy_SemiBold.woff differ
diff --git a/src/styles/fonts/Gilroy_SemiBold.woff2 b/src/styles/fonts/Gilroy_SemiBold.woff2
new file mode 100644
index 0000000..9a1b0dc
Binary files /dev/null and b/src/styles/fonts/Gilroy_SemiBold.woff2 differ
diff --git a/src/styles/fonts/fonts.css b/src/styles/fonts/fonts.css
new file mode 100644
index 0000000..2e582f9
--- /dev/null
+++ b/src/styles/fonts/fonts.css
@@ -0,0 +1,54 @@
+@font-face {
+ font-family: 'Inter';
+ src:
+ url('./inter-v12-latin_cyrillic-regular.woff2') format('woff2'),
+ url('./inter-v12-latin_cyrillic-regular.woff') format('woff');
+ font-weight: 400;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Inter';
+ src:
+ url('./inter-v12-latin_cyrillic-300.woff2') format('woff2'),
+ url('./inter-v12-latin_cyrillic-300.woff') format('woff');
+ font-weight: 300;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Inter';
+ src:
+ url('./inter-v12-latin_cyrillic-500.woff2') format('woff2'),
+ url('./inter-v12-latin_cyrillic-500.woff') format('woff');
+ font-weight: 500;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Inter';
+ src:
+ url('./inter-v12-latin_cyrillic-600.woff2') format('woff2'),
+ url('./inter-v12-latin_cyrillic-600.woff') format('woff');
+ font-weight: 600;
+ font-style: normal;
+}
+
+@font-face {
+ font-family: 'Inter';
+ src:
+ url('./inter-v12-latin_cyrillic-700.woff2') format('woff2'),
+ url('./inter-v12-latin_cyrillic-700.woff') format('woff');
+ font-weight: 700;
+ font-style: normal;
+}
+
+
+@font-face {
+ font-family: 'GilroyWebRegular';
+ src: url('./Gilroy_Regular.woff'),
+ url('./Gilroy_Regular.woff2');
+ font-weight: 400;
+ font-style: normal;
+
+}
\ No newline at end of file
diff --git a/src/styles/fonts/inter-v12-latin_cyrillic-300.woff b/src/styles/fonts/inter-v12-latin_cyrillic-300.woff
new file mode 100644
index 0000000..dfbdbc5
Binary files /dev/null and b/src/styles/fonts/inter-v12-latin_cyrillic-300.woff differ
diff --git a/src/styles/fonts/inter-v12-latin_cyrillic-300.woff2 b/src/styles/fonts/inter-v12-latin_cyrillic-300.woff2
new file mode 100644
index 0000000..c34a22e
Binary files /dev/null and b/src/styles/fonts/inter-v12-latin_cyrillic-300.woff2 differ
diff --git a/src/styles/fonts/inter-v12-latin_cyrillic-500.woff b/src/styles/fonts/inter-v12-latin_cyrillic-500.woff
new file mode 100644
index 0000000..c66dbc7
Binary files /dev/null and b/src/styles/fonts/inter-v12-latin_cyrillic-500.woff differ
diff --git a/src/styles/fonts/inter-v12-latin_cyrillic-500.woff2 b/src/styles/fonts/inter-v12-latin_cyrillic-500.woff2
new file mode 100644
index 0000000..7538425
Binary files /dev/null and b/src/styles/fonts/inter-v12-latin_cyrillic-500.woff2 differ
diff --git a/src/styles/fonts/inter-v12-latin_cyrillic-600.woff b/src/styles/fonts/inter-v12-latin_cyrillic-600.woff
new file mode 100644
index 0000000..d14fffe
Binary files /dev/null and b/src/styles/fonts/inter-v12-latin_cyrillic-600.woff differ
diff --git a/src/styles/fonts/inter-v12-latin_cyrillic-600.woff2 b/src/styles/fonts/inter-v12-latin_cyrillic-600.woff2
new file mode 100644
index 0000000..3f47285
Binary files /dev/null and b/src/styles/fonts/inter-v12-latin_cyrillic-600.woff2 differ
diff --git a/src/styles/fonts/inter-v12-latin_cyrillic-700.woff b/src/styles/fonts/inter-v12-latin_cyrillic-700.woff
new file mode 100644
index 0000000..f72a471
Binary files /dev/null and b/src/styles/fonts/inter-v12-latin_cyrillic-700.woff differ
diff --git a/src/styles/fonts/inter-v12-latin_cyrillic-700.woff2 b/src/styles/fonts/inter-v12-latin_cyrillic-700.woff2
new file mode 100644
index 0000000..60f0094
Binary files /dev/null and b/src/styles/fonts/inter-v12-latin_cyrillic-700.woff2 differ
diff --git a/src/styles/fonts/inter-v12-latin_cyrillic-regular.woff b/src/styles/fonts/inter-v12-latin_cyrillic-regular.woff
new file mode 100644
index 0000000..87685eb
Binary files /dev/null and b/src/styles/fonts/inter-v12-latin_cyrillic-regular.woff differ
diff --git a/src/styles/fonts/inter-v12-latin_cyrillic-regular.woff2 b/src/styles/fonts/inter-v12-latin_cyrillic-regular.woff2
new file mode 100644
index 0000000..daf5b02
Binary files /dev/null and b/src/styles/fonts/inter-v12-latin_cyrillic-regular.woff2 differ
diff --git a/src/styles/styles.css b/src/styles/styles.css
new file mode 100644
index 0000000..cae0b3b
--- /dev/null
+++ b/src/styles/styles.css
@@ -0,0 +1,151 @@
+ @import url(./fonts/fonts.css);
+
+ /* global styles for headings, buttons, and so */
+
+ .title {
+ pointer-events: none;
+ user-select: none;
+ font-family: 'GilroyWebRegular';
+ -webkit-text-fill-color: transparent;
+ -webkit-background-clip: text;
+ background-color: initial;
+ background-image: linear-gradient(180deg, #bc75ff, #798fff);
+ background-repeat: repeat;
+ font-weight: 400;
+ font-style: normal;
+ line-height: 100%;
+ margin: 0;
+ }
+
+ main {
+ box-sizing: border-box;
+ margin: 0 auto;
+ max-width: 1200px;
+ }
+
+ h1 {
+ font-size: 72px;
+ background: linear-gradient(180deg, #798FFF -41.07%, #D375FF 100%);
+ }
+
+ h2 {
+ font-size: 36px;
+
+ }
+
+ h3 {
+ font-size: 24px;
+
+ }
+
+ .caption {
+ margin: 0;
+ font-style: normal;
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 140%;
+ /* or 22px */
+
+
+ /* White */
+
+ color: #F2F2F2;
+ }
+
+ .caption-small {
+ font-size: 18px;
+ }
+
+ button {
+ font-family: 'Inter';
+ border: none;
+ cursor: pointer;
+ outline: none;
+ }
+
+ .button-primary {
+ transition: background 0.2s ease-in-out;
+
+ display: flex;
+ flex-direction: row;
+ justify-content: center;
+ align-items: center;
+ padding: 8px 16px 8px 8px;
+ gap: 4px;
+ width: fit-content;
+ height: fit-content;
+ background: linear-gradient(180deg, #BC75FF 0%, #798FFF 100%);
+ border-radius: 20px;
+ color: #F2F2F2;
+ font-style: normal;
+ font-weight: 400;
+ font-size: 16px;
+ line-height: 150%;
+ }
+
+ .button-primary:hover {
+ transition: background 0.2s ease-in-out;
+ background: linear-gradient(180deg, #798FFF -41.07%, #D375FF 100%);
+ }
+
+ .button-second {
+ transition: background 0.2s ease-in-out;
+
+ padding: 8px;
+ background: #23242A;
+ border-radius: 20px;
+ width: 40px;
+ height: 40px;
+ }
+
+ .button-second:hover {
+ transition: background 0.2s ease-in-out;
+ background: #2E3038;
+
+ }
+
+ header {
+ display: flex;
+ box-sizing: border-box;
+ align-items: center;
+ height: 112px;
+ position: fixed;
+ z-index: 11;
+ width: 100%;
+ padding: 35px 48px;
+ left: 0;
+ top: 0;
+ background: #151619;
+ justify-content: space-between;
+ }
+
+ .paragraph {
+ margin: 0;
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 400;
+ font-size: 18px;
+ line-height: 140%;
+ /* or 25px */
+ /* Inactive */
+ color: #C5C7CE;
+
+ }
+
+ .paragraph-small {
+ font-size: 16px;
+
+ }
+
+ .subparagraph {
+ font-size: 16px;
+ color: #C5C7CE;
+
+ }
+
+ .text-row-container {
+ display: grid;
+ grid-template-columns: 1fr 1fr;
+ gap: 32px;
+ margin-bottom: 118px;
+}
\ No newline at end of file
diff --git a/src/utils/texts.js b/src/utils/texts.js
new file mode 100644
index 0000000..7862ddc
--- /dev/null
+++ b/src/utils/texts.js
@@ -0,0 +1,29 @@
+export const crmText = {
+ title: 'Интеграция с CRM - системой.',
+ paragraph: 'Приложение передает информацию о клиенте в CRM-систему застройщика и получает актуальную информацию по ценам и статусам квартир.'
+}
+
+export const infrastractureText = {
+ title: 'Вся инфрастуктурана одном экране.',
+ paragraph: 'Возможность оценить инфраструктуру района покажет важные для клиента точки интереса и время, за которое он сможет до них дойти.'
+}
+
+export const filterSearchText = {
+ title: 'Параметрический поиск квартир.',
+ paragraph: 'Фильтр позволит отметить конкретные преимущества, определить количество комнат, желаемый этаж, цену, и получить выборку подходящих вариантов'
+}
+
+export const interiorText = {
+ title: 'Конфигуратор интерьера.',
+ paragraph: 'Клиент может свободно выбирать мебель и дизайн с помощью конфигуратора интерьера. Возможно выбрать стиль всей квартиры или изменить отдельные детали.'
+}
+
+export const wishlistText = {
+ title: 'Формирование вишлиста.',
+ paragraph: 'Клиент может добавить варианты квартир в избранное, сравнить их между собой по основным параметрам и выбрать свою будущую квартиру.'
+}
+
+export const renderText = {
+ title: 'Любой рендер за несколько секунд.',
+ paragraph: 'Когда для рекламы вам понадобится любой объект с любого ракурса, просто сделайте фотографию внутри презентации.'
+}
\ No newline at end of file
diff --git a/src/utils/utils.js b/src/utils/utils.js
new file mode 100644
index 0000000..3ef4fd9
--- /dev/null
+++ b/src/utils/utils.js
@@ -0,0 +1,26 @@
+import { crmText, filterSearchText, infrastractureText, interiorText, renderText, wishlistText } from './texts'
+import form from 'images/Form.png'
+import filter from 'images/FilterSearch.png'
+import infrastracture from 'images/Infrastructure.png'
+import interior from 'images/Interior.png'
+import render from 'images/Render.png'
+import wishlist from 'images/Wishlist.png'
+
+
+export {crmText, infrastractureText, filterSearchText, interiorText, wishlistText, renderText} from './texts'
+export const zero = 0
+
+export const precentage = '%'
+
+export const counters = [{ from: zero, to: 10, text: 'plain text', precentage: false }, { from: zero, to: 26, text: 'plain text', precentage: false }, { from: zero, to: 32, text: 'plain text', precentage: precentage }, { from: zero, to: 12, text: 'plain text', precentage: precentage }]
+
+
+export const swiperArray = [
+ {title: crmText.title, pargraph: crmText.paragraph, img: form},
+ {title: infrastractureText.title, pargraph: infrastractureText.paragraph, img: infrastracture},
+ {title: filterSearchText.title, pargraph: filterSearchText.paragraph, img: filter},
+ {title: interiorText.title, pargraph: interiorText.paragraph, img: interior},
+ {title: wishlistText.title, pargraph: wishlistText.paragraph, img: wishlist},
+ {title: renderText.title, pargraph: renderText.paragraph, img: render},
+
+]
\ No newline at end of file