Browse Source

HW<05> done

GennadyBerg 2 years ago
parent
commit
673734e441
60 changed files with 30376 additions and 0 deletions
  1. 23 0
      js/01_react/.gitignore
  2. 70 0
      js/01_react/README.md
  3. 28714 0
      js/01_react/package-lock.json
  4. 38 0
      js/01_react/package.json
  5. BIN
      js/01_react/public/favicon.ico
  6. BIN
      js/01_react/public/img/VK.png
  7. BIN
      js/01_react/public/img/button.png
  8. BIN
      js/01_react/public/img/eye.png
  9. BIN
      js/01_react/public/img/frame.png
  10. BIN
      js/01_react/public/img/img.png
  11. BIN
      js/01_react/public/img/microsoft.png
  12. BIN
      js/01_react/public/img/pic1.png
  13. BIN
      js/01_react/public/img/pic2.png
  14. BIN
      js/01_react/public/img/proj.png
  15. BIN
      js/01_react/public/img/video.png
  16. BIN
      js/01_react/public/img/wd.png
  17. 43 0
      js/01_react/public/index.html
  18. BIN
      js/01_react/public/logo192.png
  19. BIN
      js/01_react/public/logo512.png
  20. 25 0
      js/01_react/public/manifest.json
  21. 3 0
      js/01_react/public/robots.txt
  22. 264 0
      js/01_react/src/App — копия.css
  23. 512 0
      js/01_react/src/App.css
  24. 213 0
      js/01_react/src/App.js
  25. 8 0
      js/01_react/src/App.test.js
  26. BIN
      js/01_react/src/Roboto-Regular.ttf
  27. BIN
      js/01_react/src/img/VK.png
  28. BIN
      js/01_react/src/img/button.png
  29. BIN
      js/01_react/src/img/eye.png
  30. BIN
      js/01_react/src/img/frame.png
  31. BIN
      js/01_react/src/img/img.png
  32. BIN
      js/01_react/src/img/microsoft.png
  33. BIN
      js/01_react/src/img/pic1.png
  34. BIN
      js/01_react/src/img/pic2.png
  35. BIN
      js/01_react/src/img/proj.png
  36. BIN
      js/01_react/src/img/video.png
  37. BIN
      js/01_react/src/img/wd.png
  38. 13 0
      js/01_react/src/index.css
  39. 17 0
      js/01_react/src/index.js
  40. 1 0
      js/01_react/src/logo.svg
  41. 13 0
      js/01_react/src/reportWebVitals.js
  42. 5 0
      js/01_react/src/setupTests.js
  43. 8 0
      js/01_react/sshkeys
  44. 1 0
      js/01_react/sshkeys.pub
  45. 12 0
      js/05/hw05_01.html
  46. 14 0
      js/05/hw05_02.html
  47. 10 0
      js/05/hw05_03.html
  48. 11 0
      js/05/hw05_04.html
  49. 35 0
      js/05/hw05_05.html
  50. 9 0
      js/05/hw05_07.html
  51. 9 0
      js/05/hw05_08.html
  52. 9 0
      js/05/hw05_09.html
  53. 12 0
      js/05/hw05_10.html
  54. 12 0
      js/05/hw05_11.html
  55. 18 0
      js/05/hw05_12.html
  56. 20 0
      js/05/hw05_13.html
  57. 19 0
      js/05/hw05_14.html
  58. 27 0
      js/05/hw05_15.html
  59. 19 0
      js/05/hw05_15_1.html
  60. 169 0
      js/05/hw_index.html

+ 23 - 0
js/01_react/.gitignore

@@ -0,0 +1,23 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# dependencies
+/node_modules
+/.pnp
+.pnp.js
+
+# testing
+/coverage
+
+# production
+/build
+
+# misc
+.DS_Store
+.env.local
+.env.development.local
+.env.test.local
+.env.production.local
+
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*

+ 70 - 0
js/01_react/README.md

@@ -0,0 +1,70 @@
+# Getting Started with Create React App
+
+This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
+
+## Available Scripts
+
+In the project directory, you can run:
+
+### `npm start`
+
+Runs the app in the development mode.\
+Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
+
+The page will reload when you make changes.\
+You may also see any lint errors in the console.
+
+### `npm test`
+
+Launches the test runner in the interactive watch mode.\
+See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
+
+### `npm run build`
+
+Builds the app for production to the `build` folder.\
+It correctly bundles React in production mode and optimizes the build for the best performance.
+
+The build is minified and the filenames include the hashes.\
+Your app is ready to be deployed!
+
+See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
+
+### `npm run eject`
+
+**Note: this is a one-way operation. Once you `eject`, you can't go back!**
+
+If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
+
+Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.
+
+You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
+
+## Learn More
+
+You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
+
+To learn React, check out the [React documentation](https://reactjs.org/).
+
+### Code Splitting
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)
+
+### Analyzing the Bundle Size
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)
+
+### Making a Progressive Web App
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)
+
+### Advanced Configuration
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
+
+### Deployment
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
+
+### `npm run build` fails to minify
+
+This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)

File diff suppressed because it is too large
+ 28714 - 0
js/01_react/package-lock.json


+ 38 - 0
js/01_react/package.json

@@ -0,0 +1,38 @@
+{
+  "name": "myproject",
+  "version": "0.1.0",
+  "private": true,
+  "dependencies": {
+    "@testing-library/jest-dom": "^5.16.5",
+    "@testing-library/react": "^13.4.0",
+    "@testing-library/user-event": "^13.5.0",
+    "react": "^18.2.0",
+    "react-dom": "^18.2.0",
+    "react-scripts": "5.0.1",
+    "web-vitals": "^2.1.4"
+  },
+  "scripts": {
+    "start": "react-scripts start",
+    "build": "react-scripts build",
+    "test": "react-scripts test",
+    "eject": "react-scripts eject"
+  },
+  "eslintConfig": {
+    "extends": [
+      "react-app",
+      "react-app/jest"
+    ]
+  },
+  "browserslist": {
+    "production": [
+      ">0.2%",
+      "not dead",
+      "not op_mini all"
+    ],
+    "development": [
+      "last 1 chrome version",
+      "last 1 firefox version",
+      "last 1 safari version"
+    ]
+  }
+}

BIN
js/01_react/public/favicon.ico


