diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..7625fcf --- /dev/null +++ b/.editorconfig @@ -0,0 +1,11 @@ +root = true + +[*] +indent_style = space +indent_size = 2 +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = false + +[*.{json,md,yaml}] +indent_size = 2 \ No newline at end of file diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000..937262e --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,23 @@ +name: Build and deploy to GitHub Pages + +on: + push: + branches: [main] + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - name: Checkout 🛎️ + uses: actions/checkout@v2.3.1 + + - name: Install and build 🔧 + run: | + npm install + npm run build + + - name: Deploy 🚀 + uses: JamesIves/github-pages-deploy-action@4.1.0 + with: + branch: gh-pages + folder: dist diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9b559be --- /dev/null +++ b/.gitignore @@ -0,0 +1,27 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +# Pull requests list +pullrequests-list.txt \ No newline at end of file diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000..3fed313 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,10 @@ +{ + "printWidth": 80, + "useTabs": false, + "semi": true, + "singleQuote": true, + "trailingComma": "es5", + "bracketSpacing": true, + "arrowParens": "avoid", + "proseWrap": "always" +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..1b61d22 --- /dev/null +++ b/LICENSE @@ -0,0 +1,16 @@ +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the “Software”), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..88df14c --- /dev/null +++ b/README.md @@ -0,0 +1,62 @@ +![Landing Page](./assets) + +# Development team : + +- [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/ViktorSvertoka) + Viktor Svertoka **Team Lead** + +- [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/AM1007) + Andrew Motko **Scrum Master** + +- [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/LesiaUKR) + Lesia Soloviova **Front End Developer** + +- [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/AlinaRyabova) + Alina Riabova **Front End Developer** + +- [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/SvitlanaSavchenko) + Svitlana Savchenko **Front End Developer** + +- [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/TiZorii) + Tetiana Zorii **Front End Developer** + +- [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/Vademandr) + Vadym Andriushchenko **Front End Developer** + +- [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/YNazymko12) + Yuliia Nazymko **Front End Developer** + +- [![GitHub](https://img.shields.io/badge/GitHub-100000?style=for-the-badge&logo=github&logoColor=white)](https://github.com/yevheniidatsenko) + Yevhenii Datsenko **Front End Developer** + +# Presentation + +![Start](./assets) + +# Examples of writing commits on a project + +## We use the following types of commits: + +- Feat(HTML) Added new functionality + +- Fix(JS) Error correction + +- Perf(JPEG) Changes to improve performance + +- Refactor(PNG) Code edits without fixing bugs or adding new features + +- Revert(JS) Rollback to previous commits + +- Style(CSS) Code style edits + +- Docs(README) Documentation update + +Choose from the list the description of the commit that fits your task, in +brackets we write the file in which we worked, and in the body of the commit we +write what we did (changed) etc. + +- `Look at Figma layout` + [**Layout Figma**]() + +- npm install +- npm run dev diff --git a/assets/.gitkeep b/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..67a1298 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,694 @@ +{ + "name": "your-energy", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "your-energy", + "version": "0.0.0", + "license": "ISC", + "dependencies": { + "body-scroll-lock": "^4.0.0-beta.0", + "lodash.throttle": "^4.1.1", + "modern-normalize": "^2.0.0", + "vite-plugin-full-reload": "^1.0.5", + "vite-plugin-html-inject": "^1.0.1", + "wow.js": "^1.2.2" + }, + "devDependencies": { + "glob": "^8.1.0", + "vite": "^4.0.5" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/body-scroll-lock": { + "version": "4.0.0-beta.0", + "resolved": "https://registry.npmjs.org/body-scroll-lock/-/body-scroll-lock-4.0.0-beta.0.tgz", + "integrity": "sha512-a7tP5+0Mw3YlUJcGAKUqIBkYYGlYxk2fnCasq/FUph1hadxlTRjF+gAcZksxANnaMnALjxEddmSi/H3OR8ugcQ==" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/modern-normalize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/modern-normalize/-/modern-normalize-2.0.0.tgz", + "integrity": "sha512-CxBoEVKh5U4DH3XuNbc5ONLF6dQBc8dSc7pdZ1957FGbIO5JBqGqqchhET9dTexri8/pk9xBL6+5ceOtCIp1QA==", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.4.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz", + "integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vite": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz", + "integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==", + "dev": true, + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-full-reload": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/vite-plugin-full-reload/-/vite-plugin-full-reload-1.1.0.tgz", + "integrity": "sha512-3cObNDzX6DdfhD9E7kf6w2mNunFpD7drxyNgHLw+XwIYAgb+Xt16SEXo0Up4VH+TMf3n+DSVJZtW2POBGcBYAA==", + "dependencies": { + "picocolors": "^1.0.0", + "picomatch": "^2.3.1" + } + }, + "node_modules/vite-plugin-html-inject": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vite-plugin-html-inject/-/vite-plugin-html-inject-1.0.4.tgz", + "integrity": "sha512-DYy2tM0jhhOhYa7Seb4Xv2/iTnyVAhm5o7DVQbPBdEwgWLnWFf304GxUyoxld8lEJH6qLIosPCK0Cmc/WS4Ytw==" + }, + "node_modules/wow.js": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/wow.js/-/wow.js-1.2.2.tgz", + "integrity": "sha512-YTW9eiZimHCJDWofsiz2507txaPteUiQD461I/D8533AiRAn3+Y68/1LDuQ3OTgPjagGZLPYKrpoSgjzeQrO6A==", + "deprecated": "deprecated in favour of aos (Animate On Scroll)" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..af6a6c7 --- /dev/null +++ b/package.json @@ -0,0 +1,25 @@ +{ + "name": "your-energy", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build --base=/your-energy/", + "preview": "vite preview" + }, + "devDependencies": { + "glob": "^8.1.0", + "vite": "^4.0.5" + }, + "author": "Viktor Svertoka ", + "license": "ISC", + "dependencies": { + "body-scroll-lock": "^4.0.0-beta.0", + "lodash.throttle": "^4.1.1", + "modern-normalize": "^2.0.0", + "vite-plugin-full-reload": "^1.0.5", + "vite-plugin-html-inject": "^1.0.1", + "wow.js": "^1.2.2" + } +} diff --git a/src/css/base/colors.css b/src/css/base/colors.css new file mode 100644 index 0000000..c381697 --- /dev/null +++ b/src/css/base/colors.css @@ -0,0 +1,14 @@ +:root { + --color-black: #121417; + --color-green: #4dc274; + --color-dark-green: #38ae5f; + --color-light-green: #d4fde1; + --color-green-pseudo: #bee8cc; + --color-grey: #f3f5f6; + --color-white: #ffffff; + + --color-valid: #4dc274; + --color-invalid: #ee323d; + + --transition-dur-and-func: 750ms cubic-bezier(0.4, 0, 0.2, 1); +} diff --git a/src/css/base/cursors.css b/src/css/base/cursors.css new file mode 100644 index 0000000..6fa22aa --- /dev/null +++ b/src/css/base/cursors.css @@ -0,0 +1,27 @@ +html { + cursor: url('..//../cursor-green&white.svg'), pointer; +} + +a { + cursor: url('..//../cursor-black&green.svg'), pointer; +} + +button { + cursor: url('..//../cursor-black&white.svg'), pointer; +} + +a:hover { + cursor: url('..//../cursor-black&green.svg'), pointer; +} + +button:hover { + cursor: url('..//../cursor-black&white.svg'), pointer; +} + +svg:hover { + cursor: url('..//../cursor-black&green.svg'), pointer; +} + +.cursors__btn:hover { + cursor: url('..//../cursor-black&white.svg'), pointer; +} diff --git a/src/css/layout/01-header.css b/src/css/layout/01-header.css new file mode 100644 index 0000000..f0fa371 --- /dev/null +++ b/src/css/layout/01-header.css @@ -0,0 +1 @@ +/* header styles */ diff --git a/src/css/layout/02-hero.css b/src/css/layout/02-hero.css new file mode 100644 index 0000000..3105199 --- /dev/null +++ b/src/css/layout/02-hero.css @@ -0,0 +1 @@ +/* hero styles */ diff --git a/src/css/layout/03-exercises.css b/src/css/layout/03-exercises.css new file mode 100644 index 0000000..d1e2fcd --- /dev/null +++ b/src/css/layout/03-exercises.css @@ -0,0 +1 @@ +/* exercises styles */ diff --git a/src/css/layout/04-footer.css b/src/css/layout/04-footer.css new file mode 100644 index 0000000..2347187 --- /dev/null +++ b/src/css/layout/04-footer.css @@ -0,0 +1 @@ +/* footer styles */ diff --git a/src/css/layout/05-modal-exercise.css b/src/css/layout/05-modal-exercise.css new file mode 100644 index 0000000..a0f5789 --- /dev/null +++ b/src/css/layout/05-modal-exercise.css @@ -0,0 +1 @@ +/* modal-exercises styles */ diff --git a/src/css/layout/06-modal-rating.css b/src/css/layout/06-modal-rating.css new file mode 100644 index 0000000..d0d6281 --- /dev/null +++ b/src/css/layout/06-modal-rating.css @@ -0,0 +1 @@ +/* modal-rating styles */ diff --git a/src/css/layout/07-modal-team.css b/src/css/layout/07-modal-team.css new file mode 100644 index 0000000..e57af15 --- /dev/null +++ b/src/css/layout/07-modal-team.css @@ -0,0 +1,190 @@ +.team__backdrop { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow-y: auto; + z-index: 998; + padding: 15px; + background-color: rgba(0, 0, 0, 0.7); + visibility: visible; + opacity: 1; +} + +.is-hidden { + visibility: hidden; + pointer-events: none; + opacity: 0; +} + +.is-hidden .team__wrapper { + visibility: hidden; + pointer-events: none; + opacity: 0.3; + transform: translate(-75%, -90%) scale(3); +} + +.team__wrapper { + position: relative; + z-index: 999; + width: 320px; + margin-left: auto; + margin-right: auto; + padding: 25px 15px 20px; + visibility: visible; + opacity: 1; + background-color: var(--color-white); + border-radius: 10px; + box-shadow: 0 28px 42px rgba(0, 0, 0, 0.38), 0 20px 20px rgba(0, 0, 0, 0.33); +} + +@media screen and (min-width: 768px) { + .team__wrapper { + width: 580px; + } +} + +@media screen and (min-width: 1280px) { + .team__wrapper { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%) scale(1); + width: 1200px; + padding: 30px; + } +} + +.team__modal-close-btn { + display: flex; + justify-content: center; + align-items: center; + position: absolute; + top: 10px; + right: 10px; + padding: 0px; + border: none; + background-color: transparent; + border-radius: 50%; + cursor: pointer; + stroke: var(--color-black); +} + +@media screen and (min-width: 768px) { + .team__modal-close-btn { + top: 20px; + right: 20px; + } +} + +.team__modal-close-btn:hover { + stroke: var(--color-green); +} + +.team__modal-close-icon { + fill: currentColor; +} + +.team__title { + text-align: center; + text-transform: uppercase; + color: var(--color-black); + font-size: 24px; + margin-bottom: 20px; +} + +.team__list { + display: flex; + justify-content: center; + flex-wrap: wrap; + gap: 1.2rem; +} + +.team__item { + border-radius: 5px; + background-color: var(--color-grey); + color: var(--color-white); + position: relative; + border-radius: 10px; + padding-bottom: 5px; + overflow: hidden; +} + +.team__item:hover, +.team__item:focus { + box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.12), 0px 1px 1px rgba(0, 0, 0, 0.14), + 0px 2px 1px rgba(0, 0, 0, 0.2); +} + +.team__wrap { + overflow: hidden; +} + +.team__img { + overflow: hidden; + object-fit: cover; + margin-bottom: 5px; + width: 200px; + height: 180px; +} + +.team__box { + /* Replace with your font properties */ + font-weight: 500; + font-size: 16px; + padding: 10px; + text-align: center; + margin-bottom: 3px; +} + +.team__member { + font-weight: 700; + font-size: 16px; + color: var(--color-black); + margin-bottom: 10px; +} + +.team__role { + font-weight: 500; + font-size: 16px; + color: var(--color-green); + margin-bottom: 10px; +} + +.team__link-linkedin { + border: none; + width: 36px; + height: 36px; + border-radius: 10%; + margin-right: 10px; + background-color: transparent; + fill: var(--color-black); + display: inline-flex; + justify-content: center; + align-items: center; +} + +.team__link-linkedin--active:hover, +.team__link-linkedin--active:focus { + background-color: var(--color-green); + fill: var(--color-white); +} + +.team__link-github { + border: none; + width: 36px; + height: 36px; + border-radius: 50%; + background-color: transparent; + fill: var(--color-black); + display: inline-flex; + justify-content: center; + align-items: center; +} + +.team__link-github--active:hover, +.team__link-github--active:focus { + background-color: var(--color-green); + fill: var(--color-white); +} diff --git a/src/css/layout/08-scroll-up.css b/src/css/layout/08-scroll-up.css new file mode 100644 index 0000000..3811a9e --- /dev/null +++ b/src/css/layout/08-scroll-up.css @@ -0,0 +1,33 @@ +.scroll__top { + position: fixed; + bottom: 40px; + right: 40px; + z-index: 100; + display: none; + padding: 2px 4px; + display: flex; + border: none; + background: no-repeat scroll var(--color-green); + border-radius: 50%; + width: 50px; + height: 50px; + line-height: 1.5; + opacity: 0.8; +} + +@media screen and (min-width: 768px) { + .scroll__top { + bottom: 20px; + right: 20px; + } +} + +.scroll__icon { + width: 100%; + height: 100%; + fill: var(--color-black); +} + +.scroll__icon:hover { + fill: var(--color-white); +} diff --git a/src/css/layout/09-loader.css b/src/css/layout/09-loader.css new file mode 100644 index 0000000..f771a74 --- /dev/null +++ b/src/css/layout/09-loader.css @@ -0,0 +1 @@ +/* loader styles */ diff --git a/src/css/layout/10-favorites.css b/src/css/layout/10-favorites.css new file mode 100644 index 0000000..8b4d6ed --- /dev/null +++ b/src/css/layout/10-favorites.css @@ -0,0 +1 @@ +/* favorites styles */ diff --git a/src/css/styles.css b/src/css/styles.css new file mode 100644 index 0000000..4173d06 --- /dev/null +++ b/src/css/styles.css @@ -0,0 +1,19 @@ +/* FOLDER BASE */ +@import url('./base/colors.css'); +@import url('./base/cursors.css'); + +/* FOLDER UTILS */ +@import url('./utils/command.css'); +@import url('./utils/reset.css'); + +/* FOLDER LAYOUTS */ +@import url('./layout/01-header.css'); +@import url('./layout/02-hero.css'); +@import url('./layout/03-exercises.css'); +@import url('./layout/04-footer.css'); +@import url('./layout/05-modal-exercise.css'); +@import url('./layout/06-modal-rating.css'); +@import url('./layout/07-modal-team.css'); +@import url('./layout/08-scroll-up.css'); +@import url('./layout/09-loader.css'); +@import url('./layout/10-favorites.css'); diff --git a/src/css/utils/command.css b/src/css/utils/command.css new file mode 100644 index 0000000..dc4c126 --- /dev/null +++ b/src/css/utils/command.css @@ -0,0 +1,82 @@ +body { + font-family: 'Manrope', sans-serif; + font-style: normal; + background: var(--color-white); +} + +.section { + padding-bottom: 80px; +} + +@media screen and (min-width: 768px) { + .section { + padding-bottom: 100px; + } +} + +@media screen and (min-width: 1280px) { + .section { + padding-bottom: 150px; + } +} + +.container { + width: 100%; + padding: 0 20px; + margin: 0 auto; +} + +@media screen and (min-width: 375px) { + .container { + width: 375px; + } +} + +@media screen and (min-width: 768px) { + .container { + width: 768px; + padding: 0 32px; + } +} + +@media screen and (min-width: 1280px) { + .container { + width: 1280px; + padding: 0 64px; + } +} + +.visually-hidden { + position: absolute; + width: 1px; + height: 1px; + margin: -1px; + border: 0; + padding: 0; + white-space: nowrap; + clip-path: inset(100%); + clip: rect(0 0 0 0); + overflow: hidden; +} + +.text__element { + position: relative; +} + +.text__element::after { + position: absolute; + bottom: 3px; + left: 0; + content: ''; + z-index: -1; + width: 100%; + height: 12px; + border-radius: 8px; + background-color: var(--color-green-pseudo); +} + +@media screen and (min-width: 768px) { + .text__element::after { + height: 20px; + } +} diff --git a/src/css/utils/reset.css b/src/css/utils/reset.css new file mode 100644 index 0000000..7bdcbb2 --- /dev/null +++ b/src/css/utils/reset.css @@ -0,0 +1,36 @@ +/* Reset styles */ +h1, +h2, +h3, +h4, +h5, +h6, +p { + margin: 0; +} + +p:last-child { + margin-bottom: 0; +} + +ul, +ol { + margin: 0; + padding: 0; + list-style: none; +} + +a { + color: currentColor; + text-decoration: none; +} + +button { + cursor: pointer; +} + +img { + display: block; + max-width: 100%; + height: auto; +} diff --git a/src/favorites.html b/src/favorites.html new file mode 100644 index 0000000..a22c218 --- /dev/null +++ b/src/favorites.html @@ -0,0 +1,32 @@ + + + + + + + + + Your Energy + + + +
+ +
+ +
+ +
+ +
+ + + +
+ + + + diff --git a/src/img/.gitkeep b/src/img/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/index.html b/src/index.html new file mode 100644 index 0000000..7357a46 --- /dev/null +++ b/src/index.html @@ -0,0 +1,36 @@ + + + + + + + + + Your Energy + + + +
+ +
+ +
+ + +
+ +
+ + + + + + +
+ + + + diff --git a/src/js/01-mobile-menu.js b/src/js/01-mobile-menu.js new file mode 100644 index 0000000..688dd86 --- /dev/null +++ b/src/js/01-mobile-menu.js @@ -0,0 +1,50 @@ +// // Отримуємо посилання на елементи DOM +// const openMenuButton = document.querySelector('.js-open-menu'); +// const closeMenuButton = document.querySelector('.js-close-menu'); +// const mobileMenu = document.querySelector('#mobile-menu'); +// const backdrop = document.querySelector('[data-menu-backdrop]'); +// const menuNavLinks = document.querySelectorAll('.menu__nav-link'); + +// // Функція для відкриття мобільного меню +// function openMobileMenu() { +// mobileMenu.classList.add('is-open'); +// backdrop.classList.remove('is-hidden'); +// document.body.classList.add('no-scroll'); // Додаємо клас, щоб запобігти скролінгу фону +// } + +// // Функція для закриття мобільного меню +// function closeMobileMenu() { +// mobileMenu.classList.remove('is-open'); +// backdrop.classList.add('is-hidden'); +// document.body.classList.remove('no-scroll'); // Видаляємо клас, дозволяючи скролінг тла +// } + +// // Обробник кліку на кнопку відкриття меню +// openMenuButton.addEventListener('click', () => { +// openMobileMenu(); +// }); + +// // Обробник кліку на кнопку закриття меню +// closeMenuButton.addEventListener('click', () => { +// closeMobileMenu(); +// }); + +// // Обробник кліка на бекдроп для закриття меню +// backdrop.addEventListener('click', () => { +// closeMobileMenu(); +// }); + +// // Обробник кліку на елементи меню для переходу до відповідної секції та закриття меню +// menuNavLinks.forEach(link => { +// link.addEventListener('click', () => { +// const targetId = link.getAttribute('href').substring(1); +// const targetSection = document.getElementById(targetId); + +// if (targetSection) { +// // Прокручуємо до цільової секції +// targetSection.scrollIntoView({ behavior: 'smooth' }); +// // Закриваємо меню +// closeMobileMenu(); +// } +// }); +// }); diff --git a/src/js/02-quote.js b/src/js/02-quote.js new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/js/02-quote.js @@ -0,0 +1 @@ + diff --git a/src/js/03-exercises.js b/src/js/03-exercises.js new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/src/js/03-exercises.js @@ -0,0 +1 @@ + diff --git a/src/js/04-search-form.js b/src/js/04-search-form.js new file mode 100644 index 0000000..e69de29 diff --git a/src/js/05-modal-exercises.js b/src/js/05-modal-exercises.js new file mode 100644 index 0000000..e69de29 diff --git a/src/js/06-modal-rating.js b/src/js/06-modal-rating.js new file mode 100644 index 0000000..e69de29 diff --git a/src/js/07-modal-team.js b/src/js/07-modal-team.js new file mode 100644 index 0000000..f785579 --- /dev/null +++ b/src/js/07-modal-team.js @@ -0,0 +1,53 @@ +// const teamLink = document.querySelector('.footer__link'); +// const teamBackdrop = document.querySelector('.team__backdrop'); +// const teamCloseBtn = document.querySelector('.team__modal-close-btn'); + +// function onLinkClick(event) { +// event.preventDefault(); + +// teamBackdrop.classList.remove('is-hidden'); +// document.body.classList.add('modal-open'); + +// addAllEventListeners(); +// } + +// function onEscClick(event) { +// event.preventDefault(); + +// if (event.code !== 'Escape') { +// return; +// } + +// closingModalStaff(); +// } + +// function onBackdropClick(event) { +// if (event.target.closest('.team__wrapper')) { +// return; +// } + +// closingModalStaff(); +// } + +// function onCloseBtnClick(event) { +// event.preventDefault(); + +// closingModalStaff(); +// } + +// function addAllEventListeners() { +// document.addEventListener('keydown', onEscClick); +// teamBackdrop.addEventListener('click', onBackdropClick); +// teamCloseBtn.addEventListener('click', onCloseBtnClick); +// } + +// function closingModalStaff() { +// document.removeEventListener('keydown', onEscClick); +// teamBackdrop.removeEventListener('click', onBackdropClick); +// teamCloseBtn.removeEventListener('click', onCloseBtnClick); + +// teamBackdrop.classList.add('is-hidden'); +// document.body.classList.remove('modal-open'); +// } + +// teamLink.addEventListener('click', onLinkClick); diff --git a/src/js/08-scroll-up.js b/src/js/08-scroll-up.js new file mode 100644 index 0000000..71b63f7 --- /dev/null +++ b/src/js/08-scroll-up.js @@ -0,0 +1,27 @@ +// document.addEventListener('scroll', handleScroll); +// // get a reference to our predefined button +// let scrollToTopBtn = document.querySelector('.scroll__top'); + +// function handleScroll() { +// let scrollableHeight = +// document.documentElement.scrollHeight - +// document.documentElement.clientHeight; +// let GOLDEN_RATIO = 0.1; + +// if (document.documentElement.scrollTop / scrollableHeight > GOLDEN_RATIO) { +// //show button +// scrollToTopBtn.style.display = 'block'; +// } else { +// //hide button +// scrollToTopBtn.style.display = 'none'; +// } +// } + +// scrollToTopBtn.addEventListener('click', scrollToTop); + +// function scrollToTop() { +// window.scrollTo({ +// top: 0, +// behavior: 'smooth', +// }); +// } diff --git a/src/js/09-loader.js b/src/js/09-loader.js new file mode 100644 index 0000000..e69de29 diff --git a/src/js/10-favorites.js b/src/js/10-favorites.js new file mode 100644 index 0000000..e69de29 diff --git a/src/js/11-subscribe.js b/src/js/11-subscribe.js new file mode 100644 index 0000000..e69de29 diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..2b0933b --- /dev/null +++ b/src/main.js @@ -0,0 +1,11 @@ +import './js/01-mobile-menu'; +import './js/02-quote'; +import './js/03-exercises'; +import './js/04-search-form'; +import './js/05-modal-exercises'; +import './js/06-modal-rating'; +import './js/07-modal-team'; +import './js/08-scroll-up'; +import './js/09-loader'; +import './js/10-favorites'; +import './js/11-subscribe'; diff --git a/src/partials/01-header.html b/src/partials/01-header.html new file mode 100644 index 0000000..cd5a14d --- /dev/null +++ b/src/partials/01-header.html @@ -0,0 +1,4 @@ + +
+

