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/package-lock.json b/package-lock.json index fb7ba68c60..f0b1079d9e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,12 +13,13 @@ "@linthtml/linthtml": "^0.9.6", "@mate-academy/bemlint": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^1.8.6", + "@mate-academy/scripts": "^2.1.3", "@mate-academy/stylelint-config": "latest", "@parcel/transformer-sass": "^2.12.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "prettier": "^3.3.2", + "sass": "^1.98.0", "stylelint": "^16.7.0", "stylelint-scss": "^6.4.1" } @@ -37,13 +38,15 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", - "picocolors": "^1.0.0" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { "node": ">=6.9.0" @@ -241,19 +244,21 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -268,100 +273,28 @@ } }, "node_modules/@babel/helpers": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.8.tgz", - "integrity": "sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.24.7", - "@babel/types": "^7.24.8" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/types": "^7.28.5" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/parser": { - "version": "7.24.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.8.tgz", - "integrity": "sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -547,14 +480,15 @@ } }, "node_modules/@babel/template": { - "version": "7.24.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", - "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "version": "7.27.2", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -582,14 +516,14 @@ } }, "node_modules/@babel/types": { - "version": "7.24.9", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.9.tgz", - "integrity": "sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" }, "engines": { "node": ">=6.9.0" @@ -697,6 +631,28 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", + "dev": true, + "license": "MIT", + "dependencies": { + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -1222,10 +1178,11 @@ "dev": true }, "node_modules/@mate-academy/scripts": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-1.8.6.tgz", - "integrity": "sha512-b4om/whj4G9emyi84ORE3FRZzCRwRIesr8tJHXa8EvJdOaAPDpzcJ8A0sFfMsWH9NUOVmOwkBtOXDu5eZZ00Ig==", + "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", @@ -1406,10 +1363,11 @@ } }, "node_modules/@mate-academy/stylelint-config/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "argparse": "^2.0.1" @@ -1934,19 +1892,39 @@ } }, "node_modules/@octokit/endpoint": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", - "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.4.tgz", + "integrity": "sha512-OlYOlZIsfEVZm5HCSR8aSg02T2lbUWOsCQoPKfTXJwDzcHQBrVBGdGXb89dv2Kw2ToZaRtudp8O3ZIYoaOjKlA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@octokit/types": "^13.0.0", + "@octokit/types": "^14.0.0", "universal-user-agent": "^7.0.2" }, "engines": { "node": ">= 18" } }, + "node_modules/@octokit/endpoint/node_modules/@octokit/openapi-types": { + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", + "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@octokit/endpoint/node_modules/@octokit/types": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz", + "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/openapi-types": "^25.1.0" + } + }, "node_modules/@octokit/graphql": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", @@ -2025,15 +2003,17 @@ } }, "node_modules/@octokit/request": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz", - "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==", + "version": "9.2.4", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.2.4.tgz", + "integrity": "sha512-q8ybdytBmxa6KogWlNa818r0k1wlqzNC+yNkcQDECHvQo8Vmstrg18JwqJHdJdUiHD2sjlwBgSm9kHkOKe2iyA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@octokit/endpoint": "^10.0.0", - "@octokit/request-error": "^6.0.1", - "@octokit/types": "^13.1.0", + "@octokit/endpoint": "^10.1.4", + "@octokit/request-error": "^6.1.8", + "@octokit/types": "^14.0.0", + "fast-content-type-parse": "^2.0.0", "universal-user-agent": "^7.0.2" }, "engines": { @@ -2041,18 +2021,57 @@ } }, "node_modules/@octokit/request-error": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.4.tgz", - "integrity": "sha512-VpAhIUxwhWZQImo/dWAN/NpPqqojR6PSLgLYAituLM6U+ddx9hCioFGwBr5Mi+oi5CLeJkcAs3gJ0PYYzU6wUg==", + "version": "6.1.8", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.8.tgz", + "integrity": "sha512-WEi/R0Jmq+IJKydWlKDmryPcmdYSVjL3ekaiEL1L9eo1sUnqMJ+grqmC9cjk7CA7+b2/T397tO5d8YLOH3qYpQ==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "@octokit/types": "^13.0.0" + "@octokit/types": "^14.0.0" }, "engines": { "node": ">= 18" } }, + "node_modules/@octokit/request-error/node_modules/@octokit/openapi-types": { + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", + "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@octokit/request-error/node_modules/@octokit/types": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz", + "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/openapi-types": "^25.1.0" + } + }, + "node_modules/@octokit/request/node_modules/@octokit/openapi-types": { + "version": "25.1.0", + "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-25.1.0.tgz", + "integrity": "sha512-idsIggNXUKkk0+BExUn1dQ92sfysJrje03Q0bv0e+KPLrvyqZF8MnBpFz8UNfYDwB3Ie7Z0TByjWfzxt7vseaA==", + "dev": true, + "license": "MIT", + "peer": true + }, + "node_modules/@octokit/request/node_modules/@octokit/types": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-14.1.0.tgz", + "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@octokit/openapi-types": "^25.1.0" + } + }, "node_modules/@octokit/rest": { "version": "17.11.2", "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-17.11.2.tgz", @@ -3398,10 +3417,11 @@ } }, "node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -3648,10 +3668,11 @@ "dev": true }, "node_modules/base-x": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.10.tgz", - "integrity": "sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.11.tgz", + "integrity": "sha512-xz7wQ8xDhdyP7tQxwdteLYeFfS68tSMNCZ/Y37WJ4bhGfKPpqEIlmIyueQHqOyoPhE6xNUqjzRr8ra0eF9VRvA==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "safe-buffer": "^5.0.1" @@ -3684,18 +3705,6 @@ "dev": true, "peer": true }, - "node_modules/binary-extensions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", - "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/bl": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", @@ -3708,10 +3717,11 @@ } }, "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, + "license": "MIT", "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3809,6 +3819,20 @@ "glob": "^7.1.1" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -3890,33 +3914,26 @@ } }, "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", + "dev": true, + "license": "MIT" }, "node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", "dev": true, + "license": "MIT", "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" + "readdirp": "^4.0.1" }, "engines": { - "node": ">= 8.10.0" + "node": ">= 14.16.0" }, "funding": { "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" } }, "node_modules/chrome-trace-event": { @@ -4152,10 +4169,11 @@ } }, "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", "dev": true, + "license": "MIT", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4384,10 +4402,11 @@ } }, "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.4.tgz", + "integrity": "sha512-X07nttJQkwkfKfvTPG/KSnE2OMdcUCao6+eXF3wmnIQRn2aPAHH3VxDbDOdegkd6JbPsXqShpvEOHfAT+nCNwQ==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.3.1" } @@ -4506,6 +4525,21 @@ "dev": true, "peer": true }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.832", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.832.tgz", @@ -4569,6 +4603,55 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escalade": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", @@ -4687,19 +4770,23 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "node_modules/fast-content-type-parse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.1.tgz", + "integrity": "sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==", "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT", + "peer": true }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -4834,13 +4921,16 @@ "dev": true }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", "dev": true, + "license": "MIT", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -4909,6 +4999,31 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -4930,6 +5045,20 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -5048,6 +5177,19 @@ "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", "dev": true }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -5072,6 +5214,35 @@ "node": ">=8" } }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -5200,15 +5371,20 @@ } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", "dev": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/ieee754": { @@ -5241,10 +5417,11 @@ } }, "node_modules/immutable": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.6.tgz", - "integrity": "sha512-Ju0+lEMyzMVZarkTn/gqRpdqd5dOPaz1mCZ0SH3JV6iFw81PldE/PEB1hWVEA288HPt4WXW8O7AWxB10M+03QQ==", - "dev": true + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-5.1.5.tgz", + "integrity": "sha512-t7xcm2siw+hlUM68I+UEOK+z84RzmN59as9DZ7P1l0994DKUWV7UXBMQZVxaoMSRQ+PBZbHCOoBt7a2wxOMt+A==", + "dev": true, + "license": "MIT" }, "node_modules/import-fresh": { "version": "3.3.0", @@ -5342,16 +5519,17 @@ "dev": true }, "node_modules/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.7.tgz", + "integrity": "sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==", "dev": true, + "license": "MIT", "dependencies": { + "@inquirer/external-editor": "^1.0.0", "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", - "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", @@ -5373,18 +5551,6 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/is-core-module": { "version": "2.15.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.0.tgz", @@ -6196,13 +6362,15 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -6438,10 +6606,11 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "dev": true, + "license": "MIT" }, "node_modules/lodash.get": { "version": "4.4.2", @@ -6540,6 +6709,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", @@ -6610,10 +6789,11 @@ } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, + "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -6662,10 +6842,11 @@ } }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, + "license": "ISC", "dependencies": { "brace-expansion": "^1.1.7" }, @@ -6756,9 +6937,9 @@ "dev": true }, "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", "dev": true, "funding": [ { @@ -6766,6 +6947,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "bin": { "nanoid": "bin/nanoid.cjs" }, @@ -7029,15 +7211,6 @@ "node": ">=6" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/p-finally": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", @@ -7168,10 +7341,11 @@ "dev": true }, "node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "dev": true, + "license": "MIT", "dependencies": { "isarray": "0.0.1" } @@ -7186,10 +7360,11 @@ } }, "node_modules/picocolors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", - "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -7563,15 +7738,17 @@ } }, "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, + "license": "MIT", "engines": { - "node": ">=8.10.0" + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" } }, "node_modules/redent": { @@ -7775,13 +7952,14 @@ "dev": true }, "node_modules/sass": { - "version": "1.77.8", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.77.8.tgz", - "integrity": "sha512-4UHg6prsrycW20fqLGPShtEvo/WyHRVRHwOP4DzkUrObWoWI05QBSfzU71TVB7PFaL104TwNaHpjlWXAZbQiNQ==", + "version": "1.98.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.98.0.tgz", + "integrity": "sha512-+4N/u9dZ4PrgzGgPlKnaaRQx64RO0JBKs9sDhQ2pLgN6JQZ25uPQZKQYaBJU48Kd5BxgXoJ4e09Dq7nMcOUW3A==", "dev": true, + "license": "MIT", "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", + "chokidar": "^4.0.0", + "immutable": "^5.1.5", "source-map-js": ">=0.6.2 <2.0.0" }, "bin": { @@ -7789,6 +7967,9 @@ }, "engines": { "node": ">=14.0.0" + }, + "optionalDependencies": { + "@parcel/watcher": "^2.4.1" } }, "node_modules/saxes": { @@ -8237,10 +8418,11 @@ } }, "node_modules/stylelint/node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", "dev": true, + "license": "MIT", "dependencies": { "argparse": "^2.0.1" }, @@ -8400,33 +8582,12 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/tmpl": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", "dev": true }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -8752,10 +8913,11 @@ } }, "node_modules/windows-release/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", "dev": true, + "license": "MIT", "dependencies": { "nice-try": "^1.0.4", "path-key": "^2.0.1", diff --git a/package.json b/package.json index aee2e6ad6b..24dc25013c 100644 --- a/package.json +++ b/package.json @@ -18,17 +18,17 @@ "keywords": [], "author": "Mate Academy", "license": "GPL-3.0", - "dependencies": {}, "devDependencies": { "@linthtml/linthtml": "^0.9.6", "@mate-academy/bemlint": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^1.8.6", + "@mate-academy/scripts": "^2.1.3", "@mate-academy/stylelint-config": "latest", "@parcel/transformer-sass": "^2.12.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", "prettier": "^3.3.2", + "sass": "^1.98.0", "stylelint": "^16.7.0", "stylelint-scss": "^6.4.1" }, diff --git a/src/images/Arrow left.svg b/src/images/Arrow left.svg new file mode 100644 index 0000000000..fefbc359cd --- /dev/null +++ b/src/images/Arrow left.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/images/Arrow right.svg b/src/images/Arrow right.svg new file mode 100644 index 0000000000..8b3097d0da --- /dev/null +++ b/src/images/Arrow right.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/images/Arrow.svg b/src/images/Arrow.svg new file mode 100644 index 0000000000..14283291fa --- /dev/null +++ b/src/images/Arrow.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/images/Group 19.png b/src/images/Group 19.png new file mode 100644 index 0000000000..c343b5e707 Binary files /dev/null and b/src/images/Group 19.png differ diff --git a/src/images/Layer 2.svg b/src/images/Layer 2.svg new file mode 100644 index 0000000000..d3cbe423e7 --- /dev/null +++ b/src/images/Layer 2.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/Logo.png b/src/images/Logo.png new file mode 100644 index 0000000000..0e349afb2e Binary files /dev/null and b/src/images/Logo.png differ diff --git a/src/images/Logo.svg b/src/images/Logo.svg new file mode 100644 index 0000000000..e26dfea4ae --- /dev/null +++ b/src/images/Logo.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/images/Menu.svg b/src/images/Menu.svg new file mode 100644 index 0000000000..374d372c5a --- /dev/null +++ b/src/images/Menu.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/Photo (1).png b/src/images/Photo (1).png new file mode 100644 index 0000000000..c3b03ee3f4 Binary files /dev/null and b/src/images/Photo (1).png differ diff --git a/src/images/Photo (2).png b/src/images/Photo (2).png new file mode 100644 index 0000000000..3b0dca48ba Binary files /dev/null and b/src/images/Photo (2).png differ diff --git a/src/images/Photo Mask (1).png b/src/images/Photo Mask (1).png new file mode 100644 index 0000000000..423605d710 Binary files /dev/null and b/src/images/Photo Mask (1).png differ diff --git a/src/images/Photo Mask (2).png b/src/images/Photo Mask (2).png new file mode 100644 index 0000000000..9dea1421b2 Binary files /dev/null and b/src/images/Photo Mask (2).png differ diff --git a/src/images/Photo Mask.png b/src/images/Photo Mask.png new file mode 100644 index 0000000000..30680ed0c6 Binary files /dev/null and b/src/images/Photo Mask.png differ diff --git a/src/images/Photo.png b/src/images/Photo.png new file mode 100644 index 0000000000..0796c89b99 Binary files /dev/null and b/src/images/Photo.png differ diff --git a/src/images/Photo2.png b/src/images/Photo2.png new file mode 100644 index 0000000000..1a1d7d8110 Binary files /dev/null and b/src/images/Photo2.png differ diff --git a/src/images/Photo3.png b/src/images/Photo3.png new file mode 100644 index 0000000000..dcd5cfd11e Binary files /dev/null and b/src/images/Photo3.png differ diff --git a/src/images/Photo4.png b/src/images/Photo4.png new file mode 100644 index 0000000000..83ad24a414 Binary files /dev/null and b/src/images/Photo4.png differ diff --git a/src/images/Photo_t.png b/src/images/Photo_t.png new file mode 100644 index 0000000000..ba89bc57e9 Binary files /dev/null and b/src/images/Photo_t.png differ diff --git a/src/images/facebook 1.svg b/src/images/facebook 1.svg new file mode 100644 index 0000000000..a51c4cf9dd --- /dev/null +++ b/src/images/facebook 1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/images/features/features-bg.jpg b/src/images/features/features-bg.jpg deleted file mode 100644 index 36b7a748d3..0000000000 Binary files a/src/images/features/features-bg.jpg and /dev/null differ diff --git a/src/images/features/features-item-icon-1.svg b/src/images/features/features-item-icon-1.svg deleted file mode 100644 index 2eb2ee14c3..0000000000 --- a/src/images/features/features-item-icon-1.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/images/features/features-item-icon-2.svg b/src/images/features/features-item-icon-2.svg deleted file mode 100644 index 194e788e11..0000000000 --- a/src/images/features/features-item-icon-2.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/images/features/features-item-icon-3.svg b/src/images/features/features-item-icon-3.svg deleted file mode 100644 index b278d8d16f..0000000000 --- a/src/images/features/features-item-icon-3.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/images/instagram.svg b/src/images/instagram.svg new file mode 100644 index 0000000000..76a83d304d --- /dev/null +++ b/src/images/instagram.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/logo/dia-logo.svg b/src/images/logo/dia-logo.svg deleted file mode 100644 index a81933296e..0000000000 --- a/src/images/logo/dia-logo.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/slider/arrow-left.svg b/src/images/slider/arrow-left.svg deleted file mode 100644 index 66daed19a5..0000000000 --- a/src/images/slider/arrow-left.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/slider/arrow-right.svg b/src/images/slider/arrow-right.svg deleted file mode 100644 index e9ddf85873..0000000000 --- a/src/images/slider/arrow-right.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/slider/slide-img-1.jpg b/src/images/slider/slide-img-1.jpg deleted file mode 100644 index 98c4188508..0000000000 Binary files a/src/images/slider/slide-img-1.jpg and /dev/null differ diff --git a/src/images/sub-title/sub-title-icon-dark.svg b/src/images/sub-title/sub-title-icon-dark.svg deleted file mode 100644 index 9fcdfa10cd..0000000000 --- a/src/images/sub-title/sub-title-icon-dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/images/sub-title/sub-title-icon-light.svg b/src/images/sub-title/sub-title-icon-light.svg deleted file mode 100644 index 5ec041c15e..0000000000 --- a/src/images/sub-title/sub-title-icon-light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/src/images/testimonials/testimonial-ava-1.jpg b/src/images/testimonials/testimonial-ava-1.jpg deleted file mode 100644 index d487a51ddf..0000000000 Binary files a/src/images/testimonials/testimonial-ava-1.jpg and /dev/null differ diff --git a/src/images/testimonials/testimonial-ava-2.jpg b/src/images/testimonials/testimonial-ava-2.jpg deleted file mode 100644 index 04288940f3..0000000000 Binary files a/src/images/testimonials/testimonial-ava-2.jpg and /dev/null differ diff --git a/src/images/testimonials/testimonial-ava-3.jpg b/src/images/testimonials/testimonial-ava-3.jpg deleted file mode 100644 index 24c0f2b94b..0000000000 Binary files a/src/images/testimonials/testimonial-ava-3.jpg and /dev/null differ diff --git a/src/images/what-we-do/what-we-do-1.jpg b/src/images/what-we-do/what-we-do-1.jpg deleted file mode 100644 index 9481d8eeb2..0000000000 Binary files a/src/images/what-we-do/what-we-do-1.jpg and /dev/null differ diff --git a/src/images/what-we-do/what-we-do-2.jpg b/src/images/what-we-do/what-we-do-2.jpg deleted file mode 100644 index 724e65566f..0000000000 Binary files a/src/images/what-we-do/what-we-do-2.jpg and /dev/null differ diff --git a/src/images/what-we-do/what-we-do-3.jpg b/src/images/what-we-do/what-we-do-3.jpg deleted file mode 100644 index 7a69cc03f1..0000000000 Binary files a/src/images/what-we-do/what-we-do-3.jpg and /dev/null differ diff --git a/src/index.html b/src/index.html index 9a8c6db8f9..d0d4d3853a 100644 --- a/src/index.html +++ b/src/index.html @@ -6,14 +6,496 @@ name="viewport" content="width=device-width, initial-scale=1.0" /> - Dia + Air + + -