BIN
js/01_react/public/img/VK.png


BIN
js/01_react/public/img/button.png


BIN
js/01_react/public/img/eye.png


BIN
js/01_react/public/img/frame.png


BIN
js/01_react/public/img/img.png


BIN
js/01_react/public/img/microsoft.png


BIN
js/01_react/public/img/pic1.png


BIN
js/01_react/public/img/pic2.png


BIN
js/01_react/public/img/proj.png


BIN
js/01_react/public/img/video.png


BIN
js/01_react/public/img/wd.png


+ 43 - 0
js/01_react/public/index.html

@@ -0,0 +1,43 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="utf-8" />
+    <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
+    <meta name="viewport" content="width=device-width, initial-scale=1" />
+    <meta name="theme-color" content="#000000" />
+    <meta
+      name="description"
+      content="Web site created using create-react-app"
+    />
+    <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
+    <!--
+      manifest.json provides metadata used when your web app is installed on a
+      user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
+    -->
+    <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
+    <!--
+      Notice the use of %PUBLIC_URL% in the tags above.
+      It will be replaced with the URL of the `public` folder during the build.
+      Only files inside the `public` folder can be referenced from the HTML.
+
+      Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
+      work correctly both with client-side routing and a non-root public URL.
+      Learn how to configure a non-root public URL by running `npm run build`.
+    -->
+    <title>React App</title>
+  </head>
+  <body>
+    <noscript>You need to enable JavaScript to run this app.</noscript>
+    <div id="root"></div>
+    <!--
+      This HTML file is a template.
+      If you open it directly in the browser, you will see an empty page.
+
+      You can add webfonts, meta tags, or analytics to this file.
+      The build step will place the bundled scripts into the <body> tag.
+
+      To begin the development, run `npm start` or `yarn start`.
+      To create a production bundle, use `npm run build` or `yarn build`.
+    -->
+  </body>
+</html>

BIN
js/01_react/public/logo192.png


BIN
js/01_react/public/logo512.png


+ 25 - 0
js/01_react/public/manifest.json

@@ -0,0 +1,25 @@
+{
+  "short_name": "React App",
+  "name": "Create React App Sample",
+  "icons": [
+    {
+      "src": "favicon.ico",
+      "sizes": "64x64 32x32 24x24 16x16",
+      "type": "image/x-icon"
+    },
+    {
+      "src": "logo192.png",
+      "type": "image/png",
+      "sizes": "192x192"
+    },
+    {
+      "src": "logo512.png",
+      "type": "image/png",
+      "sizes": "512x512"
+    }
+  ],
+  "start_url": ".",
+  "display": "standalone",
+  "theme_color": "#000000",
+  "background_color": "#ffffff"
+}

+ 3 - 0
js/01_react/public/robots.txt

@@ -0,0 +1,3 @@
+# https://www.robotstxt.org/robotstxt.html
+User-agent: *
+Disallow:

+ 264 - 0
js/01_react/src/App — копия.css