hi

+
diff --git a/src/partials/02-hero.html b/src/partials/02-hero.html new file mode 100644 index 0000000..9f42d44 --- /dev/null +++ b/src/partials/02-hero.html @@ -0,0 +1,4 @@ + +
+

hi

+
diff --git a/src/partials/03-exercises.html b/src/partials/03-exercises.html new file mode 100644 index 0000000..1bd25a4 --- /dev/null +++ b/src/partials/03-exercises.html @@ -0,0 +1,4 @@ + +
+

hi

+
diff --git a/src/partials/04-footer.html b/src/partials/04-footer.html new file mode 100644 index 0000000..eb5a8c0 --- /dev/null +++ b/src/partials/04-footer.html @@ -0,0 +1,4 @@ + +
+

hi

+
diff --git a/src/partials/05-modal-exercise.html b/src/partials/05-modal-exercise.html new file mode 100644 index 0000000..8ddcb3f --- /dev/null +++ b/src/partials/05-modal-exercise.html @@ -0,0 +1 @@ + diff --git a/src/partials/06-modal-rating.html b/src/partials/06-modal-rating.html new file mode 100644 index 0000000..8d379f6 --- /dev/null +++ b/src/partials/06-modal-rating.html @@ -0,0 +1 @@ + diff --git a/src/partials/07-modal-team.html b/src/partials/07-modal-team.html new file mode 100644 index 0000000..a3d9fb6 --- /dev/null +++ b/src/partials/07-modal-team.html @@ -0,0 +1,318 @@ + diff --git a/src/partials/08-scroll-up.html b/src/partials/08-scroll-up.html new file mode 100644 index 0000000..20ca684 --- /dev/null +++ b/src/partials/08-scroll-up.html @@ -0,0 +1 @@ + diff --git a/src/partials/09-loader.html b/src/partials/09-loader.html new file mode 100644 index 0000000..d2fa19b --- /dev/null +++ b/src/partials/09-loader.html @@ -0,0 +1 @@ + diff --git a/src/partials/10-favorites.html b/src/partials/10-favorites.html new file mode 100644 index 0000000..8ff6065 --- /dev/null +++ b/src/partials/10-favorites.html @@ -0,0 +1,3 @@ +
+

