diff --git a/src/2_widgets/FooterLayout/FooterLayout.module.scss b/src/2_widgets/FooterLayout/FooterLayout.module.scss index 49a1ee0..d558ef4 100644 --- a/src/2_widgets/FooterLayout/FooterLayout.module.scss +++ b/src/2_widgets/FooterLayout/FooterLayout.module.scss @@ -1,11 +1,15 @@ @import '@styles/colors.scss'; @import '@styles/mixins/font.scss'; @import '@styles/mixins/media.scss'; +@import '@styles/mixins/btn'; + +.footer { + display: flex; + flex-direction: column; + gap: 35px; -footer { - grid-column: 1/3; @include media($min-width: 960px) { - padding: 0 100px; + padding: 30px 100px; } @include media($max-width: 960px) { @@ -13,21 +17,112 @@ footer { } } -.links { +.logoBlock { + display: flex; + gap: 20px; + align-items: center; +} + +.logoPicture { + display: flex; + align-items: center; + text-decoration: none; + color: #202020; +} + +.logoImg { + display: flex; + align-items: center; +} + +.logoText { + display: flex; + gap: 12px; + align-items: center; + text-decoration: none; +} + +.logoName { + @include font-source-sans(20px, $neutral-text-main-color, 500, 24px, 'Fredoka'); +} + +.logoSlogan { + @include font-source-sans(12px, $neutral-text-dark-color, 400, 16px, 'Fredoka'); +} + +.svg { + width: 40px; + height: 38px; +} + +.nav { display: flex; flex-wrap: wrap; + margin: 0; + padding: 0; list-style: none; - justify-content: center; - align-items: center; - gap: 14px; - padding: 2em; + justify-content: space-between; + align-items: flex-start; @include media($max-width: 835px) { flex-direction: column; } } +.links { + display: flex; + flex-direction: column; + row-gap: 16px; + flex-wrap: wrap; + margin: 0; + padding: 0; + list-style: none; +} + +.form { + display: flex; + flex-direction: column; + flex-wrap: wrap; + row-gap: 16px; + margin-bottom: 16px; +} + +.inputGroup { + display: flex; + flex-wrap: wrap; + column-gap: 16px; +} + +.input { + width: 303px; + padding: 10px 20px; + font-size: 14px; + line-height: 16px; + border-radius: 10px; +} + +.form ::placeholder { + font-size: 14px; + line-height: 16px; + color: $neutral-text-light-color; +} + .link, +.label, .copyright { @include font-source-sans(14px, $neutral-text-dark-color, 400, 16px); } + +.submitBtn { + @include primary-btn; + + padding: 10px 24px; + font-size: 12px; + border-radius: 10px; +} + +.copyright { + margin: 0; + padding: 0; + font-size: 12px; +} diff --git a/src/2_widgets/FooterLayout/FooterLayout.tsx b/src/2_widgets/FooterLayout/FooterLayout.tsx index 2dca6eb..3ea32a6 100644 --- a/src/2_widgets/FooterLayout/FooterLayout.tsx +++ b/src/2_widgets/FooterLayout/FooterLayout.tsx @@ -1,29 +1,67 @@ +import { useState } from 'react'; +import { useTranslation } from 'react-i18next'; + +import SocialsList from './SocialsList/SocialsList'; import { CustomLink } from '../../5_shared/ui'; -import { ABOUT_ROUTE, CONTACTS_ROUTE, POLICY_ROUTE, TERMS_ROUTE } from '@shared/lib/routes'; -import styles from './FooterLayout.module.scss'; +import { Input } from '../../5_shared/ui'; -const links = [ - { - title: 'О проекте', - href: ABOUT_ROUTE, - }, - { - title: 'Контакты', - href: CONTACTS_ROUTE, - }, - { - title: 'Политика конфиденциальности', - href: POLICY_ROUTE, - }, - { - title: 'Условия пользования', - href: TERMS_ROUTE, - }, -]; +import SvgIconLogo from '@assets/icons/logo.svg?react'; + +import { + MAIN_ROUTE, + ABOUT_ROUTE, + CONTACTS_ROUTE, + POLICY_ROUTE, + TERMS_ROUTE, + FEEDBACK_ROUTE, + DPA_ROUTE, +} from '@shared/lib/routes'; +import styles from './FooterLayout.module.scss'; export default function FooterLayout() { - const footerLinks = links.map((link, idx) => ( -
  • + const [inputText, setInputText] = useState(''); + const { t } = useTranslation('header'); + + const leftLinks = [ + { + title: 'О платформе', + href: ABOUT_ROUTE, + }, + { + title: 'Контакты', + href: CONTACTS_ROUTE, + }, + { + title: 'Отзывы', + href: FEEDBACK_ROUTE, + }, + ]; + + const rightLinks = [ + { + title: 'Правила и условия', + href: TERMS_ROUTE, + }, + { + title: 'Политика конфиденциальности', + href: POLICY_ROUTE, + }, + { + title: 'Согласие на обработку персональных данных', + href: DPA_ROUTE, + }, + ]; + + const footerLeftLinks = leftLinks.map((link, index) => ( +
  • + + {link.title} + +
  • + )); + + const footerRightLinks = rightLinks.map((link, index) => ( +
  • {link.title} @@ -31,11 +69,56 @@ export default function FooterLayout() { )); return ( -