diff --git a/README.md b/README.md index b476dd6..d05327f 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,11 @@ #### V pre0.1 - Добавлена главная страница (pre0.1_0) -- Добавлена страница "Услуги" (pre0.1_0) +- Добавлена страница "Услуги" (pre0.1_0) +- Адаптирована главная страница (pre0.1_1) +- Добавлена страница "О нас" (pre0.1_1) +- Добавлена страница "Контакты" (pre0.1_1) +- Добавлена страница "Калькулятор" (не функционирует) (pre0.1_1) #### V 0.0 - Инициализация diff --git a/package-lock.json b/package-lock.json index b4a1764..0daea93 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "@pbe/react-yandex-maps": "^1.2.4", "@react-icons/all-files": "https://github.com/react-icons/react-icons/releases/download/v4.10.1/react-icons-all-files-4.10.1.tgz", "autoprefixer": "^10.4.14", + "body-scroll-lock": "^4.0.0-beta.0", "gatsby": "^5.11.0", "gatsby-plugin-image": "^3.11.0", "gatsby-plugin-postcss": "^6.11.0", @@ -21,7 +22,9 @@ "postcss": "^8.4.24", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-range": "^1.8.14", "react-scroll": "^1.8.9", + "scrolltop": "^0.0.1", "swiper": "^10.0.3", "tailwindcss": "^3.3.2", "uniqid": "^5.4.0" @@ -5122,6 +5125,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, + "node_modules/body-scroll-lock": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", + "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==" + }, "node_modules/boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -13402,6 +13410,15 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "node_modules/react-range": { + "version": "1.8.14", + "resolved": "https://registry.npmjs.org/react-range/-/react-range-1.8.14.tgz", + "integrity": "sha512-v2nyD5106rHf9dwHzq+WRlhCes83h1wJRHIMFjbZsYYsO6LF4mG/mR3cH7Cf+dkeHq65DItuqIbLn/3jjYjsHg==", + "peerDependencies": { + "react": "^16.8.0-0 || ^17.0.0-0 || ^18.0.0-0", + "react-dom": "^16.8.0-0 || ^17.0.0-0 || ^18.0.0-0" + } + }, "node_modules/react-refresh": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", @@ -13963,6 +13980,11 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/scrolltop": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/scrolltop/-/scrolltop-0.0.1.tgz", + "integrity": "sha512-ZMsLfUHXq9kazYWWYuwy+wHS9Rx7YUlONR5yKQh052q2lABHuJwiEk/Qv6ZfuXIX62/euXsbzHWIfOhsGev8uQ==" + }, "node_modules/semver": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", @@ -20051,6 +20073,11 @@ } } }, + "body-scroll-lock": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", + "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==" + }, "boolbase": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", @@ -26016,6 +26043,12 @@ "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" }, + "react-range": { + "version": "1.8.14", + "resolved": "https://registry.npmjs.org/react-range/-/react-range-1.8.14.tgz", + "integrity": "sha512-v2nyD5106rHf9dwHzq+WRlhCes83h1wJRHIMFjbZsYYsO6LF4mG/mR3cH7Cf+dkeHq65DItuqIbLn/3jjYjsHg==", + "requires": {} + }, "react-refresh": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", @@ -26430,6 +26463,11 @@ "ajv-keywords": "^3.5.2" } }, + "scrolltop": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/scrolltop/-/scrolltop-0.0.1.tgz", + "integrity": "sha512-ZMsLfUHXq9kazYWWYuwy+wHS9Rx7YUlONR5yKQh052q2lABHuJwiEk/Qv6ZfuXIX62/euXsbzHWIfOhsGev8uQ==" + }, "semver": { "version": "7.5.1", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz", diff --git a/package.json b/package.json index e4c6953..e4f14cb 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "@pbe/react-yandex-maps": "^1.2.4", "@react-icons/all-files": "https://github.com/react-icons/react-icons/releases/download/v4.10.1/react-icons-all-files-4.10.1.tgz", "autoprefixer": "^10.4.14", + "body-scroll-lock": "^4.0.0-beta.0", "gatsby": "^5.11.0", "gatsby-plugin-image": "^3.11.0", "gatsby-plugin-postcss": "^6.11.0", @@ -29,7 +30,9 @@ "postcss": "^8.4.24", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-range": "^1.8.14", "react-scroll": "^1.8.9", + "scrolltop": "^0.0.1", "swiper": "^10.0.3", "tailwindcss": "^3.3.2", "uniqid": "^5.4.0" diff --git a/src/components/About/Documents.jsx b/src/components/About/Documents.jsx new file mode 100644 index 0000000..8b483f2 --- /dev/null +++ b/src/components/About/Documents.jsx @@ -0,0 +1,28 @@ +import React from 'react' +import Title from '../UI/Title'; +import Point2 from '../RichText_Points2/Point2'; +import DocumentsAdd from '../../icons/DocumentsAdd'; +import Shield from '../../icons/Shield'; + +const Documents = () => { + return ( +
+
+ Документы компании +
+
+ + +
+
+

Мы рады предоставить вам доступ к некоторым обязательным к опубликованию и важным документам нашей компании.

+

Мы придаем большое значение прозрачности и открытости в своей деятельности, и эти документы помогут вам более полно понять нашу организацию.

+

Мы надеемся, что эти документы помогут вам получить полное представление о нашей компании и ее ценностях.