@@ -0,0 +1,264 @@
+.App {
+  text-align: center;
+}
+
+.App-logo {
+  height: 40vmin;
+  pointer-events: none;
+}
+
+@media (prefers-reduced-motion: no-preference) {
+  .App-logo {
+    animation: App-logo-spin infinite 20s linear;
+  }
+}
+
+.App-header {
+  background-color: #282c34;
+  min-height: 100vh;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  font-size: calc(10px + 2vmin);
+  color: white;
+}
+
+.App-link {
+  color: #61dafb;
+}
+
+@keyframes App-logo-spin {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+body {
+  margin: 0;
+}
+
+/*Всегда пишем:*/
+html {
+  box-sizing: border-box;
+}
+
+/*Всегда пишем:*/
+*,
+*::before,
+*::after {
+  box-sizing: inherit;
+}
+
+/*Всегда пишем:*/
+.wrapper {
+  position: relative;
+  width: 100%;
+  overflow: hidden;
+  min-height: 100vh;
+  /*задавливание футера вниз*/
+  display: flex;
+  /*задавливание футера вниз*/
+  flex-direction: column;
+  /*задавливание футера вниз*/
+}
+
+/*Всегда пишем:*/
+.container {
+  max-width: 1330px;
+  /*компенсация паддингов по 15рх*/
+  padding: 0 15px;
+  margin: 0 auto;
+}
+
+/*Всегда пишем:*/
+img {
+  max-width: 100%;
+  height: auto;
+  vertical-align: top;
+}
+
+/*Всегда пишем:*/
+ul {
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+a {
+  text-decoration: none;
+}
+
+.section-skills {
+  padding: 100px 0 70px;
+}
+
+.section-skills .row {
+  display: flex;
+  align-items: center;
+  margin: 0 -15px;
+}
+
+.section-skills .col {
+  width: 50%;
+  padding: 0 15px;
+}
+
+.skill-holder .section-title {
+  margin: 0 0 50px;
+  font-size: 32px;
+  line-height: 1.15;
+}
+
+.skill-list {
+  max-width: 445px;
+  width: 100%;
+}
+
+.skill-item {
+  margin-bottom: 30px;
+}
+
+.skill-item:last-child {
+  margin-bottom: 0;
+}
+
+.skill-title {
+  font-size: 16px;
+  line-height: 1.6;
+  display: inline-block;
+  margin-bottom: 20px;
+  color: #727272;
+}
+
+.skill-loader {
+  position: relative;
+  height: 4px;
+  background: #c4c4c4;
+}
+
+.skill-load {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  background: #34547A;
+}
+
+.col-img {
+  background-position: center;
+  background-size: cover;
+  padding-top: 81%;
+}
+.my-work{
+  margin: auto;
+  position: relative;
+  background-color: lightgrey;
+}
+
+.my-work-text {
+  margin: auto;
+  text-align: center;
+  max-width: 40%;
+  font-size: 32px;
+}
+
+.my-work-video {
+  position: relative;
+  display: flex;
+  flex-wrap: nowrap;
+  
+}
+.video-main{
+  position: relative;
+  display: flex;
+  padding-bottom: 100px;
+  margin: auto;
+}
+.button-play{
+  position: absolute;
+  left: 48%;
+  top: 38%;
+}
+
+.section-gallery {
+  position: relative;
+  max-width: 1330px;
+  margin: auto;
+  background-color: #727272;
+
+}
+
+.gallery-list {
+  display: flex;
+  flex-wrap: wrap;
+
+}
+
+.gallery-item {
+  display: block;
+  height: 100px;
+  width: 25%;
+  padding-top: 25%;
+  background-size: cover;
+  background-position: center;
+  background-repeat: no-repeat;
+  position: relative;
+}
+
+.gallery-item:before {
+  content: '';
+  position: auto;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  background: rgba(52, 84, 122, 0.8);
+
+}
+
+.gallery-item:after {
+  content: '';
+  height: 58px;
+  width: 100px;
+  background: url('img/eye.png');
+  background-position: center;
+  background-repeat: no-repeat;
+  background-size: cover;
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+}
+
+.gallery-item:before,
+.gallery-item:after {
+  opacity: 0;
+  visibility: hidden;
+}
+
+.gallery-item:hover:before,
+.gallery-item:hover:after {
+  transition: opacity .3s ease-in-out;
+  opacity: 1;
+  visibility: visible;
+}
+.clients{
+  position: relative;
+  display: flex;
+  flex-wrap: nowrap;
+  max-width: 1330px;
+  height: 40%;
+  margin: auto;
+ 
+}
+.client-logo{
+ 
+  max-width: 15%;
+  justify-content: space-around;
+  flex-direction: row;
+  align-self: center;
+  margin: auto;
+}

+ 512 - 0
js/01_react/src/App.css

@@ -0,0 +1,512 @@
+body {
+  margin: 0;
+  font-family: 'Roboto';
+}
+
+@font-face {
+  font-family: 'Roboto';
+  src: url('Roboto-Regular.ttf');
+}
+
+/*Всегда пишем:*/
+html {
+  box-sizing: border-box;
+}
+
+/*Всегда пишем:*/
+*,
+*::before,
+*::after {
+  box-sizing: inherit;
+}
+
+.container-top {
+  max-width: 1330px;
+  /*компенсация паддингов по 15рх*/
+  padding: 0 15px;
+  margin: 0 auto;
+}
+
+ul {
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+a {
+  text-decoration: none;
+}
+
+.header-top {
+  background-color: lightgray;
+  padding: 20px 0;
+  position: relative;
+}
+
+.header-wrap-top {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.nav {
+  flex: auto;
+  flex-grow: 1;
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+
+.burger {
+  opacity: 0;
+  position: absolute;
+  left: -9999999px;
+}
+
+.opener {
+  position: relative;
+  height: 15px;
+  width: 20px;
+  cursor: pointer;
+}
+
+@media (min-width: 768px) {
+  .opener {
+      display: none;
+  }
+}
+
+.opener::before,
+.opener::after,
+.opener span {
+  FONT-WEIGHT: 200;
+  position: absolute;
+  height: 3px;
+  background: #000;
+  left: 0;
+  right: 0;
+}
+
+.opener::before,
+.opener::after {
+  content: '';
+}
+
+.opener::before {
+  top: 0;
+}
+
+.opener::after {
+  bottom: 0;
+}
+
+.opener span {
+  top: 16px;
+}
+
+.nav-list {
+  position: absolute;
+  top: 100%;
+  right: 0;
+  left: 0;
+  background: lightgray;
+  text-align: center;
+  opacity: 0;
+  visibility: hidden;
+}
+
+.burger:checked~.nav-list {
+  transition: opacity .3s ease-in-out;
+  opacity: 1;
+  visibility: visible;
+}
+
+.nav-item {
+  margin-bottom: 15px;
+}
+
+@media (min-width: 768px) {
+  .nav-list {
+      position: static;
+      display: flex;
+      align-items: center;
+      opacity: 1;
+      visibility: visible;
+  }
+
+  .nav-item {
+      margin-bottom: 0;
+  }
+
+  .nav-item+.nav-item {
+      padding-left: 15px;
+  }
+}
+
+.nav-link {
+  color: #000;
+}
+
+.nav-link:hover {
+  opacity: .7;
+}
+
+.banner {
+  background-color: lightgray;
+  margin: auto;
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  align-items: center;
+  flex: 1;
+  padding-bottom: 50px;
+}
+
+.banner-img {
+  width: 230px;
+  padding-top: 20px;
+}
+
+.banner-text {
+  width: 600px;
+  padding-left: 100px;
+}
+
+.banner-btn {
+  width: 170px;
+  height: 40px;
+  background-color: #34547A;
+  color: white;
+ 
+}
+
+.about {
+  display: block;
+  max-width: 470px;
+  text-align: center;
+  margin: auto;
+  padding-top: 50px;
+  padding-bottom: 50px;
+
+}
+
+.projects {
+  background-color: #34547A;
+  color: white;
+  height: 300px;
+  padding: 100px;
+
+
+}
+
+.projects-list {
+  display: flex;
+  justify-content: space-around;
+  width: 80%;
+  margin: auto;
+  flex-wrap: wrap;
+
+}
+
+.project-data {
+  display: flex;
+
+}
+
+.project-img {
+  padding: 20px;
+  background-color: transparent;
+}
+
+
+
+/*Всегда пишем:*/
+.wrapper {
+  position: relative;
+  width: 100%;
+  overflow: hidden;
+  min-height: 100vh;
+  /*задавливание футера вниз*/
+  display: flex;
+  /*задавливание футера вниз*/
+  flex-direction: column;
+  /*задавливание футера вниз*/
+  padding-top: 50px;
+  padding-bottom: 50px;
+}
+
+/*Всегда пишем:*/
+.container {
+  max-width: 1330px;
+  /*компенсация паддингов по 15рх*/
+  padding: 0 15px;
+  margin: 0 auto;
+}
+
+/*Всегда пишем:*/
+img {
+  max-width: 100%;
+  height: auto;
+  vertical-align: top;
+}
+
+/*Всегда пишем:*/
+ul {
+  list-style: none;
+  margin: 0;
+  padding: 0;
+}
+
+a {
+  text-decoration: none;
+}
+
+.section-skills {
+  padding: 100px 0 70px;
+}
+
+.section-skills .row {
+  display: flex;
+  align-items: center;
+  margin: 0 -15px;
+}
+
+.section-skills .col {
+  width: 50%;
+  padding: 0 15px;
+}
+
+.skill-holder .section-title {
+  margin: 0 0 50px;
+  font-size: 32px;
+  line-height: 1.15;
+}
+
+.skill-list {
+  max-width: 445px;
+  width: 100%;
+}
+
+.skill-item {
+  margin-bottom: 30px;
+}
+
+.skill-item:last-child {
+  margin-bottom: 0;
+}
+
+.skill-title {
+  font-size: 16px;
+  line-height: 1.6;
+  display: inline-block;
+  margin-bottom: 20px;
+  color: #727272;
+}
+
+.skill-loader {
+  position: relative;
+  height: 4px;
+  background: #c4c4c4;
+}
+
+.skill-load {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  background: #34547A;
+}
+
+.col-img {
+  background-position: center;
+  background-size: cover;
+  padding-top: 81%;
+}
+
+.my-work {
+  margin: auto;
+  position: relative;
+  background-color: lightgrey;
+  padding-top: 50px;
+  padding-bottom: 50px;
+}
+
+.my-work-text {
+  margin: auto;
+  text-align: center;
+  max-width: 40%;
+  font-size: 32px;
+}
+
+.my-work-video {
+  position: relative;
+  display: flex;
+  flex-wrap: nowrap;
+  width: 70%;
+  margin: auto;
+
+}
+
+.video-main {
+  position: relative;
+  display: flex;
+  padding-bottom: 100px;
+  margin: auto;
+  max-width:  800px;
+  ;
+}
+
+.button-play {
+  position: absolute;
+  left: 50%;
+  top: 38%;
+  padding-bottom: 700px;
+  margin-bottom: 700px;
+}
+
+.section-gallery {
+  position: relative;
+  /*max-width: 1330px;*/
+  margin: auto;
+  background-color: #727272;
+
+}
+
+.gallery-list {
+  display: flex;
+  flex-wrap: wrap;
+
+}
+
+.gallery-item {
+  display: block;
+  height: 100px;
+  width: 25%;
+  padding-top: 25%;
+  background-size: cover;
+  background-position: center;
+  background-repeat: no-repeat;
+  position: relative;
+}
+
+.gallery-item:before {
+  content: '';
+  position: absolute;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  background: rgba(52, 84, 122, 0.8);
+
+}
+
+.gallery-item:after {
+  content: '';
+  height: 58px;
+  width: 100px;
+  background: url('img/eye.png');
+  background-position: center;
+  background-repeat: no-repeat;
+  background-size: cover;
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  transform: translate(-50%, -50%);
+}
+
+.gallery-item:before,
+.gallery-item:after {
+  opacity: 0;
+  visibility: hidden;
+}
+
+.gallery-item:hover:before,
+.gallery-item:hover:after {
+  transition: opacity .3s ease-in-out;
+  opacity: 1;
+  visibility: visible;
+}
+
+.clients {
+  position: relative;
+  display: flex;
+  flex-wrap: nowrap;
+  max-width: 1330px;
+  height: 40%;
+  margin: auto;
+
+}
+
+.client-logo {
+
+  max-width: 15%;
+  justify-content: space-around;
+  flex-direction: row;
+  align-self: center;
+  margin: auto;
+}
+
+.client-form {
+  background-color: rgb(211, 211, 211);
+}
+
+.form-wrapper {
+  display: block;
+  justify-content: center;
+  width: 500px;
+  margin: auto;
+  text-align: center;
+
+}
+
+.form-name1 {
+  margin-left: 0px;
+  margin-right: 25px;
+  padding: 14px;
+
+}
+
+.form-name2 {
+  margin-left: 15spx;
+  margin-right: 0px;
+  padding: 14px;
+
+}
+
+.form-message {
+  margin-top: 18px;
+}
+
+.button-form {
+  margin-top: 18px;
+  width: 170px;
+  height: 40px;
+  background-color: #34547A;
+  color: white;
+  margin-bottom: 70px;
+}
+
+.footer {
+  background-color: #34547A;
+  min-height: 150px;
+  display: flex;
+  flex-wrap: nowrap;
+  justify-content: space-between;
+
+}
+
+.sign {
+  margin-left: 10%;
+  margin-top: 35px;
+  color: white;
+}
+
+.vk {
+  margin-right: 20%;
+  margin-top: 60px;
+
+}
+
+.vk-i {
+  padding: 0 13px 0 13px;
+}

+ 213 - 0
js/01_react/src/App.js

@@ -0,0 +1,213 @@
+/* проба отправить с уведомлением*/
+
+import logo from './logo.svg';
+import './App.css';
+const ProjectInfo=()=>
+<li className="project-item">
+<div className="project-data">
+  <div><img className="project-img" src="img/proj.png" alt="img" /></div>
+  <div className="project-txt">
+    <p>40+</p>
+    <p>проектов</p>
+  </div>
+</div>
+</li>
+const Projects = () =>
+<div className="projects">
+  <ul className="projects-list">
+    <ProjectInfo />
+    <ProjectInfo />
+    <ProjectInfo />
+    <ProjectInfo />
+    <ProjectInfo />
+    <ProjectInfo />
+  </ul>
+</div>
+const NavItem = ({text1}) => 
+<li className="nav-item">
+<a href="#" className="nav-link">{text1}</a>
+</li>
+
+function App() {
+  return (
+    <div>
+      <header className="header-topx">
+        <div className="container-top">
+          <div className="header-wrap-top">
+            <a href="#" className="logo-top">
+              <img src="img/wd.png" alt="logo" />
+            </a>
+            <nav className="nav">
+              <label className="opener" htmlFor="burger">
+                <span></span>
+              </label>
+              <input className="burger" type="checkbox" name="" id="burger" title="#" />
+              <ul className="nav-list">
+                <NavItem text1="ГЛАВНАЯ" />
+                <NavItem text1="ОБ АВТОРЕ" />
+                <NavItem text1="РАБОТЫ" />
+                <NavItem text1="ПРОЦЕСС" />
+                <NavItem text1="КОНТАКТЫ" />
+              </ul>
+            </nav>
+          </div>
+        </div>
+        <div className="banner">
+          <div className="banner-img">
+            <img src="img/frame.png" alt="img" />
+          </div>
+          <div className="banner-text">
+            <h2>Дизайн и верстка</h2>
+            <p>Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне.
+              Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI
+              века.</p>
+            <div><button className="banner-btn">НАПИСАТЬ МНЕ</button> </div>
+          </div>
+        </div>
+      </header>
+      <div className="about">
+        <h2>Обо мне</h2>
+        <p>Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне.
+          Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI
+          века.</p>
+      </div>
+      <Projects />
+      <div className="wrapper">
+
+        <header className="header">
+          <div className="container">
+            <div className="header-wrap">
+            </div>
+          </div>
+        </header>
+        <main className="main">
+          <section className="section-skills">
+            <div className="container">
+              <div className="row">
+                <div className="col">
+                  <div className="skill-holder">
+                    <header className="section-header">
+                      <h1 className="section-title">Мои
+                        навыки</h1>
+                    </header>
+                    <div className="skill-list">
+                      <div className="skill-item">
+                        <span className="skill-title">Adobe
+                          Photoshop</span>
+                        <div className="skill-loader">
+                          <div className="skill-load"
+                            style={{width: "80%" }}>
+                          </div>
+                        </div>
+                      </div>
+                      <div className="skill-item">
+                        <span className="skill-title">Adobe
+                          Photoshop</span>
+                        <div className="skill-loader">
+                          <div className="skill-load"
+                            style={{width: "90%"}}>
+                          </div>
+                        </div>
+                      </div>
+                      <div className="skill-item">
+                        <span className="skill-title">Adobe
+                          Photoshop</span>
+                        <div className="skill-loader">
+                          <div className="skill-load"
+                            style={{width: "60%"}}>
+                          </div>
+                        </div>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <div className="col">
+                  <div className="col-img"
+                    style={{ backgroundImage: "url(img/img.png)" }}>
+                  </div>
+                </div>
+              </div>
+            </div>
+          </section>
+          <section className="my-work">
+            <div className="my-work-text">
+              <h2>Как я работаю</h2>
+              <p>Lorem Ipsum - это текст-"рыба", часто используемый в печати и
+                вэб-дизайне.
+                Lorem Ipsum является стандартной "рыбой" для текстов на
+                латинице с
+                начала XVI века.</p>
+            </div>
+            <div className="my-work-video">
+              <img className="video-main" src="img/video.png" alt="my-work-video" />
+              <img src="img\button.png" alt="play button" className="button-play" />
+            </div>
+          </section>
+          <section className="section-gallery">
+            <div className="gallery-list">
+              <a href="#" className="gallery-item"
+                style={{backgroundImage: "url(img/pic1.png)"}} alt="img"></a>
+              <a href="#" className="gallery-item"
+                style={{backgroundImage: "url(img/pic2.png)"}} alt="img"></a>
+              <a href="#" className="gallery-item"
+                style={{backgroundImage: "url(img/pic1.png)"}} alt="img"></a>
+              <a href="#" className="gallery-item"
+                style={{backgroundImage: "url(img/pic2.png)"}} alt="img"></a>
+              <a href="#" className="gallery-item"
+                style={{backgroundImage: "url(img/pic2.png)"}} alt="img"></a>
+              <a href="#" className="gallery-item"
+                style={{backgroundImage: "url(img/pic1.png)"}} alt="img"></a>
+              <a href="#" className="gallery-item"
+                style={{backgroundImage: "url(img/pic2.png)"}} alt="img"></a>
+              <a href="#" className="gallery-item"
+                style={{backgroundImage: "url(img/pic1.png)"}} alt="img"></a>
+            </div>
+          </section>
+          <section className="clients">
+            <img className="client-logo" src="img\microsoft.png" alt="logo client" />
+            <img className="client-logo" src="img\microsoft.png" alt="logo client" />
+            <img className="client-logo" src="img\microsoft.png" alt="logo client" />
+            <img className="client-logo" src="img\microsoft.png" alt="logo client" />
+          </section>
+          <section className="client-form">
+            <div className="form-wrapper">
+              <h2 style={{paddingTop:"50px"}}>Хотите веб-сайт?</h2>
+              <p>Lorem Ipsum - это текст-"рыба", часто используемый в печати и
+                вэб-дизайне.
+                Lorem Ipsum является стандартной "рыбой" для текстов на латинице
+                с начала XVI
+                века.</p>
+              <div className="form table">
+                <div className="form-name">
+                  <input className="form-name1" placeholder="Ваше имя" size="25" />
+                  <input className="form-name2" placeholder="Ваш e-mail" size="25" />
+                  <textarea className="form-message" placeholder="Сообщение" rows="8"
+                    cols="62"></textarea>
+                  <button className="button-form">ОТПРАВИТЬ</button>
+
+
+                </div>
+              </div>
+
+            </div>
+          </section>
+        </main>
+        <footer className="footer">
+          <div className="sign">
+            <h3>Иванов Иван</h3>
+            <p>&#40;с&#41; 2018.Все права защищены.</p>
+          </div>
+          <div className="vk">
+            <img src="img/VK.png" alt="img" />
+            <img className="vk-i" src="img/VK.png" alt="img" />
+            <img src="img/VK.png" alt="img" />
+          </div>
+
+
+        </footer>
+      </div>
+    </div>
+  );
+}
+
+export default App;

+ 8 - 0
js/01_react/src/App.test.js

@@ -0,0 +1,8 @@
+import { render, screen } from '@testing-library/react';
+import App from './App';
+
+test('renders learn react link', () => {
+  render(<App />);
+  const linkElement = screen.getByText(/learn react/i);
+  expect(linkElement).toBeInTheDocument();
+});

BIN
js/01_react/src/Roboto-Regular.ttf


BIN
js/01_react/src/img/VK.png


BIN
js/01_react/src/img/button.png


BIN
js/01_react/src/img/eye.png


BIN
js/01_react/src/img/frame.png


BIN
js/01_react/src/img/img.png


BIN
js/01_react/src/img/microsoft.png


BIN
js/01_react/src/img/pic1.png


BIN
js/01_react/src/img/pic2.png


BIN
js/01_react/src/img/proj.png


BIN
js/01_react/src/img/video.png


BIN
js/01_react/src/img/wd.png


+ 13 - 0
js/01_react/src/index.css

@@ -0,0 +1,13 @@
+body {
+  margin: 0;
+  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
+    'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+    sans-serif;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+code {
+  font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
+    monospace;
+}

+ 17 - 0
js/01_react/src/index.js

@@ -0,0 +1,17 @@
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+import './index.css';
+import App from './App';
+import reportWebVitals from './reportWebVitals';
+
+const root = ReactDOM.createRoot(document.getElementById('root'));
+root.render(
+  <React.StrictMode>
+    <App />
+  </React.StrictMode>
+);
+
+// If you want to start measuring performance in your app, pass a function
+// to log results (for example: reportWebVitals(console.log))
+// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
+reportWebVitals();

File diff suppressed because it is too large
+ 1 - 0
js/01_react/src/logo.svg


+ 13 - 0
js/01_react/src/reportWebVitals.js

@@ -0,0 +1,13 @@
+const reportWebVitals = onPerfEntry => {
+  if (onPerfEntry && onPerfEntry instanceof Function) {
+    import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
+      getCLS(onPerfEntry);
+      getFID(onPerfEntry);
+      getFCP(onPerfEntry);
+      getLCP(onPerfEntry);
+      getTTFB(onPerfEntry);
+    });
+  }
+};
+
+export default reportWebVitals;

+ 5 - 0
js/01_react/src/setupTests.js

@@ -0,0 +1,5 @@
+// jest-dom adds custom jest matchers for asserting on DOM nodes.
+// allows you to do things like:
+// expect(element).toHaveTextContent(/react/i)
+// learn more: https://github.com/testing-library/jest-dom
+import '@testing-library/jest-dom';

+ 8 - 0
js/01_react/sshkeys

@@ -0,0 +1,8 @@
+-----BEGIN OPENSSH PRIVATE KEY-----
+b3BlbnNzaC1rZXktdjEAAAAACmFlczI1Ni1jdHIAAAAGYmNyeXB0AAAAGAAAABDMmN8mAd
+4JjZLN3dvLvuzUAAAAEAAAAAEAAAAzAAAAC3NzaC1lZDI1NTE5AAAAIFI/L8zsjfjNYXeA
+9yHQ+y4g0JfrCzb61WGzafrP5V+wAAAAoPciijRirE1iWaRpjXhBha/WNKAuROKD2GNtet
+7jy4WzHwF0YrbCmV4gM6TOIXRtdudesmeXVUzUql2/pKwT+yURVxzhF27LqDE9ChDZY/2i
+9SqnscodpFC/usqlRGgQCdrKdHNKfokrEjPHVmtaAayFmVA17odntIcxna7DZDesfCqq6l
+ANXF1OlHtrQjASTIOE7FLBkDGSbhunwxn4spA=
+-----END OPENSSH PRIVATE KEY-----

+ 1 - 0
js/01_react/sshkeys.pub

@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFI/L8zsjfjNYXeA9yHQ+y4g0JfrCzb61WGzafrP5V+w gennady.sht@gmail.com

+ 12 - 0
js/05/hw05_01.html

@@ -0,0 +1,12 @@
+<head>
+    <h1>ODD</h1>
+</head>
+
+<body>
+    <script>
+        const a = +prompt("Enter a number");
+        if (typeof a !== 'number') alert("non correct type");
+        if (a % 2) alert("odd");
+        else alert("ever");
+    </script>
+</body>

+ 14 - 0
js/05/hw05_02.html

@@ -0,0 +1,14 @@
+<head>
+    <h1>lexics</h1>
+</head>
+
+<body>
+    <script>
+        let phrase = prompt("Enter a phrase").toLowerCase();
+        if (phrase.indexOf("xyz") < 0 &&
+            phrase.indexOf("234") < 0 &&
+            phrase.indexOf("cvb") < 0)
+            alert("No fucking sheet...");
+        else alert("не хрен ругаться");
+    </script>
+</body>

+ 10 - 0
js/05/hw05_03.html

@@ -0,0 +1,10 @@
+<head>
+    <h1>Boolean</h1>
+</head>
+
+<body>
+    <script>
+        var b = confirm("Say Yes or No, please");
+        alert(b);
+    </script>
+</body>

+ 11 - 0
js/05/hw05_04.html

@@ -0,0 +1,11 @@
+<head>
+    <h1>Boolean: if</h1>
+</head>
+
+<body>
+    <script>
+        var b = confirm("Are You MAN? or WOMEN");
+        if (b == true) alert("You are MAN");
+        else alert("You are WOMEN")
+    </script>
+</body>

+ 35 - 0
js/05/hw05_05.html

@@ -0,0 +1,35 @@
+<head>
+    <h1>sizes</h1>
+</head>
+
+<body>
+    <script>
+        let sizePants = +prompt("Enter Your size of pants ");
+        let hipSize = +prompt("Enter Your hip size sm");
+        let sizeSocks = +prompt("Enter Your size of socks");
+        usaPants = "-";
+        sizeUsa = "-";
+        socksUsa = "-";
+        if (sizePants == 40) usaPants = "S or 6";
+        if (sizePants == 42) usaPants = "M or8";
+        if (sizePants == 44) usaPants = "10";
+        if (sizePants == 46) usaPants = "L or 12";
+        if (sizePants == 48) usaPants = "14";
+        if (sizePants == 50) usaPants = "XL or 16";
+        if (sizePants == 52) usaPants = "18";
+        if (sizePants == 54) usaPants = "XXL or 20";
+        if (hipSize >= 89 && hipSize <= 92) sizeUsa = "XXS";
+        if (hipSize >= 93 && hipSize <= 96) sizeUsa = "XS";
+        if (hipSize >= 97 && hipSize <= 101) sizeUsa = "S";
+        if (hipSize >= 102 && hipSize <= 104) sizeUsa = "M";
+        if (hipSize >= 105 && hipSize <= 108) sizeUsa = "L";
+        if (hipSize >= 109 && hipSize <= 112) sizeUsa = "XL";
+        if (hipSize >= 113 && hipSize <= 117) sizeUsa = "XXL";
+        if (hipSize >= 118 && hipSize <= 122) sizeUsa = "XXXL";
+        if (sizeSocks == 21) socksUsa = "8";
+        if (sizeSocks == 23) socksUsa = "9";
+        if (sizeSocks == 25) socksUsa = "10";
+        if (sizeSocks == 27) socksUsa = "11";
+        alert("Your Usa size of pants is:\n" + usaPants + "\n" + 'Your USA hip size is:\n' + sizeUsa + "\n" + "Your USA socks size is:\n" + socksUsa);
+    </script>
+</body>

+ 9 - 0
js/05/hw05_07.html

@@ -0,0 +1,9 @@
+<head>
+    <h1>Ternary</h1>
+</head>
+
+<body>
+    <script>
+        confirm("Are You MAN? or WOMEN") ? alert("You are MAN") : alert("You are WOMEN");
+    </script>
+</body>

+ 9 - 0
js/05/hw05_08.html

@@ -0,0 +1,9 @@
+<head>
+    <h1>Prompt: or</h1>
+</head>
+
+<body>
+    <script>
+        prompt("Enter Age") ? alert("OK") : alert("Missing age");
+    </script>
+</body>

+ 9 - 0
js/05/hw05_09.html

@@ -0,0 +1,9 @@
+<head>
+    <h1>or this days</h1>
+</head>
+
+<body>
+    <script>
+        confirm("ШОПИНГ???") ? alert("OK") : alert("Ты-бяка");
+    </script>
+</body>

+ 12 - 0
js/05/hw05_10.html

@@ -0,0 +1,12 @@
+<head>
+    <h1>Confirm: if this days</h1>
+</head>
+
+<body>
+    <script>
+        if (confirm("ШОПИНГ???"))
+            alert("OK");
+        else
+            alert("Ты-бяка");
+    </script>
+</body>

+ 12 - 0
js/05/hw05_11.html

@@ -0,0 +1,12 @@
+<head>
+    <h1>Default: or</h1>
+</head>
+
+<body>
+    <script>
+        let sName = prompt("Enter surname") || "Иванов";
+        let name = prompt("Enter name") || "Иван";
+        let fName = prompt("Enter father`s name") || "Иванович";
+        alert(sName + " " + name + " " + fName);
+    </script>
+</body>

+ 18 - 0
js/05/hw05_12.html

@@ -0,0 +1,18 @@
+<head>
+    <h1>Default: if</h1>
+</head>
+
+<body>
+    <script>
+        let sName = prompt("Enter surname");
+        if (!sName)
+            sName = "Иванов";
+        let name = prompt("Enter name");
+        if (!name)
+            name = "Иван";
+        let fName = prompt("Enter father`s name");
+        if (!fName)
+            fName = "Иванович";
+        alert(sName + " " + name + " " + fName);
+    </script>
+</body>

+ 20 - 0
js/05/hw05_13.html

@@ -0,0 +1,20 @@
+<head>
+    <h1>Login and password</h1>
+</head>
+
+<body>
+    <script>
+        let rightLogin = "admin";
+        let rigthtPass = "qwerty";
+        let login = prompt("Enter login");
+        let valid = login === rightLogin;
+        if (valid) {
+            let pass = prompt("Enter password");
+            valid = pass === rigthtPass;
+        }
+        if (valid)
+            alert("Congrats!!");
+        else
+            alert("wrong credentials!!! SUKA");
+    </script>
+</body>

+ 19 - 0
js/05/hw05_14.html

@@ -0,0 +1,19 @@
+<head>
+    <h1>Currency</h1>
+</head>
+
+<body>
+    <script>
+        let typeCurrency = prompt("Enter currency type").toLowerCase();
+        rate = 1.0;
+        let isBuy = confirm("Sale?");
+        if (typeCurrency === "usd")
+            rate = isBuy ? 40 : 43;
+        else if (typeCurrency === "eur")
+            rate = isBuy ? 39 : 41;
+        else if (typeCurrency === "pln")
+            rate = isBuy ? 7.5 : 7.8;
+        let sumMoney = +prompt("Enter amount");
+        alert((sumMoney * rate) + "UAH");
+    </script>
+</body>

+ 27 - 0
js/05/hw05_15.html

@@ -0,0 +1,27 @@
+<head>
+    <h1>Scissors</h1>
+</head>
+
+<body>
+    <script>
+        let userBid = +prompt("Enter bid 1-3  1=stone 2= scissors 3= paper");
+        if (1 >= userBid >= 3) {
+            alert(" Non correct bid");
+        }
+        else {
+            let machimeBid = Math.floor(Math.random() * 3 + 1);
+            alert(userBid + "   " + machimeBid);
+            if (userBid == machimeBid) {
+                alert("Nobody win");
+            }
+            else {
+                if ((userBid - machimeBid) > 1 ||
+                    ((machimeBid - userBid) <= 1 &&
+                    (machimeBid - userBid) >= 0))
+                    alert("Congrats, You WIN!");
+                else
+                    alert("Sorry, You WoN");
+            }
+        }
+    </script>
+</body>

+ 19 - 0
js/05/hw05_15_1.html

@@ -0,0 +1,19 @@
+<head>
+    <h1>Scissors</h1>
+</head>
+
+<body>
+    <script>
+        let userBid = +prompt("Enter bid 1-3  1=stone 2= scissors 3= paper");
+        let machimeBid = Math.floor(Math.random() * 3 + 1);
+        alert(userBid + "   " + machimeBid);
+        userBid == machimeBid ?
+            alert("Nobody win")  :
+            ((userBid - machimeBid) > 1 ||
+                ((machimeBid - userBid) <= 1 &&
+                    (machimeBid - userBid) >= 0)) ?
+                alert("Congrats, You WIN!")
+                :
+                alert("Sorry, You WoN");
+    </script>
+</body>

+ 169 - 0
js/05/hw_index.html

@@ -0,0 +1,169 @@
+<header>
+    CONTENT
+</header>
+
+<body>
+    <button onclick="odd();">odd</button>
+    <button onclick="lexics();">lexics</button>
+    <button onclick="boolean();">Boolean</button>
+    <button onclick="boolean_if();">boolean_if</button>
+    <button onclick="sizes();">sizes</button>
+    <button onclick="ternary();">Ternary</button>
+    <button onclick="prompt_or();">prompt_or</button>
+    <button onclick="orThisDays();">orThisDays</button>
+    <button onclick="ifThisDays();">ifThisDays</button>
+    <button onclick="defaultOr();">defaultOr</button>
+    <button onclick="defaultIf();">defaultIf</button>
+    <button onclick="loginAndPassword();">loginAndPassword</button>
+    <button onclick="currencyExchange();">currencyExchange</button>
+    <button onclick="scissors();">scissors</button>
+    <button onclick="blackBelt();">blackBelt</button>
+    <script>
+        function odd() {
+            const a = +prompt("Enter a number");
+            if (typeof a !== 'number') alert("non correct type");
+            if (a % 2) alert("odd");
+            else alert("ever");
+        }
+        function lexics() {
+            let phrase = prompt("Enter a phrase").toLowerCase();
+            if (phrase.indexOf("xyz") < 0 &&
+                phrase.indexOf("234") < 0 &&
+                phrase.indexOf("cvb") < 0)
+                alert("No fucking sheet...");
+            else alert("не хрен ругаться");
+        }
+        function boolean() {
+            var b = confirm("Say Yes or No, please");
+            alert(b);
+        }
+        function boolean_if() {
+            var b = confirm("Are You MAN? or WOMEN");
+            if (b == true) alert("You are MAN");
+            else alert("You are WOMEN")
+        }
+        function sizes() {
+            let sizePants = +prompt("Enter Your size of pants ");
+            let hipSize = +prompt("Enter Your hip size sm");
+            let sizeSocks = +prompt("Enter Your size of socks");
+            usaPants = "-";
+            sizeUsa = "-";
+            socksUsa = "-";
+            if (sizePants == 40) usaPants = "S or 6";
+            if (sizePants == 42) usaPants = "M or8";
+            if (sizePants == 44) usaPants = "10";
+            if (sizePants == 46) usaPants = "L or 12";
+            if (sizePants == 48) usaPants = "14";
+            if (sizePants == 50) usaPants = "XL or 16";
+            if (sizePants == 52) usaPants = "18";
+            if (sizePants == 54) usaPants = "XXL or 20";
+            if (hipSize >= 89 && hipSize <= 92) sizeUsa = "XXS";
+            if (hipSize >= 93 && hipSize <= 96) sizeUsa = "XS";
+            if (hipSize >= 97 && hipSize <= 101) sizeUsa = "S";
+            if (hipSize >= 102 && hipSize <= 104) sizeUsa = "M";
+            if (hipSize >= 105 && hipSize <= 108) sizeUsa = "L";
+            if (hipSize >= 109 && hipSize <= 112) sizeUsa = "XL";
+            if (hipSize >= 113 && hipSize <= 117) sizeUsa = "XXL";
+            if (hipSize >= 118 && hipSize <= 122) sizeUsa = "XXXL";
+            if (sizeSocks == 21) socksUsa = "8";
+            if (sizeSocks == 23) socksUsa = "9";
+            if (sizeSocks == 25) socksUsa = "10";
+            if (sizeSocks == 27) socksUsa = "11";
+            alert("Your Usa size of pants is:\n" + usaPants + "\n" + 'Your USA hip size is:\n' + sizeUsa + "\n" + "Your USA socks size is:\n" + socksUsa);
+        }
+        function ternary() {
+            confirm("Are You MAN? or WOMEN") ? alert("You are MAN") : alert("You are WOMEN");
+        }
+        function prompt_or() {
+            prompt("Enter Age") ? alert("OK") : alert("Missing age");
+        }
+        function orThisDays() {
+            confirm("ШОПИНГ???") ? alert("OK") : alert("Ты-бяка");
+        }
+        function ifThisDays() {
+            if (confirm("ШОПИНГ???"))
+                alert("OK");
+            else
+                alert("Ты-бяка");
+        }
+        function defaultOr() {
+            let sName = prompt("Enter surname") || "Иванов";
+            let name = prompt("Enter name") || "Иван";
+            let fName = prompt("Enter father`s name") || "Иванович";
+            alert(sName + " " + name + " " + fName);
+        }
+        function defaultIf() {
+            let sName = prompt("Enter surname");
+            if (!sName)
+                sName = "Иванов";
+            let name = prompt("Enter name");
+            if (!name)
+                name = "Иван";
+            let fName = prompt("Enter father`s name");
+            if (!fName)
+                fName = "Иванович";
+            alert(sName + " " + name + " " + fName);
+        }
+        function loginAndPassword() {
+            let rightLogin = "admin";
+            let rigthtPass = "qwerty";
+            let login = prompt("Enter login");
+            let valid = login === rightLogin;
+            if (valid) {
+                let pass = prompt("Enter password");
+                valid = pass === rigthtPass;
+            }
+            if (valid)
+                alert("Congrats!!");
+            else
+                alert("wrong credentials!!! SUKA");
+        }
+        function currencyExchange() {
+            let typeCurrency = prompt("Enter currency type").toLowerCase();
+            rate = 1.0;
+            let isBuy = confirm("Sale?");
+            if (typeCurrency === "usd")
+                rate = isBuy ? 40 : 43;
+            else if (typeCurrency === "eur")
+                rate = isBuy ? 39 : 41;
+            else if (typeCurrency === "pln")
+                rate = isBuy ? 7.5 : 7.8;
+            let sumMoney = +prompt("Enter amount");
+            alert((sumMoney * rate) + "UAH");
+        }
+        function scissors() {
+            let userBid = +prompt("Enter bid 1-3  1=stone 2= scissors 3= paper");
+            if (1 >= userBid >= 3) {
+                alert(" Non correct bid");
+            }
+            else {
+                let machimeBid = Math.floor(Math.random() * 3 + 1);
+                alert(userBid + "   " + machimeBid);
+                if (userBid == machimeBid) {
+                    alert("Nobody win");
+                }
+                else {
+                    if ((userBid - machimeBid) > 1 ||
+                        ((machimeBid - userBid) <= 1 &&
+                            (machimeBid - userBid) >= 0))
+                        alert("Congrats, You WIN!");
+                    else
+                        alert("Sorry, You WoN");
+                }
+            }
+        }
+        function blackBelt() {
+            let userBid = +prompt("Enter bid 1-3  1=stone 2= scissors 3= paper");
+            let machimeBid = Math.floor(Math.random() * 3 + 1);
+            alert(userBid + "   " + machimeBid);
+            userBid == machimeBid ?
+                alert("Nobody win") :
+                ((userBid - machimeBid) > 1 ||
+                    ((machimeBid - userBid) <= 1 &&
+                        (machimeBid - userBid) >= 0)) ?
+                    alert("Congrats, You WIN!")
+                    :
+                    alert("Sorry, You WoN");
+        }
+    </script>
+</body>