From 09fb444237395fcc8781cdc1017c76f074f75671 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D1=80=D0=B8=D1=81=D1=82=D0=B8=D0=BD=D0=B0=20=D0=9C?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA?= Date: Fri, 14 Aug 2026 21:48:13 +0700 Subject: [PATCH 1/2] solution --- .github/workflows/test.yml-template | 29 ++ index.html | 631 ++++++++++++++++++++++- package-lock.json | 23 +- package.json | 2 +- src/images/icon/Menu.svg | 3 + src/images/icon/favicon.svg | 4 + src/images/slider/mdi_arrow_forward.svg | 10 + src/images/socials/facebook 1.svg | 10 + src/images/socials/instagram.svg | 3 + src/images/socials/twitter 1.svg | 10 + src/scripts/main.js | 34 ++ src/styles/_base.scss | 34 ++ src/styles/_button.scss | 24 + src/styles/_expertise.scss | 101 ++++ src/styles/_fonts.scss | 2 +- src/styles/_footer.scss | 219 ++++++++ src/styles/_header.scss | 214 ++++++++ src/styles/_nav.scss | 71 +++ src/styles/_services.scss | 228 +++++++++ src/styles/_slider.scss | 118 +++++ src/styles/_testimonials.scss | 149 ++++++ src/styles/_vision.scss | 90 ++++ src/styles/_who-we-are.scss | 30 ++ src/styles/main.scss | 16 +- src/styles/style.css | 637 ++++++++++++++++++++++++ src/styles/utils/_extends.scss | 12 + src/styles/utils/_vars.scss | 23 +- 27 files changed, 2699 insertions(+), 28 deletions(-) create mode 100644 .github/workflows/test.yml-template create mode 100644 src/images/icon/Menu.svg create mode 100644 src/images/icon/favicon.svg create mode 100644 src/images/slider/mdi_arrow_forward.svg create mode 100644 src/images/socials/facebook 1.svg create mode 100644 src/images/socials/instagram.svg create mode 100644 src/images/socials/twitter 1.svg create mode 100644 src/styles/_base.scss create mode 100644 src/styles/_button.scss create mode 100644 src/styles/_expertise.scss create mode 100644 src/styles/_footer.scss create mode 100644 src/styles/_header.scss create mode 100644 src/styles/_nav.scss create mode 100644 src/styles/_services.scss create mode 100644 src/styles/_slider.scss create mode 100644 src/styles/_testimonials.scss create mode 100644 src/styles/_vision.scss create mode 100644 src/styles/_who-we-are.scss create mode 100644 src/styles/style.css diff --git a/.github/workflows/test.yml-template b/.github/workflows/test.yml-template new file mode 100644 index 0000000000..8b5743ecb4 --- /dev/null +++ b/.github/workflows/test.yml-template @@ -0,0 +1,29 @@ +name: Test + +on: + pull_request: + branches: [ master ] + +jobs: + build: + + runs-on: ubuntu-latest + + strategy: + matrix: + node-version: [20.x] + + steps: + - uses: actions/checkout@v2 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - run: npm install + - run: npm test + - name: Upload HTML report(backstop data) + if: ${{ always() }} + uses: actions/upload-artifact@v2 + with: + name: report + path: backstop_data diff --git a/index.html b/index.html index 1eca937738..166deb8bea 100644 --- a/index.html +++ b/index.html @@ -6,14 +6,641 @@ name="viewport" content="width=device-width, initial-scale=1.0" /> - Dia + DIA + + + -

Dia

+
+ +
+

Strategic Agency

+

+ We believe in the power of bold ideas that can solve business + challenges. +

+ + Learn more + +
+
+
+ slide +
+
+ + +
+

INTRO

+

+ By the same illusion which lifts the horizon. +

+
+
+
+
+ + + +
+
+
+

Who we are

+

+ We embrace a strategic approach to creative ideas. We are interested + in people and human relationships. This is the main thing you need + to know about us. We believe in the power of bold ideas that can + solve business challenges. +

+
+
+ +
+

Our expertise

+
+
+ branding +

Branding

+

+ We create additional value for companies, products, services as + well as verbal and visual ways to deliver it to the audience. +

+
+
+ communication +

Communication

+

+ We strive to create communications that can increase media + performance. We use everything — words, meanings, stories, art, + movies. +

+
+
+ strategy +

Strategy

+

+ We create business growth strategies, from the moment of its birth + to the achievement of the necessary business indicators. +

+
+
+
+ +
+
+

Services

+

Air is a full service creative agency

+
+

Deep analytics, strong strategy and bright creative ideas.

+

+ We are sure that first-rate job is possible only if all three + components are united. +

+
+
+ +
+
+ 001 +
    +
  • Brand Development
  • +
  • Copywriting
  • +
  • Logo & Website Design
  • +
  • Packaging
  • +
+ + + arrow + + Learn more + +
+
+ 002 +
    +
  • Content Production
  • +
  • Graphic Design
  • +
  • Video Production
  • +
  • Post Production
  • +
+ + + arrow + + Learn more + +
+
+ 003 +
    +
  • Marketing Strategy
  • +
  • Email Marketing
  • +
  • Paid Advertising
  • +
  • Blog Content & SEO
  • +
+ + + arrow + + Learn more + +
+
+ 004 +
    +
  • Digital Communications
  • +
  • Influencer Marketing
  • +
  • Product Placements
  • +
  • Strategic Partnerships
  • +
+ + + arrow + + Learn more + +
+
+
+
+

Testimonials

+

+ What +
+ people say +

+
+
+
+ decorative shapes + Tal Gilad +
+

+ AIR's ideas are refreshing and out of the box. Authentic team that + focuses on the important path of the brand. +

+

Tal Gilad

+

Teach for America

+
+ +
+
+ decorative shapes + Azadeh Hawkins +
+

+ AIR is an exceptional agency that leads with creative talent, + first-class account servicing. +

+

Azadeh Hawkins

+

Hawkins Consulting

+
+ +
+
+ decorative shapes + Michel Grover +
+

+ AIR raises the agency bar to stratospheric heights on both + creative output and client service. +

+

Michel Grover

+

Hulu

+
+
+
+
+
+

Vision, Passion, Results

+

+ We are sure that first-rate job is possible only if all three + components are united. +