+
+
+
+
+ ) +} + +export default Documents; \ No newline at end of file diff --git a/src/components/About/Hero.jsx b/src/components/About/Hero.jsx new file mode 100644 index 0000000..f55da88 --- /dev/null +++ b/src/components/About/Hero.jsx @@ -0,0 +1,33 @@ +import React from 'react' +import { StaticImage } from 'gatsby-plugin-image'; +import Title from '../UI/Title'; +import Button from '../UI/Button'; + +const Hero = () => { + return ( +
+
+ Надежный <span className='text-red-500'>партнер</span> +
+
+
+

Надежность и спокойствие

+

Наши специалисты гарантируютполный порядок в вашей бухгалтериии качественную поддержку во всехвозникающих вопросах. Простопозвоните нам и мы всерасскажем.

+
+
+

Ответственность

+

Наши специалисты гарантируютполный порядок в вашей бухгалтериии качественную поддержку во всехвозникающих вопросах. Простопозвоните нам и мы всерасскажем.

+
+ +
+
+
+ +
+
+
+
+ ) +} + +export default Hero; \ No newline at end of file diff --git a/src/components/About/PhysLic.jsx b/src/components/About/PhysLic.jsx new file mode 100644 index 0000000..94c0d9f --- /dev/null +++ b/src/components/About/PhysLic.jsx @@ -0,0 +1,34 @@ +import React, { useState } from 'react' + +import Title from '../UI/Title'; +import RichTextPoints from '../RichText_Points/RichTextPoints'; +import Documents from '../../icons/Documents'; +import BankTransfer from '../../icons/BankTransfer'; +import BankCards from '../../icons/BankCards'; +import Coin from '../../icons/Coin'; +import Signature from '../../icons/Signature'; + +import Button from '../UI/Button'; + +const PhysLic = () => { + const [points] = useState([ + {id: 0, title: '3-НДФЛ', to: '/services', ico: , link: true}, + {id: 1, title: 'Отчет о движении денежных средств в иностранных банках', to: '/services', ico: , link: true}, + {id: 2, title: 'Уведомление о счетах в иностранных банках', to: '/services', ico: , link: true}, + {id: 3, title: 'Контролируемые иностранные компании', to: '/services', ico: , link: true}, + {id: 4, title: 'Выпуск электронной цифровой подписи', to: '/services', ico: , link: true}, + ]); + return ( +
+
+ Физическим лицам + +

Наши высококвалифицированные специалисты также предлагают полную поддержку физическим лицам в отношении налоговых вопросов. Мы готовы помочь вам не только с подготовкой налоговых деклараций по форме 3-НДФЛ в соответствии с требованиями Налогового кодекса, но и с представлением других отчетов, предусмотренных законодательством Российской Федерации. Благодаря опыту наших специалистов, которые ранее работали в налоговых органах, мы можем предоставить вам качественные консультации и эффективную помощь по всем вопросам, связанным с вашими взаимоотношениями с налоговыми органами. Мы стремимся обеспечить вашу полную уверенность в соблюдении налоговых обязательств и помочь вам достичь оптимальных результатов в сфере налогообложения.

+ +
+
+
+ ) +} + +export default PhysLic; \ No newline at end of file diff --git a/src/components/About/RichText.jsx b/src/components/About/RichText.jsx new file mode 100644 index 0000000..6f00542 --- /dev/null +++ b/src/components/About/RichText.jsx @@ -0,0 +1,26 @@ +import React from 'react' +import { StaticImage } from 'gatsby-plugin-image'; +import Title from '../UI/Title'; +import Button from '../UI/Button'; + +const RichText = () => { + return ( +
+
+ Профессонализм и ответственность +
+
+ +
+
+

Мы практикуем индивидуальный подход к каждому клиенту. Данное правило является основополагающим в нашей работе с заказчиками. Мы полностью вникаем в суть проблем своего клиента, думаем вместе с ним, анализируем особенности его бизнеса.

+

Это позволяет нам понять настоящие причины возникновения сложностей и подыскать оптимальные способы решения

+ +
+
+
+
+ ) +} + +export default RichText; \ No newline at end of file diff --git a/src/components/About/Team/Person.jsx b/src/components/About/Team/Person.jsx new file mode 100644 index 0000000..e9dbe4f --- /dev/null +++ b/src/components/About/Team/Person.jsx @@ -0,0 +1,14 @@ +import React from 'react' +import { GatsbyImage, getImage } from 'gatsby-plugin-image'; + +const Person = ({name, text, img}) => { + return ( +
+ +

{name}

+

{text}

+
+ ) +} + +export default Person; \ No newline at end of file diff --git a/src/components/About/Team/Team.jsx b/src/components/About/Team/Team.jsx new file mode 100644 index 0000000..9c93778 --- /dev/null +++ b/src/components/About/Team/Team.jsx @@ -0,0 +1,79 @@ +import React, { useState } from 'react' +import { useStaticQuery, graphql } from "gatsby" +import { Swiper, SwiperSlide } from 'swiper/react'; +import 'swiper/css'; + +import { BsArrowLeft } from "@react-icons/all-files/bs/BsArrowLeft"; +import { BsArrowRight } from "@react-icons/all-files/bs/BsArrowRight"; +import Person from './Person'; + + +const Team = () => { + const [swiperInstance, setSwiperInstance] = useState(); + const images = useStaticQuery(graphql` + query { + person_1: file(relativePath: {eq: "team/1.jpg"}) { + childImageSharp { + gatsbyImageData(formats: WEBP, quality: 90) + } + }, + person_2: file(relativePath: {eq: "team/2.jpg"}) { + childImageSharp { + gatsbyImageData(formats: WEBP, quality: 90) + } + }, + person_3: file(relativePath: {eq: "team/3.jpg"}) { + childImageSharp { + gatsbyImageData(formats: WEBP, quality: 90) + } + }, + person_4: file(relativePath: {eq: "team/4.jpg"}) { + childImageSharp { + gatsbyImageData(formats: WEBP, quality: 90) + } + }, + person_5: file(relativePath: {eq: "team/1.jpg"}) { + childImageSharp { + gatsbyImageData(formats: WEBP, quality: 90) + } + }, + }`); + const [team] = useState([ + {id: 0, name: 'Соломонов Максим', text: 'Генеральный директор.\nСтаж работы в налоговых органах более 7 лет.\nСоветник государственной гражданской службы РФ 3 класса.', img: images.person_1}, + {id: 1, name: 'Милюкова Ариадна', text: 'Высококвалифицированный специалист по кадровому учету.\nСоветник юстиции 3 класса.', img: images.person_2}, + {id: 2, name: 'Панов Емельян', text: 'Налоговый консультант.\nСтаж работы в сфере налогов более 10 лет.\nСоветник государственной гражданской службы РФ 3 класса.', img: images.person_3}, + {id: 3, name: 'Этуша Галина', text: 'Высококвалифицированный специалист по кадровому учету.\nСоветник юстиции 3 класса.', img: images.person_4}, + {id: 4, name: 'Соломонов Максим', text: 'Высококвалифицированный специалист по кадровому учету.\nСоветник юстиции 3 класса.', img: images.person_5} + ]); + + return ( +
+
+
+

Наши сотрудники

+
+ + +
+
+ setSwiperInstance(swiper)} + breakpoints={{ + 640: { + slidesPerView: 3, + }, + 1024: { + slidesPerView: 4, + }, + }}> + {team.map(person=> + + + + )} + +
+
+ ) +} + +export default Team; \ No newline at end of file diff --git a/src/components/About/UrLic.jsx b/src/components/About/UrLic.jsx new file mode 100644 index 0000000..07a488e --- /dev/null +++ b/src/components/About/UrLic.jsx @@ -0,0 +1,56 @@ +import React, { useState } from 'react' + +import Title from '../UI/Title'; +import RichTextPoints from '../RichText_Points/RichTextPoints'; +import BusinessTime from '../../icons/BusinessTime'; +import Accounting from '../../icons/Accounting'; +import MoneyCash from '../../icons/MoneyCash'; +import SlideRecord from '../../icons/SlideRecord'; +import Restore from '../../icons/Restore'; +import Coins from '../../icons/Coins'; +import DocumentsFill from '../../icons/DocumentsFill'; +import ReceiptTax from '../../icons/ReceiptTax'; +import MapControl from '../../icons/MapControl'; +import FileCheck from '../../icons/FileCheck'; +import BillCross from '../../icons/BillCross'; +import MoneyHand from '../../icons/MoneyHand'; +import Company from '../../icons/Company'; +import Internet from '../../icons/Internet'; +import DocumentPen from '../../icons/DocumentPen'; +import Button from '../UI/Button'; + +const UrLic = () => { + const [points] = useState([ + {id: 0, title: 'Аутсорсинг бухгалтерских услуг', to: '/services', ico: , link: true}, + {id: 1, title: 'Бухгалтерское сопровождение бизнеса', to: '/services', ico: , link: true}, + {id: 2, title: 'Бухгалтерский учет для некоммерческих организаций', to: '/services', ico: , link: true}, + {id: 3, title: 'Бухгалтерский учет для ИП', to: '/services', ico: , link: true}, + {id: 4, title: 'Восстановление бухгалтерского учета', to: '/services', ico: , link: true}, + {id: 5, title: 'Расчет заработной платы', to: '/services', ico: , link: true}, + {id: 6, title: 'Нулевая отчетность', to: '/services', ico: , link: true}, + {id: 7, title: 'Работа с налоговыми органами', to: '/services', ico: , link: true}, + {id: 8, title: 'Внутренний налоговый контроль', to: '/services', ico: , link: true}, + {id: 9, title: 'Сопровождение проведения налоговой проверки', to: '/services', ico: , link: true}, + {id: 10, title: 'Списание задолженности по налогам', to: '/services', ico: , link: true}, + {id: 11, title: 'Возмещение НДС из бюджета', to: '/services', ico: , link: true}, + {id: 12, title: 'Кадровый учет на предприятии', to: '/services', ico: , link: true}, + {id: 13, title: 'СБИС — электронная отчетность по интернет', to: '/services', ico: , link: true}, + {id: 14, title: 'Регистрация ООО и ИП без визита в инспекцию', to: '/services', ico: , link: true}, + ]); + return ( +
+
+ Юридическим лицам + +

Современная коммерческая деятельность не может обойтись без участия опытного бухгалтера, специалиста по кадрам и налогового консультанта. Они могут помочь избежать проблем с контролирующими органами и оптимально организовать бизнес.

+

Мы практикуем индивидуальный подход к каждому клиенту. Данное правило является основополагающим в нашей работе с заказчиками. Мы полностью вникаем в суть проблем своего клиента, думаем вместе с ним, анализируем особенности его бизнеса.

+

Клиентам наших услуг доступен Личный кабинет заказчика для максимально удобного взаимодействия. А страхование ответственности в ведущих страховых компаниях России распространяется на все оказываемые нами услуги. Все это позволяет предложить нашим клиентам лучшие условия сотрудничества!

+

Кроме того, мы предлагаем страхование ответственности, которое распространяется на все оказываемые нами услуги. Это дополнительная гарантия для наших клиентов, обеспечивающая защиту их интересов в случае возникновения любых непредвиденных ситуаций.

+ +
+
+
+ ) +} + +export default UrLic; \ No newline at end of file diff --git a/src/components/About/Workers.jsx b/src/components/About/Workers.jsx new file mode 100644 index 0000000..1d705b9 --- /dev/null +++ b/src/components/About/Workers.jsx @@ -0,0 +1,30 @@ +import React from 'react' +import { StaticImage } from 'gatsby-plugin-image'; + +import Title from '../UI/Title'; +import Button from '../UI/Button'; + +const Workers = () => { + return ( +
+
+ Доверьтесь опытным специалистам +
+
+
+

Мы знаем более
1800
законов РФ

+
+ +
+
+

Мы практикуем индивидуальный подход к каждому клиенту. Данное правило является основополагающим в нашей работе с заказчиками. Мы полностью вникаем в суть проблем своего клиента, думаем вместе с ним, анализируем особенности его бизнеса.

+

Это позволяет нам понять настоящие причины возникновения сложностей и подыскать оптимальные способы решения

+ +
+
+
+
+ ) +} + +export default Workers; \ No newline at end of file diff --git a/src/components/Advantages.jsx b/src/components/Advantages.jsx index 1e84303..d5f48fd 100644 --- a/src/components/Advantages.jsx +++ b/src/components/Advantages.jsx @@ -21,12 +21,12 @@ const Advantages = () => { {id: 5, title: 'Лучшие специалисты', ico: } ]); return ( -
+
- Особые преимущества для вашего финансового роста + Особые преимущества для вашего финансового роста -

Добро пожаловать в нашу бухгалтерскую компанию! Мы - команда опытных профессионалов с 10-летним опытом работы в области бухгалтерии. Наша цель - обеспечить высококачественное бухгалтерское обслуживание, которое поможет вам эффективно управлять финансами своего бизнеса.

-

Наша команда тщательно следит за изменениями в законодательстве и всегда применяет передовые методы и технологии, чтобы обеспечить точность и надежность ведения бухгалтерского учета. Мы понимаем, что каждый бизнес уникален, поэтому мы готовы разработать индивидуальные решения, отвечающие вашим потребностям и целям.

+

Добро пожаловать в нашу бухгалтерскую компанию! Мы - команда опытных профессионалов с 10-летним опытом работы в области бухгалтерии. Наша цель - обеспечить высококачественное бухгалтерское обслуживание, которое поможет вам эффективно управлять финансами своего бизнеса.

+

Наша команда тщательно следит за изменениями в законодательстве и всегда применяет передовые методы и технологии, чтобы обеспечить точность и надежность ведения бухгалтерского учета. Мы понимаем, что каждый бизнес уникален, поэтому мы готовы разработать индивидуальные решения, отвечающие вашим потребностям и целям.

diff --git a/src/components/Calculator/Addictional.jsx b/src/components/Calculator/Addictional.jsx new file mode 100644 index 0000000..c91e7d8 --- /dev/null +++ b/src/components/Calculator/Addictional.jsx @@ -0,0 +1,25 @@ +import React from 'react' +import CheckBox from '../UI/CheckBox'; + +const Addictional = () => { + return ( +
+
+
+ + + + +
+
+ + + + +
+
+
+ ) +} + +export default Addictional; \ No newline at end of file diff --git a/src/components/Calculator/Calculator.jsx b/src/components/Calculator/Calculator.jsx new file mode 100644 index 0000000..c099785 --- /dev/null +++ b/src/components/Calculator/Calculator.jsx @@ -0,0 +1,25 @@ +import React from 'react' +import Title from '../UI/Title'; +import Ranges from './Ranges'; +import Output from './Output'; +import Addictional from './Addictional'; + +const Calculator = () => { + return ( +
+
+ Калькулятор стоимости <span className='text-red-500'>бухгалтерских услуг</span> +
+
+ + +
+ +
+ +
+
+ ) +} + +export default Calculator; \ No newline at end of file diff --git a/src/components/Calculator/Output.jsx b/src/components/Calculator/Output.jsx new file mode 100644 index 0000000..b3f4b9c --- /dev/null +++ b/src/components/Calculator/Output.jsx @@ -0,0 +1,33 @@ +import React, { useState } from 'react' +import { BsQuestionCircle } from "@react-icons/all-files/bs/BsQuestionCircle"; +import Radio from '../UI/Radio'; +import Button from '../UI/Button'; + +const Output = () => { + const [tarif, setTarif] = useState('optimal') + const [ip, setIp] = useState('') + return ( +
+
+

Тариф обсулживания

+

Подробнее о тарифах

+
+ setTarif(e.target.value)} checked={tarif === 'status' ? true : false}/> + setTarif(e.target.value)} checked={tarif === 'optimal' ? true : false}/> + setTarif(e.target.value)} checked={tarif === 'light' ? true : false}/> +
+
+ setIp(e.target.value)} checked={ip === 'without' ? true : false}/> + setIp(e.target.value)} checked={ip === 'with' ? true : false}/> +
+
+

