diff --git a/.eslintignore b/.eslintignore index c925c21d56..89f52aaca4 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,2 @@ +/backstop_data /dist -/node_modules 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/.gitignore b/.gitignore index 885c5fa6a4..1558091fd7 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,15 @@ +# IDE .idea .vscode -build -dist + +# Node node_modules -.DS_Store -npm-debug.log* -yarn-debug.log* -yarn-error.log* +# MacOS +.DS_Store -raw_reports -reports -cypress/screenshots -cypress/videos +# Generated files +backstop_data +dist +.cache +.parcel-cache diff --git a/.stylelintrc.js b/.stylelintrc.js index 2e345321d6..2b3e0220e0 100644 --- a/.stylelintrc.js +++ b/.stylelintrc.js @@ -3,5 +3,8 @@ module.exports = { plugins: [ "stylelint-scss" ], - rules: {} + rules: { + "rule-empty-line-before": null, + "at-rule-empty-line-before": null + } }; diff --git a/README.md b/README.md index 97d3c9060a..a26f63cd5f 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,8 @@ In this task, you will learn how to implement a landing page. To do that: - [Nothing](https://www.figma.com/file/DtkQmQ797hk0nI4KfMi2Uq/BOSE-New-Version?type=design&node-id=6802-139&t=L7eKz5YKLN0m5WxR-0) - watch the lesson videos and implement your page blocks similarly to the videos; - **DON'T** try to do it `Pixel Perfect` - implement it the most `simple` way so it looks similar; -- when you finish the first block of your page deploy it and create a Pull Request with a [DEMO LINK](https://.github.io/layout_miami/) +- when you finish the first block of your page deploy it and create a Pull Request with a [DEMO LINK](https://Patryk91sz.github.io/layout_miami/) - after each next block do the same (add, commit and push the changes, and deploy the updated demo; - check yourself using the [CHECKLIST](https://github.com/mate-academy/layout_miami/blob/master/checklist.md) when finished; + + diff --git a/index.html b/index.html index 06bcd7773a..9d31928b10 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,13 @@ name="viewport" content="width=device-width, initial-scale=1.0" /> - Miami + My-Bike + + + + -

Miami

+ +
+

MyBiKE

+ + + +
+

Take the Streets

+
+ +
+ +
+ +
+ +
+

Move Free

+

Shift your ride, not gears. Find the fastest way to move in the city as the bike adapts intuitively to power the speed you need. +

+
+ +
+ +
+

Compare bikes

+ +
+ +
+ + + + Bike Sporty 4 + +

Sporty 4

+

The iconic frame brought to a new performance height as a sporty, active ride.

+

$ 2 590

+
+ +
+ + + + Ride in town ST + +

Ride in town ST

+

An open frame for an upright riding position as the most comfortable ride in town.

+

$ 2 590

+
+ +
+ + + + Agile ride 3 + +

Agile ride 3

+

The lightweight frame that has earned its street tread as a sleek, agile ride.

+

$ 2 090

+
+ +
+
+ +
+ +

The details

+ +
+ +
+ + + + Auto Unlock-1 + + + + + Auto Unlock-2 + +
+ +

Auto Unlock

+

The app senses when you're nearby to unlock automatically. GPS tracking so you know where your bike is and can track it anytime.

+
+ +
+ +
+ + + + lights1 + + + + + lights2 + +
+ +

Range & Integrated lights

+ +

The removable battery has up to 70km battery autonomy and weighs only 2.4 kg. Lights integrated into the frame give you always-on visibility day and night.

+
+ +
+ +
+ + + + breakes1 + + + + + breakes2 + +
+ +

Hydraulic disc brakes & Lightweight

+ +

Brakes with total stopping power the second you make contact. The removable battery has up to 70km battery autonomy and weighs only 2.4 kg. Lights integrated into the frame give you always-on visibility day and night.

