diff --git a/.idea/workspace.xml b/.idea/workspace.xml index dded387..138caac 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,12 +5,33 @@ - + + + + + + + + + + + + + + + - - - - + + + + + + + + + + + - + + { "customColor": "", "associatedIndex": 4 @@ -68,6 +93,11 @@ "vue.rearranger.settings.migration": "true" } }]]> + + + + + @@ -101,7 +131,7 @@ - + diff --git a/src/core/styles/variables.scss b/src/core/styles/variables.scss index e314f32..b37e95a 100644 --- a/src/core/styles/variables.scss +++ b/src/core/styles/variables.scss @@ -29,4 +29,5 @@ $color-link: #333333; $color-link-hover: #009283; $color-error: #ff0000; $color-error-light: #ff9191; -$color-gray-border: #555555; \ No newline at end of file +$color-gray-border: #555555; +$color-title: #555555; \ No newline at end of file diff --git a/src/entities/base-menu/ui.tsx b/src/entities/base-menu/ui.tsx index 0510faa..35980ce 100644 --- a/src/entities/base-menu/ui.tsx +++ b/src/entities/base-menu/ui.tsx @@ -1,11 +1,12 @@ import s from './styles.module.scss'; import Image from 'next/image'; import Link from 'next/link'; +import { ROUTES } from '@shared/const/route'; import { Icons } from '@shared/ui/icon'; import { baseMenu } from '@shared/const/menu'; import { TMenu } from '@shared/types/menu'; -import dtrLogo from '@public/images/dtr-logo-eagle.png'; import { BeautyButton } from '@/entities'; +import dtrLogo from '@public/images/dtr-logo-eagle.png'; function BaseMenu() { const phone = '+7 (900) 241-34-34'; @@ -46,7 +47,9 @@ function BaseMenu() { return (
- {'ДиТрасо'} + + {'ДиТрасо'} +
{phone} diff --git a/src/shared/ui/partners-slider/styles.module.scss b/src/shared/ui/partners-slider/styles.module.scss index 2f26668..352a191 100644 --- a/src/shared/ui/partners-slider/styles.module.scss +++ b/src/shared/ui/partners-slider/styles.module.scss @@ -1,14 +1,12 @@ .Slider { display: block; - padding: 0 20px; - //flex-direction: row; - //justify-content: space-between; + padding: 0 rem(20px); } .Slide { display: flex; justify-content: center; align-items: center; - width: 200px; + width: rem(200px); height: auto; } \ No newline at end of file diff --git a/src/widgets/service-grid/index.ts b/src/views/home/about/index.ts similarity index 100% rename from src/widgets/service-grid/index.ts rename to src/views/home/about/index.ts diff --git a/src/views/home/about/styles.module.scss b/src/views/home/about/styles.module.scss new file mode 100644 index 0000000..8245d6a --- /dev/null +++ b/src/views/home/about/styles.module.scss @@ -0,0 +1,148 @@ +.About{ + background: #f7f7f7; +} + +.Inner{ + margin: 0 auto; + max-width: rem(1540px); + padding: rem(80px) rem(10px); + display: flex; + flex-direction: column; +} + +.Title { + font-family: $font-roboto; + font-weight: 500; + font-size: rem(32px); + line-height: 100%; + color: $color-title; + text-align: center; + margin-bottom: rem(80px); +} + +.Block{ + display: flex; + flex-direction: column; + align-items: center; + gap: rem(40px); + + @include iflaptop{ + flex-direction: row; + } +} + +.Card { + flex: 1; + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: 1fr 1fr; + gap: rem(40px) rem(20px); + grid-template-areas: + "left right" + "bottom bottom"; + margin: 0; + padding: rem(20px); + border-radius: rem(28px); + + background-color: #FFFFFF; + background-image: linear-gradient(185deg, #58c644 55%, #ffffff 0%); + box-shadow: rem(15px) 0 rem(40px) 0 rgba(0, 0, 0, 0.5); + transition: background 0.3s, border 0.3s, border-radius 0.3s, box-shadow 0.3s; + + @include iftablet{ + gap: rem(80px) rem(20px); + margin: 0 rem(40px); + padding: rem(40px); + max-width: rem(760px); + } + @include iflaptop{ + max-width: unset; + } + + .Left{ + grid-area: left; + display: flex; + flex-direction: column; + align-items: center; + + font-family: $font-roboto; + font-weight: 300; + font-size: rem(16px); + line-height: 130%; + color: $color-white; + text-align: center; + + @include iftablet{ + font-size: rem(20px); + } + + + & p:first-child{ + font-weight: 500; + font-size: rem(20px); + margin-bottom: rem(16px); + + @include iftablet{ + font-size: rem(28px); + margin-bottom: rem(16px); + } + } + } + + .Right{ + grid-area: right; + display: flex; + flex-direction: column; + align-items: center; + + font-family: $font-roboto; + font-weight: 300; + font-size: rem(16px); + line-height: 130%; + color: $color-white; + text-align: center; + + @include iftablet{ + font-size: rem(20px); + } + + + & p:first-child{ + font-weight: 500; + font-size: rem(20px); + margin-bottom: rem(16px); + + @include iftablet{ + font-size: rem(28px); + margin-bottom: rem(16px); + } + } + } + + .Bottom{ + grid-area: bottom; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + } + +} + +.Slider { + display: block; + padding: rem(20px) rem(20px); + width: 100%; + + @include iftablet{ + flex: 1; + display: block; + padding: 0 rem(20px); + } +} + +.Slide { + display: flex; + justify-content: center; + align-items: center; +} \ No newline at end of file diff --git a/src/views/home/about/ui.tsx b/src/views/home/about/ui.tsx new file mode 100644 index 0000000..f672fb7 --- /dev/null +++ b/src/views/home/about/ui.tsx @@ -0,0 +1,112 @@ +'use client'; + +import s from './styles.module.scss'; +import { Button } from '@shared/ui'; +import 'swiper/css'; +import 'swiper/css/navigation'; +import 'swiper/css/grid'; +import 'swiper/css/autoplay'; +import Image from 'next/image'; +import { Swiper, SwiperSlide } from 'swiper/react'; +import { Autoplay, Grid } from 'swiper/modules'; +import lic0 from '@public/images/licence/dtr-strahovka.png'; +import lic1 from '@public/images/licence/dtr-eac-0.png'; +import lic2 from '@public/images/licence/dtr-eac-1.png'; +import lic3 from '@public/images/licence/dtr-eac-2.png'; +import lic4 from '@public/images/licence/dtr-eac-3.png'; + +const slidesData = [ + { + id: 0, + name: 'Страховое свидетельство', + image: lic0, + }, + { + id: 1, + name: 'Сертификат соответствия', + image: lic1, + }, + { + id: 2, + name: 'Разрешение система качества ЕАС', + image: lic2, + }, + { + id: 3, + name: 'Приложение к разрешению ЕАС', + image: lic3, + }, + { + id: 4, + name: 'Приложение к разрешению ЕАС', + image: lic4, + }, +]; + +const swiperBreakpoints = { + 360: { + slidesPerView: 1, + spaceBetween: 10, + }, + 768: { + slidesPerView: 2, + spaceBetween: 30, + }, + 1024: { + slidesPerView: 2, + spaceBetween: 30, + }, + 1440: { + slidesPerView: 2, + spaceBetween: 30, + }, +}; + +function About() { + return ( +
+
+

О компании

+
+
+
+

5.000.000 руб.

+

+ Страхование компании
+ "ДИ ТРАСО" +

+
+
+

300.000 руб.

+

+ Индивидуальное страхование
+ специалиста +

+
+
+ +
+
+ + {slidesData.map(({ id, name, image }) => ( + + {name} + + ))} + +
+
+
+ ); +} + +export { About }; diff --git a/src/views/home/call-us/index.ts b/src/views/home/call-us/index.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/views/home/call-us/styles.module.scss b/src/views/home/call-us/styles.module.scss new file mode 100644 index 0000000..aec334e --- /dev/null +++ b/src/views/home/call-us/styles.module.scss @@ -0,0 +1,47 @@ +.CallUs { + display: grid; + grid-template-columns: auto; + gap: 0; + width: 100%; + background-color: transparent; + background-image: linear-gradient(300deg, #009283 46%, #58c644 57%); + + @include iftablet { + grid-template-columns: 1fr 1fr; + padding: rem(20px) 0; + } + + .LeftBlock { + display: flex; + flex-direction: column; + justify-content: center; + align-items: flex-end; + gap: rem(10px); + padding: rem(20px) rem(40px); + + .LineTitle { + font-family: $font-roboto; + font-weight: 500; + font-size: rem(24px); + line-height: 130%; + color: $color-white; + } + + .LineText { + font-family: $font-roboto; + font-weight: 400; + font-size: rem(16px); + line-height: 100%; + color: $color-white; + } + } + + .RightBlock { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + gap: rem(40px); + padding: rem(20px) rem(40px); + } +} diff --git a/src/views/home/call-us/ui.tsx b/src/views/home/call-us/ui.tsx new file mode 100644 index 0000000..173e2ae --- /dev/null +++ b/src/views/home/call-us/ui.tsx @@ -0,0 +1,19 @@ +import s from './styles.module.scss'; +import { Button } from '@shared/ui'; + +function CallUs() { + return ( +
+
+

Остались вопросы?

+

Свяжитесь с нами любым удобным способом

+
+
+ + +
+
+ ); +} + +export { CallUs }; diff --git a/src/views/home/experience/index.ts b/src/views/home/experience/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/views/home/experience/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/views/home/experience/styles.module.scss b/src/views/home/experience/styles.module.scss new file mode 100644 index 0000000..01dd288 --- /dev/null +++ b/src/views/home/experience/styles.module.scss @@ -0,0 +1,86 @@ +.Experience { + display: grid; + grid-template-columns: auto; + gap: 0; + width: 100%; + background-color: transparent; + background-image: linear-gradient(300deg, #009283 46%, #58c644 57%); + padding: rem(40px) 0 rem(20px); + + @include iftablet { + grid-template-columns: 1fr 1fr; + padding: rem(20px) 0; + } + + .LeftBlock { + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + gap: rem(20px); + + @include iftablet{ + gap: rem(40px); + } + + .Rounded { + font-family: $font-roboto; + font-weight: 400; + font-size: rem(24px); + line-height: 130%; + color: $color-white; + + border-radius: rem(28px); + border: 1px solid $color-white; + padding: rem(20px); + text-align: center; + + @include iftablet{ + font-size: rem(24px); + line-height: 130%; + width: rem(160px); + padding: rem(20px) rem(20px); + border-radius: rem(60px); + } + + @include iflaptop{ + font-size: rem(30px); + line-height: 130%; + width: rem(260px); + padding: rem(10px) rem(20px); + border-radius: rem(60px); + } + } + } + + .RightBlock { + display: flex; + flex-direction: column; + gap: rem(10px); + padding: rem(20px) rem(40px); + + .SubBlock { + display: flex; + flex-direction: row; + align-items: center; + gap: rem(16px); + + .Icon { + width: rem(32px); + flex-shrink: 0; + @include iftablet{ + width: rem(64px); + } + } + + .Text { + flex-shrink: 1; + font-family: $font-roboto; + font-weight: 400; + font-size: rem(16px); + line-height: 130%; + color: $color-white; + } + } + } +} \ No newline at end of file diff --git a/src/views/home/experience/ui.tsx b/src/views/home/experience/ui.tsx new file mode 100644 index 0000000..7e2a7ee --- /dev/null +++ b/src/views/home/experience/ui.tsx @@ -0,0 +1,46 @@ +import { Icons } from '@/shared/ui'; +import s from './styles.module.scss'; + +export default function Experience() { + return ( +
+
+
+

3300

+

оценок

+
+
+

2800

+

экспертиз

+
+
+
+
+ +

+ Мы производим независимую оценку и экспертизу на всей территории + Краснодарского края и города Сочи +

+
+
+ +

+ Клиентам предоставляется бесплатная юридическая консультация +

+
+
+
+ ); +} + +export { Experience }; diff --git a/src/views/home/main/index.ts b/src/views/home/main/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/views/home/main/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/views/home/main/styles.module.scss b/src/views/home/main/styles.module.scss new file mode 100644 index 0000000..f2f632e --- /dev/null +++ b/src/views/home/main/styles.module.scss @@ -0,0 +1,82 @@ +.Main { + height: rem(600px); + position: relative; + + .BgWrapper { + position: absolute; + top: rem(-200px); + left: rem(-880px); + width: 100vw; + z-index: -1; + + @include iftablet{ + top: rem(-200px); + left: rem(-600px); + } + + @include iflaptop{ + top: rem(-200px); + left: rem(-360px); + } + + @include ifdesktop{ + top: rem(-200px); + left: 0; + } + + .Background { + object-fit: cover; + } + } + + .Header { + position: absolute; + top: rem(180px); + left: rem(20px); + font-family: $font-roboto; + font-weight: 500; + font-size: rem(32px); + line-height: 130%; + color: $color-title; + max-width: rem(360px); + + @include iftablet{ + top: rem(180px); + left: rem(60px); + font-size: rem(42px); + max-width: rem(660px); + } + + @include iflaptop{ + top: rem(180px); + left: rem(140px); + font-size: rem(42px); + max-width: rem(660px); + } + + @include ifdesktop{ + top: rem(180px); + left: rem(300px); + font-size: rem(48px); + max-width: rem(720px); + } + } + + .Lines { + position: absolute; + top: rem(420px); + left: rem(-80px); + + @include iftablet{ + left: rem(0px); + } + + @include iflaptop{ + left: rem(120px); + } + + @include ifdesktop{ + left: rem(200px); + } + } +} \ No newline at end of file diff --git a/src/views/home/main/ui.tsx b/src/views/home/main/ui.tsx new file mode 100644 index 0000000..5835de4 --- /dev/null +++ b/src/views/home/main/ui.tsx @@ -0,0 +1,20 @@ +import s from './styles.module.scss'; +import Image from 'next/image'; +import bg from '@public/images/bg-main.jpg'; +import lines from '@public/images/bg-lines.png'; + +function Main() { + return ( +
+
+ {''} +
+

+ Независимая оценка и экспертиза в
Краснодарском крае +

+ {''} +
+ ); +} + +export { Main }; diff --git a/src/views/home/partners/index.ts b/src/views/home/partners/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/views/home/partners/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/views/home/partners/styles.module.scss b/src/views/home/partners/styles.module.scss new file mode 100644 index 0000000..4c63003 --- /dev/null +++ b/src/views/home/partners/styles.module.scss @@ -0,0 +1,13 @@ +.Slider { + padding: rem(80px) 0; + + .Title { + font-family: $font-roboto; + font-weight: 500; + font-size: rem(32px); + line-height: 100%; + color: $color-title; + text-align: center; + margin-bottom: rem(40px); + } +} \ No newline at end of file diff --git a/src/views/home/partners/ui.tsx b/src/views/home/partners/ui.tsx new file mode 100644 index 0000000..a743038 --- /dev/null +++ b/src/views/home/partners/ui.tsx @@ -0,0 +1,13 @@ +import s from './styles.module.scss'; +import { PartnersSlider } from '@shared/ui'; + +function Partners() { + return ( +
+

Наши клиенты и партнеры

+ +
+ ); +} + +export { Partners }; diff --git a/src/widgets/service-grid/data.tsx b/src/views/home/services/data.tsx similarity index 100% rename from src/widgets/service-grid/data.tsx rename to src/views/home/services/data.tsx diff --git a/src/views/home/services/index.ts b/src/views/home/services/index.ts new file mode 100644 index 0000000..5ecdd1f --- /dev/null +++ b/src/views/home/services/index.ts @@ -0,0 +1 @@ +export * from './ui'; diff --git a/src/widgets/service-grid/styles.module.scss b/src/views/home/services/styles.module.scss similarity index 75% rename from src/widgets/service-grid/styles.module.scss rename to src/views/home/services/styles.module.scss index 60fa2b1..52a22fb 100644 --- a/src/widgets/service-grid/styles.module.scss +++ b/src/views/home/services/styles.module.scss @@ -12,7 +12,7 @@ padding: rem(40px) rem(28px); } @include ifdesktop { - padding: rem(40px); + padding: rem(80px) rem(40px); } .Title { @@ -20,9 +20,13 @@ font-weight: 500; font-size: rem(32px); line-height: 100%; - color: $color-text; + color: $color-title; text-align: center; - margin-bottom: rem(20px); + margin-bottom: rem(40px); + + @include iftablet{ + margin-bottom: rem(60px); + } } .Switcher { @@ -34,7 +38,11 @@ width: 100%; border: 1px solid $color-green; border-radius: rem(20px); - margin-bottom: rem(40px); + margin-bottom: rem(20px); + + @include iftablet{ + margin-bottom: rem(40px); + } .Button { box-sizing: border-box; @@ -44,15 +52,20 @@ font-family: $font-roboto; font-weight: 400; - font-size: rem(16px); + font-size: rem(14px); line-height: 100%; - padding: rem(20px); + padding: rem(16px) rem(10px); border-radius: rem(18px); color: $color-green; text-transform: uppercase; cursor: pointer; border: 1px solid transparent; + @include iftablet{ + font-size: rem(16px); + padding: rem(20px); + } + &_active { background-color: $color-green; color: $color-white; @@ -67,11 +80,14 @@ .Grid { display: grid; grid-template-columns: repeat(2, 1fr); - gap: rem(20px); + gap: rem(10px); + + @include iflaptop{ + gap: rem(20px); + } @include iflaptop{ grid-template-columns: repeat(4, 1fr); - gap: rem(20px); } .Tile { @@ -79,27 +95,27 @@ flex-direction: column; justify-content: flex-start; align-items: center; - gap: rem(40px); + gap: rem(20px); border: 1px solid $color-green; - padding: rem(20px) rem(20px); + padding: rem(10px); border-radius: rem(20px); - //box-shadow: 4px 0px 10px 0px rgba(0,146,131,0.5); cursor: pointer; height: 100%; font-family: $font-roboto; font-weight: 400; - font-size: rem(16px); + font-size: rem(14px); line-height: 100%; color: $color-green; text-align: center; @include iftablet{ + font-size: rem(16px); padding: rem(20px) rem(20px); } @include iflaptop{ padding: rem(20px) rem(40px); - min-height: 220px; + min-height: rem(220px); font-size: rem(18px); } @include ifdesktop{ @@ -111,8 +127,13 @@ } svg { - width: 64px; - height: 64px; + width: rem(48px); + height: rem(48px); + + @include iftablet{ + width: rem(64px); + height: rem(64px); + } } } } \ No newline at end of file diff --git a/src/widgets/service-grid/ui.tsx b/src/views/home/services/ui.tsx similarity index 97% rename from src/widgets/service-grid/ui.tsx rename to src/views/home/services/ui.tsx index c5a6539..d268b67 100644 --- a/src/widgets/service-grid/ui.tsx +++ b/src/views/home/services/ui.tsx @@ -12,7 +12,7 @@ enum SwitcherOption { JURIST = 'jurist', } -function ServiceGrid() { +function Services() { const [switcher, setSwitcher] = useState( SwitcherOption.EXPERTISE, ); @@ -69,4 +69,4 @@ function ServiceGrid() { ); } -export { ServiceGrid }; +export { Services }; diff --git a/src/views/home/styles.module.scss b/src/views/home/styles.module.scss deleted file mode 100644 index 9965f91..0000000 --- a/src/views/home/styles.module.scss +++ /dev/null @@ -1,151 +0,0 @@ -.Main { - height: 600px; - position: relative; - - .BgWrapper { - position: absolute; - top: -200px; - left: 0; - width: 100vw; - z-index: -1; - - .Background { - object-fit: cover; - } - } - - .Header { - position: absolute; - top: 180px; - left: 300px; - font-family: $font-roboto; - font-weight: 500; - font-size: 48px; - line-height: 130%; - color: $color-text; - max-width: 720px; - } - - .Lines { - position: absolute; - top: 420px; - left: 200px; - } -} - -.Row { - display: grid; - grid-template-columns: auto; - gap: 0; - width: 100%; - background-color: transparent; - background-image: linear-gradient(300deg, #009283 46%, #58c644 57%); - - @include iftablet { - grid-template-columns: 1fr 1fr; - } - - .LeftBlock { - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - gap: 40px; - - .Rounded { - border-radius: 60px; - border: 1px solid $color-white; - padding: 20px; - text-align: center; - font-family: $font-roboto; - font-weight: 400; - font-size: 30px; - line-height: 150%; - color: $color-white; - text-transform: uppercase; - width: 260px; - } - } - - .RightBlock { - display: flex; - flex-direction: column; - gap: 10px; - padding: 20px 40px; - - .SubBlock { - display: flex; - flex-direction: row; - align-items: center; - gap: 16px; - - .Text { - font-family: $font-roboto; - font-weight: 400; - font-size: 16px; - line-height: 130%; - color: $color-white; - } - } - } -} - -.BottomRow { - display: grid; - grid-template-columns: auto; - gap: 0; - width: 100%; - background-color: transparent; - background-image: linear-gradient(300deg, #009283 46%, #58c644 57%); - - @include iftablet { - grid-template-columns: 1fr 1fr; - } - - .LeftBlock { - display: flex; - flex-direction: column; - justify-content: center; - align-items: flex-end; - gap: 10px; - padding: 20px 40px; - - .LineTitle { - font-family: $font-roboto; - font-weight: 500; - font-size: 24px; - line-height: 130%; - color: $color-white; - } - - .LineText { - font-family: $font-roboto; - font-weight: 400; - font-size: 16px; - line-height: 100%; - color: $color-white; - } - } - - .RightBlock { - display: flex; - flex-direction: row; - justify-content: center; - align-items: center; - gap: 50px; - padding: 20px 40px; - } -} - -.Slider { - padding: 60px 0; - - .Title { - font-family: $font-roboto; - font-weight: 500; - font-size: 32px; - line-height: 100%; - color: $color-text; - text-align: center; - } -} \ No newline at end of file diff --git a/src/views/home/ui.tsx b/src/views/home/ui.tsx index b4561a3..50ea99f 100644 --- a/src/views/home/ui.tsx +++ b/src/views/home/ui.tsx @@ -1,68 +1,19 @@ -import s from './styles.module.scss'; -import Image from 'next/image'; -import { Button, Icons, PartnersSlider } from '@shared/ui'; -import bg from '@public/images/bg-main.jpg'; -import lines from '@public/images/bg-lines.png'; -import { ServiceGrid } from '@/widgets'; +import { Services } from './services'; +import { Partners } from './partners'; +import { Experience } from './experience'; +import { About } from './about'; +import { CallUs } from './call-us/ui'; +import { Main } from './main'; -export default function Main() { +export default function Home() { return ( <> -
-
- {''} -
-

- Независимая оценка и экспертиза в
Краснодарском крае -

- {''} -
- -
-
-
-

3300

-

оценок

-
-
-

2800

-

экспертиз

-
-
-
-
- -

- Мы производим независимую оценку и экспертизу на всей территории - Краснодарского края и города Сочи -

-
-
- -

- Клиентам предоставляется бесплатная юридическая консультация -

-
-
-
- - - -
-
-

Остались вопросы?

-

Свяжитесь с нами любым удобным способом

-
-
- - -
-
- -
-

Наши клиенты и партнеры

- -
+
+ + + + + ); } diff --git a/src/widgets/footer/ui.tsx b/src/widgets/footer/ui.tsx index 53d663f..00cc19f 100644 --- a/src/widgets/footer/ui.tsx +++ b/src/widgets/footer/ui.tsx @@ -11,7 +11,9 @@ function Footer() {
- ДиТрасо + + ДиТрасо +

В соответствии с п.5.1 ст.18 №128-фз лицензия для оценочной деятельности не требуется с 01.07.2006г. diff --git a/src/widgets/index.ts b/src/widgets/index.ts index f9fced4..05d68e2 100644 --- a/src/widgets/index.ts +++ b/src/widgets/index.ts @@ -1,4 +1,3 @@ export * from './header'; export * from './footer'; export * from './breadcrumbs'; -export * from './service-grid';