+ + Apply + +
+
+
+ + + diff --git a/package-lock.json b/package-lock.json index 1b7e1f550b..37ec2f69ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@linthtml/linthtml": "^0.9.6", "@mate-academy/bemlint": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^2.1.2", + "@mate-academy/scripts": "^2.1.3", "@mate-academy/stylelint-config": "latest", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", @@ -1510,10 +1510,11 @@ "dev": true }, "node_modules/@mate-academy/scripts": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-2.1.2.tgz", - "integrity": "sha512-gUXFdqqOfYzF9R3RSx2pCa5GLdOkxB9bFbF+dpUpzucdgGAANqOGdqpmNnMj+e3xA9YHraUWq3xo9cwe5vD9pQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-2.1.3.tgz", + "integrity": "sha512-a07wHTj/1QUK2Aac5zHad+sGw4rIvcNl5lJmJpAD7OxeSbnCdyI6RXUHwXhjF5MaVo9YHrJ0xVahyERS2IIyBQ==", "dev": true, + "license": "MIT", "dependencies": { "@octokit/rest": "^17.11.2", "@types/get-port": "^4.2.0", @@ -8721,20 +8722,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "dev": true, - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/package.json b/package.json index aebda906fc..ffc8ac6e62 100644 --- a/package.json +++ b/package.json @@ -23,7 +23,7 @@ "@linthtml/linthtml": "^0.9.6", "@mate-academy/bemlint": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^2.1.2", + "@mate-academy/scripts": "^2.1.3", "@mate-academy/stylelint-config": "latest", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", diff --git a/src/images/icon/Menu.svg b/src/images/icon/Menu.svg new file mode 100644 index 0000000000..374d372c5a --- /dev/null +++ b/src/images/icon/Menu.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/icon/favicon.svg b/src/images/icon/favicon.svg new file mode 100644 index 0000000000..e5cb0ddaa3 --- /dev/null +++ b/src/images/icon/favicon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/images/slider/mdi_arrow_forward.svg b/src/images/slider/mdi_arrow_forward.svg new file mode 100644 index 0000000000..abcb7f51b8 --- /dev/null +++ b/src/images/slider/mdi_arrow_forward.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/socials/facebook 1.svg b/src/images/socials/facebook 1.svg new file mode 100644 index 0000000000..b6bc5a936d --- /dev/null +++ b/src/images/socials/facebook 1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/socials/instagram.svg b/src/images/socials/instagram.svg new file mode 100644 index 0000000000..76a83d304d --- /dev/null +++ b/src/images/socials/instagram.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/socials/twitter 1.svg b/src/images/socials/twitter 1.svg new file mode 100644 index 0000000000..74cbdbf5d4 --- /dev/null +++ b/src/images/socials/twitter 1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/scripts/main.js b/src/scripts/main.js index ad9a93a7c1..9583d6a60a 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1 +1,35 @@ 'use strict'; + +const navToggle = document.getElementById('nav-toggle'); +const nav = document.getElementById('nav'); +const navClose = document.getElementById('nav-close'); + +navToggle.addEventListener('click', function (event) { + event.preventDefault(); + nav.classList.add('nav--open'); +}); + +navClose.addEventListener('click', function () { + nav.classList.remove('nav--open'); +}); + +nav.querySelectorAll('.nav__link').forEach(function (link) { + link.addEventListener('click', function () { + nav.classList.remove('nav--open'); + }); +}); + +const contactForm = document.getElementById('contact-form'); + +contactForm.addEventListener('submit', function (event) { + event.preventDefault(); + + if (!contactForm.checkValidity()) { + contactForm.reportValidity(); + + return; + } + + contactForm.reset(); + window.scrollTo({ top: 0, behavior: 'smooth' }); +}); diff --git a/src/styles/_base.scss b/src/styles/_base.scss new file mode 100644 index 0000000000..ef96cdafe2 --- /dev/null +++ b/src/styles/_base.scss @@ -0,0 +1,34 @@ +html { + scroll-behavior: smooth; +} + +body { + overflow-x: hidden; + margin: 0; + font-family: $f-body; + background-color: $c-bg; +} + +main { + display: flex; + flex-direction: column; + gap: 120px; + + box-sizing: border-box; + padding: 120px 20px; + + @media (min-width: $bp-tablet) { + gap: 148px; + padding: 148px 41px; + } + + @media (min-width: $bp-desktop) { + gap: 148px; + padding: 148px 54px; + } + + @media (min-width: $bp-large) { + max-width: $bp-large; + margin: 0 auto; + } +} diff --git a/src/styles/_button.scss b/src/styles/_button.scss new file mode 100644 index 0000000000..bd191e8170 --- /dev/null +++ b/src/styles/_button.scss @@ -0,0 +1,24 @@ +.button { + cursor: pointer; + + display: block; + + padding: 18px; + border: none; + border-radius: 8px; + + font-family: $f-poppins; + font-size: 15px; + font-weight: 600; + color: $c-white; + text-align: center; + text-decoration: none; + + background: $c-blue; + + transition: background-color 0.3s; + + &:hover { + background-color: $c-blue-light; + } +} diff --git a/src/styles/_expertise.scss b/src/styles/_expertise.scss new file mode 100644 index 0000000000..d6c0b03196 --- /dev/null +++ b/src/styles/_expertise.scss @@ -0,0 +1,101 @@ +.expertise { + margin-right: -20px; + margin-left: -20px; + padding: 72px 20px; + border-radius: $r-card; + + background: $c-white; + + &__title { + font-family: $f-poppins; + font-size: 44px; + font-weight: 600; + line-height: 120%; + color: $c-navy; + text-align: center; + + @media (min-width: $bp-desktop) { + font-size: 52px; + line-height: 150%; + } + } + + &__content { + display: flex; + flex-wrap: wrap; + gap: 56px; + justify-content: center; + + margin-top: 56px; + + @media (min-width: $bp-desktop) { + flex-wrap: nowrap; + justify-content: space-between; + } + } + + &__item { + display: flex; + flex-direction: column; + align-items: center; + transition: transform 0.3s; + + &:hover { + transform: translateY(-8px); + } + + &-title { + margin-top: 32px; + + font-family: $f-poppins; + font-size: 20px; + font-weight: 600; + line-height: 140%; + color: $c-navy; + text-align: center; + } + + &-description { + margin-top: 16px; + + font-size: 14px; + font-weight: 400; + line-height: 150%; + color: $c-gray-text; + text-align: center; + } + + @media (min-width: $bp-tablet) { + width: 362px; + height: 305px; + } + + @media (min-width: $bp-desktop) { + width: 214px; + height: 334px; + } + } + + &__icon { + width: 166px; + height: 166px; + border-radius: 20px; + transition: box-shadow 0.3s; + + .expertise__item:hover & { + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.15); + } + } + + @media (min-width: $bp-tablet) { + margin-right: -41px; + margin-left: -41px; + padding: 72px 41px; + } + + @media (min-width: $bp-desktop) { + margin-right: -80px; + margin-left: -80px; + padding: 128px 54px; + } +} diff --git a/src/styles/_fonts.scss b/src/styles/_fonts.scss index 45cdd54008..5cfc5b4d05 100644 --- a/src/styles/_fonts.scss +++ b/src/styles/_fonts.scss @@ -1,6 +1,6 @@ @font-face { font-family: Roboto, Arial, Helvetica, sans-serif; - src: url('../fonts/Roboto-Regular-webfont.woff') format('woff'); font-weight: normal; font-style: normal; + src: url('../fonts/Roboto-Regular-webfont.woff') format('woff'); } diff --git a/src/styles/_footer.scss b/src/styles/_footer.scss new file mode 100644 index 0000000000..0d20dadcc3 --- /dev/null +++ b/src/styles/_footer.scss @@ -0,0 +1,219 @@ +.footer { + box-sizing: border-box; + padding: 72px 20px; + border-radius: $r-card $r-card 0 0; + background: $c-dark; + + &__logo { + display: block; + line-height: 0; + } + + &__nav { + padding-top: 40px; + + @media (min-width: $bp-desktop) { + grid-column: 1 / -1; + } + } + + &__nav-list { + display: flex; + flex-direction: column; + gap: 16px; + + margin: 24px 0 0; + padding: 0; + + list-style: none; + + @media (min-width: $bp-tablet) { + flex-direction: row; + align-items: center; + justify-content: space-between; + } + } + + &__nav-link { + font-family: $f-poppins; + font-size: 13px; + font-weight: 700; + color: $c-white; + text-decoration: none; + text-transform: uppercase; + letter-spacing: 3px; + + transition: color 0.3s; + + &:hover { + color: $c-blue-light; + } + } + + @media (min-width: $bp-tablet) { + padding: 180px 41px 80px; + } + + @media (min-width: $bp-desktop) { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 104px 98px; + padding: 180px 54px 40px; + } + + @media (min-width: $bp-large) { + max-width: $bp-large; + margin: 0 auto; + } +} + +.contact-form { + margin-bottom: 64px; + + &__title { + margin: 0 0 40px; + + font-family: $f-poppins; + font-size: 32px; + font-weight: 600; + line-height: 130%; + color: $c-white; + } + + &__form { + display: flex; + flex-direction: column; + gap: 24px; + } + + &__input { + box-sizing: border-box; + width: 100%; + padding: 12px 0; + border: none; + border-bottom: 1px solid rgba($c-white, 0.3); + + font-family: $f-body; + font-size: 15px; + color: $c-white; + + background: transparent; + outline: none; + + transition: border-color 0.3s; + + &::placeholder { + color: rgba($c-white, 0.4); + } + + &:focus { + border-color: $c-blue-light; + } + } + + &__textarea { + resize: vertical; + min-height: 72px; + font-family: inherit; + } + + &__button { + align-self: flex-start; + padding: 18px 48px; + + @media (min-width: $bp-tablet) { + margin-top: 80px; + padding: 18px 104px; + } + } + + @media (min-width: $bp-tablet) { + width: 362px; + margin-bottom: 120px; + } + + @media (min-width: $bp-desktop) { + width: auto; + margin-bottom: 0; + } +} + +.contact-info { + margin-bottom: 64px; + + &__title { + margin: 0 0 40px; + + font-family: $f-poppins; + font-size: 32px; + font-weight: 600; + line-height: 130%; + color: $c-white; + } + + &__item { + margin-bottom: 32px; + + @media (min-width: $bp-tablet) { + margin-bottom: 40px; + } + } + + &__label { + margin: 0 0 8px; + + font-family: $f-poppins; + font-size: 13px; + font-weight: 700; + color: rgba($c-white, 0.5); + text-transform: uppercase; + letter-spacing: 3px; + } + + &__value { + display: block; + + margin: 0; + + font-size: 24px; + font-weight: 600; + line-height: 150%; + color: $c-white; + + &--link { + text-decoration: none; + transition: color 0.3s; + + &:hover { + color: $c-blue-light; + } + } + } + + &__socials { + display: flex; + gap: 24px; + margin-top: 8px; + } + + &__social-link { + display: flex; + align-items: center; + justify-content: center; + + img { + display: block; + width: 32px; + height: 32px; + } + } + + @media (min-width: $bp-tablet) { + width: 362px; + } + + @media (min-width: $bp-desktop) { + width: auto; + margin-bottom: 0; + } +} diff --git a/src/styles/_header.scss b/src/styles/_header.scss new file mode 100644 index 0000000000..5a0ac38892 --- /dev/null +++ b/src/styles/_header.scss @@ -0,0 +1,214 @@ +.logo { + width: 46px; + height: 28px; +} + +.icon { + display: block; + width: 24px; + height: 24px; + + &--menu { + background-image: url('../images/icon/Menu.svg'); + background-repeat: no-repeat; + background-size: contain; + } +} + +.header { + position: relative; + + display: flex; + flex-direction: column; + + box-sizing: border-box; + width: 100%; + border-radius: 0 0 $r-card $r-card; + + background: $c-dark; + + &__nav { + display: flex; + gap: 32px; + align-items: center; + padding: 20px; + } + + &__nav-list { + display: none; + margin: 0; + padding: 0; + list-style: none; + } + + &__nav-link { + font-family: $f-poppins; + font-size: 13px; + font-weight: 700; + color: $c-white; + text-decoration: none; + text-transform: uppercase; + letter-spacing: 3px; + + transition: color 0.3s; + + &:hover { + color: $c-blue-light; + } + } + + &__logo { + display: block; + line-height: 0; + } + + &__button { + margin-left: auto; + padding-bottom: 8px; + border-bottom: 2px solid $c-blue-light; + + font-family: $f-poppins; + font-size: 13px; + font-weight: 700; + color: $c-white; + text-decoration: none; + text-transform: uppercase; + letter-spacing: 3px; + + transition: color 0.3s; + + &:hover { + color: $c-blue-light; + } + } + + &__top { + display: flex; + flex-direction: column; + padding: 20px 20px 42px; + } + + &__title { + margin: 48px 0 32px; + + font-family: $f-poppins; + font-size: 52px; + font-weight: 600; + line-height: 120%; + color: $c-white; + } + + &__description { + margin: 0 0 72px; + + font-size: 18px; + font-weight: 400; + line-height: 150%; + color: $c-white; + } + + &__bottom { + position: relative; + height: 390px; + } + + @media (min-width: $bp-tablet) { + &__nav { + padding: 20px 41px; + } + + &__top { + padding: 0 41px 147px; + } + + &__description { + max-width: 400px; + } + + &__title { + font-size: 60px; + line-height: 68px; + } + + &__top .button { + align-self: flex-start; + box-sizing: border-box; + width: 264px; + } + } + + @media (min-width: $bp-desktop) { + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: auto 1fr; + + height: 100vh; + border-radius: 0 0 $r-card $r-card; + + &__nav { + grid-column: 1 / -1; + grid-row: 1; + min-width: 0; + padding: 58px 54px 48px; + } + + &__nav-list { + display: flex; + flex: 1; + flex-wrap: wrap; + gap: 16px 40px; + align-items: center; + justify-content: center; + + min-width: 0; + } + + &__button { + position: relative; + top: 6px; + margin-left: 0; + } + + .icon--menu { + display: none; + } + + &__top { + grid-column: 1; + grid-row: 2; + justify-content: center; + + min-width: 0; + padding: 60px; + } + + &__bottom { + grid-column: 2; + grid-row: 2; + min-width: 0; + height: auto; + } + + &__title { + margin-top: 0; + font-size: 72px; + line-height: 120%; + } + + &__description { + max-width: 460px; + margin-bottom: 84px; + } + + &__top .button { + align-self: flex-start; + box-sizing: border-box; + width: 264px; + } + } + + @media (min-width: $bp-large) { + max-width: $bp-large; + margin: 0 auto; + } +} diff --git a/src/styles/_nav.scss b/src/styles/_nav.scss new file mode 100644 index 0000000000..fa8d98d509 --- /dev/null +++ b/src/styles/_nav.scss @@ -0,0 +1,71 @@ +.nav { + position: fixed; + z-index: 100; + inset: 0; + transform: translateX(100%); + + display: flex; + flex-direction: column; + + padding: 20px; + + background: $c-dark; + + transition: transform 0.3s ease; + + &--open { + transform: translateX(0); + } + + &__logo { + display: block; + line-height: 0; + } + + &__header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 56px; + } + + &__close { + cursor: pointer; + + display: flex; + align-items: center; + justify-content: center; + + padding: 0; + border: none; + + background: none; + } + + &__list { + display: flex; + flex-direction: column; + gap: 32px; + + margin: 0; + padding: 0; + + list-style: none; + } + + &__link { + font-family: $f-poppins; + font-size: 28px; + font-weight: 700; + color: #fff; + text-decoration: none; + text-transform: uppercase; + letter-spacing: 3px; + + transition: color 0.3s; + + &:hover { + color: $c-blue-light; + } + } +} diff --git a/src/styles/_services.scss b/src/styles/_services.scss new file mode 100644 index 0000000000..c354b4a6be --- /dev/null +++ b/src/styles/_services.scss @@ -0,0 +1,228 @@ +.services { + &__label { + @extend %section-label; + } + + &__title { + margin: 0; + padding: 16px 0 24px; + + font-family: $f-poppins; + font-size: 32px; + font-weight: 600; + line-height: 130%; + color: $c-navy; + } + + &__description { + padding-bottom: 32px; + + font-size: 14px; + font-weight: 400; + line-height: 150%; + color: $c-gray-text; + } + + &__list { + display: flex; + flex-direction: column; + gap: 24px; + } + + &__item { + transform: var(--card-shift, none); + + display: flex; + flex-direction: column; + + box-sizing: border-box; + width: 100%; + padding: 30px; + border-radius: 20px; + + background-color: $c-white; + + transition: + transform 0.3s, + box-shadow 0.3s; + + &:hover { + transform: var(--card-shift, none) scale(1.03); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); + } + } + + &__number { + display: inline-block; + align-self: flex-start; + + padding: 5px 16px; + border-radius: 23px; + + font-family: $f-poppins; + font-size: 13px; + font-weight: 600; + line-height: 150%; + color: $c-blue; + text-align: center; + text-transform: uppercase; + + background-color: rgba($c-blue, 0.1); + } + + &__tags { + margin: 32px 0 auto; + padding: 0; + list-style: none; + } + + &__tag { + font-size: 13px; + font-weight: 600; + line-height: 150%; + color: $c-gray-text; + } + + &__link { + display: flex; + gap: 16px; + align-items: center; + + margin-top: 24px; + + font-family: $f-poppins; + font-size: 15px; + font-weight: 600; + line-height: 100%; + color: $c-navy; + text-decoration: none; + + transition: color 0.3s; + + &-icon { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: center; + + width: 48px; + height: 48px; + border-radius: 50%; + + background-color: $c-blue; + + transition: background-color 0.3s; + + img { + width: 20px; + height: 20px; + filter: brightness(0) invert(1); + } + } + + &:hover { + color: $c-blue; + } + + &:hover &-icon { + background-color: $c-blue-light; + } + } + + @media (min-width: $bp-tablet) { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0 30px; + align-items: start; + + min-height: 926px; + + &__info { + grid-column: 1; + grid-row: 1 / 4; + } + + &__list { + display: contents; + } + + &__item { + &:nth-child(1) { + grid-column: 1; + grid-row: 4; + } + + &:nth-child(2) { + grid-column: 2; + grid-row: 2 / 5; + margin-top: 100px; + } + + &:nth-child(3) { + grid-column: 1; + grid-row: 5; + margin-top: 30px; + } + + &:nth-child(4) { + grid-column: 2; + grid-row: 5; + margin-top: -90px; + } + } + } + + @media (min-width: $bp-desktop) { + column-gap: 176px; + align-items: start; + min-height: 0; + + &__info { + grid-column: 1; + grid-row: 1; + padding-top: 125px; + } + + &__list { + display: grid; + grid-column: 2; + grid-row: 1; + grid-template-columns: repeat(2, 214px); + grid-template-rows: repeat(2, 264px); + gap: 20px; + } + + &__item { + width: 214px; + height: 264px; + margin: 0; + + &:nth-child(1) { + --card-shift: translateY(-50%); + + grid-column: 1; + grid-row: 2; + } + + &:nth-child(2) { + grid-column: 2; + grid-row: 1; + margin-top: 0; + } + + &:nth-child(3) { + --card-shift: translateY(-50%); + + grid-column: 1; + grid-row: 3; + } + + &:nth-child(4) { + --card-shift: translateY(100px); + + grid-column: 2; + grid-row: 2; + } + } + } +} diff --git a/src/styles/_slider.scss b/src/styles/_slider.scss new file mode 100644 index 0000000000..a0bf1b0ef1 --- /dev/null +++ b/src/styles/_slider.scss @@ -0,0 +1,118 @@ +.slider { + position: absolute; + right: 0; + bottom: 0; + + overflow: hidden; + + width: 100%; + height: 100%; + border-radius: $r-card; + + &__image { + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + object-fit: cover; + } + + &__content { + position: absolute; + right: 0; + bottom: 0; + left: 0; + + padding: 20px; + + @media (min-width: $bp-desktop) { + display: grid; + grid-template-columns: auto 1fr; + grid-template-rows: auto auto; + column-gap: 32px; + align-items: center; + + padding: 0 54px 48px 78px; + } + } + + &__controls { + display: flex; + gap: 12px; + margin-bottom: 16px; + + @media (min-width: $bp-desktop) { + grid-area: 1 / 1 / 3 / 2; + margin-bottom: 0; + } + } + + &__arrow { + cursor: pointer; + + display: flex; + align-items: center; + justify-content: center; + + width: 32px; + height: 32px; + border: none; + border-radius: 50%; + + background: $c-white; + + transition: background-color 0.3s; + + &-icon { + width: 8px; + height: 8px; + filter: invert(1); + } + + &:hover { + background-color: $c-blue-light; + } + + &:hover &-icon { + filter: brightness(0) invert(1); + } + + @media (min-width: $bp-desktop) { + width: 32px; + height: 32px; + } + } + + &__label { + margin: 0 0 8px; + + font-family: $f-poppins; + font-size: 13px; + font-weight: 700; + color: $c-white; + text-transform: uppercase; + letter-spacing: 3px; + + @media (min-width: $bp-desktop) { + grid-column: 2; + grid-row: 1; + } + } + + &__description { + margin: 0; + + font-size: 14px; + font-weight: 400; + line-height: 1.4; + color: $c-white; + + @media (min-width: $bp-desktop) { + grid-column: 2; + grid-row: 2; + } + } +} diff --git a/src/styles/_testimonials.scss b/src/styles/_testimonials.scss new file mode 100644 index 0000000000..6832e39174 --- /dev/null +++ b/src/styles/_testimonials.scss @@ -0,0 +1,149 @@ +.testimonials { + &__label { + @extend %section-label; + } + + &__break { + display: none; + + @media (min-width: $bp-tablet) { + display: inline; + } + } + + &__title { + margin: 0; + padding: 16px 0; + + font-family: $f-poppins; + font-size: 32px; + font-weight: 600; + line-height: 150%; + color: $c-navy; + + @media (min-width: $bp-tablet) { + letter-spacing: 0; + vertical-align: middle; + } + } + + &__content { + display: flex; + flex-direction: column; + gap: 24px; + margin-top: 40px; + + @media (min-width: $bp-desktop) { + display: flex; + flex-direction: row; + gap: 20px; + align-items: center; + justify-content: center; + } + } +} + +.testimonial { + padding: 40px 24px; + border-radius: 20px; + + text-align: center; + + background: $c-white; + + transition: + transform 0.3s, + box-shadow 0.3s; + + &:hover { + transform: translateY(-8px); + box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1); + } + + &__avatar { + position: relative; + + display: flex; + align-items: center; + justify-content: center; + + margin-bottom: 32px; + + @media (min-width: $bp-tablet) { + align-self: center; + width: 250px; + height: 250px; + margin-bottom: 0; + } + } + + &__shapes { + width: 160px; + } + + &__photo { + position: absolute; + + width: 80px; + height: 80px; + border-radius: 50%; + + object-fit: cover; + } + + &__quote { + margin: 0 0 24px; + font-size: 14px; + line-height: 160%; + color: $c-gray-text; + + &::before { + content: '\201C'; + + display: block; + + font-size: 48px; + font-weight: 700; + line-height: 1; + color: $c-blue; + } + + @media (min-width: $bp-tablet) { + // width: 362px; + align-self: center; + } + } + + &__name { + margin: 0 0 8px; + + font-family: $f-poppins; + font-size: 16px; + font-weight: 700; + color: $c-navy; + } + + &__company { + margin: 0; + + font-family: $f-poppins; + font-size: 12px; + font-weight: 700; + color: $c-gray-label; + text-transform: uppercase; + letter-spacing: 2px; + } + + @media (min-width: $bp-tablet) { + display: flex; + flex-direction: column; + justify-content: space-evenly; + + box-sizing: border-box; + height: 478px; + } + + @media (min-width: $bp-desktop) { + width: 292px; + } +} diff --git a/src/styles/_vision.scss b/src/styles/_vision.scss new file mode 100644 index 0000000000..73502fb238 --- /dev/null +++ b/src/styles/_vision.scss @@ -0,0 +1,90 @@ +.vision { + margin-right: -20px; + margin-left: -20px; + text-align: center; + background-color: $c-white; + + &__content { + padding: 72px 20px; + + @media (min-width: $bp-tablet) { + width: 558px; + padding: 0; + } + + @media (min-width: $bp-desktop) { + width: 754px; + padding: 0; + } + } + + &__title { + margin: 0 0 32px; + + font-family: $f-poppins; + font-size: 40px; + font-weight: 700; + line-height: 120%; + color: $c-navy; + + @media (min-width: $bp-tablet) { + align-items: center; + + font-size: 52px; + font-weight: 600; + line-height: 120%; + letter-spacing: 0; + } + + @media (min-width: $bp-desktop) { + line-height: 150%; + } + } + + .button { + @media (min-width: $bp-tablet) { + width: 264px; + margin: 0 auto; + } + } + + &__description { + margin: 0 0 48px; + + font-family: $f-body; + font-size: 18px; + line-height: 160%; + color: $c-gray-text; + + @media (min-width: $bp-tablet) { + margin-bottom: 64px; + + font-size: 24px; + font-weight: 600; + line-height: 150%; + text-align: center; + letter-spacing: 0; + } + } + + @media (min-width: $bp-tablet) { + display: flex; + align-items: center; + justify-content: center; + + height: 796px; + margin-right: -41px; + margin-bottom: -148px; + margin-left: -41px; + border-radius: $r-card; + + background-image: url('../images/Shapes.png'); + background-repeat: repeat-y; + background-size: cover; + } + + @media (min-width: $bp-desktop) { + margin-right: -80px; + margin-left: -80px; + } +} diff --git a/src/styles/_who-we-are.scss b/src/styles/_who-we-are.scss new file mode 100644 index 0000000000..85b331567e --- /dev/null +++ b/src/styles/_who-we-are.scss @@ -0,0 +1,30 @@ +.who-we-are { + &__content { + max-width: 800px; + margin: 0 auto; + + @media (min-width: $bp-desktop) { + padding-right: 154px; + padding-left: 154px; + } + } + + &__title { + font-family: $f-poppins; + font-size: 32px; + font-weight: 600; + line-height: 150%; + color: $c-navy; + text-align: center; + } + + &__description { + margin: 24px 0 0; + + font-size: 22px; + font-weight: 600; + line-height: 150%; + color: $c-gray-text; + text-align: center; + } +} diff --git a/src/styles/main.scss b/src/styles/main.scss index fb9195d128..e9c921be62 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -1,7 +1,13 @@ @import 'utils'; @import 'fonts'; -@import 'typography'; - -body { - background: $c-gray; -} +@import 'base'; +@import 'button'; +@import 'header'; +@import 'slider'; +@import 'nav'; +@import 'who-we-are'; +@import 'expertise'; +@import 'services'; +@import 'testimonials'; +@import 'vision'; +@import 'footer'; diff --git a/src/styles/style.css b/src/styles/style.css new file mode 100644 index 0000000000..84f1b8943e --- /dev/null +++ b/src/styles/style.css @@ -0,0 +1,637 @@ +html { + scroll-behavior: smooth; +} + +body { + margin: 0; + font-family: 'Open Sans', Arial, sans-serif; + background-color: #f2f6fa; +} + +.header { + background: #2c2c2c; + height: 100vh; + box-sizing: border-box; + border-radius: 0 0 30px 30px; + + display: flex; + flex-direction: column; +} + +.header__top { + display: flex; + flex-direction: column; + padding: 20px 20px 42px; +} + +.header__nav { + display: flex; + align-items: center; + gap: 32px; +} + +.logo { + width: 46px; + height: 28px; +} + +.header__logo { + display: block; + line-height: 0; +} + +.icon { + display: block; + width: 24px; + height: 24px; +} + +.icon--menu { + background-image: url('../images/icon/Menu.svg'); + background-repeat: no-repeat; + background-size: contain; +} + +.header__button { + font-family: Poppins, Arial, sans-serif; + margin-left: auto; + color: #fff; + text-decoration: none; + text-transform: uppercase; + font-size: 13px; + font-weight: 700; + letter-spacing: 3px; + border-bottom: 2px solid #4e6ef2; + padding-bottom: 8px; +} + +.header__title { + font-family: Poppins, Arial, sans-serif; + margin: 48px 0 32px; + color: #fff; + font-size: 52px; + font-weight: 600; + line-height: 120%; +} + +.header__description { + margin: 0 0 72px; + color: #fff; + font-size: 18px; + font-weight: 400; + line-height: 150%; +} + +.button { + display: block; + background: #2060f6; + color: #fff; + text-align: center; + text-decoration: none; + font-family: Poppins, Arial, sans-serif; + font-size: 15px; + font-weight: 600; + padding: 18px; + border-radius: 8px; + border: none; + cursor: pointer; +} + +.header__bottom { + flex: 1; + min-height: 0; + display: flex; +} + +.slider { + flex: 1; + min-height: 0; + position: relative; + border-radius: 30px; + overflow: hidden; +} + +.slider__image { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + object-fit: cover; +} + +.slider__content { + position: absolute; + bottom: 0; + left: 0; + right: 0; + padding: 20px; +} + +.slider__controls { + display: flex; + gap: 12px; + margin-bottom: 16px; +} + +.slider__arrow { + display: flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + border-radius: 50%; + border: none; + background: #fff; + cursor: pointer; +} + +.slider__arrow-icon { + width: 18px; + height: 18px; + filter: invert(1); +} + +.slider__label { + margin: 0 0 8px; + color: #fff; + font-family: Poppins, Arial, sans-serif; + font-size: 13px; + font-weight: 700; + letter-spacing: 3px; + text-transform: uppercase; +} + +.slider__description { + margin: 0; + color: #fff; + font-size: 14px; + font-weight: 400; + line-height: 1.4; +} + +/* Main */ + +main { + display: flex; + flex-direction: column; + gap: 120px; + padding: 120px 20px; +} + +/* Who We Are */ + +.who-we-are__content { + max-width: 800px; + margin: 0 auto; +} + +.services__label, +.testimonials__label { + margin: 0; + font-family: Poppins, Arial, sans-serif; + color: #c0cdd7; + font-weight: 700; + font-size: 13px; + line-height: 100%; + letter-spacing: 3px; + text-transform: uppercase; +} + +.who-we-are__title { + font-family: Poppins, Arial, sans-serif; + color: #253757; + font-weight: 600; + font-size: 32px; + line-height: 150%; + text-align: center; +} + +.who-we-are__description { + font-weight: 600; + font-size: 22px; + color: #6c788b; + line-height: 150%; + text-align: center; + margin: 24px 0 0; +} + +.expertise { + background: #fff; + padding: 72px 20px; + border-radius: 30px; +} + +.expertise__title { + font-family: Poppins, Arial, sans-serif; + color: #253757; + font-weight: 600; + font-size: 44px; + line-height: 120%; + text-align: center; +} + +.expertise__content { + display: flex; + flex-wrap: wrap; + gap: 56px; + margin-top: 56px; + justify-content: center; +} + +.expertise__item { + display: flex; + flex-direction: column; + align-items: center; +} + +.expertise__icon { + width: 166px; + height: 166px; + border-radius: 20px; +} + +.expertise__item-title { + font-family: Poppins, Arial, sans-serif; + color: #253757; + font-weight: 600; + font-size: 20px; + line-height: 140%; + text-align: center; + margin-top: 32px; +} + +.expertise__item-description { + font-weight: 400; + font-size: 14px; + color: #6c788b; + line-height: 150%; + text-align: center; + margin-top: 16px; +} + +.services__title { + margin: 0; + padding: 16px 0 24px; + font-family: Poppins, Arial, sans-serif; + color: #253757; + font-weight: 600; + font-size: 32px; + line-height: 130%; +} + +.services__description { + font-weight: 400; + font-size: 14px; + color: #6c788b; + line-height: 150%; + padding-bottom: 32px; +} + +.services__list { + display: flex; + flex-direction: column; + gap: 24px; +} + +.services__item { + width: 100%; + box-sizing: border-box; + padding: 32px; + border-radius: 20px; + background-color: #fff; + + display: flex; + flex-direction: column; +} + +.services__number { + display: inline-block; + align-self: flex-start; + padding: 5px 16px; + + background-color: rgba(32, 96, 246, 0.1); + border-radius: 23px; + + font-family: Poppins, Arial, sans-serif; + font-weight: 600; + font-size: 13px; + line-height: 150%; + text-align: center; + text-transform: uppercase; + color: #2060f6; +} + +.services__tags { + list-style: none; + margin: 32px 0 auto; + padding: 0; +} + +.services__tag { + font-size: 13px; + font-weight: 600; + color: #6c788b; + line-height: 150%; +} + +.services__link { + display: flex; + align-items: center; + gap: 16px; + margin-top: 24px; + text-decoration: none; + font-family: Poppins, Arial, sans-serif; + font-weight: 600; + font-size: 15px; + line-height: 100%; + color: #253757; +} + +.services__link-icon { + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + width: 48px; + height: 48px; + border-radius: 50%; + background-color: #2060f6; +} + +.services__link-icon img { + width: 20px; + height: 20px; + filter: brightness(0) invert(1); +} + +.testimonials__title { + font-family: Poppins, Arial, sans-serif; + color: #253757; + font-weight: 600; + font-size: 32px; + line-height: 150%; + margin: 0; + padding: 16px 0; +} + +.testimonials__content { + display: flex; + flex-direction: column; + gap: 24px; + margin-top: 40px; +} + +.testimonial { + background: #fff; + border-radius: 20px; + padding: 40px 24px; + text-align: center; +} + +.testimonial__avatar { + position: relative; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 32px; +} + +.testimonial__shapes { + width: 160px; +} + +.testimonial__photo { + position: absolute; + width: 80px; + height: 80px; + border-radius: 50%; + object-fit: cover; +} + +.testimonial__quote { + font-size: 14px; + color: #6c788b; + line-height: 160%; + margin: 0 0 24px; +} + +.testimonial__quote::before { + content: '\201C'; + display: block; + font-size: 48px; + color: #2060f6; + font-weight: 700; + line-height: 1; +} + +.testimonial__name { + font-family: Poppins, Arial, sans-serif; + font-weight: 700; + font-size: 16px; + color: #253757; + margin: 0 0 8px; +} + +.testimonial__company { + font-family: Poppins, Arial, sans-serif; + font-size: 12px; + font-weight: 700; + color: #c0cdd7; + text-transform: uppercase; + letter-spacing: 2px; + margin: 0; +} + +/* Vision */ + +.vision { + text-align: center; + background-color: #fff; + margin-left: -20px; + margin-right: -20px; +} + +.vision__content { + padding: 72px 20px; +} + +.vision__title { + font-family: Poppins, Arial, sans-serif; + color: #253757; + font-weight: 700; + font-size: 40px; + line-height: 120%; + margin: 0 0 32px; +} + +.vision__description { + color: #6c788b; + font-size: 18px; + line-height: 160%; + margin: 0 0 48px; +} + +/* Footer */ + +.footer { + background: #2c2c2c; + border-radius: 30px 30px 0 0; + padding: 72px 20px; +} + +.contact-form { + margin-bottom: 64px; +} + +.contact-form__title { + font-family: Poppins, Arial, sans-serif; + color: #fff; + font-weight: 600; + font-size: 32px; + line-height: 130%; + margin: 0 0 40px; +} + +.contact-form__form { + display: flex; + flex-direction: column; + gap: 24px; +} + +.contact-form__input { + width: 100%; + box-sizing: border-box; + background: transparent; + border: none; + border-bottom: 1px solid rgba(255, 255, 255, 0.3); + color: #fff; + font-family: 'Open Sans', Arial, sans-serif; + font-size: 15px; + padding: 12px 0; + outline: none; +} + +.contact-form__input::placeholder { + color: rgba(255, 255, 255, 0.4); +} + +.contact-info { + margin-bottom: 64px; +} + +.contact-info__title { + font-family: Poppins, Arial, sans-serif; + color: #fff; + font-weight: 600; + font-size: 32px; + line-height: 130%; + margin: 0 0 40px; +} + +.contact-info__item { + margin-bottom: 32px; +} + +.contact-info__label { + font-family: Poppins, Arial, sans-serif; + font-size: 13px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 3px; + color: rgba(255, 255, 255, 0.5); + margin: 0 0 8px; +} + +.contact-info__value { + margin: 0; + color: #fff; + font-size: 24px; + font-weight: 600; + line-height: 150%; +} + +.contact-info__socials { + display: flex; + gap: 24px; + margin-top: 8px; +} + +.contact-info__social-link { + display: flex; + align-items: center; + justify-content: center; +} + +/* Mobile nav overlay */ + +.nav { + position: fixed; + inset: 0; + background: #2c2c2c; + z-index: 100; + padding: 20px; + display: flex; + flex-direction: column; + transform: translateX(100%); + transition: transform 0.3s ease; +} + +.nav--open { + transform: translateX(0); +} + +.nav__header { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 56px; +} + +.nav__close { + display: flex; + align-items: center; + justify-content: center; + background: none; + border: none; + cursor: pointer; + padding: 0; +} + +/* Shared nav list (overlay + footer) */ + +.nav__list { + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: 32px; +} + +.nav__link { + font-family: Poppins, Arial, sans-serif; + font-weight: 700; + font-size: 28px; + text-transform: uppercase; + letter-spacing: 3px; + color: rgba(255, 255, 255, 0.85); + text-decoration: none; +} + +/* Footer nav overrides */ + +.footer__nav { + border-top: 1px solid rgba(255, 255, 255, 0.15); + padding-top: 40px; +} + +.footer__nav .nav__list { + margin-top: 24px; + gap: 16px; +} + +.footer__nav .nav__link { + font-size: 13px; + color: rgba(255, 255, 255, 0.7); +} diff --git a/src/styles/utils/_extends.scss b/src/styles/utils/_extends.scss index d7201e7b3e..7eb304928e 100644 --- a/src/styles/utils/_extends.scss +++ b/src/styles/utils/_extends.scss @@ -2,3 +2,15 @@ font-family: Roboto, sans-serif; font-weight: 400; } + +%section-label { + margin: 0; + + font-family: $f-poppins; + font-size: 13px; + font-weight: 700; + line-height: 100%; + color: $c-gray-label; + text-transform: uppercase; + letter-spacing: 3px; +} diff --git a/src/styles/utils/_vars.scss b/src/styles/utils/_vars.scss index aeb006ffbb..305d19989d 100644 --- a/src/styles/utils/_vars.scss +++ b/src/styles/utils/_vars.scss @@ -1 +1,22 @@ -$c-gray: #eee; +// Colors +$c-dark: #2c2c2c; +$c-navy: #253757; +$c-blue: #2060f6; +$c-blue-light: #4e6ef2; +$c-gray-text: #6c788b; +$c-gray-label: #c0cdd7; +$c-bg: #f2f6fa; +$c-white: #fff; + +// Fonts +$f-poppins: Poppins, Arial, sans-serif; +$f-body: 'Open Sans', Arial, sans-serif; + +// Border radius +$r-card: 30px; + +// Breakpoints +$bp-tablet: 640px; +$bp-desktop: 1024px; +$bp-desktop-lg: 1280px; +$bp-large: 1600px; From 3719f979439b964386d6c353a629b34271b8a64f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D1=80=D0=B8=D1=81=D1=82=D0=B8=D0=BD=D0=B0=20=D0=9C?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=D0=BD=D0=B8=D0=BA?= Date: Mon, 17 Aug 2026 20:04:50 +0700 Subject: [PATCH 2/2] fixed the issues --- index.html | 35 +++++++++++++++++- src/images/favicon_io/about.txt | 6 +++ .../favicon_io/android-chrome-192x192.png | Bin 0 -> 11663 bytes .../favicon_io/android-chrome-512x512.png | Bin 0 -> 21844 bytes src/images/favicon_io/apple-touch-icon.png | Bin 0 -> 10530 bytes src/images/favicon_io/favicon-16x16.png | Bin 0 -> 652 bytes src/images/favicon_io/favicon-32x32.png | Bin 0 -> 1360 bytes src/images/favicon_io/favicon.ico | Bin 0 -> 15406 bytes src/images/favicon_io/site.webmanifest | 1 + src/styles/_footer.scss | 9 +++++ 10 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 src/images/favicon_io/about.txt create mode 100644 src/images/favicon_io/android-chrome-192x192.png create mode 100644 src/images/favicon_io/android-chrome-512x512.png create mode 100644 src/images/favicon_io/apple-touch-icon.png create mode 100644 src/images/favicon_io/favicon-16x16.png create mode 100644 src/images/favicon_io/favicon-32x32.png create mode 100644 src/images/favicon_io/favicon.ico create mode 100644 src/images/favicon_io/site.webmanifest diff --git a/index.html b/index.html index 166deb8bea..f149d7ff49 100644 --- a/index.html +++ b/index.html @@ -7,6 +7,31 @@ content="width=device-width, initial-scale=1.0" /> DIA + + + + + Send us a message class="contact-form__form" id="contact-form" action="#" + >
Send us a message id="email" name="email" placeholder="email@example.com" + required />
@@ -500,6 +527,7 @@

Send us a message

id="name" name="name" placeholder="Your name" + required /> @@ -527,7 +555,12 @@

Contact us

Call us

-

654 321 987

+ + 654 321 987 +
diff --git a/src/images/favicon_io/about.txt b/src/images/favicon_io/about.txt new file mode 100644 index 0000000000..48b18f8572 --- /dev/null +++ b/src/images/favicon_io/about.txt @@ -0,0 +1,6 @@ +This favicon was generated using the following font: + +- Font Title: Libertinus Serif Display +- Font Author: undefined +- Font Source: https://fonts.gstatic.com/s/libertinusserifdisplay/v2/0FlHVOmbklub_P32Hm53RVREi5BsXWudOF_Gpgcrg81gHhVOxQ.ttf +- Font License: undefined) diff --git a/src/images/favicon_io/android-chrome-192x192.png b/src/images/favicon_io/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..4da991f21f94ee7ae80f60e42ec0d741f66e55c0 GIT binary patch literal 11663 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

G#)>TZxpk;0w4zB;nusPqR_z9cE3gE%-HQ>C? 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 literal 0 HcmV?d00001 diff --git a/src/images/favicon_io/apple-touch-icon.png b/src/images/favicon_io/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..06d8bafdac19e2a83d84a923300808de27349f80 GIT binary patch literal 10530 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

c1e_H-PDAZhT)5QU}pDdb`%Q4 zV?xL|smXPJie-B;Dm@k4-RrCFOO?MG<<5ITwDEe`UPqzt{yrxA^`9??I?|idjf_P& zVEK2}eD8Y}uab)i%P|pocXvy!|D-(P`un|@-h;x@+1>e`?{CDDO#1V=oot+5{UXh=)=bQ=&HvPpxu`2835=Fc>(m90Vqg!_w_ZrJCozN?+h zA98XxP*6yn|LFqUDVVQ#`5@le-8~PDkbSfL;X3!|0C;&fq7nIRMc5NHfm9glb$CMh z?DD9D7wEj*r>O;4`b9kd7GxUuo>%r65@`xYQ~F2dY^NZZ?&ISwf@xp#?A}Se^-O7{ zDTI516c7z7;06Q`m0lnqI-SoupU*F?vy^185}Y6AI@i$hB(%@jr+@gyMIfL~6P|E8 z2$GclV!uzKfPy9lmAd|S0512>#^?X)p!O@CaIi@cw%1SnX=mULak}V}_;vr6siJ

+(<|{bSNx6<|*bE1)CQFpT|*ng3yzM|7QO4m1U%5%2*a478-7sBJ}n0gf+r6 zjU|8EPN|3<1qJsN>Jt&S)Zm1{7qdtDOUiXM2ml~)$$Q2i_~CZM(Z_EP+6~osXJ-?E zL7jW)N+@UTemaX6N5mspIHEBpCc#Nzs1=&FUu%J6?{XY}kQNg`rjUUR_YrhOz-@wy zfKC`b1-A*AT=!%fZm^NcItyCMp7mm4@aFXIZu@f9Nzg`z`;8v!@3|muz*vBNrM?io z<|$Q5nKG7uK%LGFz)HI7Y`MMYnDJ5dh2l?E%>>-72PxlQ^Aqk(ojyD!4XLP~g+p-+ zd(O*?iWb7+7@>+N@`cW2LC$b4lrXVlMDnS2u zwvQK{q{>1Vii7?JNBXk@Xebko5X|jo%B4>|O3B?7OS$a$yX9 zH(?fl1X5vJ$&;LsI$UbN8F)^Bo4iMx z>=QY>=Bm;aUB$&RulFmg>6mN?6?&Y#Hq*ni-2J*Pu{%q2Le+s)t?O%j&Zfm3t_sb` zC(8|G1iW@^^OZXAz2$^6m@iqJLQtl~b;gfi(L-rPYLJj)*}mdbu9BiUqY+W+NUGS` zu?Dz6)WA=a@c7c)*6m^%tKHY5kf#g-;rYpA_mbjxIAFm`75tdR=D-{RLr3LxjH{4= znOg}h5Q4isqW33f4SakYQSu_gKdOzo6G7=R z?&G>1fp)8AKcCUT{ONdJY%Y3Fxx)>4wp0^-Jd;}j@^Qd*dX}}8j+d_KoB_ry9MEPnjtXuMvZnzEi z%tnps66STBS@?#5p_$<0h05S}f8YPO@oqW1Gw(Lo3rqpFsN7)Z%@Ez+wmrs@pAd zL3sb_0@q0*6e*5)Z@MtaKbwqSu?}*Ejh+0%T{(!MUhDUssgN%uQlt##Hs(db+Ib@CYefw;q3DK?&QkK~|&tADbLa)pGhn6Uvr+#hJo)5F{ z`Fwo7T0{EERjrW^0&-||;7|OCF%CsENi-5hJ6wnmSto`R2_-t$-KJyu92Vbw)Cr5En3%}^TU1HnhxG|vN6U8zkKYBI*a(WV0*LH@_ zS);g5dxCE&tf0=dw^n3e>IQy>&fZKAVf-!+k-)4>XQ*n1=!wAab(06Hcm0B>TpA0x z3>1Fxmoh=0#ecgaok)he<$t|g`*MN}K7Ul-*bFmYWAgyEhe;w+FBUoV#<{%=Q z%IDpJby|oC`)Ou&um#4O7MJ6jEdNHSqn_wADzuNT2{-|36KX<7Z~!ElqSU zFE2lN=tdpjq`6|gxU=lB9iUmf@;Ia2BY5WQs*LG3WaXA zu$V<@0X>d(Y8Ub2$7#{FAmW-Qos;9=WO(VBc1Y(_YiJLk19oE5^itTf-1Q%bYK7Hw zS~VX4P1-9HaEFTBxCtpGjLSY+;;x4TwI^0CP3~v2%yEmLq(P*14S>xk+So!P0zHJ# z;1|i#@Q8?}ukOdQl;=!XSg(N)f#b&qviJiB@CX I*!PhC1sTtRRsaA1 literal 0 HcmV?d00001 diff --git a/src/images/favicon_io/favicon-16x16.png b/src/images/favicon_io/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..0a27614fc6ec5f3d3ebbed79e4a41ef8774ef65b GIT binary patch literal 652 zcmV;70(1R|P)L!CFbm zgwk_T>#l?E`2Yg`LHPYXxQ`vjnR9I*gqZ^bLBN57hak%`R=UW~xjE3iaPHUqJZ@gU z2D#9Lmex}oW8CT1llT}8^Y!vXl!b-m7#`fai~5E}81nKUiXto)D++1Tr9z`|1Io&G z!Ax|pO8o>*y3=aXyYba>Fk2pYUO-sSvfq7&3OCfHJX}Ru((l9{ZGtx zY<3p8YjQF9Wdh&6PU25I&I{u4-+1*hh*T=sQ>@~21!IgR09D0#n4IHGR>3#0000#W*Yg literal 0 HcmV?d00001 diff --git a/src/images/favicon_io/favicon-32x32.png b/src/images/favicon_io/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..dfb13c1134e3a355338f93f4a2d1ec8238339c06 GIT binary patch literal 1360 zcmV-W1+V&vP)auJ32gZHva_a0c-WfgE5cVxcroO93p-E)5T-tU}6Oh`x& zZEbBoTCrk(P%4!=_+Nhh z386v$IA3=T!J*+u&&+{TYN&%#sZ_{1l7{bY-auLD37z@L97LeMzwfaa9y~WY6W=yA zz`=1nU5_B>ejl7i9|y7{}n`FNHH|6IF~M7Ae^P;3$S-^BwG*!SXx?Qjon)K z2L@wbWEA-)3S$!!xNdcW?7%@JB&Q%US_Yft%RvN`%IOjK{kLD~8hG&4YwWnf+__dP zaR^e6WWvus5DTmql3!E2v2qp8R-c1Hp+I(K22zs~VQyxQ;?h$i1XQYFP5fhRC99Oy z*1u@pdVw|Rwl+B{-6T|2l+(DUr<=4|@aC45k&W4N=Ah|XBUCCS1_uXmJntwqJ30Y1 zcslyu&Q5|E8X1vRi}v>WWcKy;l2!|W^$z|Kcd}kHtg+9|&JMK6oE1Y8s4+?(S~zlQCkaw#M#F_yq(a=U6@#FJ3Z2Kq8qQ0SPO;C2SFo`{NJabEWgL zqR{cpm^l*>QTtI__ch*e-G&GE+i{eAjAK_Ikw|qGJ<74p-VsK|#^62Sdeb#6h-g5! z3DLkn%Wq*}fzq-w*yQYjkf6Qz_)rYB_PcjmDHg4gN~b2kF#$or6#Q6j4%Bx}4ko0M zkr+~mc7yWq-3#l53vs%v6o0m~Fy#1S%&vq8@L#cUx30xYi8qgzUS5imCB?XWsa^+U zY+_74{{I9Sqhisb#bn9l_eiUS)x3G&&4~!u+P;qY^IufYjcF6sy_{V(<5c-)c-3Y( zVh_krQd~4PuW2k>W<$fJOJ9K~Qdk<_X}(Q*yVs7fU(%JURwF*~FnEQCw{P7-`-67m z<`*I-FCWP%=}61SLVjT}@(PNul6A47Px9gAz735HS1FjLSZD8m%$z(dv#|k>#Y>&X z@ni`(uIyw9>MwkS*VrbjYU@x?bOKHrH$fH^fx?305O?qL#!fE}Y=74kQ4wK?I~0S1 zAMQt3NFV}yeOQ-EM&mbEsg3f06W^ORu2V1`gU8zC?TN_nP*hb`5VVJtU{ZV>oHjUM z_f9WFgoPj@Jr%q(YpTzVlp!IXvfypJtE&q`Lql4b#xG0Dt-rxDL7+{4`_;+RCJKU3 zpySq)gXb3A-Q81}5yx^qm6Kp`AN92HoILk`00030|NGGHW&i*H21!IgR09C})zp4I Su2C}p0000922h-^;zQGs-Ua`|j7>=Tz$IbE@i8mCg1i+h1&7eP!co z1KY5_+HBr7o2@|u`}5a-x7k+nSd%87=KpE4o&AT+_BF#W3S-#E`C|EN)TmK>!-fq% z@}E5Xf2;+r;#CvA3RkYvr^QozTnvpH8%eP-QS@EEzQl5AFarnlC&0wTMpJNb5QTT` zLTL+9Y5cgc6xy~eJ*p_BX3d%jeB;KAY1GIObo@vTwQCou(YTO%nxdm7%k#}^S7`8$ zKaj7lFCED_KzKIlZTL?^>BiN|^vyTl$Xw3;y)=x+0GG9W3&liFk^AJNIh1$lya^xj zKdX93{rFvgvw!by8Z!7txrdCg(NUB%ceadQI(No|51gVqw<&sxUFMtv`!xRF4;n~= z1`ZIM#OVoSg%AGEA3vnAk)x@5w{R*h%xC?M5uB03htY=2HS%tdEAP@d6aOCHM$p?= z&&c1u4S9Ka(YFy1)S-QQ4K5@&nDsoI$GcnV@8GX{D1C9725;1_{<*BAQ2X9KJ}qf| z=4x8GJVVnx-UZ*USFfIy^it*}iJm4-7%%IjV}}kVIDC6Qzt*O4y⪼ugxB)%^nn7 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