+
+ +
+ +
+ +
+
+ + + + diff --git a/package-lock.json b/package-lock.json index 5cfe8293fe..f61572d50a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,13 +13,17 @@ "@linthtml/linthtml": "^0.9.6", "@mate-academy/bemlint": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^2.1.2", + "@mate-academy/scripts": "^2.1.3", "@mate-academy/stylelint-config": "latest", + "cross-env": "^10.1.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "postcss": "^8.5.6", "prettier": "^3.3.2", "sass": "^1.93.2", - "stylelint": "^16.7.0", + "stylelint": "^16.26.1", + "stylelint-config-standard": "^39.0.1", + "stylelint-prettier": "^5.0.3", "stylelint-scss": "^6.4.1", "vite": "^6.3.6" } @@ -64,6 +68,7 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.9.tgz", "integrity": "sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg==", "dev": true, + "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.7", @@ -602,6 +607,68 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, + "node_modules/@cacheable/memory": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@cacheable/memory/-/memory-2.0.7.tgz", + "integrity": "sha512-RbxnxAMf89Tp1dLhXMS7ceft/PGsDl1Ip7T20z5nZ+pwIAsQ1p2izPjVG69oCLv/jfQ7HDPHTWK0c9rcAWXN3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/utils": "^2.3.3", + "@keyv/bigmap": "^1.3.0", + "hookified": "^1.14.0", + "keyv": "^5.5.5" + } + }, + "node_modules/@cacheable/memory/node_modules/@keyv/bigmap": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@keyv/bigmap/-/bigmap-1.3.0.tgz", + "integrity": "sha512-KT01GjzV6AQD5+IYrcpoYLkCu1Jod3nau1Z7EsEuViO3TZGRacSbO9MfHmbJ1WaOXFtWLxPVj169cn2WNKPkIg==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.2.0", + "hookified": "^1.13.0" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "keyv": "^5.5.4" + } + }, + "node_modules/@cacheable/memory/node_modules/keyv": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.5.tgz", + "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, + "node_modules/@cacheable/utils": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@cacheable/utils/-/utils-2.3.3.tgz", + "integrity": "sha512-JsXDL70gQ+1Vc2W/KUFfkAJzgb4puKwwKehNLuB+HrNKWf91O736kGfxn4KujXCCSuh6mRRL4XEB0PkAFjWS0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "hashery": "^1.3.0", + "keyv": "^5.5.5" + } + }, + "node_modules/@cacheable/utils/node_modules/keyv": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.5.tgz", + "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, "node_modules/@csstools/css-parser-algorithms": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.7.1.tgz", @@ -617,6 +684,7 @@ "url": "https://opencollective.com/csstools" } ], + "peer": true, "engines": { "node": "^14 || ^16 || >=18" }, @@ -624,6 +692,26 @@ "@csstools/css-tokenizer": "^2.4.1" } }, + "node_modules/@csstools/css-syntax-patches-for-csstree": { + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.22.tgz", + "integrity": "sha512-qBcx6zYlhleiFfdtzkRgwNC7VVoAwfK76Vmsw5t+PbvtdknO9StgRk7ROvq9so1iqbdW4uLIDAsXRsTfUrIoOw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + } + }, "node_modules/@csstools/css-tokenizer": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.4.1.tgz", @@ -639,6 +727,7 @@ "url": "https://opencollective.com/csstools" } ], + "peer": true, "engines": { "node": "^14 || ^16 || >=18" } @@ -689,15 +778,23 @@ } }, "node_modules/@dual-bundle/import-meta-resolve": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", - "integrity": "sha512-+nxncfwHM5SgAtrVzgpzJOI1ol0PkumhVo469KCf9lUi21IGcY90G98VuHm9VRrUypmAzawAHO9bs6hqeADaVg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@dual-bundle/import-meta-resolve/-/import-meta-resolve-4.2.1.tgz", + "integrity": "sha512-id+7YRUgoUX6CgV0DtuhirQWodeeA7Lf4i2x71JS/vtA5pRb/hIGWlw+G6MeXvsM+MXrz0VAydTGElX1rAfgPg==", "dev": true, + "license": "MIT", "funding": { "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://github.com/sponsors/JounQin" } }, + "node_modules/@epic-web/invariant": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz", + "integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==", + "dev": true, + "license": "MIT" + }, "node_modules/@esbuild/aix-ppc64": { "version": "0.25.10", "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.10.tgz", @@ -1491,6 +1588,13 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@keyv/serialize": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@keyv/serialize/-/serialize-1.1.1.tgz", + "integrity": "sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==", + "dev": true, + "license": "MIT" + }, "node_modules/@linthtml/cli": { "version": "0.9.5", "resolved": "https://registry.npmjs.org/@linthtml/cli/-/cli-0.9.5.tgz", @@ -1572,9 +1676,9 @@ "dev": true }, "node_modules/@mate-academy/scripts": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-2.1.2.tgz", - "integrity": "sha512-gUXFdqqOfYzF9R3RSx2pCa5GLdOkxB9bFbF+dpUpzucdgGAANqOGdqpmNnMj+e3xA9YHraUWq3xo9cwe5vD9pQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@mate-academy/scripts/-/scripts-2.1.3.tgz", + "integrity": "sha512-a07wHTj/1QUK2Aac5zHad+sGw4rIvcNl5lJmJpAD7OxeSbnCdyI6RXUHwXhjF5MaVo9YHrJ0xVahyERS2IIyBQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1636,22 +1740,19 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@mate-academy/stylelint-config/node_modules/balanced-match": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/@mate-academy/stylelint-config/node_modules/camelcase": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, - "peer": true, "engines": { "node": ">=10" }, @@ -1664,7 +1765,6 @@ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-7.0.2.tgz", "integrity": "sha512-Rjs1H+A9R+Ig+4E/9oyB66UC5Mj9Xq3N//vcLf2WzgdTi/3gUu3Z9KoqmlrEG4VuuLK8wJHofxzdQXz/knhiYg==", "dev": true, - "peer": true, "dependencies": { "camelcase": "^6.3.0", "map-obj": "^4.1.0", @@ -1683,7 +1783,6 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", "dev": true, - "peer": true, "dependencies": { "import-fresh": "^3.3.0", "js-yaml": "^4.1.0", @@ -1710,7 +1809,6 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz", "integrity": "sha512-VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==", "dev": true, - "peer": true, "engines": { "node": ">=10" }, @@ -1723,7 +1821,6 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-7.0.2.tgz", "integrity": "sha512-TfW7/1iI4Cy7Y8L6iqNdZQVvdXn0f8B4QcIXmkIbtTIe/Okm/nSlHb4IwGzRVOd3WfSieCgvf5cMzEfySAIl0g==", "dev": true, - "peer": true, "dependencies": { "flat-cache": "^3.2.0" }, @@ -1736,7 +1833,6 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, - "peer": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -1753,7 +1849,6 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, - "peer": true, "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.3", @@ -1768,7 +1863,6 @@ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -1781,7 +1875,6 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", "dev": true, - "peer": true, "dependencies": { "argparse": "^2.0.1" }, @@ -1800,7 +1893,6 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, - "peer": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -1816,7 +1908,6 @@ "resolved": "https://registry.npmjs.org/meow/-/meow-10.1.5.tgz", "integrity": "sha512-/d+PQ4GKmGvM9Bee/DPa8z3mXs/pkvJE2KEThngVNOqtmljC6K7NMPxtc2JeZYTmpWb9k/TmxjeL18ez3h7vCw==", "dev": true, - "peer": true, "dependencies": { "@types/minimist": "^1.2.2", "camelcase-keys": "^7.0.0", @@ -1843,7 +1934,6 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, - "peer": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -1859,7 +1949,6 @@ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", "dev": true, - "peer": true, "engines": { "node": ">=12.0" }, @@ -1876,7 +1965,6 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "dev": true, - "peer": true, "engines": { "node": ">=10" }, @@ -1889,7 +1977,6 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-6.0.0.tgz", "integrity": "sha512-X1Fu3dPuk/8ZLsMhEj5f4wFAF0DWoK7qhGJvgaijocXxBmSToKfbFtqbxMO7bVjNA1dmE5huAzjXj/ey86iw9Q==", "dev": true, - "peer": true, "dependencies": { "@types/normalize-package-data": "^2.4.0", "normalize-package-data": "^3.0.2", @@ -1908,7 +1995,6 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-8.0.0.tgz", "integrity": "sha512-snVCqPczksT0HS2EC+SxUndvSzn6LRCwpfSvLrIfR5BKDQQZMaI6jPRC9dYvYFDRAuFEAnkwww8kBBNE/3VvzQ==", "dev": true, - "peer": true, "dependencies": { "find-up": "^5.0.0", "read-pkg": "^6.0.0", @@ -1926,7 +2012,6 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-4.0.0.tgz", "integrity": "sha512-tYkDkVVtYkSVhuQ4zBgfvciymHaeuel+zFKXShfDnFP5SyVEP7qo70Rf1jTOTCx3vGNAbnEi/xFkcfQVMIBWag==", "dev": true, - "peer": true, "dependencies": { "indent-string": "^5.0.0", "strip-indent": "^4.0.0" @@ -1943,7 +2028,6 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "peer": true, "engines": { "node": ">=14" }, @@ -1956,7 +2040,6 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-4.0.0.tgz", "integrity": "sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==", "dev": true, - "peer": true, "dependencies": { "min-indent": "^1.0.1" }, @@ -2113,7 +2196,6 @@ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-4.1.1.tgz", "integrity": "sha512-jRKj0n0jXWo6kh62nA5TEh3+4igKDXLvzBJcPpiizP7oOolUrYIxmVBG9TOtHYFHoddUk6YvAkGeGoSVTXfQXQ==", "dev": true, - "peer": true, "engines": { "node": ">=12" }, @@ -2126,7 +2208,6 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", "dev": true, - "peer": true, "engines": { "node": ">=10" }, @@ -2139,7 +2220,6 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, - "peer": true, "dependencies": { "imurmurhash": "^0.1.4", "signal-exit": "^4.0.1" @@ -2189,7 +2269,6 @@ "integrity": "sha512-P4YJBPdPSpWTQ1NU4XYdvHvXJJDxM6YwpS0FZHRgP7YFkdVxsWcpWGy/NVqlAA7PcPCnMacXlRm1y2PFZRWL/w==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">= 20" } @@ -2220,7 +2299,6 @@ "integrity": "sha512-hoYicJZaqISMAI3JfaDr1qMNi48OctWuOih1m80bkYow/ayPw6Jj52tqWJ6GEoFTk1gBqfanSoI1iY99Z5+ekQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/types": "^14.0.0", "universal-user-agent": "^7.0.2" @@ -2234,8 +2312,7 @@ "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 + "license": "MIT" }, "node_modules/@octokit/endpoint/node_modules/@octokit/types": { "version": "14.1.0", @@ -2243,7 +2320,6 @@ "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/openapi-types": "^25.1.0" } @@ -2254,7 +2330,6 @@ "integrity": "sha512-j1nQNU1ZxNFx2ZtKmL4sMrs4egy5h65OMDmSbVyuCzjOcwsHq6EaYjOTGXPQxgfiN8dJ4CriYHk6zF050WEULg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/request": "^10.0.2", "@octokit/types": "^14.0.0", @@ -2269,8 +2344,7 @@ "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 + "license": "MIT" }, "node_modules/@octokit/graphql/node_modules/@octokit/types": { "version": "14.1.0", @@ -2278,7 +2352,6 @@ "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/openapi-types": "^25.1.0" } @@ -2288,8 +2361,7 @@ "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-26.0.0.tgz", "integrity": "sha512-7AtcfKtpo77j7Ts73b4OWhOZHTKo/gGY8bB3bNBQz4H+GRSWqx2yvj8TXRsbdTE0eRmYmXOEY66jM7mJ7LzfsA==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { "version": "2.21.3", @@ -2358,7 +2430,6 @@ "integrity": "sha512-V6jhKokg35vk098iBqp2FBKunk3kMTXlmq+PtbV9Gl3TfskWlebSofU9uunVKhUN7xl+0+i5vt0TGTG8/p/7HA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/endpoint": "^11.0.0", "@octokit/request-error": "^7.0.0", @@ -2376,7 +2447,6 @@ "integrity": "sha512-KRA7VTGdVyJlh0cP5Tf94hTiYVVqmt2f3I6mnimmaVz4UG3gQV/k4mDJlJv3X67iX6rmN7gSHCF8ssqeMnmhZg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/types": "^14.0.0" }, @@ -2389,8 +2459,7 @@ "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 + "license": "MIT" }, "node_modules/@octokit/request-error/node_modules/@octokit/types": { "version": "14.1.0", @@ -2398,7 +2467,6 @@ "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/openapi-types": "^25.1.0" } @@ -2408,8 +2476,7 @@ "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 + "license": "MIT" }, "node_modules/@octokit/request/node_modules/@octokit/types": { "version": "14.1.0", @@ -2417,7 +2484,6 @@ "integrity": "sha512-1y6DgTy8Jomcpu33N+p5w58l6xyt55Ar2I91RPiIA0xCJBXyUAhXCcmZaDWSANiha7R9a6qJJ2CRomGPZ6f46g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/openapi-types": "^25.1.0" } @@ -2622,7 +2688,6 @@ "integrity": "sha512-8o6yDfmoGJUIeR9OfYU0/TUJTnMPG2r68+1yEdUeG2Fdqpj8Qetg0ziKIgcBm0RW/j29H41WP37CYCEhp6GoHQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@octokit/openapi-types": "^26.0.0" } @@ -3781,8 +3846,7 @@ "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-4.0.0.tgz", "integrity": "sha512-q6tR3RPqIB1pMiTRMFcZwuG5T8vwp+vUvEG0vuI6B+Rikh5BfPp2fQ82c925FOs+b0lcFQ8CFrL+KbilfZFhOQ==", "dev": true, - "license": "Apache-2.0", - "peer": true + "license": "Apache-2.0" }, "node_modules/bl": { "version": "4.1.0", @@ -3836,6 +3900,7 @@ "url": "https://github.com/sponsors/ai" } ], + "peer": true, "dependencies": { "caniuse-lite": "^1.0.30001640", "electron-to-chromium": "^1.4.820", @@ -3897,6 +3962,30 @@ "glob": "^7.1.1" } }, + "node_modules/cacheable": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/cacheable/-/cacheable-2.3.1.tgz", + "integrity": "sha512-yr+FSHWn1ZUou5LkULX/S+jhfgfnLbuKQjE40tyEd4fxGZVMbBL5ifno0J0OauykS8UiCSgHi+DV/YD+rjFxFg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@cacheable/memory": "^2.0.6", + "@cacheable/utils": "^2.3.2", + "hookified": "^1.14.0", + "keyv": "^5.5.5", + "qified": "^0.5.3" + } + }, + "node_modules/cacheable/node_modules/keyv": { + "version": "5.5.5", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-5.5.5.tgz", + "integrity": "sha512-FA5LmZVF1VziNc0bIdCSA1IoSVnDCqE8HJIZZv2/W8YmoAM50+tnUgJR/gQZwEeIMleuIOnRnHA/UaZRNeV4iQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@keyv/serialize": "^1.1.1" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -4204,6 +4293,24 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/cross-env": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz", + "integrity": "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@epic-web/invariant": "^1.0.0", + "cross-spawn": "^7.0.6" + }, + "bin": { + "cross-env": "dist/bin/cross-env.js", + "cross-env-shell": "dist/bin/cross-env-shell.js" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/cross-spawn": { "version": "7.0.6", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", @@ -4220,10 +4327,11 @@ } }, "node_modules/css-functions-list": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.2.tgz", - "integrity": "sha512-c+N0v6wbKVxTu5gOBBFkr9BEdBWaqqjQeiJ8QvSRIJOf+UxlJh930m8e6/WNeODIK0mYLFkoONrnj16i2EcvfQ==", + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", + "integrity": "sha512-IQOkD3hbR5KrN93MtcYuad6YPuTSUhntLHDuLEbFWE+ff2/XSZNdZG+LcbbIW5AXKg/WFIfYItIzVoHngHXZzA==", "dev": true, + "license": "MIT", "engines": { "node": ">=12 || >=16" } @@ -4292,12 +4400,13 @@ } }, "node_modules/debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -4810,8 +4919,7 @@ "url": "https://opencollective.com/fastify" } ], - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/fast-deep-equal": { "version": "3.1.3", @@ -4819,17 +4927,25 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/fast-glob": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", "glob-parent": "^5.1.2", "merge2": "^1.3.0", - "micromatch": "^4.0.4" + "micromatch": "^4.0.8" }, "engines": { "node": ">=8.6.0" @@ -4890,15 +5006,13 @@ } }, "node_modules/file-entry-cache": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-9.0.0.tgz", - "integrity": "sha512-6MgEugi8p2tiUhqO7GnPsmbCCzj0YRCwwaTbpGRyKZesjRSzkqkAE9fPp7V2yMs5hwfgbQLgdvSSkGNg1s5Uvw==", + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-11.1.1.tgz", + "integrity": "sha512-TPVFSDE7q91Dlk1xpFLvFllf8r0HyOMOlnWy7Z2HBku5H3KhIeOGInexrIeg2D64DosVB/JXkrrk6N/7Wriq4A==", "dev": true, + "license": "MIT", "dependencies": { - "flat-cache": "^5.0.0" - }, - "engines": { - "node": ">=18" + "flat-cache": "^6.1.19" } }, "node_modules/fill-range": { @@ -4927,23 +5041,23 @@ } }, "node_modules/flat-cache": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-5.0.0.tgz", - "integrity": "sha512-JrqFmyUl2PnPi1OvLyTVHnQvwQ0S+e6lGSwu8OkAZlSaNIZciTY2H/cOOROxsBA1m/LZNHDsqAgDZt6akWcjsQ==", + "version": "6.1.19", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-6.1.19.tgz", + "integrity": "sha512-l/K33newPTZMTGAnnzaiqSl6NnH7Namh8jBNjrgjprWxGmZUuxx/sJNIRaijOh3n7q7ESbhNZC+pvVZMFdeU4A==", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^3.3.1", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=18" + "cacheable": "^2.2.0", + "flatted": "^3.3.3", + "hookified": "^1.13.0" } }, "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "dev": true, + "license": "ISC" }, "node_modules/form-data": { "version": "4.0.0", @@ -5186,6 +5300,19 @@ "node": ">=8" } }, + "node_modules/hashery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.4.0.tgz", + "integrity": "sha512-Wn2i1In6XFxl8Az55kkgnFRiAlIAushzh26PTjL2AKtQcEfXrcLa7Hn5QOWGZEf3LU057P9TwwZjFyxfS1VuvQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.14.0" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -5198,6 +5325,13 @@ "node": ">= 0.4" } }, + "node_modules/hookified": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.14.0.tgz", + "integrity": "sha512-pi1ynXIMFx/uIIwpWJ/5CEtOHLGtnUB0WhGeeYT+fKcQ+WCQbm3/rrkAXnpfph++PgepNqPdTC2WTj8A6k6zoQ==", + "dev": true, + "license": "MIT" + }, "node_modules/hosted-git-info": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", @@ -5391,7 +5525,6 @@ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true, - "peer": true, "engines": { "node": ">=8" } @@ -6690,10 +6823,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" @@ -6768,10 +6902,11 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/mute-stream": { "version": "0.0.8", @@ -7248,6 +7383,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -7264,15 +7400,16 @@ "dev": true }, "node_modules/postcss-resolve-nested-selector": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", - "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", - "dev": true + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.6.tgz", + "integrity": "sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==", + "dev": true, + "license": "MIT" }, "node_modules/postcss-safe-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.0.tgz", - "integrity": "sha512-ovehqRNVCpuFzbXoTb4qLtyzK3xn3t/CUBxOs8LsnQjQrShaB4lKiHoVqY8ANaC0hBMHq5QVWk77rwGklFUDrg==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", + "integrity": "sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==", "dev": true, "funding": [ { @@ -7288,6 +7425,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "engines": { "node": ">=18.0" }, @@ -7326,6 +7464,7 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.1.tgz", "integrity": "sha512-b4dlw/9V8A71rLIDsSwVmak9z2DuBUB7CA1/wSdelNEzqsjoSPeADTWNO09lpH49Diy3/JIZ2bSPB1dI3LJCHg==", "dev": true, + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -7345,6 +7484,7 @@ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -7355,6 +7495,19 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.1.tgz", + "integrity": "sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -7436,6 +7589,19 @@ } ] }, + "node_modules/qified": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/qified/-/qified-0.5.3.tgz", + "integrity": "sha512-kXuQdQTB6oN3KhI6V4acnBSZx8D2I4xzZvn9+wFLLFCoBNQY/sFnCW6c43OL7pOQ2HvGV4lnWIXNmgfp7cTWhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "hookified": "^1.13.0" + }, + "engines": { + "node": ">=20" + } + }, "node_modules/querystringify": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", @@ -7704,7 +7870,6 @@ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "peer": true, "dependencies": { "glob": "^7.1.3" }, @@ -7830,6 +7995,7 @@ "integrity": "sha512-t+YPtOQHpGW1QWsh1CHQ5cPIr9lbbGZLZnbihP/D/qZj/yuV68m8qarcV17nvkOX81BCrvzAlq2klCQFZghyTg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -8160,13 +8326,12 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", - "dev": true, - "peer": true + "dev": true }, "node_modules/stylelint": { - "version": "16.7.0", - "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.7.0.tgz", - "integrity": "sha512-Q1ATiXlz+wYr37a7TGsfvqYn2nSR3T/isw3IWlZQzFzCNoACHuGBb6xBplZXz56/uDRJHIygxjh7jbV/8isewA==", + "version": "16.26.1", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.26.1.tgz", + "integrity": "sha512-v20V59/crfc8sVTAtge0mdafI3AdnzQ2KsWe6v523L4OA1bJO02S7MO2oyXDCS6iWb9ckIPnqAFVItqSBQr7jw==", "dev": true, "funding": [ { @@ -8178,45 +8343,47 @@ "url": "https://github.com/sponsors/stylelint" } ], + "license": "MIT", + "peer": true, "dependencies": { - "@csstools/css-parser-algorithms": "^2.7.1", - "@csstools/css-tokenizer": "^2.4.1", - "@csstools/media-query-list-parser": "^2.1.13", - "@csstools/selector-specificity": "^3.1.1", - "@dual-bundle/import-meta-resolve": "^4.1.0", + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-syntax-patches-for-csstree": "^1.0.19", + "@csstools/css-tokenizer": "^3.0.4", + "@csstools/media-query-list-parser": "^4.0.3", + "@csstools/selector-specificity": "^5.0.0", + "@dual-bundle/import-meta-resolve": "^4.2.1", "balanced-match": "^2.0.0", "colord": "^2.9.3", "cosmiconfig": "^9.0.0", - "css-functions-list": "^3.2.2", - "css-tree": "^2.3.1", - "debug": "^4.3.5", - "fast-glob": "^3.3.2", + "css-functions-list": "^3.2.3", + "css-tree": "^3.1.0", + "debug": "^4.4.3", + "fast-glob": "^3.3.3", "fastest-levenshtein": "^1.0.16", - "file-entry-cache": "^9.0.0", + "file-entry-cache": "^11.1.1", "global-modules": "^2.0.0", "globby": "^11.1.0", "globjoin": "^0.1.4", "html-tags": "^3.3.1", - "ignore": "^5.3.1", + "ignore": "^7.0.5", "imurmurhash": "^0.1.4", "is-plain-object": "^5.0.0", - "known-css-properties": "^0.34.0", + "known-css-properties": "^0.37.0", "mathml-tag-names": "^2.1.3", "meow": "^13.2.0", - "micromatch": "^4.0.7", + "micromatch": "^4.0.8", "normalize-path": "^3.0.0", - "picocolors": "^1.0.1", - "postcss": "^8.4.39", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-safe-parser": "^7.0.0", - "postcss-selector-parser": "^6.1.0", + "picocolors": "^1.1.1", + "postcss": "^8.5.6", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-safe-parser": "^7.0.1", + "postcss-selector-parser": "^7.1.0", "postcss-value-parser": "^4.2.0", "resolve-from": "^5.0.0", "string-width": "^4.2.3", - "strip-ansi": "^7.1.0", - "supports-hyperlinks": "^3.0.0", + "supports-hyperlinks": "^3.2.0", "svg-tags": "^1.0.0", - "table": "^6.8.2", + "table": "^6.9.0", "write-file-atomic": "^5.0.1" }, "bin": { @@ -8226,6 +8393,72 @@ "node": ">=18.12.0" } }, + "node_modules/stylelint-config-recommended": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-17.0.0.tgz", + "integrity": "sha512-WaMSdEiPfZTSFVoYmJbxorJfA610O0tlYuU2aEwY33UQhSPgFbClrVJYWvy3jGJx+XW37O+LyNLiZOEXhKhJmA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.23.0" + } + }, + "node_modules/stylelint-config-standard": { + "version": "39.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-39.0.1.tgz", + "integrity": "sha512-b7Fja59EYHRNOTa3aXiuWnhUWXFU2Nfg6h61bLfAb5GS5fX3LMUD0U5t4S8N/4tpHQg3Acs2UVPR9jy2l1g/3A==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + }, + { + "type": "github", + "url": "https://github.com/sponsors/stylelint" + } + ], + "license": "MIT", + "dependencies": { + "stylelint-config-recommended": "^17.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "stylelint": "^16.23.0" + } + }, + "node_modules/stylelint-prettier": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/stylelint-prettier/-/stylelint-prettier-5.0.3.tgz", + "integrity": "sha512-B6V0oa35ekRrKZlf+6+jA+i50C4GXJ7X1PPmoCqSUoXN6BrNF6NhqqhanvkLjqw2qgvrS0wjdpeC+Tn06KN3jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "prettier": ">=3.0.0", + "stylelint": ">=16.0.0" + } + }, "node_modules/stylelint-scss": { "version": "6.4.1", "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.4.1.tgz", @@ -8245,16 +8478,96 @@ "stylelint": "^16.0.2" } }, - "node_modules/stylelint/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/stylelint/node_modules/@csstools/css-parser-algorithms": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.5.tgz", + "integrity": "sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, "engines": { - "node": ">=12" + "node": ">=18" }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "peerDependencies": { + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/stylelint/node_modules/@csstools/css-tokenizer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.4.tgz", + "integrity": "sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "peer": true, + "engines": { + "node": ">=18" + } + }, + "node_modules/stylelint/node_modules/@csstools/media-query-list-parser": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-4.0.3.tgz", + "integrity": "sha512-HAYH7d3TLRHDOUQK4mZKf9k9Ph/m8Akstg66ywKR4SFAigjs3yBiUeZtFxywiTm5moZMAp/5W/ZuFnNXXYLuuQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@csstools/css-parser-algorithms": "^3.0.5", + "@csstools/css-tokenizer": "^3.0.4" + } + }, + "node_modules/stylelint/node_modules/@csstools/selector-specificity": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-5.0.0.tgz", + "integrity": "sha512-PCqQV3c4CoVm3kdPhyeZ07VmBRdH2EpMFA/pd9OASpOEC3aXNGoqPDAZ80D0cLpMBxnmk0+yNhGsEx31hq7Gtw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/csstools" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/csstools" + } + ], + "license": "MIT-0", + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "postcss-selector-parser": "^7.0.0" } }, "node_modules/stylelint/node_modules/argparse": { @@ -8295,6 +8608,30 @@ } } }, + "node_modules/stylelint/node_modules/css-tree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-3.1.0.tgz", + "integrity": "sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdn-data": "2.12.2", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/stylelint/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, "node_modules/stylelint/node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -8307,6 +8644,20 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/stylelint/node_modules/known-css-properties": { + "version": "0.37.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.37.0.tgz", + "integrity": "sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/stylelint/node_modules/mdn-data": { + "version": "2.12.2", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.12.2.tgz", + "integrity": "sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==", + "dev": true, + "license": "CC0-1.0" + }, "node_modules/stylelint/node_modules/meow": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/meow/-/meow-13.2.0.tgz", @@ -8319,6 +8670,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/stylelint/node_modules/postcss-selector-parser": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.1.tgz", + "integrity": "sha512-orRsuYpJVw8LdAwqqLykBj9ecS5/cRHlI5+nvTo8LcCKmzDmqVORXtOIYEEQuL9D4BxtA1lm5isAqzQZCoQ6Eg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/stylelint/node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", @@ -8331,21 +8697,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/stylelint/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/stylelint/node_modules/write-file-atomic": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", @@ -8372,16 +8723,20 @@ } }, "node_modules/supports-hyperlinks": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.0.0.tgz", - "integrity": "sha512-QBDPHyPQDRTy9ku4URNGY5Lah8PAaXs6tAAwp55sL5WCsSW7GIfdf6W5ixfziW+t7wh3GVvHyHHyQ1ESsoRvaA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -8409,10 +8764,11 @@ "dev": true }, "node_modules/table": { - "version": "6.8.2", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "version": "6.9.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", + "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "ajv": "^8.0.1", "lodash.truncate": "^4.4.2", @@ -8500,6 +8856,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -8648,8 +9005,7 @@ "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-7.0.3.tgz", "integrity": "sha512-TmnEAEAsBJVZM/AADELsK76llnwcf9vMKuPz8JflO1frO8Lchitr0fNaN9d+Ap0BjKtqWqd/J17qeDnXh8CL2A==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/universalify": { "version": "2.0.1", @@ -8830,6 +9186,7 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -9178,21 +9535,6 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, - "node_modules/yaml": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.1.tgz", - "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", - "dev": true, - "license": "ISC", - "optional": true, - "peer": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14.6" - } - }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/package.json b/package.json index e1ec547e1a..5f3bf0b466 100644 --- a/package.json +++ b/package.json @@ -23,13 +23,17 @@ "@linthtml/linthtml": "^0.9.6", "@mate-academy/bemlint": "latest", "@mate-academy/linthtml-config": "latest", - "@mate-academy/scripts": "^2.1.2", + "@mate-academy/scripts": "^2.1.3", "@mate-academy/stylelint-config": "latest", + "cross-env": "^10.1.0", "jest": "^29.7.0", "jest-environment-jsdom": "^29.7.0", + "postcss": "^8.5.6", "prettier": "^3.3.2", "sass": "^1.93.2", - "stylelint": "^16.7.0", + "stylelint": "^16.26.1", + "stylelint-config-standard": "^39.0.1", + "stylelint-prettier": "^5.0.3", "stylelint-scss": "^6.4.1", "vite": "^6.3.6" }, diff --git a/src/images/Icon-Close-black.svg b/src/images/Icon-Close-black.svg new file mode 100644 index 0000000000..29f7735357 --- /dev/null +++ b/src/images/Icon-Close-black.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/crown.svg b/src/images/crown.svg deleted file mode 100644 index 962d90e9ca..0000000000 --- a/src/images/crown.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/src/images/favicon.png b/src/images/favicon.png index 0e04c361e1..289e73b974 100644 Binary files a/src/images/favicon.png and b/src/images/favicon.png differ diff --git a/src/images/logo.png b/src/images/logo.png deleted file mode 100644 index 9b6a4dd7d4..0000000000 Binary files a/src/images/logo.png and /dev/null differ diff --git a/src/images/photos/1.jpg b/src/images/photos/1.jpg deleted file mode 100644 index f796f55605..0000000000 Binary files a/src/images/photos/1.jpg and /dev/null differ diff --git a/src/images/photos/2.jpg b/src/images/photos/2.jpg deleted file mode 100644 index d9053b6a20..0000000000 Binary files a/src/images/photos/2.jpg and /dev/null differ diff --git a/src/images/photos/3.jpg b/src/images/photos/3.jpg deleted file mode 100644 index 5e40be94d2..0000000000 Binary files a/src/images/photos/3.jpg and /dev/null differ diff --git a/src/images/photos/4.jpg b/src/images/photos/4.jpg deleted file mode 100644 index de64313343..0000000000 Binary files a/src/images/photos/4.jpg and /dev/null differ diff --git a/src/images/photos/5.jpg b/src/images/photos/5.jpg deleted file mode 100644 index aad06bff54..0000000000 Binary files a/src/images/photos/5.jpg and /dev/null differ diff --git a/src/images/photos/6.jpg b/src/images/photos/6.jpg deleted file mode 100644 index 104ff18faa..0000000000 Binary files a/src/images/photos/6.jpg and /dev/null differ diff --git a/src/images/photos/bike.jpg b/src/images/photos/bike.jpg new file mode 100644 index 0000000000..2254e70f5c Binary files /dev/null and b/src/images/photos/bike.jpg differ diff --git a/src/images/photos/bike1_desk.jpg b/src/images/photos/bike1_desk.jpg new file mode 100644 index 0000000000..ea8b78d40e Binary files /dev/null and b/src/images/photos/bike1_desk.jpg differ diff --git a/src/images/photos/bike1_mobile.jpg b/src/images/photos/bike1_mobile.jpg new file mode 100644 index 0000000000..b63d044abd Binary files /dev/null and b/src/images/photos/bike1_mobile.jpg differ diff --git a/src/images/photos/bike1_tab.jpg b/src/images/photos/bike1_tab.jpg new file mode 100644 index 0000000000..5c900a436c Binary files /dev/null and b/src/images/photos/bike1_tab.jpg differ diff --git a/src/images/photos/bike2_desk.jpg b/src/images/photos/bike2_desk.jpg new file mode 100644 index 0000000000..06bc24e525 Binary files /dev/null and b/src/images/photos/bike2_desk.jpg differ diff --git a/src/images/photos/bike2_mobile.jpg b/src/images/photos/bike2_mobile.jpg new file mode 100644 index 0000000000..6255a6c6c0 Binary files /dev/null and b/src/images/photos/bike2_mobile.jpg differ diff --git a/src/images/photos/bike2_tab.jpg b/src/images/photos/bike2_tab.jpg new file mode 100644 index 0000000000..6d13c8fd8a Binary files /dev/null and b/src/images/photos/bike2_tab.jpg differ diff --git a/src/images/photos/bike3_desk.jpg b/src/images/photos/bike3_desk.jpg new file mode 100644 index 0000000000..c867154f92 Binary files /dev/null and b/src/images/photos/bike3_desk.jpg differ diff --git a/src/images/photos/bike3_mobile.jpg b/src/images/photos/bike3_mobile.jpg new file mode 100644 index 0000000000..a09740f123 Binary files /dev/null and b/src/images/photos/bike3_mobile.jpg differ diff --git a/src/images/photos/bike3_tab.jpg b/src/images/photos/bike3_tab.jpg new file mode 100644 index 0000000000..e89a9aa585 Binary files /dev/null and b/src/images/photos/bike3_tab.jpg differ diff --git a/src/images/photos/bike_mobile.jpg b/src/images/photos/bike_mobile.jpg new file mode 100644 index 0000000000..3109c16e38 Binary files /dev/null and b/src/images/photos/bike_mobile.jpg differ diff --git a/src/images/photos/bike_tab.jpg b/src/images/photos/bike_tab.jpg new file mode 100644 index 0000000000..f69d7bd572 Binary files /dev/null and b/src/images/photos/bike_tab.jpg differ diff --git a/src/images/photos/breakes1_desk.jpg b/src/images/photos/breakes1_desk.jpg new file mode 100644 index 0000000000..af8b3da464 Binary files /dev/null and b/src/images/photos/breakes1_desk.jpg differ diff --git a/src/images/photos/breakes1_mobile.jpg b/src/images/photos/breakes1_mobile.jpg new file mode 100644 index 0000000000..acb4d8e3a8 Binary files /dev/null and b/src/images/photos/breakes1_mobile.jpg differ diff --git a/src/images/photos/breakes1_tab.jpg b/src/images/photos/breakes1_tab.jpg new file mode 100644 index 0000000000..2a37e95cdb Binary files /dev/null and b/src/images/photos/breakes1_tab.jpg differ diff --git a/src/images/photos/breakes2_desk.jpg b/src/images/photos/breakes2_desk.jpg new file mode 100644 index 0000000000..1033ebbc4f Binary files /dev/null and b/src/images/photos/breakes2_desk.jpg differ diff --git a/src/images/photos/breakes2_mobile.jpg b/src/images/photos/breakes2_mobile.jpg new file mode 100644 index 0000000000..adf8c2de67 Binary files /dev/null and b/src/images/photos/breakes2_mobile.jpg differ diff --git a/src/images/photos/breakes2_tab.jpg b/src/images/photos/breakes2_tab.jpg new file mode 100644 index 0000000000..03358166f0 Binary files /dev/null and b/src/images/photos/breakes2_tab.jpg differ diff --git a/src/images/photos/cover_1260.jpg b/src/images/photos/cover_1260.jpg new file mode 100644 index 0000000000..68807d6580 Binary files /dev/null and b/src/images/photos/cover_1260.jpg differ diff --git a/src/images/photos/end-photo_mobile.jpg b/src/images/photos/end-photo_mobile.jpg new file mode 100644 index 0000000000..1fc5f37d33 Binary files /dev/null and b/src/images/photos/end-photo_mobile.jpg differ diff --git a/src/images/photos/end-photo_tab.jpg b/src/images/photos/end-photo_tab.jpg new file mode 100644 index 0000000000..7ade62a6a2 Binary files /dev/null and b/src/images/photos/end-photo_tab.jpg differ diff --git a/src/images/photos/light1_desk.jpg b/src/images/photos/light1_desk.jpg new file mode 100644 index 0000000000..6ca8169d0b Binary files /dev/null and b/src/images/photos/light1_desk.jpg differ diff --git a/src/images/photos/light1_mobile.jpg b/src/images/photos/light1_mobile.jpg new file mode 100644 index 0000000000..30473dbf38 Binary files /dev/null and b/src/images/photos/light1_mobile.jpg differ diff --git a/src/images/photos/light1_tab.jpg b/src/images/photos/light1_tab.jpg new file mode 100644 index 0000000000..4057a9e4ce Binary files /dev/null and b/src/images/photos/light1_tab.jpg differ diff --git a/src/images/photos/light2_desk.jpg b/src/images/photos/light2_desk.jpg new file mode 100644 index 0000000000..1f293757dd Binary files /dev/null and b/src/images/photos/light2_desk.jpg differ diff --git a/src/images/photos/light2_mobile.jpg b/src/images/photos/light2_mobile.jpg new file mode 100644 index 0000000000..7aec6ec34a Binary files /dev/null and b/src/images/photos/light2_mobile.jpg differ diff --git a/src/images/photos/light2_tab.jpg b/src/images/photos/light2_tab.jpg new file mode 100644 index 0000000000..e10c1a830b Binary files /dev/null and b/src/images/photos/light2_tab.jpg differ diff --git a/src/images/photos/przejscie_desk.jpg b/src/images/photos/przejscie_desk.jpg new file mode 100644 index 0000000000..b9a62efff5 Binary files /dev/null and b/src/images/photos/przejscie_desk.jpg differ diff --git a/src/images/photos/przejscie_mobile.jpg b/src/images/photos/przejscie_mobile.jpg new file mode 100644 index 0000000000..19aac22312 Binary files /dev/null and b/src/images/photos/przejscie_mobile.jpg differ diff --git a/src/images/photos/przejscie_tab.jpg b/src/images/photos/przejscie_tab.jpg new file mode 100644 index 0000000000..14fd8424f0 Binary files /dev/null and b/src/images/photos/przejscie_tab.jpg differ diff --git a/src/images/photos/unlock1_desk.jpg b/src/images/photos/unlock1_desk.jpg new file mode 100644 index 0000000000..95a93c53cd Binary files /dev/null and b/src/images/photos/unlock1_desk.jpg differ diff --git a/src/images/photos/unlock1_mobile.jpg b/src/images/photos/unlock1_mobile.jpg new file mode 100644 index 0000000000..956795aeba Binary files /dev/null and b/src/images/photos/unlock1_mobile.jpg differ diff --git a/src/images/photos/unlock1_tab.jpg b/src/images/photos/unlock1_tab.jpg new file mode 100644 index 0000000000..b23950e63f Binary files /dev/null and b/src/images/photos/unlock1_tab.jpg differ diff --git a/src/images/photos/unlock2_desk.jpg b/src/images/photos/unlock2_desk.jpg new file mode 100644 index 0000000000..412cd3d08f Binary files /dev/null and b/src/images/photos/unlock2_desk.jpg differ diff --git a/src/images/photos/unlock2_mobile.jpg b/src/images/photos/unlock2_mobile.jpg new file mode 100644 index 0000000000..ab6eeec06c Binary files /dev/null and b/src/images/photos/unlock2_mobile.jpg differ diff --git a/src/images/photos/unlock2_tab.jpg b/src/images/photos/unlock2_tab.jpg new file mode 100644 index 0000000000..9293453275 Binary files /dev/null and b/src/images/photos/unlock2_tab.jpg differ diff --git a/src/styles/.gitignore b/src/styles/.gitignore new file mode 100644 index 0000000000..7afb1aa965 --- /dev/null +++ b/src/styles/.gitignore @@ -0,0 +1,2 @@ +main.css +main.css.map diff --git a/src/styles/_fonts.scss b/src/styles/_fonts.scss deleted file mode 100644 index 45cdd54008..0000000000 --- a/src/styles/_fonts.scss +++ /dev/null @@ -1,6 +0,0 @@ -@font-face { - font-family: Roboto, Arial, Helvetica, sans-serif; - src: url('../fonts/Roboto-Regular-webfont.woff') format('woff'); - font-weight: normal; - font-style: normal; -} diff --git a/src/styles/_typography.scss b/src/styles/_typography.scss deleted file mode 100644 index 1837eb46e2..0000000000 --- a/src/styles/_typography.scss +++ /dev/null @@ -1,3 +0,0 @@ -h1 { - @extend %h1; -} diff --git a/src/styles/_utils.scss b/src/styles/_utils.scss deleted file mode 100644 index 3280c3fe10..0000000000 --- a/src/styles/_utils.scss +++ /dev/null @@ -1,3 +0,0 @@ -@import 'utils/vars'; -@import 'utils/mixins'; -@import 'utils/extends'; diff --git a/src/styles/blocks/_utils.scss b/src/styles/blocks/_utils.scss new file mode 100644 index 0000000000..4e948d78f6 --- /dev/null +++ b/src/styles/blocks/_utils.scss @@ -0,0 +1,2 @@ +@use '../utils/reset'; +@use '../utils/mixins' as *; diff --git a/src/styles/blocks/compare-section.scss b/src/styles/blocks/compare-section.scss new file mode 100644 index 0000000000..6c893f93b0 --- /dev/null +++ b/src/styles/blocks/compare-section.scss @@ -0,0 +1,82 @@ +@use '../utils/mixins' as *; + +.compare { + display: flex; + flex-direction: column; + padding-top: 92px; + + @include for-tablet { + padding-top: 132px; + } + + @include for-desktop { + display: grid; + grid-template-columns: repeat(12, 63px); + gap: 24px; + justify-content: center; + padding-top: 164px; + } + + &__title { + text-align: center; + grid-column: 1/ -1; + } + + &__bikes { + display: flex; + justify-content: center; + flex-wrap: wrap; + padding-top: 8px; + gap: 24px; + + @include for-desktop { + grid-column: 1 / -1; + max-width: 1020px; + } + } + + &__bike { + display: flex; + flex-direction: column; + padding-top: 40px; + max-width: 392px; + + @include for-tablet { + padding-top: 48px; + } + + @include for-desktop { + padding-top: 56px; + max-width: 324px; + } + + &-photo { + display: block; + align-self: center; + height: 250px; + width: 280px; + + @include for-tablet { + height: 330px; + width: 392px; + } + + @include for-desktop { + height: 280px; + width: 324px; + } + } + + &-name { + font-weight: 700; + font-style: normal; + font-size: 24px; + line-height: 140%; + padding-top: 32px; + } + + &-price { + padding-top: 16px; + } + } +} diff --git a/src/styles/blocks/contact-section.scss b/src/styles/blocks/contact-section.scss new file mode 100644 index 0000000000..1fe509adee --- /dev/null +++ b/src/styles/blocks/contact-section.scss @@ -0,0 +1,37 @@ +@use '../utils/mixins' as *; + +.contact { + padding-top: 24px; + grid-column: 1 / -1; + + @include for-tablet { + grid-column: 4 / 7; + } + + @include for-desktop { + grid-column: 8 / 10; + } + + &__item { + padding-top: 24px; + } + + &__label { + font-weight: 400; + font-size: 14px; + line-height: 140%; + } + + &__value { + font-weight: 500; + font-size: 16px; + line-height: 140%; + padding-top: 8px; + width: 155px; + } + + &__link { + text-decoration: none; + color: rgba(255, 255, 255); + } +} diff --git a/src/styles/blocks/contact-us-section.scss b/src/styles/blocks/contact-us-section.scss new file mode 100644 index 0000000000..5cc0c9e90b --- /dev/null +++ b/src/styles/blocks/contact-us-section.scss @@ -0,0 +1,75 @@ +@use '../utils/mixins' as *; + +.contact-us { + &__title { + padding-top: 80px; + text-align: center; + + @include for-tablet { + padding-top: 120px; + grid-column: 2 / 6; + } + } + + &__form { + display: flex; + flex-direction: column; + gap: 16px; + padding-top: 48px; + max-width: 280px; + } + + &__input { + height: 48px; + width: 278px; + border-radius: 40px; + padding-left: 16px; + background-color: rgba(248, 248, 250, 1); + font-family: Poppins, sans-serif; + font-weight: 400; + font-style: Regular; + font-size: 14px; + line-height: 20px; + border: 0; + box-sizing: border-box; + + @include for-tablet { + width: 288px; + } + + @include for-desktop { + width: 411px; + transition: color 0.3s ease; + + &:hover::placeholder { + color: rgba(41, 41, 41, 1); + } + + &:focus-visible { + color: rgba(41, 41, 41, 1); + } + } + } + + &__textarea { + height: 148px; + border-radius: 16px; + padding-top: 14px; + } + + &__button { + width: 280px; + + @include for-tablet { + width: 288px; + } + + @include for-desktop { + width: 411px; + } + } +} + +.container-sendButton { + padding-top: 32px; +} diff --git a/src/styles/blocks/details-section.scss b/src/styles/blocks/details-section.scss new file mode 100644 index 0000000000..2be3110c98 --- /dev/null +++ b/src/styles/blocks/details-section.scss @@ -0,0 +1,124 @@ +@use '../utils/mixins' as *; + +.details { + display: flex; + justify-content: center; + flex-direction: column; + align-items: center; + padding-top: 92px; + + @include for-tablet { + display: grid; + grid-template-columns: repeat(6, 80px); + gap: 24px; + justify-content: center; + padding-top: 120px; + } + + @include for-desktop { + grid-template-columns: repeat(12, 63px); + gap: 24px; + padding-top: 144px; + } + + &__title { + padding-bottom: 8px; + text-align: center; + + @include for-tablet { + grid-column: 1 / 7; + } + + @include for-desktop { + padding-bottom: 56px; + grid-column: 1 / -1; + } + } + + &__detail { + @include for-tablet { + grid-column: 1 / -1; + } + &-photos { + display: flex; + padding-top: 40px; + gap: 20px; + + @include for-tablet { + gap: 24px; + } + + @include for-desktop { + gap: 24px; + padding-top: 0; + max-width: 1020px; + } + + &-photo { + background-color: transparent; + } + } + + &-title { + display: flex; + font-weight: 700; + font-style: Bold; + font-size: 24px; + line-height: 140%; + letter-spacing: 0; + padding-top: 16px; + padding-bottom: 8px; + max-width: 280px; + + @include for-desktop { + max-width: 443px; + } + } + + &-text { + justify-content: center; + font-weight: 400; + font-style: normal; + font-size: 16px; + line-height: 140%; + letter-spacing: 0; + padding-top: 8px; + max-width: 280px; + + @include for-tablet { + max-width: 600px; + } + + @include for-desktop { + max-width: 672px; + } + } + } +} + +.explore__container { + display: flex; + justify-content: center; + padding-top: 40px; + + @include for-tablet { + grid-column: 1 / -1; + } + + @include for-desktop { + grid-column: 1 / -1; + } + + &-button { + width: 278px; + border: none; + + @include for-tablet { + width: 392px; + } + + @include for-desktop { + width: 324px; + } + } +} diff --git a/src/styles/blocks/footer.scss b/src/styles/blocks/footer.scss new file mode 100644 index 0000000000..ab575e47d5 --- /dev/null +++ b/src/styles/blocks/footer.scss @@ -0,0 +1,55 @@ +@use '../utils/mixins' as *; + +.footer { + display: flex; + flex-direction: column; + align-items: center; + width: 100%; + margin: 0; + + box-sizing: border-box; + color: rgba(255, 255, 255, 1); + + &__content { + display: flex; + justify-content: center; + flex-direction: column; + gap: 20px; + box-sizing: border-box; + padding: 48px 20px 120px; + + @include for-tablet { + display: grid; + grid-template-columns: repeat(6, 80px); + gap: 24px; + justify-content: center; + padding: 48px 20px 102px; + } + + @include for-desktop { + grid-template-columns: repeat(12, 63px); + gap: 24px; + padding: 48px 20px 164px; + } + } + + &__background { + height: 200px; + width: 100%; + background-image: url(../images/photos/przejscie_mobile.jpg); + background-position: 80% center; + background-repeat: no-repeat; + background-size: cover; + margin: 0; + + @include for-tablet { + height: 480px; + background-image: url(../images/photos/przejscie_tab.jpg); + } + + @include for-desktop { + height: 555px; + background-image: url(../images/photos/przejscie_desk.jpg); + } + } +} diff --git a/src/styles/blocks/header.scss b/src/styles/blocks/header.scss new file mode 100644 index 0000000000..a701291957 --- /dev/null +++ b/src/styles/blocks/header.scss @@ -0,0 +1,209 @@ +@use '../utils/mixins' as *; + +.header { + display: grid; + justify-content: center; + grid-template-columns: repeat(2, minmax(130px, 1fr)); + grid-template-rows: 1fr 1fr; + gap: 20px; + + background-image: url(../images/photos/bike_mobile.jpg); + background-repeat: no-repeat; + background-size: cover; + background-position: 85% center; + padding: 0 20px; + box-sizing: border-box; + width: 100%; + margin: 0; + min-height: 100svh; + color: rgba(255, 255, 255, 1); + + @include for-tablet { + height: 628px; + background-image: url(../images/photos/bike_tab.jpg); + grid-template-columns: repeat(6, 80px); + gap: 24px; + } + + @include for-desktop { + height: 711px; + background-image: url(../images/photos/bike.jpg); + background-position: right center; + grid-template-columns: repeat(12, 63px); + } + + &__logo { + display: flex; + align-items: center; + height: 86px; + font-weight: 700; + font-style: normal; + font-size: 38px; + line-height: 100%; + margin: 0; + grid-column: 1 / 2; + grid-row: 1 / 2; + + @include for-tablet { + height: 128px; + grid-column: 1 / 3; + font-size: 56px; + } + } + + &__nav { + display: flex; + align-items: center; + align-self: flex-start; + justify-content: flex-end; + background-color: transparent; + height: 86px; + grid-column: 2 / -1; + grid-row: 1 / 2; + gap: 24px; + + @include for-tablet { + height: 128px; + grid-column: 6 / -1; + grid-row: 1 / 2; + } + + @include for-desktop { + width: 254px; + grid-column: 10 / -1; + grid-row: 1 / 2; + gap: 32px; + } + + &-buttons { + display: flex; + justify-content: flex-end; + gap: 27px; + height: 24px; + width: 72px; + border: 0; + + @include for-tablet { + height: 32px; + width: auto; + gap: 36px; + } + + @include for-desktop { + width: 254px; + } + } + + &-button { + display: flex; + align-items: center; + justify-content: center; + border: none; + background-color: transparent; + height: 24px; + width: 24px; + padding: 0; + + @include for-tablet { + height: 32px; + width: 32px; + } + + @include for-desktop { + cursor: pointer; + } + } + + &-phone-container { + position: relative; + display: flex; + align-items: center; + gap: 20px; + + @include for-desktop { + &:hover .header__nav-phone-number, + &:focus-within .header__nav-phone-number { + opacity: 1; + visibility: visible; + } + } + } + + &-phone-number { + opacity: 0; + visibility: hidden; + white-space: nowrap; + + @include for-desktop { + position: absolute; + right: calc(100% + 50px); // dokładnie tu ustawiasz miejsce + display: flex; + align-self: center; + width: 138px; + } + } + + &-phone-icon { + height: 18px; + width: 18px; + + @include for-tablet { + height: 24px; + width: 24px; + } + } + + &-menu-icon { + height: 12px; + width: 18px; + + @include for-tablet { + height: 16px; + width: 24px; + } + } + } + + &__motto { + grid-column: 1 / -1; + grid-row: 2 / 3; + align-self: end; + height: 36px; + padding-bottom: 120px; + background-color: transparent; + + @include for-tablet { + grid-column: 1 / -1; + grid-row: 2 / 3; + height: 64px; + align-self: center; + } + + @include for-desktop { + grid-column: 1 / -1; + grid-row: 2 / 3; + height: 80px; + align-self: flex-start; + padding-top: 60px; + } + + &-title { + font-weight: 700; + font-style: normal; + font-size: 36px; + line-height: 100%; + letter-spacing: -1.5px; + display: flex; + justify-content: center; + background-color: transparent; + + @include for-tablet { + font-size: 64px; + } + + @include for-desktop { + font-size: 80px; + } + } + } +} diff --git a/src/styles/blocks/menu-section.scss b/src/styles/blocks/menu-section.scss new file mode 100644 index 0000000000..aa892a1ba2 --- /dev/null +++ b/src/styles/blocks/menu-section.scss @@ -0,0 +1,146 @@ +@use '../utils/mixins' as *; + +.menu { + position: fixed; + top: 0; + left: 0; + right: 0; + transform: translateX(-100%); + transition: transform 0.3s ease-in-out; + background-color: rgba(194, 194, 194, 1); + color: rgba(29, 29, 29, 1); + height: 568px; + width: auto; + + @include for-tablet { + height: 630px; + } + + @include for-tablet { + height: 700px; + } + + &:target { + transform: translateX(0); + } + + &__header { + display: flex; + height: 86px; + justify-content: space-between; + align-items: center; + padding: 24px 24px 48px 20px; + width: auto; + + @include for-tablet { + padding: 36px 77px 44px 72px; + height: 110px; + } + + @include for-desktop { + padding: 36px 125px 60px 120px; + height: 128px; + } + + &-title { + height: 38px; + font-weight: 700; + font-style: normal; + font-size: 38px; + line-height: 100%; + letter-spacing: -1.5px; + margin: 0; + color: rgba(29, 29, 29, 1); + } + + &--close-button { + border: none; + background-color: transparent; + } + + &--close-button-icon { + height: 16px; + width: 16px; + } + } + + &__main { + padding: 0 20px; + + @include for-tablet { + padding: 0 72px; + } + + @include for-desktop { + padding: 0 121px; + } + } + + &__nav { + &-links { + height: 199px; + width: 238px; + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: 32px; + } + + &-link { + text-decoration: none; + color: rgba(29, 29, 29, 1); + font-weight: 600; + font-style: SemiBold; + font-size: 22px; + line-height: 22px; + letter-spacing: 2px; + vertical-align: middle; + text-transform: uppercase; + } + } + + &__footer { + display: flex; + flex-direction: column; + height: 67px; + width: auto; + padding: 40px 20px; + gap: 16px; + + @include for-tablet { + padding: 40px 72px; + } + + @include for-desktop { + padding: 40px 121px; + } + + &-phone-link { + font-size: 16px; + line-height: 27px; + width: 155px; + } + + &-cta-btn { + display: inline-block; + border-bottom: 2px solid rgba(29, 29, 29, 1); + padding-bottom: 6px; + font-size: 12px; + line-height: 16px; + letter-spacing: 2px; + } + } +} + +.menu-link { + display: inline-flex; + width: fit-content; + font-style: SemiBold; + text-decoration: none; + font-weight: 600; + vertical-align: middle; + text-transform: uppercase; + color: rgba(29, 29, 29, 1); +} diff --git a/src/styles/blocks/move-free-section.scss b/src/styles/blocks/move-free-section.scss new file mode 100644 index 0000000000..03b34f2a46 --- /dev/null +++ b/src/styles/blocks/move-free-section.scss @@ -0,0 +1,71 @@ +@use '../utils/mixins' as *; + +.move-free { + color: rgba(255, 255, 255, 1); + align-items: center; + + &__container { + margin: 0 auto; + display: flex; + flex-direction: column; + align-items: flex-start; + padding-top: 60px; + max-width: 280px; + + @include for-tablet { + display: grid; + grid-template-columns: repeat(6, 80px); + gap: 24px; + justify-content: center; + align-items: start; + padding-top: 120px; + max-width: 288px; + } + + @include for-desktop { + grid-template-columns: repeat(12, 63px); + gap: 24px; + justify-content: center; + align-items: start; + max-width: 933px; + } + + &-title { + font-size: 32px; + line-height: 100%; + letter-spacing: -1.5px; + font-weight: normal; + + @include for-tablet { + font-size: 48px; + grid-column: 1 / 4; + grid-row: 1 / 2; + } + + @include for-desktop { + font-size: 64px; + grid-column: 1 / 5; + grid-row: 1 / 2; + } + } + + &-text { + font-size: 23px; + line-height: 140%; + padding-top: 32px; + font-weight: normal; + + @include for-tablet { + grid-column: 4 / 7; + grid-row: 1 / 2; + padding: 0; + } + + @include for-desktop { + grid-column: 6 / 12; + grid-row: 1 / 2; + padding: 0; + } + } + } +} diff --git a/src/styles/blocks/titles.scss b/src/styles/blocks/titles.scss new file mode 100644 index 0000000000..43a0e70256 --- /dev/null +++ b/src/styles/blocks/titles.scss @@ -0,0 +1,70 @@ +@use '../utils/mixins' as *; + +.h2-title { + font-size: 38px; + color: rgba(255, 255, 255, 1); + + @include for-desktop { + font-size: 56px; + } +} +.h3-title { + height: 32px; + width: 100%; + font-weight: 500; + font-style: normal; + font-size: 32px; + line-height: 32px; + letter-spacing: -1.5px; + text-transform: capitalize; + color: rgba(255, 255, 255, 1); + + @include for-tablet { + font-size: 48px; + } + + @include for-desktop { + font-size: 63px; + } +} + +.h4-title { + font-weight: 700; + font-style: normal; + font-size: 24px; + line-height: 140%; + color: rgba(255, 255, 255, 1); +} + +.description-title { + font-weight: 300; + font-style: normal; + font-size: 16px; + line-height: 140%; + padding-top: 8px; + color: rgba(255, 255, 255, 1); +} + +.button { + height: 56px; + color: black; + background-color: white; + border-radius: 40px; + font-weight: 700; + font-size: 16px; + line-height: 27px; + box-sizing: border-box; + + @include for-desktop { + transition: + box-shadow 0.3s ease; + + &:hover { + box-shadow: 0 4px 24px rgba(232, 232, 240, 0.4) + } + + &:active { + box-shadow: 0 8px 12px rgba(232, 232, 240, 0.6) + } + } +} diff --git a/src/styles/main.css b/src/styles/main.css new file mode 100644 index 0000000000..07ec9745a0 --- /dev/null +++ b/src/styles/main.css @@ -0,0 +1,898 @@ +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, +body { + overflow-x: hidden; + font-family: Poppins, sans-serif; + background-color: rgb(29, 29, 29); + box-sizing: border-box; +} + +.h2-title { + font-size: 38px; + color: rgb(255, 255, 255); +} +@media (min-width: 1260px) { + .h2-title { + font-size: 56px; + } +} + +.h3-title { + height: 32px; + width: 100%; + font-weight: 500; + font-style: normal; + font-size: 32px; + line-height: 32px; + letter-spacing: -1.5px; + text-transform: capitalize; + color: rgb(255, 255, 255); +} +@media (min-width: 744px) { + .h3-title { + font-size: 48px; + } +} +@media (min-width: 1260px) { + .h3-title { + font-size: 63px; + } +} + +.h4-title { + font-weight: 700; + font-style: normal; + font-size: 24px; + line-height: 140%; + color: rgb(255, 255, 255); +} + +.description-title { + font-weight: 300; + font-style: normal; + font-size: 16px; + line-height: 140%; + padding-top: 8px; + color: rgb(255, 255, 255); +} + +.button { + height: 56px; + color: black; + background-color: white; + border-radius: 40px; + font-weight: 700; + font-size: 16px; + line-height: 27px; + box-sizing: border-box; +} +@media (min-width: 1260px) { + .button { + transition: box-shadow 0.3s ease; + } + .button:hover { + box-shadow: 0 4px 24px rgba(232, 232, 240, 0.4); + } + .button:active { + box-shadow: 0 8px 12px rgba(232, 232, 240, 0.6); + } +} + +.menu { + position: fixed; + top: 0; + left: 0; + right: 0; + transform: translateX(-100%); + transition: transform 0.3s ease-in-out; + background-color: rgb(194, 194, 194); + color: rgb(29, 29, 29); + height: 568px; + width: auto; +} +@media (min-width: 744px) { + .menu { + height: 630px; + } +} +@media (min-width: 744px) { + .menu { + height: 700px; + } +} +.menu:target { + transform: translateX(0); +} +.menu__header { + display: flex; + height: 86px; + justify-content: space-between; + align-items: center; + padding: 24px 24px 48px 20px; + width: auto; +} +@media (min-width: 744px) { + .menu__header { + padding: 36px 77px 44px 72px; + height: 110px; + } +} +@media (min-width: 1260px) { + .menu__header { + padding: 36px 125px 60px 120px; + height: 128px; + } +} +.menu__header-title { + height: 38px; + font-weight: 700; + font-style: normal; + font-size: 38px; + line-height: 100%; + letter-spacing: -1.5px; + margin: 0; + color: rgb(29, 29, 29); +} +.menu__header--close-button { + border: none; + background-color: transparent; +} +.menu__header--close-button-icon { + height: 16px; + width: 16px; +} +.menu__main { + padding: 0 20px; +} +@media (min-width: 744px) { + .menu__main { + padding: 0 72px; + } +} +@media (min-width: 1260px) { + .menu__main { + padding: 0 121px; + } +} +.menu__nav-links { + height: 199px; + width: 238px; + list-style: none; + padding: 0; + margin: 0; + display: flex; + flex-direction: column; + gap: 32px; +} +.menu__nav-link { + text-decoration: none; + color: rgb(29, 29, 29); + font-weight: 600; + font-style: SemiBold; + font-size: 22px; + line-height: 22px; + letter-spacing: 2px; + vertical-align: middle; + text-transform: uppercase; +} +.menu__footer { + display: flex; + flex-direction: column; + height: 67px; + width: auto; + padding: 40px 20px; + gap: 16px; +} +@media (min-width: 744px) { + .menu__footer { + padding: 40px 72px; + } +} +@media (min-width: 1260px) { + .menu__footer { + padding: 40px 121px; + } +} +.menu__footer-phone-link { + font-size: 16px; + line-height: 27px; + width: 155px; +} +.menu__footer-cta-btn { + display: inline-block; + border-bottom: 2px solid rgb(29, 29, 29); + padding-bottom: 6px; + font-size: 12px; + line-height: 16px; + letter-spacing: 2px; +} + +.menu-link { + display: inline-flex; + width: fit-content; + font-style: SemiBold; + text-decoration: none; + font-weight: 600; + vertical-align: middle; + text-transform: uppercase; + color: rgb(29, 29, 29); +} + +.header { + display: grid; + justify-content: center; + grid-template-columns: repeat(2, minmax(130px, 1fr)); + grid-template-rows: 1fr 1fr; + gap: 20px; + background-image: url(../images/photos/bike_mobile.jpg); + background-repeat: no-repeat; + background-size: cover; + background-position: 85% center; + padding: 0 20px; + box-sizing: border-box; + width: 100%; + margin: 0; + min-height: 100svh; + color: rgb(255, 255, 255); +} +@media (min-width: 744px) { + .header { + height: 628px; + background-image: url(../images/photos/bike_tab.jpg); + grid-template-columns: repeat(6, 80px); + gap: 24px; + } +} +@media (min-width: 1260px) { + .header { + height: 711px; + background-image: url(../images/photos/bike.jpg); + background-position: right center; + grid-template-columns: repeat(12, 63px); + } +} +.header__logo { + display: flex; + align-items: center; + height: 86px; + font-weight: 700; + font-style: normal; + font-size: 38px; + line-height: 100%; + margin: 0; + grid-column: 1/2; + grid-row: 1/2; +} +@media (min-width: 744px) { + .header__logo { + height: 128px; + grid-column: 1/3; + font-size: 56px; + } +} +.header__nav { + display: flex; + align-items: center; + align-self: flex-start; + justify-content: flex-end; + background-color: transparent; + height: 86px; + grid-column: 2/-1; + grid-row: 1/2; + gap: 24px; +} +@media (min-width: 744px) { + .header__nav { + height: 128px; + grid-column: 6/-1; + grid-row: 1/2; + } +} +@media (min-width: 1260px) { + .header__nav { + width: 254px; + grid-column: 10/-1; + grid-row: 1/2; + gap: 32px; + } +} +.header__nav-buttons { + display: flex; + justify-content: flex-end; + gap: 27px; + height: 24px; + width: 72px; + border: 0; +} +@media (min-width: 744px) { + .header__nav-buttons { + height: 32px; + width: auto; + gap: 36px; + } +} +@media (min-width: 1260px) { + .header__nav-buttons { + width: 254px; + } +} +.header__nav-button { + display: flex; + align-items: center; + justify-content: center; + border: none; + background-color: transparent; + height: 24px; + width: 24px; + padding: 0; +} +@media (min-width: 744px) { + .header__nav-button { + height: 32px; + width: 32px; + } +} +@media (min-width: 1260px) { + .header__nav-button { + cursor: pointer; + } +} +.header__nav-phone-container { + position: relative; + display: flex; + align-items: center; + gap: 20px; +} +@media (min-width: 1260px) { + .header__nav-phone-container:hover .header__nav-phone-number, .header__nav-phone-container:focus-within .header__nav-phone-number { + opacity: 1; + visibility: visible; + } +} +.header__nav-phone-number { + opacity: 0; + visibility: hidden; + white-space: nowrap; +} +@media (min-width: 1260px) { + .header__nav-phone-number { + position: absolute; + right: calc(100% + 50px); + display: flex; + align-self: center; + width: 138px; + } +} +.header__nav-phone-icon { + height: 18px; + width: 18px; +} +@media (min-width: 744px) { + .header__nav-phone-icon { + height: 24px; + width: 24px; + } +} +.header__nav-menu-icon { + height: 12px; + width: 18px; +} +@media (min-width: 744px) { + .header__nav-menu-icon { + height: 16px; + width: 24px; + } +} +.header__motto { + grid-column: 1/-1; + grid-row: 2/3; + align-self: end; + height: 36px; + padding-bottom: 120px; + background-color: transparent; +} +@media (min-width: 744px) { + .header__motto { + grid-column: 1/-1; + grid-row: 2/3; + height: 64px; + align-self: center; + } +} +@media (min-width: 1260px) { + .header__motto { + grid-column: 1/-1; + grid-row: 2/3; + height: 80px; + align-self: flex-start; + padding-top: 60px; + } +} +.header__motto-title { + font-weight: 700; + font-style: normal; + font-size: 36px; + line-height: 100%; + letter-spacing: -1.5px; + display: flex; + justify-content: center; + background-color: transparent; +} +@media (min-width: 744px) { + .header__motto-title { + font-size: 64px; + } +} +@media (min-width: 1260px) { + .header__motto-title { + font-size: 80px; + } +} + +.move-free { + color: rgb(255, 255, 255); + align-items: center; +} +.move-free__container { + margin: 0 auto; + display: flex; + flex-direction: column; + align-items: flex-start; + padding-top: 60px; + max-width: 280px; +} +@media (min-width: 744px) { + .move-free__container { + display: grid; + grid-template-columns: repeat(6, 80px); + gap: 24px; + justify-content: center; + align-items: start; + padding-top: 120px; + max-width: 288px; + } +} +@media (min-width: 1260px) { + .move-free__container { + grid-template-columns: repeat(12, 63px); + gap: 24px; + justify-content: center; + align-items: start; + max-width: 933px; + } +} +.move-free__container-title { + font-size: 32px; + line-height: 100%; + letter-spacing: -1.5px; + font-weight: normal; +} +@media (min-width: 744px) { + .move-free__container-title { + font-size: 48px; + grid-column: 1/4; + grid-row: 1/2; + } +} +@media (min-width: 1260px) { + .move-free__container-title { + font-size: 64px; + grid-column: 1/5; + grid-row: 1/2; + } +} +.move-free__container-text { + font-size: 23px; + line-height: 140%; + padding-top: 32px; + font-weight: normal; +} +@media (min-width: 744px) { + .move-free__container-text { + grid-column: 4/7; + grid-row: 1/2; + padding: 0; + } +} +@media (min-width: 1260px) { + .move-free__container-text { + grid-column: 6/12; + grid-row: 1/2; + padding: 0; + } +} + +.compare { + display: flex; + flex-direction: column; + padding-top: 92px; +} +@media (min-width: 744px) { + .compare { + padding-top: 132px; + } +} +@media (min-width: 1260px) { + .compare { + display: grid; + grid-template-columns: repeat(12, 63px); + gap: 24px; + justify-content: center; + padding-top: 164px; + } +} +.compare__title { + text-align: center; + grid-column: 1/-1; +} +.compare__bikes { + display: flex; + justify-content: center; + flex-wrap: wrap; + padding-top: 8px; + gap: 24px; +} +@media (min-width: 1260px) { + .compare__bikes { + grid-column: 1/-1; + max-width: 1020px; + } +} +.compare__bike { + display: flex; + flex-direction: column; + padding-top: 40px; + max-width: 392px; +} +@media (min-width: 744px) { + .compare__bike { + padding-top: 48px; + } +} +@media (min-width: 1260px) { + .compare__bike { + padding-top: 56px; + max-width: 324px; + } +} +.compare__bike-photo { + display: block; + align-self: center; + height: 250px; + width: 280px; +} +@media (min-width: 744px) { + .compare__bike-photo { + height: 330px; + width: 392px; + } +} +@media (min-width: 1260px) { + .compare__bike-photo { + height: 280px; + width: 324px; + } +} +.compare__bike-name { + font-weight: 700; + font-style: normal; + font-size: 24px; + line-height: 140%; + padding-top: 32px; +} +.compare__bike-price { + padding-top: 16px; +} + +.details { + display: flex; + justify-content: center; + flex-direction: column; + align-items: center; + padding-top: 92px; +} +@media (min-width: 744px) { + .details { + display: grid; + grid-template-columns: repeat(6, 80px); + gap: 24px; + justify-content: center; + padding-top: 120px; + } +} +@media (min-width: 1260px) { + .details { + grid-template-columns: repeat(12, 63px); + gap: 24px; + padding-top: 144px; + } +} +.details__title { + padding-bottom: 8px; + text-align: center; +} +@media (min-width: 744px) { + .details__title { + grid-column: 1/7; + } +} +@media (min-width: 1260px) { + .details__title { + padding-bottom: 56px; + grid-column: 1/-1; + } +} +@media (min-width: 744px) { + .details__detail { + grid-column: 1/-1; + } +} +.details__detail-photos { + display: flex; + padding-top: 40px; + gap: 20px; +} +@media (min-width: 744px) { + .details__detail-photos { + gap: 24px; + } +} +@media (min-width: 1260px) { + .details__detail-photos { + gap: 24px; + padding-top: 0; + max-width: 1020px; + } +} +.details__detail-photos-photo { + background-color: transparent; +} +.details__detail-title { + display: flex; + font-weight: 700; + font-style: Bold; + font-size: 24px; + line-height: 140%; + letter-spacing: 0; + padding-top: 16px; + padding-bottom: 8px; + max-width: 280px; +} +@media (min-width: 1260px) { + .details__detail-title { + max-width: 443px; + } +} +.details__detail-text { + justify-content: center; + font-weight: 400; + font-style: normal; + font-size: 16px; + line-height: 140%; + letter-spacing: 0; + padding-top: 8px; + max-width: 280px; +} +@media (min-width: 744px) { + .details__detail-text { + max-width: 600px; + } +} +@media (min-width: 1260px) { + .details__detail-text { + max-width: 672px; + } +} + +.explore__container { + display: flex; + justify-content: center; + padding-top: 40px; +} +@media (min-width: 744px) { + .explore__container { + grid-column: 1/-1; + } +} +@media (min-width: 1260px) { + .explore__container { + grid-column: 1/-1; + } +} +.explore__container-button { + width: 278px; + border: none; +} +@media (min-width: 744px) { + .explore__container-button { + width: 392px; + } +} +@media (min-width: 1260px) { + .explore__container-button { + width: 324px; + } +} + +.footer { + display: flex; + flex-direction: column; + align-items: center; + width: 100%; + margin: 0; + box-sizing: border-box; + color: rgb(255, 255, 255); +} +.footer__content { + display: flex; + justify-content: center; + flex-direction: column; + gap: 20px; + box-sizing: border-box; + padding: 48px 20px 120px; +} +@media (min-width: 744px) { + .footer__content { + display: grid; + grid-template-columns: repeat(6, 80px); + gap: 24px; + justify-content: center; + padding: 48px 20px 102px; + } +} +@media (min-width: 1260px) { + .footer__content { + grid-template-columns: repeat(12, 63px); + gap: 24px; + padding: 48px 20px 164px; + } +} +.footer__background { + height: 200px; + width: 100%; + background-image: url(../images/photos/przejscie_mobile.jpg); + background-position: 80% center; + background-repeat: no-repeat; + background-size: cover; + margin: 0; +} +@media (min-width: 744px) { + .footer__background { + height: 480px; + background-image: url(../images/photos/przejscie_tab.jpg); + } +} +@media (min-width: 1260px) { + .footer__background { + height: 555px; + background-image: url(../images/photos/przejscie_desk.jpg); + } +} + +.contact-us__title { + padding-top: 80px; + text-align: center; +} +@media (min-width: 744px) { + .contact-us__title { + padding-top: 120px; + grid-column: 2/6; + } +} +.contact-us__form { + display: flex; + flex-direction: column; + gap: 16px; + padding-top: 48px; + max-width: 280px; +} +.contact-us__input { + height: 48px; + width: 278px; + border-radius: 40px; + padding-left: 16px; + background-color: rgb(248, 248, 250); + font-family: Poppins, sans-serif; + font-weight: 400; + font-style: Regular; + font-size: 14px; + line-height: 20px; + border: 0; + box-sizing: border-box; +} +@media (min-width: 744px) { + .contact-us__input { + width: 288px; + } +} +@media (min-width: 1260px) { + .contact-us__input { + width: 411px; + transition: color 0.3s ease; + } + .contact-us__input:hover::placeholder { + color: rgb(41, 41, 41); + } + .contact-us__input:focus-visible { + color: rgb(41, 41, 41); + } +} +.contact-us__textarea { + height: 148px; + border-radius: 16px; + padding-top: 14px; +} +.contact-us__button { + width: 280px; +} +@media (min-width: 744px) { + .contact-us__button { + width: 288px; + } +} +@media (min-width: 1260px) { + .contact-us__button { + width: 411px; + } +} + +.container-sendButton { + padding-top: 32px; +} + +.contact { + padding-top: 24px; + grid-column: 1/-1; +} +@media (min-width: 744px) { + .contact { + grid-column: 4/7; + } +} +@media (min-width: 1260px) { + .contact { + grid-column: 8/10; + } +} +.contact__item { + padding-top: 24px; +} +.contact__label { + font-weight: 400; + font-size: 14px; + line-height: 140%; +} +.contact__value { + font-weight: 500; + font-size: 16px; + line-height: 140%; + padding-top: 8px; + width: 155px; +} +.contact__link { + text-decoration: none; + color: rgb(255, 255, 255); +} + +.photo { + display: block; + margin: 0 auto; + padding-top: 40px; + width: 100%; + height: 100%; + object-fit: cover; +} + +.main { + padding: 0 20px; + box-sizing: border-box; +} + +/*# sourceMappingURL=main.css.map */ diff --git a/src/styles/main.css.map b/src/styles/main.css.map new file mode 100644 index 0000000000..faea3a3159 --- /dev/null +++ b/src/styles/main.css.map @@ -0,0 +1 @@ +{"version":3,"sourceRoot":"","sources":["utils/reset.scss","blocks/titles.scss","utils/mixins.scss","blocks/menu-section.scss","blocks/header.scss","blocks/move-free-section.scss","blocks/compare-section.scss","blocks/details-section.scss","blocks/footer.scss","blocks/contact-us-section.scss","blocks/contact-section.scss","main.scss"],"names":[],"mappings":"AAAA;AAAA;AAAA;EAGE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA;EACA;;;ACXF;EACE;EACA;;ACGA;EDLF;IAKI;;;;AAGJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AClBA;EDSF;IAYI;;;ACfF;EDGF;IAgBI;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AChDA;EDwCF;IAWE,YACE;;EAEA;IACE;;EAGF;IACE;;;;AEhEN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ADXA;ECCF;IAaI;;;ADdF;ECCF;IAiBI;;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AD/BF;ECyBA;IASI;IACA;;;AD7BJ;ECmBA;IAcI;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;;AAIJ;EACE;;ADlEF;ECiEA;IAII;;;AD/DJ;EC2DA;IAQI;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AD5GF;ECsGA;IASI;;;ADzGJ;ECgGA;IAaI;;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AC9IF;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AFjBA;EECF;IAmBI;IACA;IACA;IACA;;;AFjBF;EELF;IA0BI;IACA;IACA;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AF3CF;EEiCA;IAaI;IACA;IACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AF7DF;EEoDA;IAYI;IACA;IACA;;;AF5DJ;EE8CA;IAkBI;IACA;IACA;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AFlFJ;EE4EE;IASI;IACA;IACA;;;AFjFN;EEsEE;IAeE;;;AAIF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AFvGJ;EE+FE;IAWI;IACA;;;AFrGN;EEyFE;IAgBI;;;AAIJ;EACE;EACA;EACA;EACA;;AFjHJ;EEoHM;IAEA;IACA;;;AAKJ;EACE;EACA;EACA;;AF/HJ;EE4HE;IAMI;IACA;IACA;IACA;IACA;;;AAIJ;EACE;EACA;;AFlJJ;EEgJE;IAKI;IACA;;;AAIJ;EACE;EACA;;AF5JJ;EE0JE;IAKI;IACA;;;AAKN;EACE;EACA;EACA;EACA;EACA;EACA;;AF3KF;EEqKA;IASI;IACA;IACA;IACA;;;AF3KJ;EE+JA;IAgBI;IACA;IACA;IACA;IACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AFpMJ;EE4LE;IAWI;;;AFjMN;EEsLE;IAeI;;;;AC1MR;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AHXF;EGKA;IASI;IACA;IACA;IACA;IACA;IACA;IACA;;;AHdJ;EGDA;IAmBI;IACA;IACA;IACA;IACA;;;AAGF;EACE;EACA;EACA;EACA;;AHnCJ;EG+BE;IAOI;IACA;IACA;;;AHlCN;EGyBE;IAaI;IACA;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;AHtDJ;EGkDE;IAOI;IACA;IACA;;;AHrDN;EG4CE;IAaI;IACA;IACA;;;;AChER;EACE;EACA;EACA;;AJJA;EICF;IAMI;;;AJDF;EILF;IAUI;IACA;IACA;IACA;IACA;;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AJtBF;EIiBA;IAQI;IACA;;;AAIJ;EACE;EACA;EACA;EACA;;AJxCF;EIoCA;IAOI;;;AJrCJ;EI8BA;IAWI;IACA;;;AAGF;EACE;EACA;EACA;EACA;;AJvDJ;EImDE;IAOI;IACA;;;AJrDN;EI6CE;IAYI;IACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;;;AC5EN;EACE;EACA;EACA;EACA;EACA;;ALNA;EKCF;IAQI;IACA;IACA;IACA;IACA;;;ALPF;EKLF;IAgBI;IACA;IACA;;;AAGF;EACE;EACA;;ALxBF;EKsBA;IAKI;;;ALrBJ;EKgBA;IASI;IACA;;;ALhCJ;EKoCA;IAEI;;;AAEF;EACE;EACA;EACA;;AL3CJ;EKwCE;IAMI;;;ALxCN;EKkCE;IAUI;IACA;IACA;;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AL/DJ;EKsDE;IAYI;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;ALpFJ;EK4EE;IAWI;;;ALjFN;EKsEE;IAeI;;;;AAMR;EACE;EACA;EACA;;ALpGA;EKiGF;IAMI;;;ALjGF;EK2FF;IAUI;;;AAGF;EACE;EACA;;ALhHF;EK8GA;IAKI;;;AL7GJ;EKwGA;IASI;;;;ACtHN;EACE;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;ANjBF;EMWA;IASI;IACA;IACA;IACA;IACA;;;ANlBJ;EMKA;IAiBI;IACA;IACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;ANzCF;EMkCA;IAUI;IACA;;;ANvCJ;EM4BA;IAeI;IACA;;;;AChDJ;EACE;EACA;;APJF;EOEA;IAKI;IACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;APhCF;EOoBA;IAeI;;;AP7BJ;EOcA;IAmBI;IACA;;EAEA;IACA;;EAGA;IACE;;;AAKN;EACE;EACA;EACA;;AAGF;EACE;;AP3DF;EO0DA;IAII;;;APxDJ;EOoDA;IAQI;;;;AAKN;EACE;;;ACvEF;EACE;EACA;;ARHA;EQCF;IAKI;;;ARAF;EQLF;IASI;;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;;ACtBJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA","file":"main.css"} \ No newline at end of file diff --git a/src/styles/main.scss b/src/styles/main.scss index fb9195d128..1203853395 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -1,7 +1,25 @@ -@import 'utils'; -@import 'fonts'; -@import 'typography'; +@use './utils/reset'; +@use './utils/mixins' as *; +@use './blocks/titles'; +@use './blocks/menu-section'; +@use './blocks/header'; +@use './blocks/move-free-section'; +@use './blocks/compare-section'; +@use './blocks/details-section'; +@use './blocks/footer'; +@use './blocks/contact-us-section'; +@use './blocks/contact-section'; -body { - background: $c-gray; +.photo { + display: block; + margin: 0 auto; + padding-top: 40px; + width: 100%; + height: 100%; + object-fit: cover; +} + +.main { + padding: 0 20px; + box-sizing: border-box; } diff --git a/src/styles/utils/_extends.scss b/src/styles/utils/_extends.scss deleted file mode 100644 index d7201e7b3e..0000000000 --- a/src/styles/utils/_extends.scss +++ /dev/null @@ -1,4 +0,0 @@ -%h1 { - font-family: Roboto, sans-serif; - font-weight: 400; -} diff --git a/src/styles/utils/_mixins.scss b/src/styles/utils/_mixins.scss deleted file mode 100644 index 80c79780dc..0000000000 --- a/src/styles/utils/_mixins.scss +++ /dev/null @@ -1,6 +0,0 @@ -@mixin hover($_property, $_toValue) { - transition: #{$_property} 0.3s; - &:hover { - #{$_property}: $_toValue; - } -} diff --git a/src/styles/utils/_vars.scss b/src/styles/utils/_vars.scss deleted file mode 100644 index aeb006ffbb..0000000000 --- a/src/styles/utils/_vars.scss +++ /dev/null @@ -1 +0,0 @@ -$c-gray: #eee; diff --git a/src/styles/utils/mixins.scss b/src/styles/utils/mixins.scss new file mode 100644 index 0000000000..3ff2e6333e --- /dev/null +++ b/src/styles/utils/mixins.scss @@ -0,0 +1,11 @@ +@mixin for-tablet { + @media (min-width: 744px) { + @content; + } +} + +@mixin for-desktop { + @media (min-width: 1260px) { + @content; + } +} diff --git a/src/styles/utils/reset.scss b/src/styles/utils/reset.scss new file mode 100644 index 0000000000..3eaf0bbe61 --- /dev/null +++ b/src/styles/utils/reset.scss @@ -0,0 +1,15 @@ +*, +*::before, +*::after { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, +body { + overflow-x: hidden; + font-family: Poppins, sans-serif; + background-color: rgba(29, 29, 29, 1); + box-sizing: border-box; +}