Стоимость обслуживания

+ 29500 ₽ + +
+
+
+ ) +} + +export default Output; \ No newline at end of file diff --git a/src/components/Calculator/Ranges.jsx b/src/components/Calculator/Ranges.jsx new file mode 100644 index 0000000..8441d93 --- /dev/null +++ b/src/components/Calculator/Ranges.jsx @@ -0,0 +1,113 @@ +import React, { useState } from 'react' +import { Range, getTrackBackground } from 'react-range'; + +const Ranges = () => { + const [operations, setOperations] = React.useState([1]); + const operationsSettings = { + STEP: 1, + MIN: 1, + MAX: 8 + } + const operationsValues = [ + { title: '10'}, + { title: '20'}, + { title: '40'}, + { title: '70'}, + { title: '100'}, + { title: '150'}, + { title: '200'}, + { title: '300'} + ] + const [tax, setTax] = useState([1]); + const taxSettings = { + STEP: 1, + MIN: 1, + MAX: 3 + } + const taxValues = [ + { title: 'УСН 6%'}, + { title: 'УСН 15%\nЕСХН'}, + { title: 'осн'}, + ] + const [members, setMembers] = useState([1]); + const membersSettings = { + STEP: 1, + MIN: 1, + MAX: 100 + } + return ( +
+
+

Система налогооблажения:

+ setTax(values)} + renderMark={({ props, index }) => ( +
{taxValues[index]?.title}
+ )} + renderTrack={({ props, children }) => ( +
+
+ {children} +
+
+ )} + renderThumb={({ props }) => ( +
+ )} + /> +
+
+

Количество операций:

+ setOperations(values)} + renderMark={({ props, index }) => ( +
до {operationsValues[index]?.title}
+ )} + renderTrack={({ props, children }) => ( +
+
+ {children} +
+
+ )} + renderThumb={({ props }) => ( +
+ )} + /> +
+
+
+

