diff --git a/package.json b/package.json index d449e5a..bdb7904 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ }, "devDependencies": { "@eslint/eslintrc": "^3", - "@iconify-icon/react": "^3.0.0", "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", diff --git a/public/images/logo-dtr-white.png b/public/images/logo-dtr-white.png new file mode 100644 index 0000000..ed6a54e Binary files /dev/null and b/public/images/logo-dtr-white.png differ diff --git a/src/core/constants/route.ts b/src/core/constants/route.ts new file mode 100644 index 0000000..ba30bb0 --- /dev/null +++ b/src/core/constants/route.ts @@ -0,0 +1,12 @@ +export const ROUTES = { + EMPTY: '#', + HOME: '/home', +} as const; + +export const ROUTES_EXTERNAL = { + YANDEX_MAP: '#', + WHATSAPP: '#', + TELEGRAM: '#', + VK: '#', + YOUTUBE: '#', +} as const; diff --git a/src/entities/top-menu/ui.tsx b/src/entities/top-menu/ui.tsx index b81023f..53196e2 100644 --- a/src/entities/top-menu/ui.tsx +++ b/src/entities/top-menu/ui.tsx @@ -1,29 +1,23 @@ import s from './styles.module.scss'; -import { - CiPhoneIcon, - EnvelopeIcon, - MapIcon, - TgIcon, - WaIcon, -} from '@shared/ui/icon'; +import { Icons } from '@shared/ui/icon'; function TopMenu() { return (
- - - + + +

- + spo-71@yandex.ru

- + г. Сочи, Навагинская д. 9д, оф. 35

diff --git a/src/shared/ui/icon/ui.tsx b/src/shared/ui/icon/ui.tsx index 1cd4e89..9d0afd4 100644 --- a/src/shared/ui/icon/ui.tsx +++ b/src/shared/ui/icon/ui.tsx @@ -6,7 +6,7 @@ import type { SVGProps } from 'react'; type SVGIcon = SVGProps; //RiMapPinLine -function MapIcon(props: SVGIcon) { +function Map(props: SVGIcon) { return ( + + + ); +} + +//MdiYoutube +function Youtube(props: SVGIcon) { + return ( + + + + ); +} + +const Icons = Object.assign( + {}, + { Map, Envelope, Whatsapp, Telegram, Phone, Vk, Youtube }, +); + +export { Icons }; diff --git a/src/views/home/ui.tsx b/src/views/home/ui.tsx index 6bd8516..b4f0fd9 100644 --- a/src/views/home/ui.tsx +++ b/src/views/home/ui.tsx @@ -1,14 +1,10 @@ import s from './styles.module.scss'; -import { BaseMenu, TopMenu } from '@/entities'; +import { Footer, Header } from '@/widgets'; export default function Main() { return (
-
- - -
- +
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Asperiores @@ -122,158 +118,8 @@ export default function Main() { eius eligendi fuga harum illo illum nam, nulla, odit officia quaerat quis reiciendis sit tempore!
-
- A aliquam asperiores consequatur cum dignissimos distinctio dolorem - eius eos eum excepturi expedita impedit laborum molestiae mollitia, - natus quam quidem quis quo reprehenderit similique tempore unde - veritatis voluptatem, voluptatibus voluptatum? -
-
- Accusamus adipisci assumenda beatae consequatur, eum exercitationem - explicabo maxime obcaecati officiis porro quae qui ratione sapiente - sequi suscipit velit veritatis? Harum molestiae quis quod? Et harum - neque quam reprehenderit voluptates! -
-
- Aspernatur deleniti distinctio, illum, inventore iure labore maiores - nemo quod sapiente sit voluptas, voluptatem! Minus nobis perspiciatis - rem velit. Delectus, dolores natus? Eos laborum laudantium molestiae, - nobis perferendis unde. Animi. -
-
- Dolores magni nulla quasi? Accusamus aliquam animi aperiam corporis - distinctio eligendi explicabo illo ipsum laboriosam laborum maiores - molestias obcaecati optio provident, quae, quaerat quas quisquam rerum - saepe voluptatum? Asperiores, unde. -
-
- Dignissimos distinctio dolore, ea error fugiat ipsum modi pariatur - praesentium quia velit. Aliquam aut consequuntur corporis, debitis - esse hic iste laboriosam magni mollitia natus non obcaecati placeat - quia recusandae veniam? -
-
- Accusantium aliquam corporis debitis distinctio dolore dolorem earum - eligendi fugiat harum impedit ipsam, libero magni minus molestias nisi - odit officiis possimus quae, quaerat quia quibusdam sit sunt totam ut - vel? -
-
- Animi assumenda dicta dignissimos itaque, nesciunt quo. Aliquam - asperiores aspernatur delectus deleniti dolorem, dolorum eaque ex - exercitationem expedita fugit id, iusto mollitia nesciunt officia quam - suscipit temporibus ullam ut voluptates. -
-
- Ad, at consequuntur dicta dolor, eius ex excepturi, fugit ipsum nisi - nostrum numquam qui reprehenderit sint suscipit tempora unde - voluptatibus. Dicta doloremque eaque est in nemo perspiciatis quae - quisquam, similique? -
-
- Accusantium culpa eaque eius id incidunt ipsam ipsum, laboriosam - nesciunt recusandae, repellendus temporibus vel voluptates voluptatum. - Aliquid consectetur dolores in praesentium voluptate? Accusamus - consequuntur delectus facilis fuga nulla saepe veritatis? -
-
- A aliquid animi commodi dolor est in, iure magnam molestias nesciunt - numquam quam, repellat sunt, veniam! Consectetur facere neque nulla - quos saepe! Dicta eum impedit molestias officiis temporibus tenetur - vitae? -
-
- Animi dignissimos fugiat nihil odit perspiciatis soluta! Commodi - consectetur cupiditate iusto, possimus veritatis voluptas voluptatem. - Adipisci, alias consequuntur cum impedit itaque, minima modi natus - nulla quaerat quam quidem sed unde! -
-
- Accusantium ad aliquid animi aspernatur corporis cumque cupiditate - delectus dolore ea expedita id iste, iure laudantium maiores modi odio - quae quas quis quod quos recusandae rerum sunt totam veniam - voluptatibus? -
-
- Aperiam, aspernatur cum dolorum error exercitationem fuga id - necessitatibus nisi quo rem repudiandae soluta veniam? A architecto - commodi consequuntur culpa deserunt ducimus est et fugit, iusto nihil - odio quo rem? -
-
- Alias distinctio dolorem ducimus eaque, eligendi error eveniet harum - iste iure modi mollitia odit perspiciatis praesentium quaerat quam - quidem rem repudiandae rerum sed sequi sit soluta ut veniam veritatis - voluptate. -
-
- Cumque debitis eaque, error fugiat hic molestias placeat unde? - Accusamus, ad, amet architecto at beatae culpa deleniti expedita - labore magni maiores maxime odio quos repudiandae soluta voluptate? - Esse, nisi, provident. -
-
- A aperiam autem eius error expedita id incidunt ipsum molestias nulla - porro reprehenderit, velit, vero voluptatem voluptatibus voluptatum! - Doloremque ducimus eum expedita molestias numquam porro quisquam - ratione repellendus tenetur voluptatibus. -
-
- A accusamus architecto asperiores consectetur, consequuntur culpa cum - error est, explicabo illum impedit ipsum magnam, molestias nulla - obcaecati officiis pariatur possimus quia recusandae reprehenderit - tempora tempore ullam vitae voluptatem voluptatibus! -
-
- A accusantium alias aliquam aut blanditiis consequatur cumque delectus - distinctio doloremque eligendi error et inventore ipsa ipsum iste - laborum neque odit qui quia, quo repudiandae saepe sit, totam vitae - voluptatem! -
-
- Alias, aliquam animi aspernatur blanditiis consectetur consequatur - corporis cupiditate, dolorum error esse impedit laudantium magni - maiores natus non nulla odit perferendis quam, similique soluta - suscipit tenetur totam vel veniam voluptatem! -
-
- Consequatur corporis cumque, dolore earum esse et fuga itaque laborum - magni maiores modi nihil odit officia officiis omnis praesentium, quae - quo quod ratione repellendus soluta suscipit, ullam! Accusamus, est, - reprehenderit! -
-
- At consectetur debitis dolores, dolorum et expedita laboriosam minus - nemo nihil numquam perspiciatis quas quibusdam repellendus repudiandae - sint tenetur, voluptatibus. Alias dignissimos, labore laudantium nemo - numquam reprehenderit repudiandae similique vero? -
-
- Architecto dignissimos enim et laboriosam quibusdam quisquam - reprehenderit rerum vel veniam voluptatum. Delectus facere modi - veritatis. A ad eaque eligendi enim fugiat harum maiores mollitia nisi - optio quibusdam sint, voluptate. -
-
- Ab commodi iste laboriosam laudantium maiores maxime non odit placeat - quaerat quas reiciendis, sequi temporibus, totam vel veritatis! - Doloremque eveniet expedita, fuga quam quis recusandae veniam? - Exercitationem repellendus veniam voluptates? -
-
- Animi aperiam asperiores autem delectus dignissimos illo impedit - ipsam, iusto natus numquam pariatur quae qui quis quisquam ratione - sequi sit suscipit ullam unde vel! Alias autem nemo odit quod - voluptate. -
-
- Accusamus aspernatur consectetur culpa cum cumque cupiditate doloribus - ducimus explicabo hic, id ipsa laboriosam maiores, molestiae nobis - quasi quia quod rem tempora tempore, voluptatem. Alias atque labore - maiores quia reprehenderit. -
-
footer
+
); } diff --git a/src/widgets/footer/index.ts b/src/widgets/footer/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/widgets/footer/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/widgets/footer/styles.module.scss b/src/widgets/footer/styles.module.scss index cb80c9b..7813517 100644 --- a/src/widgets/footer/styles.module.scss +++ b/src/widgets/footer/styles.module.scss @@ -1,3 +1,210 @@ .Footer { + display: flex; + flex-direction: column; +} +.Container { + &_green { + background: #007c6f; + } + + &_gray { + background: #3d3d3d; + } +} + +.Grid { + margin: 0 auto; + width: 1540px; + padding: 40px 0 0; + display: grid; + grid-template-columns: 1fr 1fr 1fr 1fr; + ///grid-template-rows: 1fr 1fr; + grid-auto-columns: 1fr; + gap: 0px 0px; + grid-auto-flow: row; + grid-template-areas: + "about linksa linksb linksc" + "contacts contacts social social"; + + .About { + grid-area: about; + + .Image { + margin-bottom: 20px; + } + + .Description { + font-family: $font-roboto; + font-weight: $font-regular; + font-size: 20px; + line-height: 160%; + color: $color-white; + } + } + + .LinksA { + grid-area: linksa; + padding: 10px; + + .Title { + @extend %title; + } + + .List { + @extend %list; + } + + .ListItem { + @extend %list-item; + } + } + + .LinksB { + grid-area: linksb; + padding: 10px; + + .Title { + @extend %title; + } + + .List { + @extend %list; + } + + .ListItem { + @extend %list-item; + } + } + + .LinksC { + grid-area: linksc; + padding: 10px; + + .Title { + @extend %title; + } + + .List { + @extend %list; + } + + .ListItem { + @extend %list-item; + } + } + + .Contacts { + grid-area: contacts; + + .Title { + @extend %title; + } + + .Icons { + display: flex; + flex-direction: row; + justify-content: center; + gap: 24px; + + .IconBox { + display: flex; + flex-direction: column; + align-items: center; + gap: 16px; + + .Icon { + border-radius: 50%; + width: 48px; + height: 48px; + padding: 8px; + background: $color-white; + } + + .Text { + @extend %icon-desc; + } + } + } + } + + .Social { + grid-area: social; + padding-left: 200px; + + .Title { + @extend %title; + } + + .Row { + display: flex; + flex-direction: row; + align-items: center; + gap: 20px; + } + + .Icon { + + } + } +} + +.Bottom { + margin: 0 auto; + width: 1540px; + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; + padding: 16px 0; + + font-family: $font-roboto; + font-weight: $font-regular; + font-size: 16px; + line-height: 100%; + color: $color-white; + + & a { + text-decoration: none; + color: $color-link-hover; + margin: 0 8px; + + &:hover { + text-decoration: underline; + } + } +} + +%title { + font-family: $font-roboto; + font-weight: $font-regular; + font-size: 20px; + line-height: 100%; + color: $color-white; + margin-bottom: 20px; +} + +%list { + display: flex; + flex-direction: column; + gap: 10px; + list-style: disc; +} + +%list-item { + font-family: $font-roboto; + font-weight: $font-regular; + font-size: 16px; + line-height: 130%; + color: $color-white; + margin-left: 20px; +} + +%icon-desc { + font-family: $font-roboto; + font-weight: $font-regular; + font-size: 18px; + line-height: 100%; + color: $color-white; + margin-bottom: 20px; } \ No newline at end of file diff --git a/src/widgets/footer/ui.tsx b/src/widgets/footer/ui.tsx index 8a6cc39..96517e2 100644 --- a/src/widgets/footer/ui.tsx +++ b/src/widgets/footer/ui.tsx @@ -1,5 +1,119 @@ import s from './styles.module.scss'; +import Link from 'next/link'; +import Image from 'next/image'; +import { ROUTES, ROUTES_EXTERNAL } from '@core/constants/route'; +import dtrLogo from '@public/images/logo-dtr-white.png'; +import { Icons } from '@shared/ui/icon'; -export default function Footer() { - return
footer
; +function Footer() { + return ( +
+
+
+
+ ДиТрасо +

+ В соответствии с п.5.1 ст.18 №128-фз лицензия для оценочной + деятельности не требуется с 01.07.2006г. +

+
+
+

Оценка имущества

+
    +
  1. Оценка жилой недвижимости
  2. +
  3. Оценка коммерческой недвижимости
  4. +
  5. Оценка ущерба недвижимости
  6. +
  7. Оценка сооружений
  8. +
  9. Оценка машин и оборудования
  10. +
  11. + Оценка стоимости предприятия (бизнеса) +
  12. +
+
+
+

Экспертиза

+
    +
  1. Автотехническая экспертиза
  2. +
  3. Товароведческая экспертиза
  4. +
  5. Трасологическая экспертиза
  6. +
  7. Кадастровая экспертиза
  8. +
  9. Строительно-техническая экспертиза
  10. +
  11. Оценочная экспертиза
  12. +
+
+
+

Юриспруденция

+
    +
  1. Семейные и наследственные споры
  2. +
  3. Земельные и имущественные споры
  4. +
  5. Взыскание долгов с юридических лиц
  6. +
  7. Страховые споры
  8. +
  9. + Сопровождение сделок и составление договоров +
  10. +
  11. Представительство в суде
  12. +
+
+
+

Контакты и адреса

+ +
+
+

Социальные сети:

+ +
+
+
+ +
+
+ © ООО “ДИ ТРАСО” | + Политика конфиденциальности | + Карта сайта +
+
+
+ ); } + +export { Footer }; diff --git a/src/widgets/header/index.ts b/src/widgets/header/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/widgets/header/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/widgets/header/ui.tsx b/src/widgets/header/ui.tsx index 181455f..1ad3b2b 100644 --- a/src/widgets/header/ui.tsx +++ b/src/widgets/header/ui.tsx @@ -1,5 +1,13 @@ import s from './styles.module.scss'; +import { BaseMenu, TopMenu } from '@/entities'; -export default function Header() { - return
header
; +function Header() { + return ( +
+ + +
+ ); } + +export { Header }; diff --git a/src/widgets/index.ts b/src/widgets/index.ts new file mode 100644 index 0000000..f4c09fc --- /dev/null +++ b/src/widgets/index.ts @@ -0,0 +1,2 @@ +export * from './header'; +export * from './footer';