Dia

+
+
+
+ +
+ menu +
+
+ + + + Hire us + +
+ +
+
+
+

+ Strategic Agency +

+

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

+ + Learn more + +
+
+ +
+ + + + + +
+
+
+ 1 +
+
+ 2 +
+
+ 3 +
+
+ 4 +
+
+
+ + +
+
+ + +
+ +
+

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 communication 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 +

+ + flash + Learn more + +
+
+ +
+
+

002

+

+ Content Production +
+ Graphic Design +
+ Video Production +
+ Post Production +

+ + flash + Learn more + +
+
+ +
+
+

003

+

+ Marketing Strategy +
+ Email Marketing +
+ Paid Advertising +
+ Blog Content & SEO +

+ + flash + Learn more + +
+
+ +
+
+

004

+

+ Digital Communications +
+ Influencer Marketing +
+ Product Placements +
+ Strategic Partnerships +

+ + flash + Learn more + +
+
+
+
+
+ +
+
+

Testimonials

+

+ What people say +

+ +
+
+ photo + lapki +
+

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

+
+

Tal Gilad

+

TEACH FOR AMERICA

+
+ +
+ photo + lapki +
+

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

+
+

Azadeh Hawkins

+

HAWKINS CONSULTING

+
+ +
+ photo + lapki +
+