hi

+
diff --git a/src/public/cursor-black&green.svg b/src/public/cursor-black&green.svg new file mode 100644 index 0000000..b8dea7e --- /dev/null +++ b/src/public/cursor-black&green.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/cursor-black&white.svg b/src/public/cursor-black&white.svg new file mode 100644 index 0000000..f8a633d --- /dev/null +++ b/src/public/cursor-black&white.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/cursor-green&white.svg b/src/public/cursor-green&white.svg new file mode 100644 index 0000000..f2962ef --- /dev/null +++ b/src/public/cursor-green&white.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/public/dev-titans.png b/src/public/dev-titans.png new file mode 100644 index 0000000..34146c9 Binary files /dev/null and b/src/public/dev-titans.png differ diff --git a/src/public/favicon.svg b/src/public/favicon.svg new file mode 100644 index 0000000..e1593dc --- /dev/null +++ b/src/public/favicon.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src/public/sprite.svg b/src/public/sprite.svg new file mode 100644 index 0000000..c17bb38 --- /dev/null +++ b/src/public/sprite.svg @@ -0,0 +1,64 @@ + diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..7da6578 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,15 @@ +import { defineConfig } from 'vite'; +import glob from 'glob'; +import injectHTML from 'vite-plugin-html-inject'; +import FullReload from 'vite-plugin-full-reload'; + +export default defineConfig({ + root: 'src', + build: { + rollupOptions: { + input: glob.sync('./src/*.html'), + }, + outDir: '../dist', + }, + plugins: [injectHTML(), FullReload(['./src/**/**.html'])], +});