Количество сотрудников:

+ {members[0]} +
+ setMembers(values)} + renderMark={({ props, index }) => ( +
{index+1}
+ )} + renderTrack={({ props, children }) => ( +
+
+ {children} +
+
+ )} + renderThumb={({ props }) => ( +
+ )} + /> +
+
+ ) +} + +export default Ranges; \ No newline at end of file diff --git a/src/components/Contacts.jsx b/src/components/Contacts.jsx index 64be558..0df0d2f 100644 --- a/src/components/Contacts.jsx +++ b/src/components/Contacts.jsx @@ -8,23 +8,23 @@ import Social from './UI/Social'; const Contacts = () => { return ( -
-
-
-

Получите индивидуальные решения для вашего бизнеса

+
+
+ +

Получите индивидуальные решения для вашего бизнеса

- +
-

Нажимая на кнопку “Отправить заявку”, Вы даете согласие на обработку Ваших персональных данных

-
- -

или

+

Нажимая на кнопку “Отправить заявку”, Вы даете согласие на обработку Ваших персональных данных

+
+ +

или

- - + +
diff --git a/src/components/Contacts/Hero.jsx b/src/components/Contacts/Hero.jsx new file mode 100644 index 0000000..1b6019c --- /dev/null +++ b/src/components/Contacts/Hero.jsx @@ -0,0 +1,41 @@ +import React from 'react' +import { StaticImage } from 'gatsby-plugin-image'; +import Title from '../UI/Title'; +import Button from '../UI/Button'; + +const Hero = () => { + return ( +
+
+ Наши <span className='text-red-500'>контакты</span> +
+
+
+

Телефон:

+ +7 (960) 281 97-90 +
+
+

E-mail:

+ example@mail.ru +
+
+

Наш адрес:

+

г.Санкт-Петербург, вн.тер.г. Муниципальный Округ Пулковский Меридиан, ул Бассейная, д. 27, Литера А, помещ. 23-н, офис 1

+
+
+

9:00 ДО 21:00 ПН-СБ

+

В субботу мы работаем по предварительной записи

+
+ +
+
+
+ +
+
+
+
+ ) +} + +export default Hero; \ No newline at end of file diff --git a/src/components/Counts/Count.jsx b/src/components/Counts/Count.jsx index 80d320b..b578de3 100644 --- a/src/components/Counts/Count.jsx +++ b/src/components/Counts/Count.jsx @@ -2,9 +2,9 @@ import React from 'react' const Count = ({number, text, ...props}) => { return ( -
- {number} -

{text}

+
+ {number} +

{text}

) } diff --git a/src/components/Counts/Counts.jsx b/src/components/Counts/Counts.jsx index c56b6c3..bd98601 100644 --- a/src/components/Counts/Counts.jsx +++ b/src/components/Counts/Counts.jsx @@ -13,16 +13,16 @@ const Counts = () => { ]) return ( -
+
- Наши цифры говорят сами за себя -
-
+ Наши цифры говорят сами за себя +
+
{counts.map(count=> )}
- +
diff --git a/src/components/Footer.jsx b/src/components/Footer.jsx index f4904f9..c02eba6 100644 --- a/src/components/Footer.jsx +++ b/src/components/Footer.jsx @@ -6,13 +6,13 @@ import Social from './UI/Social'; const Footer = () => { return ( -
- +
+ ) } diff --git a/src/components/Hero.jsx b/src/components/Hero.jsx index 26539c2..e9b4a72 100644 --- a/src/components/Hero.jsx +++ b/src/components/Hero.jsx @@ -6,15 +6,15 @@ import Title from './UI/Title'; const Hero = () => { return ( -
+
- Максимизируйте вашу финансовую эффективность с профессиональными <span className='text-red-500'>бухгалтерскими услугами!</span> -
- -

Калькулятор

-

Сколько это стоит ?

+ Максимизируйте вашу финансовую эффективность с профессиональными <span className='text-red-500'>бухгалтерскими услугами!</span> +
+ +

Калькулятор

+

Сколько это стоит ?

- +
diff --git a/src/components/Popular.jsx b/src/components/Popular.jsx index 367278c..848e7bd 100644 --- a/src/components/Popular.jsx +++ b/src/components/Popular.jsx @@ -14,13 +14,13 @@ const Popular = () => { {id: 2, text: 'Аутосортинг бухгалтерии, оптимизация финансовых процессов для вашего бизнеса.', ico: BusinessTimeAdd}, ]); return ( -
+
- Популярные услуги для вашего бизнеса + Популярные услуги для вашего бизнеса -

Регистрация ООО и ИП без визита в инспекцию

-

Быстрая и гарантированная регистрация ООО и ИП в удобном формате!

-

Регистрация ООО и ИП - это процесс официальной регистрации юридических структур в соответствии с законодательством страны. Позволяет создать легальное коммерческое предприятие и получить правовой статус для осуществления бизнеса.

+

Регистрация ООО и ИП без визита в инспекцию

+

Быстрая и гарантированная регистрация ООО и ИП в удобном формате!

+

Регистрация ООО и ИП - это процесс официальной регистрации юридических структур в соответствии с законодательством страны. Позволяет создать легальное коммерческое предприятие и получить правовой статус для осуществления бизнеса.

diff --git a/src/components/Price/Price.jsx b/src/components/Price/Price.jsx index a223118..02023b9 100644 --- a/src/components/Price/Price.jsx +++ b/src/components/Price/Price.jsx @@ -6,21 +6,21 @@ import { BsDash } from "@react-icons/all-files/bs/BsDash"; const Price = ({tarif, price, conditions, popular, ...props}) => { return ( -
+
{popular && - Популярный + Популярный } - {tarif} -

{price} за месяц

- + {tarif} +

{price} за месяц

+
{conditions && conditions.map(condition=> condition.check ? -

{condition.text}

+

{condition.text}

: -

{condition.text}

+

{condition.text}

) }
diff --git a/src/components/PriceMain.jsx b/src/components/PriceMain.jsx index fce4a8e..5076231 100644 --- a/src/components/PriceMain.jsx +++ b/src/components/PriceMain.jsx @@ -31,10 +31,10 @@ const PriceMain = () => { ]} ]); return ( -
+
- Стоимость бухгалтерских услуг -
+ Стоимость бухгалтерских услуг +
{prices.map(price=> )} diff --git a/src/components/Reviews/Reviews.jsx b/src/components/Reviews/Reviews.jsx index f5d18ab..9e90b50 100644 --- a/src/components/Reviews/Reviews.jsx +++ b/src/components/Reviews/Reviews.jsx @@ -41,16 +41,24 @@ const Reviews = () => { ]); return ( -
+
-
-

Что о нас говорят наши клиенты

+
+

Что о нас говорят наши клиенты

- - + +
- setSwiperInstance(swiper)}> + setSwiperInstance(swiper)} + breakpoints={{ + 640: { + slidesPerView: 2, + }, + 1024: { + slidesPerView: 3, + }, + }}> {reviews.map(review=> diff --git a/src/components/RichText_Points/Point.jsx b/src/components/RichText_Points/Point.jsx index 1d07187..c922d46 100644 --- a/src/components/RichText_Points/Point.jsx +++ b/src/components/RichText_Points/Point.jsx @@ -5,9 +5,9 @@ const Point = ({title, ico, className, link, to = '/', textsize, ...props}) => { const Inner = () => { return ( -
- {ico} -

{title}

+
+ {ico} +

{title}

) } diff --git a/src/components/RichText_Points/RichTextPoints.jsx b/src/components/RichText_Points/RichTextPoints.jsx index b3f3873..4b4e889 100644 --- a/src/components/RichText_Points/RichTextPoints.jsx +++ b/src/components/RichText_Points/RichTextPoints.jsx @@ -3,11 +3,11 @@ import React from 'react' import Point from './Point'; -const RichTextPoints = ({children, className, points, count = 3, textsize }) => { +const RichTextPoints = ({children, className, wrapperClass, points, count = 3, textsize }) => { return ( -
-
{children}
-
+
+
{children}
+
{points.map(point=> )} diff --git a/src/components/RichText_Points2/Point.jsx b/src/components/RichText_Points2/Point.jsx index d7d4083..b7ff5b5 100644 --- a/src/components/RichText_Points2/Point.jsx +++ b/src/components/RichText_Points2/Point.jsx @@ -2,8 +2,8 @@ import React from 'react' const Point = ({Ico, text}) => { return ( -
-
+
+

{text}

) diff --git a/src/components/RichText_Points2/Point2.jsx b/src/components/RichText_Points2/Point2.jsx new file mode 100644 index 0000000..c9c7c3e --- /dev/null +++ b/src/components/RichText_Points2/Point2.jsx @@ -0,0 +1,16 @@ +import React from 'react' +import { Link } from 'gatsby'; + +const Point2 = ({Ico, link = '/', title, text}) => { + return ( + +
+
+

{title}

+

{text}

+
+ + ) +} + +export default Point2; \ No newline at end of file diff --git a/src/components/RichText_Points2/RichTextPoints2.jsx b/src/components/RichText_Points2/RichTextPoints2.jsx index bc121b5..b28e20e 100644 --- a/src/components/RichText_Points2/RichTextPoints2.jsx +++ b/src/components/RichText_Points2/RichTextPoints2.jsx @@ -3,8 +3,8 @@ import Point from './Point'; const RichTextPoints2 = ({children, points}) => { return ( -
-
{children}
+
+
{children}
{points.map(point=> diff --git a/src/components/Services/Hero.jsx b/src/components/Services/Hero.jsx index 58b30fd..3b32a1d 100644 --- a/src/components/Services/Hero.jsx +++ b/src/components/Services/Hero.jsx @@ -13,21 +13,21 @@ const Hero = () => { {id: 1, title: 'Услуги'} ]); return ( -
+
- - Наши услуги -
-
-

Помощь специалиста требуется не только юридическим, но и физическим лицам, особенно в ситуациях, касающихся заполнения налоговых документов и получения вычетов. «АудитКонсалт» предлагает своим клиентам комплекс услуг, помогающий быстро решить различные проблемы.

- - + + Наши услуги +
+
+

Помощь специалиста требуется не только юридическим, но и физическим лицам, особенно в ситуациях, касающихся заполнения налоговых документов и получения вычетов. «АудитКонсалт» предлагает своим клиентам комплекс услуг, помогающий быстро решить различные проблемы.

+ +
-
- -

Калькулятор

-

Сколько это стоит ?

+
+ +

Калькулятор

+

Сколько это стоит ?

diff --git a/src/components/Services/PhysLic.jsx b/src/components/Services/PhysLic.jsx index ab0aa92..94c0d9f 100644 --- a/src/components/Services/PhysLic.jsx +++ b/src/components/Services/PhysLic.jsx @@ -19,11 +19,11 @@ const PhysLic = () => { {id: 4, title: 'Выпуск электронной цифровой подписи', to: '/services', ico: , link: true}, ]); return ( -
+
- Физическим лицам - -

Наши высококвалифицированные специалисты также предлагают полную поддержку физическим лицам в отношении налоговых вопросов. Мы готовы помочь вам не только с подготовкой налоговых деклараций по форме 3-НДФЛ в соответствии с требованиями Налогового кодекса, но и с представлением других отчетов, предусмотренных законодательством Российской Федерации. Благодаря опыту наших специалистов, которые ранее работали в налоговых органах, мы можем предоставить вам качественные консультации и эффективную помощь по всем вопросам, связанным с вашими взаимоотношениями с налоговыми органами. Мы стремимся обеспечить вашу полную уверенность в соблюдении налоговых обязательств и помочь вам достичь оптимальных результатов в сфере налогообложения.

+ Физическим лицам + +

Наши высококвалифицированные специалисты также предлагают полную поддержку физическим лицам в отношении налоговых вопросов. Мы готовы помочь вам не только с подготовкой налоговых деклараций по форме 3-НДФЛ в соответствии с требованиями Налогового кодекса, но и с представлением других отчетов, предусмотренных законодательством Российской Федерации. Благодаря опыту наших специалистов, которые ранее работали в налоговых органах, мы можем предоставить вам качественные консультации и эффективную помощь по всем вопросам, связанным с вашими взаимоотношениями с налоговыми органами. Мы стремимся обеспечить вашу полную уверенность в соблюдении налоговых обязательств и помочь вам достичь оптимальных результатов в сфере налогообложения.

diff --git a/src/components/Services/UrLic.jsx b/src/components/Services/UrLic.jsx index a4829af..07a488e 100644 --- a/src/components/Services/UrLic.jsx +++ b/src/components/Services/UrLic.jsx @@ -38,10 +38,10 @@ const UrLic = () => { {id: 14, title: 'Регистрация ООО и ИП без визита в инспекцию', to: '/services', ico: , link: true}, ]); return ( -
+
- Юридическим лицам - + Юридическим лицам +

Современная коммерческая деятельность не может обойтись без участия опытного бухгалтера, специалиста по кадрам и налогового консультанта. Они могут помочь избежать проблем с контролирующими органами и оптимально организовать бизнес.

Мы практикуем индивидуальный подход к каждому клиенту. Данное правило является основополагающим в нашей работе с заказчиками. Мы полностью вникаем в суть проблем своего клиента, думаем вместе с ним, анализируем особенности его бизнеса.

Клиентам наших услуг доступен Личный кабинет заказчика для максимально удобного взаимодействия. А страхование ответственности в ведущих страховых компаниях России распространяется на все оказываемые нами услуги. Все это позволяет предложить нашим клиентам лучшие условия сотрудничества!

diff --git a/src/components/Services/Workers.jsx b/src/components/Services/Workers.jsx index b678cc5..1d705b9 100644 --- a/src/components/Services/Workers.jsx +++ b/src/components/Services/Workers.jsx @@ -6,19 +6,19 @@ import Button from '../UI/Button'; const Workers = () => { return ( -
+
- Доверьтесь опытным специалистам -
-
-
-

Мы знаем более
1800
законов РФ

+ Доверьтесь опытным специалистам +
+
+
+

Мы знаем более
1800
законов РФ

-
-

Мы практикуем индивидуальный подход к каждому клиенту. Данное правило является основополагающим в нашей работе с заказчиками. Мы полностью вникаем в суть проблем своего клиента, думаем вместе с ним, анализируем особенности его бизнеса.

-

Это позволяет нам понять настоящие причины возникновения сложностей и подыскать оптимальные способы решения

+
+

Мы практикуем индивидуальный подход к каждому клиенту. Данное правило является основополагающим в нашей работе с заказчиками. Мы полностью вникаем в суть проблем своего клиента, думаем вместе с ним, анализируем особенности его бизнеса.

+

Это позволяет нам понять настоящие причины возникновения сложностей и подыскать оптимальные способы решения

diff --git a/src/components/UI/CheckBox.jsx b/src/components/UI/CheckBox.jsx new file mode 100644 index 0000000..f985d6b --- /dev/null +++ b/src/components/UI/CheckBox.jsx @@ -0,0 +1,18 @@ +import React from 'react'; +import uniqid from 'uniqid'; +import { BsCheck } from "@react-icons/all-files/bs/BsCheck"; + +const CheckBox = ({ className, labelClasses, label, wrapperClasses, name, ...props }) => { + + const uid = uniqid(); + + return ( +
+ + +
+ + ); +} + +export default CheckBox; \ No newline at end of file diff --git a/src/components/UI/Radio.jsx b/src/components/UI/Radio.jsx new file mode 100644 index 0000000..30fae93 --- /dev/null +++ b/src/components/UI/Radio.jsx @@ -0,0 +1,16 @@ +import React from 'react'; +import uniqid from 'uniqid'; + +const Radio = ({ className, labelClasses, label, wrapperClasses, name, ...props }) => { + + const uid = uniqid(); + + return ( +
+ + +
+ ); +} + +export default Radio; \ No newline at end of file diff --git a/src/components/UI/Title.jsx b/src/components/UI/Title.jsx index a9fa612..ef6ef25 100644 --- a/src/components/UI/Title.jsx +++ b/src/components/UI/Title.jsx @@ -2,12 +2,12 @@ import React from 'react' const Title = ({children, subtitle, className, titleClass, h1, ...props}) => { return ( -
+
{h1 ? -

{children}

+

{children}

: -

{children}

+

{children}

}

{subtitle}

diff --git a/src/icons/DocumentsAdd.jsx b/src/icons/DocumentsAdd.jsx index ab91d45..1a0ccce 100644 --- a/src/icons/DocumentsAdd.jsx +++ b/src/icons/DocumentsAdd.jsx @@ -9,11 +9,6 @@ const DocumentsAdd = ({addictionalColor = "#fff"}) => { - - - - - ) } diff --git a/src/icons/Shield.jsx b/src/icons/Shield.jsx new file mode 100644 index 0000000..cfe3f92 --- /dev/null +++ b/src/icons/Shield.jsx @@ -0,0 +1,13 @@ +import React from 'react' + +const Shield = () => { + return ( + + + + + + ) +} + +export default Shield; \ No newline at end of file diff --git a/src/icons/TimeFill.jsx b/src/icons/TimeFill.jsx index 2245624..8ef5a18 100644 --- a/src/icons/TimeFill.jsx +++ b/src/icons/TimeFill.jsx @@ -3,14 +3,9 @@ import React from 'react' const TimeFill = () => { return ( - + - - - - - ) } diff --git a/src/icons/iconoir_internet.svg b/src/icons/iconoir_internet.svg index 4367757..2b32293 100644 --- a/src/icons/iconoir_internet.svg +++ b/src/icons/iconoir_internet.svg @@ -1,5 +1 @@ - - - - - + \ No newline at end of file diff --git a/src/icons/material-symbols_shield-outline.svg b/src/icons/material-symbols_shield-outline.svg new file mode 100644 index 0000000..45434dd --- /dev/null +++ b/src/icons/material-symbols_shield-outline.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/images/icon.svg b/src/images/icon.svg new file mode 100644 index 0000000..2b32293 --- /dev/null +++ b/src/images/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/images/professionalism.jpg b/src/images/professionalism.jpg new file mode 100644 index 0000000..37b4db1 Binary files /dev/null and b/src/images/professionalism.jpg differ diff --git a/src/images/team/1.jpg b/src/images/team/1.jpg new file mode 100644 index 0000000..bc2c471 Binary files /dev/null and b/src/images/team/1.jpg differ diff --git a/src/images/team/2.jpg b/src/images/team/2.jpg new file mode 100644 index 0000000..07de82a Binary files /dev/null and b/src/images/team/2.jpg differ diff --git a/src/images/team/3.jpg b/src/images/team/3.jpg new file mode 100644 index 0000000..991aedb Binary files /dev/null and b/src/images/team/3.jpg differ diff --git a/src/images/team/4.jpg b/src/images/team/4.jpg new file mode 100644 index 0000000..13d69c1 Binary files /dev/null and b/src/images/team/4.jpg differ diff --git a/src/images/woman-account.png b/src/images/woman-account.png new file mode 100644 index 0000000..bbff1ca Binary files /dev/null and b/src/images/woman-account.png differ diff --git a/src/images/woman-account2.png b/src/images/woman-account2.png new file mode 100644 index 0000000..95abdcf Binary files /dev/null and b/src/images/woman-account2.png differ diff --git a/src/pages/about.jsx b/src/pages/about.jsx new file mode 100644 index 0000000..2299408 --- /dev/null +++ b/src/pages/about.jsx @@ -0,0 +1,25 @@ +import React from "react" +import Layout from "../components/layout" +import Seo from "../components/seo" + +import Hero from "../components/About/Hero" +import Team from "../components/About/Team/Team" +import Documents from "../components/About/Documents" +import RichText from "../components/About/RichText" +import Contacts from "../components/Contacts" + + +const AboutPage = () => { + return ( + + + + + + + + ) +} +export const Head = () => + +export default AboutPage diff --git a/src/pages/calculator.jsx b/src/pages/calculator.jsx new file mode 100644 index 0000000..12c2695 --- /dev/null +++ b/src/pages/calculator.jsx @@ -0,0 +1,19 @@ +import React from "react" +import Layout from "../components/layout" +import Seo from "../components/seo" + +import Calculator from "../components/Calculator/Calculator" +import Contacts from "../components/Contacts" + + +const CalculatorPage = () => { + return ( + + + + + ) +} +export const Head = () => + +export default CalculatorPage diff --git a/src/pages/contacts.jsx b/src/pages/contacts.jsx new file mode 100644 index 0000000..ee198a3 --- /dev/null +++ b/src/pages/contacts.jsx @@ -0,0 +1,19 @@ +import React from "react" +import Layout from "../components/layout" +import Seo from "../components/seo" + +import Hero from "../components/Contacts/Hero" +import Contacts from "../components/Contacts" + + +const ContactsPage = () => { + return ( + + + + + ) +} +export const Head = () => + +export default ContactsPage diff --git a/src/pages/services.jsx b/src/pages/services.jsx index 744ac8c..8dbc6e7 100644 --- a/src/pages/services.jsx +++ b/src/pages/services.jsx @@ -6,7 +6,6 @@ import Hero from "../components/Services/Hero" import PhysLic from "../components/Services/PhysLic" import Workers from "../components/Services/Workers" import UrLic from "../components/Services/UrLic" - import Contacts from "../components/Contacts" const ServicesPage = () => { @@ -16,11 +15,10 @@ const ServicesPage = () => { - ) } -export const Head = () => +export const Head = () => export default ServicesPage diff --git a/static/icon.svg b/static/icon.svg new file mode 100644 index 0000000..2b32293 --- /dev/null +++ b/static/icon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tailwind.config.js b/tailwind.config.js index 53efcc1..be47068 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,14 +1,21 @@ /** @type {import('tailwindcss').Config} */ module.exports = { content: [ - `./src/pages/**/*.{js,jsx,ts,tsx}`, - `./src/components/**/*.{js,jsx,ts,tsx}`, + "./src/pages/**/*.{js,jsx,ts,tsx}", + "./src/components/**/*.{js,jsx,ts,tsx}", ], theme: { - extend: {}, + extend: { + content: { + 'check': 'url("/icon.svg")', + }, + }, container: { screens: { - '2xl': '1360px', + md: '768px', + lg: '1024px', + xl: '1280px', + '2xl': '1367px', }, }, },