+ AIR raises the agency bar to stratosperic 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/src/scripts/main.js b/src/scripts/main.js index ad9a93a7c1..5d7294b4c0 100644 --- a/src/scripts/main.js +++ b/src/scripts/main.js @@ -1 +1,43 @@ 'use strict'; + +const sliderImage = document.querySelector('.strategic__image__scroll'); +const prevBtn = document.querySelector('.button-prev'); +const nextBtn = document.querySelector('.button-next'); + +const images = [ + 'images/Photo.png', + 'images/Photo2.png', + 'images/Photo3.png', + 'images/Photo4.png' +]; + +let currentIndex = 0; + +images.forEach(src => { + const img = new Image(); + img.src = src; +}); + +function showImage(index) { + sliderImage.src = images[index]; +} + +nextBtn.addEventListener('click', () => { + currentIndex++; + + if (currentIndex >= images.length) { + currentIndex = 0; + } + + showImages(currentIndex); +}); + +prevBtn.addEventListener('click', () => { + currentIndex--; + + if (currentIndex < 0) { + currentIndex = images.length - 1; + } + + showImage(currentIndex); +}); diff --git a/src/styles/_typography.scss b/src/styles/_typography.scss index 1837eb46e2..4a0c61b450 100644 --- a/src/styles/_typography.scss +++ b/src/styles/_typography.scss @@ -1,3 +1,5 @@ +@use './utils/extends' as *; + h1 { @extend %h1; } diff --git a/src/styles/_variables.scss b/src/styles/_variables.scss new file mode 100644 index 0000000000..6146a6efbd --- /dev/null +++ b/src/styles/_variables.scss @@ -0,0 +1,28 @@ +:root { + --bg-color: #2c2c2c; + --bg-button: #008aff; + --button-color: #2060f6; +} + +.dark-theme { + --bg-color: #008aff; + --bg-button: #2c2c2c; + --button-color: #ff9c8e; +} + +$tablet-min-width: 640px; +$desktop-min-width: 1024px; +$design: 1600px; +$large-width: 2560px; +$page-color: #f3f6f9; +$white: #fff; +$c-gray: #eee; +$btn_color: #2060f6; +$text-color: #6c788b; +$title-color: #253757; +$header_bg: #2c2c2c; +$services_btn: #334563; +$services_name: #c0cdd7; +$tablet-min-width: 640px; +$desktop-min-width: 1024px; +$phone-min-width: 320px; diff --git a/src/styles/blocks/_about.scss b/src/styles/blocks/_about.scss new file mode 100644 index 0000000000..2587893bc6 --- /dev/null +++ b/src/styles/blocks/_about.scss @@ -0,0 +1,72 @@ +@use '../utils/mixins' as *; + +.about { + margin-top: 148px; + margin-bottom: 148px; + + + &__container { + max-width: 558px; + margin: 0 auto; + padding: 0 20px; + } + + &__title { + color: #253757; + font-size: 32px; + font-weight: 600; + text-align: center; + } + + &__text { + color: #6c788b; + font-weight: 600; + font-size: 24px; + text-align: center; + line-height: 150%; + width: 100%; + max-width: 754px; + margin: auto; + margin-top: 16px; + + @include on-desktop { + max-width: 716px; + } + } +} + +@media (max-width: 640px) { + .about { + padding: 0; + } + + .about__container { + width: 100%; + max-width: 558px; + } + + .about__text { + width: 100%; + max-width: 558px; + } +} + +@media (max-width: 320px) { + .about { + margin-top: 120px; + margin-bottom: 120px; + } + + .about__title { + width: 100%; + max-width: 280px; + } + + .about__text { + width: 100%; + max-width: 280px; + font-size: 22px; + margin-left: 0; + margin-right: 0; + } +} diff --git a/src/styles/blocks/_button.scss b/src/styles/blocks/_button.scss new file mode 100644 index 0000000000..69c85b3ebc --- /dev/null +++ b/src/styles/blocks/_button.scss @@ -0,0 +1,44 @@ +@use '../variables' as *; + +.button { + display: flex; + height: 50px; + width: 264px; + border-radius: 8px; + background-color: $btn_color; + color: $white; + text-decoration: none; + font-size: 15px; + font-weight: 600; + justify-content: center; + align-items: center; + + &:hover { + opacity: 0.85; + } +} + +.send__button { + border-width: 0; +} + +.button-prev, .button-next { + cursor: pointer; + + display: flex; + align-items: center; + justify-content: center; + + width: 32px; + height: 32px; + padding: 0; + border: none; + + background: none; + + transition: transform 0.3s ease; + + &:hover { + transform: scale(1.1); + } +} diff --git a/src/styles/blocks/_expertise.scss b/src/styles/blocks/_expertise.scss new file mode 100644 index 0000000000..5a69748813 --- /dev/null +++ b/src/styles/blocks/_expertise.scss @@ -0,0 +1,80 @@ +@use '../utils/mixins' as *; + +.expertise { + width: 100%; + background-color: #fff; + border-radius: 30px; + padding: 128px 0; + + &__title { + color: #253757; + font-size: 52px; + text-align: center; + margin-bottom: 64px; + } + + &__card { + display: flex; + justify-content: center; + gap: 177px; + + @include on-desktop { + gap: 137px; + } + } + + &__card-title { + color: #253757; + line-height: 140%; + font-weight: 600; + text-align: center; + font-size: 20px; + margin-top: 40px; + margin-bottom: 16px; + } + + &__text { + color: #6c788b; + font-weight: 400; + font-size: 14px; + } +} + +.expertise-card { + width: 264px; + text-align: center; + + &:hover { + transform: translateY(-5px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + cursor: pointer; + } + + @include on-desktop { + width: 214px; + } + + @include on-tablet { + width: 362px; + } + + img { + margin: 0 auto; + } +} + +@media (max-width: 640px) { + .expertise__card { + flex-direction: column; + align-items: center; + gap: 72px; + } +} + +@media (max-width: 320px) { + .expertise-card { + width: 280px; + height: 305px; + } +} diff --git a/src/styles/blocks/_footer.scss b/src/styles/blocks/_footer.scss new file mode 100644 index 0000000000..8880f69f8b --- /dev/null +++ b/src/styles/blocks/_footer.scss @@ -0,0 +1,221 @@ +@use '../utils/mixins' as *; + +.footer { + margin-top: -102px; + background-color: #2c2c2c; + border-top-left-radius: 30px; + border-top-right-radius: 30px; + color: #fff; + + &__container { + display: grid; + grid-template-columns: 1fr 1fr; + column-gap: 226px; + + @include on-desktop { + column-gap: 98px; + } + } + + &__form { + padding-top: 180px; + width: 100%; + max-width: 460px; + + @include on-desktop { + width: 370px; + } + } + + &__form h2 { + font-size: 32px; + margin-bottom: 56px; + margin-top: 0; + } + + &__form form { + display: flex; + flex-direction: column; + gap: 48px; + } + + &__form input { + background: transparent; + border: none; + border-bottom: 1px solid #fff; + padding: 17px 0; + color: #fff; + font-size: 15px; + outline: none; + + &::placeholder { + color: #c0cdd7; + } + + &:focus { + border-bottom: 2px solid #2060f6; + } + } + + & .button { + margin-top: 80px; + } + + &__contacts { + & h2 { + margin-top: 50px; + font-size: 32px; + margin-bottom: 56px; + } + + & h3 { + font-size: 13px; + letter-spacing: 3px; + text-transform: uppercase; + color: #c0cdd7; + margin-bottom: 8px; + } + + & p { + font-size: 24px; + margin-bottom: 48px; + } + } + + &__bottom { + grid-column: span 2; + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 104px; + margin-bottom: 80px; + + & .nav__list { + display: flex; + gap: 64px; + align-items: center; + } + + & a { + color: #fff; + text-decoration: none; + font-size: 13px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 3px; + } + } +} + +.socials__media { + display: flex; + gap: 32px; + margin-top: 16px; + + & img { + width: 32px; + height: 32px; + cursor: pointer; + } +} + +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus, +textarea:-webkit-autofill, +select:-webkit-autofill { + -webkit-text-fill-color: inherit; + -webkit-box-shadow: 0 0 0px 1000px transparent inset; + transition: background-color 9999s ease-in-out 0s; +} + +@media (max-width: 640px) { + .footer__container { + display: flex; + flex-direction: column; + align-items: flex-start; + } + + .footer__form { + width: 362px; + //padding-right: 196px; + padding: auto; + } + + .footer__contacts { + width: 100%; + } + + .footer__bottom { + display: flex; + flex-direction: column; + align-items: flex-start; + } + + .nav__bottom .nav__list { + column-gap: 40px; + padding-top: 24px; + } +} + +@media (max-width: 320px) { + .footer { + margin-top: 0; + border-top-left-radius: 30px; + border-top-right-radius: 30px; + } + + .footer__container { + flex-direction: column; + padding: 0 20px; + } + + .footer__form { + width: 100%; + padding: 60px 0 0 0; + } + + .footer__form h2 { + font-size: 32px; + margin-bottom: 32px; + } + + .footer__form form { + gap: 32px; + } + + .footer .button { + margin-top: 40px; + width: 100%; + } + + .footer__contacts { + margin-top: 72px; + + & p { + width: 200px; + } + } + + .footer__contacts h2 { + font-size: 24px; + margin: 0 0 32px 0; + } + + .footer__bottom { + margin-top: 72px; + margin-bottom: 40px; + width: 100%; + } + + .nav__bottom .nav__list { + flex-direction: column; + align-items: flex-start; + gap: 16px; + padding-top: 67px; + } + + .contacts__links__adresse { + word-break: break-word; + } +} diff --git a/src/styles/blocks/_header.scss b/src/styles/blocks/_header.scss new file mode 100644 index 0000000000..b3ac7f0b8a --- /dev/null +++ b/src/styles/blocks/_header.scss @@ -0,0 +1,69 @@ +@use '../utils/mixins' as *; + +.header { + background-color: #2c2c2c; + background-size: cover; + background-position: center; + height: auto; + border-bottom-left-radius: 30px; + border-bottom-right-radius: 30px; + overflow: hidden; + + &__left { + display: flex; + align-items: center; + gap: 24px; + + @media (max-width: 320px) { + gap: 16px; + } + } + + &__container { + display: flex; + justify-content: space-between; + align-items: flex-start; + margin: 0 auto; + + @media (max-width: 640px) { + align-items: center; + } + } + + &__logo { + width: 46px; + height: 28px; + margin-top: 48px; + + @media (max-width: 640px) { + margin-top: 20px; + } + } +} + +.header__hire { + margin-top: 52px; + color: #fff; + font-size: 13px; + font-weight: 700; + text-decoration: none; + text-transform: uppercase; + letter-spacing: 3px; + position: relative; + + &::after { + content: ''; + position: absolute; + left: 0; + bottom: -8px; + width: 100%; + height: 2px; + background-color: #2060f6; + } + + @media (max-width: 640px) { + margin-top: 20px; + } +} + + diff --git a/src/styles/blocks/_intro.scss b/src/styles/blocks/_intro.scss new file mode 100644 index 0000000000..7f0bf985f0 --- /dev/null +++ b/src/styles/blocks/_intro.scss @@ -0,0 +1,68 @@ +.intro { + position: absolute; + width: 368px; + left: 40px; + bottom: 40px; + + display: flex; + align-items: center; + gap: 24px; + + z-index: 2; + + &__arrow { + display: flex; + gap: 16px; + } + + &__image { + width: 32px; + height: 32px; + margin-left: 16px; + object-fit: contain; + } + + &__content { + display: flex; + flex-direction: column; + } + + &__title { + color: #fff; + font-size: 13px; + text-transform: uppercase; + font-weight: 700; + letter-spacing: 3px; + margin-bottom: 8px; + } + + &__text { + color: #fff; + font-weight: 400; + font-size: 14px; + margin: 0; + } +} + +@media (max-width: 640px) { + .intro { + flex-direction: column; + align-items: flex-start; + column-gap: 16px; + } + + .intro__arrow { + order: -1; + } + + .intro__image { + margin-left: 0; + } +} + +@media (max-width: 320px) { + .intro { + left: 20px; + bottom: 24px; + } +} diff --git a/src/styles/blocks/_nav.scss b/src/styles/blocks/_nav.scss new file mode 100644 index 0000000000..6f549e0188 --- /dev/null +++ b/src/styles/blocks/_nav.scss @@ -0,0 +1,45 @@ +@use '../utils/mixins' as *; + +.nav { + margin-top: 52px; + + @media (max-width: 640px) { + display: none; + } + + &__bottom { + margin-top: 0; + } + + &__list { + display: flex; + gap: 48px; + list-style: none; + margin: 0; + padding: 0; + } + + &__item { + position: relative; + } + + /*&__link::after { + content: ''; + position: absolute; + left: 0; + width: 100%; + height: 2px; + bottom: -8px; + background-color: #2060f6; + }*/ + + &__link { + color: #fff; + font-size: 13px; + font-weight: 700; + text-decoration: none; + text-transform: uppercase; + letter-spacing: 3px; + white-space: nowrap; + } +} diff --git a/src/styles/blocks/_other.scss b/src/styles/blocks/_other.scss new file mode 100644 index 0000000000..e4cb21c4c2 --- /dev/null +++ b/src/styles/blocks/_other.scss @@ -0,0 +1,131 @@ +@use '../utils/mixins' as *; + +.container { + max-width: 1148px; + margin: 0 auto; + align-items: center; + + + @media (max-width: 1600px) { + padding-left: 54px; + padding-right: 54px; + } + + @media (max-width: 640px) { + padding-left: 41px; + padding-right: 41px; + } + + @media (max-width: 320px) { + padding-left: 20px; + padding-right: 20px; + } +} + +.logo { + display: block; + width: 46px; +} + +.little_name { + font-size: 13px; + letter-spacing: 3px; + font-weight: 700; + text-transform: uppercase; + color: #c0cdd7; +} + +.title_section { + font-weight: 600; + font-size: 32px; + line-height: 130%; + vertical-align: middle; + color: #253757; +} + +.flash_card { + display: flex; + align-items: center; + gap: 16px; + text-decoration: none; + font-weight: 600; + color: #334563; + + & img { + width: 40px; + height: 40px; + } +} + +.contacts__links { + text-decoration: none; + white-space: nowrap; + color: #fff; +} + +.contacts__links__adresse { + text-decoration: none; + color: #fff; + word-break: break-word; +} + +.burger-menu { + display: none; + + @media (max-width: 640px) { + display: flex; + margin: 0; + padding-top: 24px; + } +} + +.burger-icon { + width: 24px; + height: 24px; + cursor: pointer; +} + +.slider { + overflow: hidden; + position: absolute; + width: 100%; + height: 100%; +} + +.slides { + display: flex; + height: 100%; + transition: transform 0.3s ease; + width: 100%; +} + +.slide { + min-width: 100%; + flex-shrink: 0; + + & img { + width: 100%; + height: 100%; + object-fit: cover; + } +} + +#s1:checked ~ .slider .slides { + transform: translateX(0%); +} + +#s2:checked ~ .slider .slides { + transform: translateX(-100%); +} + +#s3:checked ~ .slider .slides { + transform: translateX(-200%); +} + +#s4:checked ~ .slider .slides { + transform: translateX(-300%); +} + +input[type="radio"] { + display: none; +} diff --git a/src/styles/blocks/_services.scss b/src/styles/blocks/_services.scss new file mode 100644 index 0000000000..511e96b0d6 --- /dev/null +++ b/src/styles/blocks/_services.scss @@ -0,0 +1,213 @@ +@use '../utils/mixins' as *; + +.services { + padding: 100px 0; + + &__title__section { + font-weight: 600; + font-size: 32px; + line-height: 130%; + vertical-align: middle; + color: #253757; + width: 264px; + height: 126px; + } + + &__info { + width: 40%; + padding-top: 103px; + padding-left: 0; + + @include on-desktop { + padding-left: 54px; + } + + & p { + font-weight: 400; + font-size: 14px; + line-height: 150%; + color: #6c788b; + width: 364px; + height: 249px; + + @include on-tablet { + width: 264px; + height: 312px; + } + + @include on-desktop { + width: 294px; + height: 249px; + } + + @include on-design { + width: 364px; + height: 249px; + } + } + } + + &__cards { + width: 50%; + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 30px; + + @media(min-width: 1024px) { + gap: 20px; + } + + @media(max-width: 640px) { + padding-left: 41px; + gap: 30px; + } + } +} + +.services-wrapper { + display: flex; + justify-content: space-between; + align-items: flex-start; + margin-top: 148px; + padding: 0; + gap: 80px; +} + +.service-card { + box-sizing: border-box; + background-color: #fff; + padding: 32px; + border-radius: 16px; + box-shadow: 0 9px 18px 0 #25293108; + height: 264px; + + &:hover { + transform: translateY(-5px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + cursor: pointer; + } + + @include on-tablet { + width: 264px; + } + + @include on-desktop { + width: 214px; + } + + @include on-design { + width: 264px; + } + + @include on-large { + width: 264px; + } + + &__info { + display: flex; + flex-direction: column; + height: 100%; + } + + & p { + color: #6c788b; + line-height: 150%; + letter-spacing: 0; + margin-bottom: 32px; + margin-top: 24px; + font-size: 13px; + } + + &__number { + display: flex; + color: #2060f6; + font-size: 13px; + justify-content: center; + align-items: center; + height: 24px; + width: 46px; + background-color: #f4f6f9; + border-radius: 23px; + margin: 0; + } + + &:nth-child(1) { + transform: translateY(132px); + } + + &:nth-child(2) { + transform: translateY(0); + } + + &:nth-child(3) { + transform: translateY(162px); + } + + &:nth-child(4) { + transform: translateY(30px); + } +} + +@media (max-width: 640px) { + .services { + padding-top: 0; + } + + .services__cards { + margin-top: -150px; + } + + .services__info { + padding-top: 0; + padding-left: 39px; + height: auto; + } + + .services__info p { + width: 100%; + height: auto; + } + + .services-wrapper { + flex-direction: column; + gap: 40px; + } +} + +@media (max-width: 320px) { + .services { + padding-left: 18px; + padding-bottom: 0; + + & p { + width: 282px; + } + } + + .services__info { + padding: 0; + } + + .services__cards { + display: flex; + flex-direction: column; + gap: 24px; + padding: 0; + margin-top: 0; + } + + .service-card { + width: 280px; + height: 264px; + padding-bottom: 24px; + transform: none; + } + + .service-card:nth-child(1), + .service-card:nth-child(2), + .service-card:nth-child(3), + .service-card:nth-child(4) { + transform: none; + } +} diff --git a/src/styles/blocks/_strategic.scss b/src/styles/blocks/_strategic.scss new file mode 100644 index 0000000000..8b20ee52f2 --- /dev/null +++ b/src/styles/blocks/_strategic.scss @@ -0,0 +1,149 @@ +@use '../variables' as *; +@use '../utils/mixins' as *; + +.strategic { + position: relative; + min-height: calc(100% - 76px); + + &__container { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + margin-right: 0; + margin-bottom: 0; + margin-top: 48px; + + padding-left: 0; + padding-right: 0; + position: relative; + max-width: 1200px; + + + @include on-desktop { + margin-left: 54px; + } + + @include on-design { + margin-left: 224px; + } + + @include on-large { + margin-left: 707px; + } + + @media (max-width: 640px) { + flex-direction: column; + position: absolute; + z-index: 10; + } + + } + + &__content { + width: 100%; + max-width: 490px; + + margin-left: 0; + padding-bottom: 205px; + + @media (max-width: 640px) { + max-width: 558px; + padding-bottom: 147px; + } + + @media (max-width: 320px) { + max-width: 280px; + padding-bottom: 48px; + } + } + + &__title { + margin-top: 168px; + font-weight: 600; + font-size: 64px; + line-height: 68px; + letter-spacing: -2px; + color: #fff; + margin-bottom: 32px; + + @media (max-width: 640px) { + margin-top: 56px; + } + } + + &__text { + font-weight: 400; + font-size: 18px; + line-height: 150%; + letter-spacing: 0; + color: #fff; + margin-bottom: 83px; + max-width: 362px; + } + + &__image { + position: absolute; + top: 0; + right: 0; + height: 100%; + width: 50%; + overflow: hidden; + bottom: 0; + + &__scroll { + width: 100%; + height: 100%; + + & img { + width: 100%; + height: 100%; + object-fit: cover; + border-top-left-radius: 30px; + } + } + } +} + +@media (max-width: 640px) { + .strategic { + height: auto; + } + + .strategic__container { + position: static; + margin-left: 21px; + } + + .strategic__image { + position: static; + transform: none; + width: 100%; + height: 310px; + } + + .strategic__image__scroll { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 30px; + + & img { + height: auto; + border-radius: 30px; + } + } + + .header { + height: auto; + } +} + +.container .strategic__container { + align-items: flex-start; + position: absolute; + width: 100%; + bottom: 0; + right: 0; + max-width: 100%; +} diff --git a/src/styles/blocks/_testimonials.scss b/src/styles/blocks/_testimonials.scss new file mode 100644 index 0000000000..e53e243c00 --- /dev/null +++ b/src/styles/blocks/_testimonials.scss @@ -0,0 +1,137 @@ +@use '../utils/mixins' as *; + +.testimonials { + &__info { + padding-top: 148px; + } + + &__title__section { + font-weight: 600; + font-size: 32px; + line-height: 130%; + vertical-align: middle; + color: #253757; + width: 264px; + height: 126px; + } + + &__cards { + justify-content: center; + align-items: center; + padding-top: 85px; + padding-bottom: 148px; + display: flex; + gap: 30px; + margin: 0 auto; + + @include on-phone { + /*padding-top: 48px; + padding-bottom: 120px;*/ + padding: 48px auto 120px; + } + } + + &__card { + width: 280px; + height: 456px; + border-radius: 16px; + background-color: #fff; + + &:hover { + transform: translateY(-5px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + cursor: pointer; + } + + @include on-tablet { + width: 558px; + height: 478px; + } + + @include on-desktop { + width: 292px; + height: 456px; + } + + @include on-design { + width: 362px; + height: 494px; + } + } + + &__photo { + display: flex; + align-items: center; + justify-content: center; + margin: 32px auto 24px; + + @include on-phone { + width: 166px; + height: 166px; + } + + @include on-tablet { + height: 250px; + width: 250px; + } + + @include on-desktop { + width: 196px; + height: 196px; + } + + @include on-design { + width: 250px; + height: 250px; + } + } + + &__describe { + font-size: 13px; + font-weight: 600; + color: #6c788b; + justify-content: center; + text-align: center; + margin-top: 8px; + } + + &__name { + display: flex; + font-size: 13px; + line-height: 150%; + justify-content: center; + font-weight: 600; + color: #253757; + } + + &__role { + display: flex; + font-size: 13px; + text-transform: uppercase; + justify-content: center; + font-weight: 700; + letter-spacing: 3px; + color: #c0cdd7; + margin-bottom: 32px; + } + + &__lapki { + display: block; + margin: 0 auto; + } +} + +@media (max-width: 640px) { + .testimonials__cards { + flex-direction: column; + } +} + +@media (max-width: 320px) { + .testimonials__title__section { + width: 280px; + height: 48px; + } + +} diff --git a/src/styles/blocks/_vision.scss b/src/styles/blocks/_vision.scss new file mode 100644 index 0000000000..6f16598726 --- /dev/null +++ b/src/styles/blocks/_vision.scss @@ -0,0 +1,67 @@ +.vision { + background-color: #fff; + + background-image: url('../images/Shapes.png'); + background-repeat: no-repeat; + background-position: top 72px center; + background-size: 1440px auto; + + padding-top: 72px; + height: 888px; + + &__info { + margin-top: 199px; + text-align: center; + max-width: 754px; + margin-left: auto; + margin-right: auto; + } + + &__title { + font-size: 52px; + font-weight: 600; + color: #253757; + text-align: center; + margin: 0 auto; + } + + &__text { + font-weight: 600; + font-size: 24px; + text-align: center; + color: #6c788b; + margin-top: 24px; + margin-bottom: 64px; + } + + &__button { + display: flex; + justify-content: center; + align-items: center; + + width: 264px; + height: 56px; + + margin: 0 auto; + } +} + +@media (max-width: 640px) { + .vision { + background-size: 1055px auto; + } +} + +@media (max-width: 320px) { + .vision { + background-image: none; + } + .vision__container { + padding: 0; + } + + .vision__info { + width: 320px; + height: 571px; + } +} diff --git a/src/styles/main.css b/src/styles/main.css new file mode 100644 index 0000000000..2235aad491 --- /dev/null +++ b/src/styles/main.css @@ -0,0 +1,1247 @@ +:root { + --bg-color: #2c2c2c; + --bg-button: #008aff; + --button-color: #2060f6; +} + +.dark-theme { + --bg-color: #008aff; + --bg-button: #2c2c2c; + --button-color: #ff9c8e; +} + +h1 { + font-family: Roboto, sans-serif; + font-weight: 400; +} + +@font-face { + font-family: Roboto, Arial, Helvetica, sans-serif; + src: url("../fonts/Roboto-Regular-webfont.woff") format("woff"); + font-weight: normal; + font-style: normal; +} +.about { + margin-top: 148px; + margin-bottom: 148px; +} +.about__container { + max-width: 558px; + margin: 0 auto; + padding: 0 20px; +} +.about__title { + color: #253757; + font-size: 32px; + font-weight: 600; + text-align: center; +} +.about__text { + color: #6c788b; + font-weight: 600; + font-size: 24px; + text-align: center; + line-height: 150%; + width: 100%; + max-width: 754px; + margin: auto; + margin-top: 16px; +} +@media (min-width: 1024px) { + .about__text { + max-width: 716px; + } +} + +@media (max-width: 640px) { + .about { + padding: 0; + } + .about__container { + width: 100%; + max-width: 558px; + } + .about__text { + width: 100%; + max-width: 558px; + } +} +@media (max-width: 320px) { + .about { + margin-top: 120px; + margin-bottom: 120px; + } + .about__title { + width: 100%; + max-width: 280px; + } + .about__text { + width: 100%; + max-width: 280px; + font-size: 22px; + margin-left: 0; + margin-right: 0; + } +} +.button { + display: flex; + height: 50px; + width: 264px; + border-radius: 8px; + background-color: #2060f6; + color: #fff; + text-decoration: none; + font-size: 15px; + font-weight: 600; + justify-content: center; + align-items: center; +} +.button:hover { + opacity: 0.85; +} + +.send__button { + border-width: 0; +} + +.button-prev, .button-next { + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + width: 32px; + height: 32px; + padding: 0; + border: none; + background: none; + transition: transform 0.3s ease; +} +.button-prev:hover, .button-next:hover { + transform: scale(1.1); +} + +.expertise { + width: 100%; + background-color: #fff; + border-radius: 30px; + padding: 128px 0; +} +.expertise__title { + color: #253757; + font-size: 52px; + text-align: center; + margin-bottom: 64px; +} +.expertise__card { + display: flex; + justify-content: center; + gap: 177px; +} +@media (min-width: 1024px) { + .expertise__card { + gap: 137px; + } +} +.expertise__card-title { + color: #253757; + line-height: 140%; + font-weight: 600; + text-align: center; + font-size: 20px; + margin-top: 40px; + margin-bottom: 16px; +} +.expertise__text { + color: #6c788b; + font-weight: 400; + font-size: 14px; +} + +.expertise-card { + width: 264px; + text-align: center; +} +.expertise-card:hover { + transform: translateY(-5px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + cursor: pointer; +} +@media (min-width: 1024px) { + .expertise-card { + width: 214px; + } +} +@media (min-width: 640px) { + .expertise-card { + width: 362px; + } +} +.expertise-card img { + margin: 0 auto; +} + +@media (max-width: 640px) { + .expertise__card { + flex-direction: column; + align-items: center; + gap: 72px; + } +} +@media (max-width: 320px) { + .expertise-card { + width: 280px; + height: 305px; + } +} +.footer { + margin-top: -102px; + background-color: #2c2c2c; + border-top-left-radius: 30px; + border-top-right-radius: 30px; + color: #fff; +} +.footer__container { + display: grid; + grid-template-columns: 1fr 1fr; + -moz-column-gap: 226px; + column-gap: 226px; +} +@media (min-width: 1024px) { + .footer__container { + -moz-column-gap: 98px; + column-gap: 98px; + } +} +.footer__form { + padding-top: 180px; + width: 100%; + max-width: 460px; +} +@media (min-width: 1024px) { + .footer__form { + width: 370px; + } +} +.footer__form h2 { + font-size: 32px; + margin-bottom: 56px; + margin-top: 0; +} +.footer__form form { + display: flex; + flex-direction: column; + gap: 48px; +} +.footer__form input { + background: transparent; + border: none; + border-bottom: 1px solid #fff; + padding: 17px 0; + color: #fff; + font-size: 15px; + outline: none; +} +.footer__form input::-moz-placeholder { + color: #c0cdd7; +} +.footer__form input::placeholder { + color: #c0cdd7; +} +.footer__form input:focus { + border-bottom: 2px solid #2060f6; +} +.footer .button { + margin-top: 80px; +} +.footer__contacts h2 { + margin-top: 50px; + font-size: 32px; + margin-bottom: 56px; +} +.footer__contacts h3 { + font-size: 13px; + letter-spacing: 3px; + text-transform: uppercase; + color: #c0cdd7; + margin-bottom: 8px; +} +.footer__contacts p { + font-size: 24px; + margin-bottom: 48px; +} +.footer__bottom { + grid-column: span 2; + display: flex; + justify-content: space-between; + align-items: center; + margin-top: 104px; + margin-bottom: 80px; +} +.footer__bottom .nav__list { + display: flex; + gap: 64px; + align-items: center; +} +.footer__bottom a { + color: #fff; + text-decoration: none; + font-size: 13px; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 3px; +} + +.socials__media { + display: flex; + gap: 32px; + margin-top: 16px; +} +.socials__media img { + width: 32px; + height: 32px; + cursor: pointer; +} + +input:-webkit-autofill, +input:-webkit-autofill:hover, +input:-webkit-autofill:focus, +textarea:-webkit-autofill, +select:-webkit-autofill { + -webkit-text-fill-color: inherit; + -webkit-box-shadow: 0 0 0px 1000px transparent inset; + -webkit-transition: background-color 9999s ease-in-out 0s; + transition: background-color 9999s ease-in-out 0s; +} + +@media (max-width: 640px) { + .footer__container { + display: flex; + flex-direction: column; + align-items: flex-start; + } + .footer__form { + width: 362px; + padding: auto; + } + .footer__contacts { + width: 100%; + } + .footer__bottom { + display: flex; + flex-direction: column; + align-items: flex-start; + } + .nav__bottom .nav__list { + -moz-column-gap: 40px; + column-gap: 40px; + padding-top: 24px; + } +} +@media (max-width: 320px) { + .footer { + margin-top: 0; + border-top-left-radius: 30px; + border-top-right-radius: 30px; + } + .footer__container { + flex-direction: column; + padding: 0 20px; + } + .footer__form { + width: 100%; + padding: 60px 0 0 0; + } + .footer__form h2 { + font-size: 32px; + margin-bottom: 32px; + } + .footer__form form { + gap: 32px; + } + .footer .button { + margin-top: 40px; + width: 100%; + } + .footer__contacts { + margin-top: 72px; + } + .footer__contacts p { + width: 200px; + } + .footer__contacts h2 { + font-size: 24px; + margin: 0 0 32px 0; + } + .footer__bottom { + margin-top: 72px; + margin-bottom: 40px; + width: 100%; + } + .nav__bottom .nav__list { + flex-direction: column; + align-items: flex-start; + gap: 16px; + padding-top: 67px; + } + .contacts__links__adresse { + word-break: break-word; + } +} +.header { + background-color: #2c2c2c; + background-size: cover; + background-position: center; + height: auto; + border-bottom-left-radius: 30px; + border-bottom-right-radius: 30px; + overflow: hidden; +} +.header__left { + display: flex; + align-items: center; + gap: 24px; +} +@media (max-width: 320px) { + .header__left { + gap: 16px; + } +} +.header__container { + display: flex; + justify-content: space-between; + align-items: flex-start; + margin: 0 auto; +} +@media (max-width: 640px) { + .header__container { + align-items: center; + } +} +.header__logo { + width: 46px; + height: 28px; + margin-top: 48px; +} +@media (max-width: 640px) { + .header__logo { + margin-top: 20px; + } +} + +.header__hire { + margin-top: 52px; + color: #fff; + font-size: 13px; + font-weight: 700; + text-decoration: none; + text-transform: uppercase; + letter-spacing: 3px; + position: relative; +} +.header__hire::after { + content: ""; + position: absolute; + left: 0; + bottom: -8px; + width: 100%; + height: 2px; + background-color: #2060f6; +} +@media (max-width: 640px) { + .header__hire { + margin-top: 20px; + } +} + +.intro { + position: absolute; + width: 368px; + left: 40px; + bottom: 40px; + display: flex; + align-items: center; + gap: 24px; + z-index: 2; +} +.intro__arrow { + display: flex; + gap: 16px; +} +.intro__image { + width: 32px; + height: 32px; + margin-left: 16px; + -o-object-fit: contain; + object-fit: contain; +} +.intro__content { + display: flex; + flex-direction: column; +} +.intro__title { + color: #fff; + font-size: 13px; + text-transform: uppercase; + font-weight: 700; + letter-spacing: 3px; + margin-bottom: 8px; +} +.intro__text { + color: #fff; + font-weight: 400; + font-size: 14px; + margin: 0; +} + +@media (max-width: 640px) { + .intro { + flex-direction: column; + align-items: flex-start; + -moz-column-gap: 16px; + column-gap: 16px; + } + .intro__arrow { + order: -1; + } + .intro__image { + margin-left: 0; + } +} +@media (max-width: 320px) { + .intro { + left: 20px; + bottom: 24px; + } +} +.nav { + margin-top: 52px; +} +@media (max-width: 640px) { + .nav { + display: none; + } +} +.nav__bottom { + margin-top: 0; +} +.nav__list { + display: flex; + gap: 48px; + list-style: none; + margin: 0; + padding: 0; +} +.nav__item { + position: relative; +} +.nav { + /*&__link::after { + content: ''; + position: absolute; + left: 0; + width: 100%; + height: 2px; + bottom: -8px; + background-color: #2060f6; + }*/ +} +.nav__link { + color: #fff; + font-size: 13px; + font-weight: 700; + text-decoration: none; + text-transform: uppercase; + letter-spacing: 3px; + white-space: nowrap; +} + +.container { + max-width: 1148px; + margin: 0 auto; + align-items: center; +} +@media (max-width: 1600px) { + .container { + padding-left: 54px; + padding-right: 54px; + } +} +@media (max-width: 640px) { + .container { + padding-left: 41px; + padding-right: 41px; + } +} +@media (max-width: 320px) { + .container { + padding-left: 20px; + padding-right: 20px; + } +} + +.logo { + display: block; + width: 46px; +} + +.little_name { + font-size: 13px; + letter-spacing: 3px; + font-weight: 700; + text-transform: uppercase; + color: #c0cdd7; +} + +.title_section { + font-weight: 600; + font-size: 32px; + line-height: 130%; + vertical-align: middle; + color: #253757; +} + +.flash_card { + display: flex; + align-items: center; + gap: 16px; + text-decoration: none; + font-weight: 600; + color: #334563; +} +.flash_card img { + width: 40px; + height: 40px; +} + +.contacts__links { + text-decoration: none; + white-space: nowrap; + color: #fff; +} + +.contacts__links__adresse { + text-decoration: none; + color: #fff; + word-break: break-word; +} + +.burger-menu { + display: none; +} +@media (max-width: 640px) { + .burger-menu { + display: flex; + margin: 0; + padding-top: 24px; + } +} + +.burger-icon { + width: 24px; + height: 24px; + cursor: pointer; +} + +.slider { + overflow: hidden; + position: absolute; + width: 100%; + height: 100%; +} + +.slides { + display: flex; + height: 100%; + transition: transform 0.3s ease; + width: 100%; +} + +.slide { + min-width: 100%; + flex-shrink: 0; +} +.slide img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; +} + +#s1:checked ~ .slider .slides { + transform: translateX(0%); +} + +#s2:checked ~ .slider .slides { + transform: translateX(-100%); +} + +#s3:checked ~ .slider .slides { + transform: translateX(-200%); +} + +#s4:checked ~ .slider .slides { + transform: translateX(-300%); +} + +input[type=radio] { + display: none; +} + +.services { + padding: 100px 0; +} +.services__title__section { + font-weight: 600; + font-size: 32px; + line-height: 130%; + vertical-align: middle; + color: #253757; + width: 264px; + height: 126px; +} +.services__info { + width: 40%; + padding-top: 103px; + padding-left: 0; +} +@media (min-width: 1024px) { + .services__info { + padding-left: 54px; + } +} +.services__info p { + font-weight: 400; + font-size: 14px; + line-height: 150%; + color: #6c788b; + width: 364px; + height: 249px; +} +@media (min-width: 640px) { + .services__info p { + width: 264px; + height: 312px; + } +} +@media (min-width: 1024px) { + .services__info p { + width: 294px; + height: 249px; + } +} +@media (min-width: 1600px) { + .services__info p { + width: 364px; + height: 249px; + } +} +.services__cards { + width: 50%; + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 30px; +} +@media (min-width: 1024px) { + .services__cards { + gap: 20px; + } +} +@media (max-width: 640px) { + .services__cards { + padding-left: 41px; + gap: 30px; + } +} + +.services-wrapper { + display: flex; + justify-content: space-between; + align-items: flex-start; + margin-top: 148px; + padding: 0; + gap: 80px; +} + +.service-card { + box-sizing: border-box; + background-color: #fff; + padding: 32px; + border-radius: 16px; + box-shadow: 0 9px 18px 0 rgba(37, 41, 49, 0.031372549); + height: 264px; +} +.service-card:hover { + transform: translateY(-5px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + cursor: pointer; +} +@media (min-width: 640px) { + .service-card { + width: 264px; + } +} +@media (min-width: 1024px) { + .service-card { + width: 214px; + } +} +@media (min-width: 1600px) { + .service-card { + width: 264px; + } +} +@media (min-width: 2560px) { + .service-card { + width: 264px; + } +} +.service-card__info { + display: flex; + flex-direction: column; + height: 100%; +} +.service-card p { + color: #6c788b; + line-height: 150%; + letter-spacing: 0; + margin-bottom: 32px; + margin-top: 24px; + font-size: 13px; +} +.service-card__number { + display: flex; + color: #2060f6; + font-size: 13px; + justify-content: center; + align-items: center; + height: 24px; + width: 46px; + background-color: #f4f6f9; + border-radius: 23px; + margin: 0; +} +.service-card:nth-child(1) { + transform: translateY(132px); +} +.service-card:nth-child(2) { + transform: translateY(0); +} +.service-card:nth-child(3) { + transform: translateY(162px); +} +.service-card:nth-child(4) { + transform: translateY(30px); +} + +@media (max-width: 640px) { + .services { + padding-top: 0; + } + .services__cards { + margin-top: -150px; + } + .services__info { + padding-top: 0; + padding-left: 39px; + height: auto; + } + .services__info p { + width: 100%; + height: auto; + } + .services-wrapper { + flex-direction: column; + gap: 40px; + } +} +@media (max-width: 320px) { + .services { + padding-left: 18px; + padding-bottom: 0; + } + .services p { + width: 282px; + } + .services__info { + padding: 0; + } + .services__cards { + display: flex; + flex-direction: column; + gap: 24px; + padding: 0; + margin-top: 0; + } + .service-card { + width: 280px; + height: 264px; + padding-bottom: 24px; + transform: none; + } + .service-card:nth-child(1), + .service-card:nth-child(2), + .service-card:nth-child(3), + .service-card:nth-child(4) { + transform: none; + } +} +.strategic { + position: relative; + min-height: calc(100% - 76px); +} +.strategic__container { + position: relative; + display: flex; + align-items: center; + justify-content: space-between; + margin-right: 0; + margin-bottom: 0; + margin-top: 48px; + padding-left: 0; + padding-right: 0; + position: relative; + max-width: 1200px; +} +@media (min-width: 1024px) { + .strategic__container { + margin-left: 54px; + } +} +@media (min-width: 1600px) { + .strategic__container { + margin-left: 224px; + } +} +@media (min-width: 2560px) { + .strategic__container { + margin-left: 707px; + } +} +@media (max-width: 640px) { + .strategic__container { + flex-direction: column; + position: absolute; + z-index: 10; + } +} +.strategic__content { + width: 100%; + max-width: 490px; + margin-left: 0; + padding-bottom: 205px; +} +@media (max-width: 640px) { + .strategic__content { + max-width: 558px; + padding-bottom: 147px; + } +} +@media (max-width: 320px) { + .strategic__content { + max-width: 280px; + padding-bottom: 48px; + } +} +.strategic__title { + margin-top: 168px; + font-weight: 600; + font-size: 64px; + line-height: 68px; + letter-spacing: -2px; + color: #fff; + margin-bottom: 32px; +} +@media (max-width: 640px) { + .strategic__title { + margin-top: 56px; + } +} +.strategic__text { + font-weight: 400; + font-size: 18px; + line-height: 150%; + letter-spacing: 0; + color: #fff; + margin-bottom: 83px; + max-width: 362px; +} +.strategic__image { + position: absolute; + top: 0; + right: 0; + height: 100%; + width: 50%; + overflow: hidden; + bottom: 0; +} +.strategic__image__scroll { + width: 100%; + height: 100%; +} +.strategic__image__scroll img { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + border-top-left-radius: 30px; +} + +@media (max-width: 640px) { + .strategic { + height: auto; + } + .strategic__container { + position: static; + margin-left: 21px; + } + .strategic__image { + position: static; + transform: none; + width: 100%; + height: 310px; + } + .strategic__image__scroll { + width: 100%; + height: 100%; + -o-object-fit: cover; + object-fit: cover; + border-radius: 30px; + } + .strategic__image__scroll img { + height: auto; + border-radius: 30px; + } + .header { + height: auto; + } +} +.container .strategic__container { + align-items: flex-start; + position: absolute; + width: 100%; + bottom: 0; + right: 0; + max-width: 100%; +} + +.testimonials__info { + padding-top: 148px; +} +.testimonials__title__section { + font-weight: 600; + font-size: 32px; + line-height: 130%; + vertical-align: middle; + color: #253757; + width: 264px; + height: 126px; +} +.testimonials__cards { + justify-content: center; + align-items: center; + padding-top: 85px; + padding-bottom: 148px; + display: flex; + gap: 30px; + margin: 0 auto; +} +@media (min-width: 320px) { + .testimonials__cards { + /*padding-top: 48px; + padding-bottom: 120px;*/ + padding: 48px auto 120px; + } +} +.testimonials__card { + width: 280px; + height: 456px; + border-radius: 16px; + background-color: #fff; +} +.testimonials__card:hover { + transform: translateY(-5px); + box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); + transition: all 0.3s ease; + cursor: pointer; +} +@media (min-width: 640px) { + .testimonials__card { + width: 558px; + height: 478px; + } +} +@media (min-width: 1024px) { + .testimonials__card { + width: 292px; + height: 456px; + } +} +@media (min-width: 1600px) { + .testimonials__card { + width: 362px; + height: 494px; + } +} +.testimonials__photo { + display: flex; + align-items: center; + justify-content: center; + margin: 32px auto 24px; +} +@media (min-width: 320px) { + .testimonials__photo { + width: 166px; + height: 166px; + } +} +@media (min-width: 640px) { + .testimonials__photo { + height: 250px; + width: 250px; + } +} +@media (min-width: 1024px) { + .testimonials__photo { + width: 196px; + height: 196px; + } +} +@media (min-width: 1600px) { + .testimonials__photo { + width: 250px; + height: 250px; + } +} +.testimonials__describe { + font-size: 13px; + font-weight: 600; + color: #6c788b; + justify-content: center; + text-align: center; + margin-top: 8px; +} +.testimonials__name { + display: flex; + font-size: 13px; + line-height: 150%; + justify-content: center; + font-weight: 600; + color: #253757; +} +.testimonials__role { + display: flex; + font-size: 13px; + text-transform: uppercase; + justify-content: center; + font-weight: 700; + letter-spacing: 3px; + color: #c0cdd7; + margin-bottom: 32px; +} +.testimonials__lapki { + display: block; + margin: 0 auto; +} + +@media (max-width: 640px) { + .testimonials__cards { + flex-direction: column; + } +} +@media (max-width: 320px) { + .testimonials__title__section { + width: 280px; + height: 48px; + } +} +.vision { + background-color: #fff; + background-image: url("../images/Shapes.png"); + background-repeat: no-repeat; + background-position: top 72px center; + background-size: 1440px auto; + padding-top: 72px; + height: 888px; +} +.vision__info { + margin-top: 199px; + text-align: center; + max-width: 754px; + margin-left: auto; + margin-right: auto; +} +.vision__title { + font-size: 52px; + font-weight: 600; + color: #253757; + text-align: center; + margin: 0 auto; +} +.vision__text { + font-weight: 600; + font-size: 24px; + text-align: center; + color: #6c788b; + margin-top: 24px; + margin-bottom: 64px; +} +.vision__button { + display: flex; + justify-content: center; + align-items: center; + width: 264px; + height: 56px; + margin: 0 auto; +} + +@media (max-width: 640px) { + .vision { + background-size: 1055px auto; + } +} +@media (max-width: 320px) { + .vision { + background-image: none; + } + .vision__container { + padding: 0; + } + .vision__info { + width: 320px; + height: 571px; + } +} +body { + background-color: #f3f6f9; + margin: 0; + padding: 0; + overflow-x: hidden; + font-family: "Open Sans", sans-serif; +} + +h1, +h2, +h3, +h4 { + font-family: Poppins, sans-serif; + margin: 0; +} + +html, +body { + overflow-x: hidden; + scroll-behavior: smooth; +} + +img { + max-width: 100%; + display: block; +} + +*, +*::before, +*::after { + box-sizing: border-box; +}/*# sourceMappingURL=main.css.map */ \ No newline at end of file diff --git a/src/styles/main.css.map b/src/styles/main.css.map new file mode 100644 index 0000000000..28151fa2d3 --- /dev/null +++ b/src/styles/main.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["_variables.scss","main.css","utils/_extends.scss","_fonts.scss","blocks/_about.scss","utils/_mixins.scss","blocks/_button.scss","blocks/_expertise.scss","blocks/_footer.scss","blocks/_header.scss","blocks/_intro.scss","blocks/_nav.scss","blocks/_other.scss","blocks/_services.scss","blocks/_strategic.scss","blocks/_testimonials.scss","blocks/_vision.scss","main.scss"],"names":[],"mappings":"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","file":"main.css"} \ No newline at end of file diff --git a/src/styles/main.scss b/src/styles/main.scss index fb9195d128..17d0635812 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -1,7 +1,51 @@ -@import 'utils'; -@import 'fonts'; -@import 'typography'; +@use 'variables'; +@use './utils/extends'; +@use './utils/mixins' as *; +@use './utils/vars'; +@use 'fonts'; +@use 'typography'; +@use './blocks/about'; +@use './blocks/button'; +@use './blocks/expertise'; +@use './blocks/footer'; +@use './blocks/header'; +@use './blocks/intro'; +@use './blocks/nav'; +@use './blocks/other'; +@use './blocks/services'; +@use './blocks/strategic'; +@use './blocks/testimonials'; +@use './blocks/vision'; body { - background: $c-gray; + background-color: #f3f6f9; + margin: 0; + padding: 0; + overflow-x: hidden; + font-family: 'Open Sans', sans-serif; +} + +h1, +h2, +h3, +h4 { + font-family: Poppins, sans-serif; + margin: 0; +} + +html, +body { + overflow-x: hidden; + scroll-behavior: smooth; +} + +img { + max-width: 100%; + display: block; +} + +*, +*::before, +*::after { + box-sizing: border-box; } diff --git a/src/styles/utils/_mixins.scss b/src/styles/utils/_mixins.scss index 80c79780dc..c9eba83f72 100644 --- a/src/styles/utils/_mixins.scss +++ b/src/styles/utils/_mixins.scss @@ -1,6 +1,52 @@ +@use '../variables' as *; + @mixin hover($_property, $_toValue) { transition: #{$_property} 0.3s; &:hover { #{$_property}: $_toValue; } } + +@mixin on-large { + @media (min-width: $large-width) { + @content; + } +} + +@mixin on-tablet { + @media (min-width: $tablet-min-width) { + @content; + } +} + +@mixin on-desktop { + @media (min-width: $desktop-min-width) { + @content; + } +} + +@mixin on-design { + @media (min-width: $design) { + @content; + } +} + +@mixin on-phone { + @media (min-width: $phone-min-width) { + @content; + } +} + +@mixin flex-center { + display: flex; + justify-content: center; + align-items: center; +} + +@mixin section-padding { + padding: 80px 0; + + @include tablet { + padding: 120px 0; + } +}