├── .gitignore
├── images
├── Icon.png
├── modal.png
├── Group-2.png
├── MyLogo.png
├── Vector.png
├── Menu-icon.png
├── Multipost.png
├── Icon -GitHub.png
├── github-icon.png
├── medium-icon.png
├── twitter-icon.png
├── webportfolio.png
├── Icon - Angelist.png
├── Icon - Linkedin.png
├── Icon - Twitter.png
├── Img Placeholder.png
├── ImgPlaceholder.png
├── angelist-icon.png
├── background-img.png
├── linkedin-icon.png
├── Img-Placeholder-2.png
├── 6-2-vector-free-download-png.png
├── Icon - Mail.svg
├── illustration-about me.svg
└── Illustration-header.svg
├── .hintrc
├── .eslintrc.json
├── .stylelintrc.json
├── package.json
├── LICENSE
├── .github
└── workflows
│ └── linters.yml
├── README.md
├── index.html
├── script.js
└── style.css
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
2 |
--------------------------------------------------------------------------------
/images/Icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Icon.png
--------------------------------------------------------------------------------
/images/modal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/modal.png
--------------------------------------------------------------------------------
/images/Group-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Group-2.png
--------------------------------------------------------------------------------
/images/MyLogo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/MyLogo.png
--------------------------------------------------------------------------------
/images/Vector.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Vector.png
--------------------------------------------------------------------------------
/images/Menu-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Menu-icon.png
--------------------------------------------------------------------------------
/images/Multipost.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Multipost.png
--------------------------------------------------------------------------------
/images/Icon -GitHub.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Icon -GitHub.png
--------------------------------------------------------------------------------
/images/github-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/github-icon.png
--------------------------------------------------------------------------------
/images/medium-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/medium-icon.png
--------------------------------------------------------------------------------
/images/twitter-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/twitter-icon.png
--------------------------------------------------------------------------------
/images/webportfolio.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/webportfolio.png
--------------------------------------------------------------------------------
/images/Icon - Angelist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Icon - Angelist.png
--------------------------------------------------------------------------------
/images/Icon - Linkedin.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Icon - Linkedin.png
--------------------------------------------------------------------------------
/images/Icon - Twitter.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Icon - Twitter.png
--------------------------------------------------------------------------------
/images/Img Placeholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Img Placeholder.png
--------------------------------------------------------------------------------
/images/ImgPlaceholder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/ImgPlaceholder.png
--------------------------------------------------------------------------------
/images/angelist-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/angelist-icon.png
--------------------------------------------------------------------------------
/images/background-img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/background-img.png
--------------------------------------------------------------------------------
/images/linkedin-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/linkedin-icon.png
--------------------------------------------------------------------------------
/images/Img-Placeholder-2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/Img-Placeholder-2.png
--------------------------------------------------------------------------------
/images/6-2-vector-free-download-png.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Abbas-Aljuaifari/The-Portfolio/HEAD/images/6-2-vector-free-download-png.png
--------------------------------------------------------------------------------
/.hintrc:
--------------------------------------------------------------------------------
1 | {
2 | "connector": {
3 | "name": "local",
4 | "options": {
5 | "pattern": ["**", "!.git/**", "!node_modules/**"]
6 | }
7 | },
8 | "extends": ["development"],
9 | "formatters": ["stylish"],
10 | "hints": [
11 | "button-type",
12 | "disown-opener",
13 | "html-checker",
14 | "meta-charset-utf-8",
15 | "meta-viewport",
16 | "no-inline-styles:error"
17 | ]
18 | }
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es6": true,
5 | "jest": true
6 | },
7 | "parser": "babel-eslint",
8 | "parserOptions": {
9 | "ecmaVersion": 2018,
10 | "sourceType": "module"
11 | },
12 | "extends": ["airbnb-base"],
13 | "rules": {
14 | "no-shadow": "off",
15 | "no-param-reassign": "off",
16 | "eol-last": "off",
17 | "import/extensions": [
18 | 1,
19 | {
20 | "js": "always",
21 | "json": "always"
22 | }
23 | ]
24 | },
25 | "ignorePatterns": ["dist/", "build/"]
26 | }
27 |
--------------------------------------------------------------------------------
/.stylelintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["stylelint-config-standard"],
3 | "plugins": ["stylelint-scss", "stylelint-csstree-validator"],
4 | "rules": {
5 | "at-rule-no-unknown": [
6 | true,
7 | {
8 | "ignoreAtRules": ["tailwind", "apply", "variants", "responsive", "screen"]
9 | }
10 | ],
11 | "scss/at-rule-no-unknown": [
12 | true,
13 | {
14 | "ignoreAtRules": ["tailwind", "apply", "variants", "responsive", "screen"]
15 | }
16 | ],
17 | "csstree/validator": true
18 | },
19 | "ignoreFiles": ["build/**", "dist/**", "**/reset*.css", "**/bootstrap*.css", "**/*.js", "**/*.jsx"]
20 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "portfolio_site",
3 | "version": "1.0.0",
4 | "description": "",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1"
8 | },
9 | "keywords": [],
10 | "author": "",
11 | "license": "ISC",
12 | "devDependencies": {
13 | "babel-eslint": "^10.1.0",
14 | "eslint": "^7.32.0",
15 | "eslint-config-airbnb-base": "^14.2.1",
16 | "eslint-plugin-import": "^2.27.5",
17 | "hint": "^2.0.0",
18 | "stylelint": "^13.13.1",
19 | "stylelint-config-standard": "^21.0.0",
20 | "stylelint-csstree-validator": "^1.9.0",
21 | "stylelint-scss": "^3.21.0"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 Abbas Aljuaifari
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/images/Icon - Mail.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.github/workflows/linters.yml:
--------------------------------------------------------------------------------
1 | name: Linters
2 |
3 | on: pull_request
4 |
5 | env:
6 | FORCE_COLOR: 1
7 |
8 | jobs:
9 | lighthouse:
10 | name: Lighthouse
11 | runs-on: ubuntu-22.04
12 | steps:
13 | - uses: actions/checkout@v3
14 | - uses: actions/setup-node@v3
15 | with:
16 | node-version: "18.x"
17 | - name: Setup Lighthouse
18 | run: npm install -g @lhci/cli@0.11.x
19 | - name: Lighthouse Report
20 | run: lhci autorun --upload.target=temporary-public-storage --collect.staticDistDir=.
21 | webhint:
22 | name: Webhint
23 | runs-on: ubuntu-22.04
24 | steps:
25 | - uses: actions/checkout@v3
26 | - uses: actions/setup-node@v3
27 | with:
28 | node-version: "18.x"
29 | - name: Setup Webhint
30 | run: |
31 | npm install --save-dev hint@7.x
32 | [ -f .hintrc ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/html-css-js/.hintrc
33 | - name: Webhint Report
34 | run: npx hint .
35 | stylelint:
36 | name: Stylelint
37 | runs-on: ubuntu-22.04
38 | steps:
39 | - uses: actions/checkout@v3
40 | - uses: actions/setup-node@v3
41 | with:
42 | node-version: "18.x"
43 | - name: Setup Stylelint
44 | run: |
45 | npm install --save-dev stylelint@13.x stylelint-scss@3.x stylelint-config-standard@21.x stylelint-csstree-validator@1.x
46 | [ -f .stylelintrc.json ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/html-css-js/.stylelintrc.json
47 | - name: Stylelint Report
48 | run: npx stylelint "**/*.{css,scss}"
49 | eslint:
50 | name: ESLint
51 | runs-on: ubuntu-22.04
52 | steps:
53 | - uses: actions/checkout@v3
54 | - uses: actions/setup-node@v3
55 | with:
56 | node-version: "18.x"
57 | - name: Setup ESLint
58 | run: |
59 | npm install --save-dev eslint@7.x eslint-config-airbnb-base@14.x eslint-plugin-import@2.x babel-eslint@10.x
60 | [ -f .eslintrc.json ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/html-css-js/.eslintrc.json
61 | - name: ESLint Report
62 | run: npx eslint .
63 | nodechecker:
64 | name: node_modules checker
65 | runs-on: ubuntu-22.04
66 | steps:
67 | - uses: actions/checkout@v3
68 | - name: Check node_modules existence
69 | run: |
70 | if [ -d "node_modules/" ]; then echo -e "\e[1;31mThe node_modules/ folder was pushed to the repo. Please remove it from the GitHub repository and try again."; echo -e "\e[1;32mYou can set up a .gitignore file with this folder included on it to prevent this from happening in the future." && exit 1; fi
71 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
The Portfolio
8 |
9 |
10 |
11 |
12 |
13 | # 📗 Table of Contents
14 |
15 | - [📖 About the Project](#about-project)
16 | - [🛠 Built With](#built-with)
17 | - [Key Features](#key-features)
18 | - [🚀 Live Demo](#live-demo)
19 | - [💻 Getting Started](#getting-started)
20 | - [Setup](#setup)
21 | - [Prerequisites](#prerequisites)
22 | - [Install](#install)
23 | - [Usage](#usage)
24 | - [Run tests](#run-tests)
25 | - [👥 Authors](#authors)
26 | - [🔭 Future Features](#future-features)
27 | - [🤝 Contributing](#contributing)
28 | - [⭐️ Show your support](#support)
29 | - [🙏 Acknowledgements](#acknowledgements)
30 | - [📝 License](#license)
31 |
32 |
33 |
34 | # 📖 [The-Portfolio]
35 |
36 | **[The-Portfolio]** In this project, I'm learning how to set up a professional interface and set up my first mobile version portfolio that presents the work on my projects it is still on going and it needs more work but everything is coming together soon!
37 |
38 | ## 🛠 Built With
39 |
40 |
41 | Client
42 |
47 |
48 |
49 |
50 |
51 | ### Key Features
52 |
53 | - **[HTML Form]**
54 | - **[Semantic tags]**
55 | - **[CSS Flexbox]**
56 | - **[CSS Grid]**
57 | - **[Responiveness]**
58 | - **[ Javascript ]**
59 |
60 | (back to top )
61 |
62 |
63 |
64 | ## 🚀 Live Demo
65 |
66 | - [Live Demo Link](https://abbas-aljuaifari.github.io/The-Portfolio/)
67 |
68 | (back to top )
69 |
70 |
71 |
72 | ## 💻 Getting Started
73 |
74 | To get a local copy up and running, follow these steps downbelow!
75 |
76 | ### Prerequisites
77 |
78 | In order to run this project you need:
79 |
80 | - Web browser
81 | - Git-syn
82 | - Code editor
83 |
84 | ### Setup
85 |
86 | Clone this repository to your desired folder:
87 |
88 | git clone https://github.com/Abbas-Aljuaifari/The-Portfolio.git
89 |
90 | ### Install
91 |
92 | Install this project run the command:
93 |
94 | ```
95 |
96 | npm install
97 |
98 | ```
99 |
100 | ### Usage
101 |
102 | To run the project:
103 |
104 | - Clone this repo to your local machine.
105 |
106 | ### Run tests
107 |
108 | To run tests, run the following command:
109 |
110 | - Track HTML linter errors run:
111 |
112 | ```
113 | npx hint .
114 | ```
115 |
116 | - Track CSS linter errors run:
117 |
118 | ```
119 | npx stylelint "**/*.{css,scss}"
120 | ```
121 |
122 | - Track JavaScript linter errors run:
123 |
124 | ```
125 | npx eslint .
126 | ```
127 |
128 | (back to top )
129 |
130 |
131 |
132 | ## 👥 Author
133 |
134 | 👤 **Abbas-Aljuaifari**
135 |
136 | - GitHub: [@Abbas-Aljuaifari](https://github.com/Abbas-Aljuaifari)
137 | - LinkedIn: [Abbas(fares)Aljuaifari](https://www.linkedin.com/in/abbas-aljuaifari-17a018261/)
138 |
139 | (back to top )
140 |
141 |
142 |
143 | ## :busts_in_silhouette: Collabrations
144 |
145 | :bust_in_silhouette: **JansueT**
146 |
147 | - GitHub: [@githubhandle](https://github.com/JansueT)
148 | - instagram: [@cansuetas](https://instagram.com/cansuetas)
149 | - twitter: [@cansu8tas](https://twitter.com/cansu8tas)
150 | - linkedIn: [@LinkedIn](https://www.linkedin.com/in/cansu-tas-467844251/)
151 |
152 |
153 |
154 | ## 🔭 Future Features
155 |
156 | - **[ Add more soled animations and transition ]**
157 | - **[ PC Version ]**
158 | - **[ Update my showcase section ]**
159 |
160 | (back to top )
161 |
162 |
163 |
164 | ## 🤝 Contributing
165 |
166 | Contributions, issues, and feature requests are welcome!
167 |
168 | Feel free to check the [issues page](../../issues/).
169 |
170 | (back to top )
171 |
172 |
173 |
174 | ## ⭐️ Show your support
175 |
176 | If you like this project follow me on github!
177 |
178 | - GitHub: [@Abbas-Aljuaifari](https://github.com/Abbas-Aljuaifari)
179 |
180 | (back to top )
181 |
182 |
183 |
184 | ## 🙏 Acknowledgments
185 |
186 | I would like to thank my team on supporting me with this journey!
187 |
188 | (back to top )
189 |
190 |
191 |
192 | ## 📝 License
193 |
194 | This project is [MIT](./LICENSE) licensed.
195 |
196 | (back to top )
197 |
--------------------------------------------------------------------------------
/images/illustration-about me.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
--------------------------------------------------------------------------------
/images/Illustration-header.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Abbas Aljuaifari
8 |
9 |
10 |
11 |
12 |
13 |
20 |
21 |
22 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
46 |
47 |
48 |
49 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 | I can help you build a product , feature or website Look through
79 | some of my work and experience! If you like what you see and have a
80 | project you need coded, don’t hesitate to contact me.
81 |
82 |
83 |
84 |
85 |
127 |
128 |
129 |
130 |
131 |
My Recent Works
132 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 | Hello I'm a software developer! I can help you build a product ,
154 | feature or website Look through some of my work and experience! If
155 | you like what you see and have a project you need coded, don't
156 | hestiate to contact me.
157 |
158 |
159 | Get My Resume
160 |
161 |
162 |
163 |
164 |
165 |
166 |
175 |
176 |
177 |
178 |
179 |
180 |
200 | Javascript
201 | Ruby
202 | Html
203 | Css
204 |
205 |
206 |
219 | React.js
220 | Ruby on Ralis
221 | RSpec
222 | Capybara
223 |
224 |
225 |
244 | Version Control
245 | CLI
246 | API Design
247 | web Development
248 |
249 |
250 |
251 |
252 |
298 |
299 |
300 |
341 |
342 |
343 |
344 |
--------------------------------------------------------------------------------
/script.js:
--------------------------------------------------------------------------------
1 | const unionButton = document.querySelector('.menu-button');
2 | const crossButton = document.querySelector('.cross-button');
3 | const hamBar = document.querySelector('.ham-bar');
4 | const scrollToLinks = document.querySelectorAll('.scroll');
5 |
6 | function showMobileMenu() {
7 | hamBar.style.display = 'block';
8 | }
9 |
10 | function hideMobileMenu() {
11 | hamBar.style.display = 'none';
12 | }
13 |
14 | function scrollSection(sectionId) {
15 | const section = document.getElementById(sectionId);
16 | if (section) {
17 | section.scrollIntoView({ behavior: 'smooth' });
18 | }
19 | }
20 |
21 | scrollToLinks.forEach((link) => {
22 | link.addEventListener('click', (event) => {
23 | event.preventDefault();
24 | const sectionId = link.getAttribute('href');
25 | scrollSection(sectionId);
26 | hideMobileMenu();
27 | });
28 | });
29 |
30 | unionButton.addEventListener('click', showMobileMenu);
31 | crossButton.addEventListener('click', hideMobileMenu);
32 |
33 | document.addEventListener('DOMContentLoaded', () => {
34 | const form = document.getElementById('contact-forms');
35 | const username = document.getElementById('fullname');
36 | const email = document.getElementById('email');
37 |
38 | function setError(elm, msg) {
39 | const inputControl = elm.parentElement;
40 | const errorDiv = inputControl.querySelector('.error');
41 | errorDiv.innerText = msg;
42 | inputControl.classList.add('error');
43 | }
44 |
45 | function clearError(elm) {
46 | const inputControl = elm.parentElement;
47 | const errorDiv = inputControl.querySelector('.error');
48 | errorDiv.innerText = '';
49 | inputControl.classList.remove('error');
50 | }
51 |
52 | function isLowerCase(str) {
53 | return str === str.toLowerCase();
54 | }
55 |
56 | function validateFormInputs() {
57 | const usernameValue = username.value.trim();
58 | const emailValue = email.value.trim();
59 |
60 | clearError(username);
61 | clearError(email);
62 |
63 | if (usernameValue === '') {
64 | setError(username, 'Full Name is required');
65 | }
66 |
67 | if (emailValue === '') {
68 | setError(email, 'Email is required');
69 | } else if (!isLowerCase(emailValue)) {
70 | setError(email, 'Email must be in lowercase');
71 | } else {
72 | // Validation is OK, submit the form
73 | form.submit();
74 | }
75 | }
76 |
77 | form.addEventListener('submit', (event) => {
78 | event.preventDefault();
79 | validateFormInputs();
80 | });
81 | });
82 |
83 | // Work Projects Data
84 |
85 | const projects = [
86 | {
87 | main: true,
88 | name: 'Multi-Post Stories',
89 | image: './images/Img Placeholder.png',
90 | image2: './images/ImgPlaceholder.png',
91 | image3: './images/modal.png',
92 | description:
93 | 'A daily selection of privately personalized reads; no accounts or sign-ups required. This has been the industrys standard dummy text ever since the 1500s, when an unknown printer took a standard dummy text.',
94 | tags: ['HTML', 'CSS', 'Bootstrap', 'Ruby'],
95 | demoLink: 'https://abbas-aljuaifari.github.io/The-Portfolio/',
96 | codeLink: 'https://github.com/Abbas-Aljuaifari/The-Portfolio',
97 | },
98 |
99 | {
100 | main: false,
101 | name: 'Profesional Art Printing Data More',
102 | image: './images/Img-Placeholder-2.png',
103 | image2: './images/ImgPlaceholder.png',
104 | image3: './images/6-2-vector-free-download-png.png',
105 | description:
106 | 'A daily selection of privately personalized reads; no accounts or sign-ups required. Has been the industrys standard.',
107 | tags: ['HTML', 'Bootstrap', 'Ruby'],
108 | demoLink: 'https://abbas-aljuaifari.github.io/The-Portfolio/',
109 | codeLink: 'https://github.com/Abbas-Aljuaifari/The-Portfolio',
110 | },
111 | {
112 | main: false,
113 | name: 'Multi-Post Stories',
114 | image: './images/Multipost.png',
115 | image2: './images/ImgPlaceholder.png',
116 | image3: './images/Img Placeholder.png',
117 | description:
118 | 'A daily selection of privately personalized reads; no accounts or sign-ups required. Has been the industrys standard.',
119 | tags: ['HTML', 'Bootstrap', 'Ruby'],
120 | demoLink: 'https://abbas-aljuaifari.github.io/The-Portfolio/',
121 | codeLink: 'https://github.com/Abbas-Aljuaifari/The-Portfolio',
122 | },
123 | {
124 | main: false,
125 | name: 'Website Portfolio ',
126 | image: './images/webportfolio.png',
127 | image2: './images/ImgPlaceholder.png',
128 | image3: './images/modal.png',
129 | description:
130 | 'A daily selection of privately personalized reads; no accounts or sign-ups required. Has been the industrys standard.',
131 | tags: ['HTML', 'Bootstrap', 'Ruby'],
132 | demoLink: 'https://abbas-aljuaifari.github.io/The-Portfolio/',
133 | codeLink: 'https://github.com/Abbas-Aljuaifari/The-Portfolio',
134 | },
135 |
136 | {
137 | main: false,
138 | name: 'Profesional Art Printing Data More',
139 | image: './images/Img-Placeholder-2.png',
140 | image2: './images/ImgPlaceholder.png',
141 | image3: './images/6-2-vector-free-download-png.png',
142 | description:
143 | 'A daily selection of privately personalized reads; no accounts or sign-ups required. Has been the industrys standard.',
144 | tags: ['HTML', 'Bootstrap', 'Ruby'],
145 | demoLink: 'https://abbas-aljuaifari.github.io/The-Portfolio/',
146 | codeLink: 'https://github.com/Abbas-Aljuaifari/The-Portfolio',
147 | },
148 | {
149 | main: false,
150 | name: 'Multi-Post Stories',
151 | image: './images/Multipost.png',
152 | image2: './images/ImgPlaceholder.png',
153 | image3: './images/Img Placeholder.png',
154 | description:
155 | 'A daily selection of privately personalized reads; no accounts or sign-ups required. Has been the industrys standard.',
156 | tags: ['HTML', 'Bootstrap', 'Ruby'],
157 | demoLink: 'https://abbas-aljuaifari.github.io/The-Portfolio/',
158 | codeLink: 'https://github.com/Abbas-Aljuaifari/The-Portfolio',
159 | },
160 | {
161 | main: false,
162 | name: 'Website Portfolio ',
163 | image: './images/webportfolio.png',
164 | image2: './images/ImgPlaceholder.png',
165 | image3: './images/modal.png',
166 | description:
167 | 'A daily selection of privately personalized reads; no accounts or sign-ups required. Has been the industrys standard.',
168 | tags: ['HTML', 'Bootstrap', 'Ruby'],
169 | demoLink: 'https://abbas-aljuaifari.github.io/The-Portfolio/',
170 | codeLink: 'https://github.com/Abbas-Aljuaifari/The-Portfolio',
171 | },
172 | ];
173 |
174 | const projectsContainer = document.querySelector('#main-grid');
175 | const projectCardsContainer = document.querySelector('#card-holder');
176 |
177 | projects.forEach((project, index) => {
178 | if (project.main) {
179 | const tagsList = project.tags
180 | .map((tag) => `${tag} `)
181 | .join('');
182 |
183 | const projectDisplay = `
184 |
185 |
186 |
${project.name}
187 |
188 | ${project.description}
189 |
190 |
193 |
See Project
194 |
195 | `;
196 |
197 | projectsContainer.innerHTML = `
198 |
199 | ${projectDisplay}
200 |
201 | `;
202 | } else {
203 | const tagsList = project.tags
204 | .map((tag) => `${tag} `)
205 | .join('');
206 |
207 | const projectCard = `
208 |
209 |
210 | ${project.name}
211 |
212 |
213 | ${project.description}
214 |
215 |
218 |
219 |
222 | `;
223 |
224 | const cardHolder = document.createElement('div');
225 | cardHolder.classList.add('work-card');
226 | cardHolder.style.backgroundImage = `url(${project.image})`;
227 | cardHolder.innerHTML = projectCard;
228 |
229 | // Add event listener to change background image on hover
230 | cardHolder.addEventListener('mouseenter', () => {
231 | cardHolder.style.backgroundImage = `url(${project.image2})`;
232 | });
233 | cardHolder.addEventListener('mouseleave', () => {
234 | cardHolder.style.backgroundImage = `url(${project.image})`;
235 | });
236 |
237 | projectCardsContainer.appendChild(cardHolder);
238 | }
239 | });
240 |
241 | // Deatils Popup window
242 |
243 | const popup = document.createElement('div');
244 | function createPopup(project) {
245 | popup.innerHTML = `
246 | `;
324 | document.body.appendChild(popup);
325 | }
326 |
327 | const buttons = document.querySelectorAll('.card-button, .project-button');
328 |
329 | buttons.forEach((button, index) => {
330 | button.addEventListener('click', () => {
331 | const project = projects[index];
332 | createPopup(project);
333 |
334 | const xPopup = document.getElementById('x-popup');
335 | xPopup.addEventListener('click', () => {
336 | popup.remove();
337 | });
338 | });
339 | });
340 |
--------------------------------------------------------------------------------
/style.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --my-font-crete: "Crete Round", serif;
3 | --font-sans: "Roboto", sans-serif;
4 | --font-inter: "Inter", sans-serif;
5 | --nav-background: #3c3a39;
6 | --main-background: #1c1a19;
7 | --font-white: #fff;
8 | --font-orange: #ff6b00;
9 | --font-blue: #091e42;
10 | --font-contact-form: #172b4d;
11 | --font-black: #000;
12 | --border-menu: #6f6c6b;
13 | --font-menu: #fff5e1;
14 | }
15 |
16 | /* Base */
17 | *,
18 | ::after,
19 | ::before {
20 | box-sizing: border-box;
21 | padding: 0;
22 | margin: 0;
23 | scroll-behavior: smooth;
24 | text-decoration: none;
25 | outline: none;
26 | border: none;
27 | }
28 |
29 | body {
30 | background-color: var(--main-background);
31 | color: var(--font-white);
32 | font-family: var(--font-inter);
33 | font-style: normal;
34 | }
35 |
36 | a {
37 | text-decoration: none;
38 | color: var(--font-white);
39 | }
40 |
41 | ul {
42 | list-style-type: none;
43 | }
44 |
45 | .flex-center {
46 | display: flex;
47 | align-items: center;
48 | }
49 |
50 | .btn {
51 | font-family: var(--font-inter);
52 | color: var(--font-white);
53 | background: var(--font-orange);
54 | padding: 12px;
55 | gap: 10px;
56 | font-style: normal;
57 | font-weight: 700;
58 | font-size: 17px;
59 | line-height: 24px;
60 | letter-spacing: 0.03em;
61 | cursor: pointer;
62 | }
63 |
64 | .btn:hover {
65 | background: #fff5e1;
66 | border: 1px solid var(--font-orange);
67 | color: var(--font-orange);
68 | }
69 |
70 | .btn:active {
71 | background: #e05304;
72 | color: var(--font-white);
73 | }
74 |
75 | .btn:disabled {
76 | background: #f4f1f0;
77 | color: #5b5957;
78 | }
79 |
80 | /* Navbar */
81 |
82 | .head-nav-lists {
83 | display: none;
84 | }
85 |
86 | .header {
87 | background: var(--nav-background);
88 | display: flex;
89 | justify-content: space-between;
90 | align-items: center;
91 | padding: 30px 20px;
92 | font-family: var(--font-sans);
93 | font-weight: 700;
94 | font-size: 18px;
95 | height: 10vh;
96 | }
97 |
98 | .menu-button {
99 | display: flex;
100 | justify-content: center;
101 | width: 24px;
102 | height: 24px;
103 | border: none;
104 | background-color: transparent;
105 | cursor: pointer;
106 | }
107 |
108 | .open {
109 | background: url("./images/Menu-icon.png") no-repeat;
110 | padding: 20px;
111 | }
112 |
113 | /* navbar starts */
114 |
115 | .ham-bar {
116 | position: absolute;
117 | height: 100%;
118 | width: 100%;
119 | background-color: var(--nav-background);
120 | display: none;
121 | }
122 |
123 | .ham-menu-options a {
124 | text-decoration: none;
125 | }
126 |
127 | .ham-menu-options {
128 | padding-top: 60px;
129 | padding-left: 17px;
130 | }
131 |
132 | .ham-menu-list {
133 | color: var(--font-menu);
134 | font-style: normal;
135 | font-weight: 700;
136 | font-size: 32px;
137 | list-style: none;
138 | padding-left: 20px;
139 | margin: 20px 20px;
140 | border-bottom: 1px solid var(--border-menu);
141 | display: block;
142 | line-height: 44px;
143 | }
144 |
145 | .cross-button {
146 | background: none;
147 | border: none;
148 | float: right;
149 | padding-right: 29px;
150 | padding-top: 39px;
151 | cursor: pointer;
152 | }
153 |
154 | .union-bar {
155 | padding-right: 6%;
156 | padding-top: 1.2%;
157 | }
158 |
159 | .menu-options {
160 | display: none;
161 | }
162 |
163 | /* main */
164 |
165 | .home-section {
166 | height: 590px;
167 | display: flex;
168 | justify-content: center;
169 | flex-direction: column;
170 | padding: 20px;
171 | background-color: var(--main-background);
172 | align-items: flex-start;
173 | line-height: 24px;
174 | gap: 12px;
175 | background-image: url("./images/background-img.png");
176 | background-repeat: no-repeat;
177 | background-position-x: 100%;
178 | background-position-y: 115%;
179 | }
180 |
181 | .home-page-header {
182 | font-family: var(--my-font-crete);
183 | color: var(--font-orange);
184 | font-weight: 400;
185 | font-size: 56px;
186 | letter-spacing: 0.37px;
187 | line-height: 114%;
188 | }
189 |
190 | .discription-header {
191 | font-family: var(--font-sans);
192 | font-weight: bold;
193 | font-size: 24px;
194 | display: flex;
195 | align-items: center;
196 | margin: 10px 0;
197 | }
198 |
199 | .discription-paragraph {
200 | font-family: "Poppins", sans-serif;
201 | font-weight: 400;
202 | font-size: 16px;
203 | line-height: 24px;
204 | }
205 |
206 | .media-icons-container {
207 | display: flex;
208 | align-items: center;
209 | }
210 |
211 | .media-icon {
212 | margin: 5px;
213 | }
214 |
215 | /* work section */
216 |
217 | .work-section-container {
218 | width: 100%;
219 | background: var(--font-white);
220 | color: var(--main-background);
221 | padding: 20px 1.4rem;
222 | }
223 |
224 | .work-title-card {
225 | width: 100%;
226 | display: grid;
227 | grid-template-columns: 1fr;
228 | gap: 2.4rem;
229 | margin-bottom: 80px;
230 | }
231 |
232 | .work-project-display {
233 | width: 100%;
234 | display: grid;
235 | grid-template-columns: 1fr;
236 | gap: 2.4rem;
237 | margin-bottom: 80px;
238 | }
239 |
240 | .work-title-heading {
241 | margin-top: 100px;
242 | font-weight: 400;
243 | font-size: 40px;
244 | line-height: 52px;
245 | font-family: var(--my-font-crete);
246 | font-style: normal;
247 | }
248 |
249 | .title-separator {
250 | width: calc(90% - 0px / 2 + 0.5px);
251 | }
252 |
253 | .placeholder-image {
254 | width: 100%;
255 | }
256 |
257 | .work-title-post {
258 | display: flex;
259 | flex-direction: column;
260 | align-items: flex-start;
261 | gap: 12px;
262 | }
263 |
264 | .post-heading {
265 | font-size: 32px;
266 | font-family: var(--my-font-crete);
267 | font-style: normal;
268 | font-weight: 400;
269 | line-height: 44px;
270 | color: var(--font-blue);
271 | }
272 |
273 | .post-description {
274 | color: var(--font-blue);
275 | font-family: var(--font-inter);
276 | font-style: normal;
277 | font-weight: 400;
278 | font-size: 16px;
279 | line-height: 24px;
280 | }
281 |
282 | .tag-list {
283 | display: flex;
284 | flex-direction: row;
285 | padding: 0;
286 | gap: 12px;
287 | }
288 |
289 | .tag-items {
290 | box-sizing: border-box;
291 | padding: 10px 12px;
292 | background: var(--font-white);
293 | border: 1px solid #8993a4;
294 | font-family: var(--font-inter);
295 | font-style: normal;
296 | font-weight: 500;
297 | font-size: 15px;
298 | line-height: 20px;
299 | color: var(--font-blue);
300 | }
301 |
302 | .card-holder {
303 | display: grid;
304 | grid-template-columns: 1fr;
305 | row-gap: 24px;
306 | }
307 |
308 | .work-card {
309 | display: flex;
310 | flex-direction: column;
311 | background-size: cover;
312 | padding-top: 72px;
313 | transition: background-image 0.3s ease;
314 | }
315 |
316 | .info-holder {
317 | display: flex;
318 | flex-direction: column;
319 | align-items: flex-start;
320 | padding: 8px 16px;
321 | gap: 12px;
322 | color: var(--font-white);
323 | }
324 |
325 | .project-heading {
326 | font-family: var(--my-font-crete);
327 | font-style: normal;
328 | font-weight: 400;
329 | font-size: 32px;
330 | line-height: 44px;
331 | }
332 |
333 | .card-description {
334 | font-family: var(--font-inter);
335 | font-style: normal;
336 | font-weight: 400;
337 | font-size: 16px;
338 | line-height: 24px;
339 | }
340 |
341 | .card-items {
342 | padding: 10px 12px;
343 | background-color: #fff3;
344 | font-family: var(--font-inter);
345 | font-style: normal;
346 | font-weight: 500;
347 | font-size: 15px;
348 | line-height: 20px;
349 | }
350 |
351 | .button-section {
352 | margin-top: 22px;
353 | }
354 |
355 | .card-button {
356 | padding: 13px 0;
357 | justify-content: center;
358 | letter-spacing: 0.03em;
359 | }
360 |
361 | .work-card:hover .info-holder {
362 | opacity: 0;
363 | }
364 |
365 | /* About */
366 |
367 | .about {
368 | text-align: center;
369 | background: var(--main-background);
370 | padding: 0%;
371 | margin: 0%;
372 | }
373 |
374 | .about-me-header {
375 | font-family: var(--my-font-crete);
376 | color: var(--font-orange);
377 | font-style: normal;
378 | font-weight: 400;
379 | font-size: 72px;
380 | line-height: 88px;
381 | letter-spacing: 0.37px;
382 | padding-top: 100px;
383 | }
384 |
385 | .about-me-description {
386 | margin: 20px;
387 | text-align: left;
388 | font-family: var(--font-inter);
389 | font-style: normal;
390 | font-weight: 400;
391 | font-size: 16px;
392 | line-height: 24px;
393 | color: #fff;
394 | }
395 |
396 | .my-resume-button {
397 | margin: 10px 20px;
398 | font-family: var(--font-inter);
399 | color: var(--font-white);
400 | background: var(--font-orange);
401 | padding: 12px;
402 | gap: 10px;
403 | font-style: normal;
404 | font-weight: 700;
405 | font-size: 17px;
406 | line-height: 24px;
407 | letter-spacing: 0.03em;
408 | display: flex;
409 | align-items: center;
410 | transition: background-color 1s linear;
411 | }
412 |
413 | .about-illustration {
414 | width: 100%;
415 | text-align: right;
416 | padding-top: -80px;
417 | }
418 |
419 | .about-line {
420 | width: 90%;
421 | border: none;
422 | margin: 30px auto;
423 | border-top: 1px solid white;
424 | }
425 |
426 | .about-separator {
427 | width: calc(90% - 0px / 2 + 0.5px);
428 | border: 1px solid var(--font-white);
429 | }
430 |
431 | /* SKILLS */
432 |
433 | .my-skills {
434 | display: flex;
435 | flex-direction: column;
436 | align-items: center;
437 | padding: 120px 24px 38px;
438 | gap: 24px;
439 | color: #fff;
440 | }
441 |
442 | .skills-header {
443 | font-family: var(--font-inter);
444 | font-style: normal;
445 | font-weight: 700;
446 | font-size: 32px;
447 | line-height: 44px;
448 | }
449 |
450 | .my-skill-list {
451 | font-family: var(--font-inter);
452 | font-style: normal;
453 | font-weight: 400;
454 | font-size: 22px;
455 | line-height: 43px;
456 | text-align: center;
457 | }
458 |
459 | /* contact form */
460 |
461 | .contact-section {
462 | display: flex;
463 | width: 100%;
464 | justify-content: center;
465 | background: white;
466 | padding: 24px;
467 | flex-direction: column;
468 | }
469 |
470 | .contact-section h2 {
471 | font-family: Roboto, sans-serif;
472 | font-weight: 700;
473 | color: #172b4d;
474 | text-align: center;
475 | font-size: 2em;
476 | padding-top: 5vh;
477 | margin: 15px;
478 | }
479 |
480 | .inputs-textarea {
481 | margin-bottom: 10px;
482 | }
483 |
484 | .inputs input {
485 | width: 100%;
486 | border-bottom: 0.5px solid lightgray;
487 | padding: 2vh 0 2vh 2vh;
488 | }
489 |
490 | .inputs .error {
491 | color: red;
492 | font-size: 1rem;
493 | }
494 |
495 | .inputs textarea {
496 | width: 100%;
497 | height: 20vh;
498 | background: #fbf8f7;
499 | margin: 2vh 0;
500 | padding: 2vh 2vh 0;
501 | font-family: var(--font-inter);
502 | font-style: italic;
503 | font-size: 15px;
504 | }
505 |
506 | .submit {
507 | display: flex;
508 | justify-content: center;
509 | margin-bottom: 100px;
510 | }
511 |
512 | .submit-btn {
513 | width: 40%;
514 | background: var(--font-orange);
515 | padding: 4%;
516 | color: var(--font-white);
517 | font-size: 1em;
518 | border: none;
519 | font-family: var(--font-inter);
520 | font-weight: 700;
521 | transition: background-color 1s linear;
522 | cursor: pointer;
523 | }
524 |
525 | .submit-btn:hover {
526 | background: #fff5e1;
527 | border: 1px solid var(--font-orange);
528 | color: var(--font-orange);
529 | }
530 |
531 | .submit-btn:active {
532 | background: #e05304;
533 | color: var(--font-white);
534 | }
535 |
536 | .submit-btn:disabled {
537 | background: #f4f1f0;
538 | color: #5b5957;
539 | }
540 |
541 | footer ul {
542 | justify-content: center;
543 | }
544 |
545 | .form-media-icons {
546 | margin: 0;
547 | display: flex;
548 | width: 100%;
549 | justify-content: center;
550 | align-items: center;
551 | border-top: 1px solid #dfe1e6;
552 | padding-top: 3vh;
553 | padding-bottom: 7vh;
554 | color: #505f79;
555 | background-color: var(--font-white);
556 | background-repeat: no-repeat;
557 | background-position: bottom;
558 | }
559 |
560 | .contac-separator {
561 | width: calc(100% - 0px / 2 + 0.5px);
562 | border: 1px solid var(--font-black);
563 | }
564 |
565 | @media screen and (min-width: 768px) {
566 | .head-nav-lists {
567 | display: flex;
568 | flex-direction: row;
569 | font-family: var(--font-inter);
570 | font-size: 15px;
571 | line-height: 20px;
572 | margin-right: 10px;
573 | }
574 |
575 | .head-nav-lists li {
576 | padding: 10px;
577 | }
578 |
579 | .my-logo {
580 | margin-left: 55px;
581 | transition: width 2s, height 2s, background-color 2s, rotate 2s;
582 | }
583 |
584 | .my-logo:hover {
585 | rotate: 360deg;
586 | }
587 |
588 | .menu-button {
589 | display: none;
590 | }
591 |
592 | .home-section {
593 | display: flex;
594 | background-image: url("./images/Illustration-header.svg");
595 | background-size: 42%;
596 | background-position-x: 100%;
597 | background-position-y: 61%;
598 | flex-direction: row-reverse;
599 | align-items: center;
600 | justify-content: flex-end;
601 | }
602 |
603 | .home-page {
604 | width: 50vw;
605 | margin-left: 4em;
606 | gap: 1em;
607 | }
608 |
609 | .home-page-header {
610 | font-style: normal;
611 | font-size: 72px;
612 | line-height: 82px;
613 | }
614 |
615 | .media-icons-container {
616 | display: flex;
617 | flex-direction: column;
618 | }
619 |
620 | /* work */
621 |
622 | .work-section-container {
623 | padding: 3% 7%;
624 | }
625 |
626 | .work-title-card {
627 | grid-template-columns: 1fr 1fr;
628 | }
629 |
630 | .work-title-card:nth-child(1) {
631 | grid-template-columns: auto 1fr auto;
632 | }
633 |
634 | .work-project-display {
635 | width: 100%;
636 | display: grid;
637 | grid-template-columns: 2fr 1fr;
638 | }
639 |
640 | .work-title-heading {
641 | margin: 0;
642 | color: var(--font-blue);
643 | }
644 |
645 | .title-separator {
646 | width: 100%;
647 | }
648 |
649 | .image {
650 | width: 100%;
651 | }
652 |
653 | .card-holder {
654 | grid-template-columns: repeat(2, 1fr);
655 | column-gap: 1.4rem;
656 | }
657 |
658 | .work-card {
659 | width: 100%;
660 | position: relative;
661 | height: 400px;
662 | }
663 |
664 | .info-holder {
665 | position: absolute;
666 | bottom: 0;
667 | }
668 |
669 | .button-section {
670 | position: absolute;
671 | width: 100%;
672 | bottom: 0;
673 | opacity: 0;
674 | }
675 |
676 | .work-card:hover .button-section {
677 | opacity: 1;
678 | }
679 |
680 | /* about */
681 | .about-me-section {
682 | margin-top: 100px;
683 | display: grid;
684 | grid-template-columns: 1fr 1fr;
685 | }
686 |
687 | .about-me-sub-section {
688 | display: flex;
689 | flex-direction: column;
690 | align-items: flex-start;
691 | padding: 110px 0;
692 | gap: 24px;
693 | padding-left: 18%;
694 | padding-top: 4%;
695 | }
696 |
697 | .about-me-header {
698 | line-height: 82px;
699 | padding-left: 2.5%;
700 | }
701 |
702 | .about-me-description {
703 | font-size: 20px;
704 | line-height: 32px;
705 | }
706 |
707 | .my-resume-button {
708 | padding: 12px;
709 | gap: 10px;
710 | cursor: pointer;
711 | }
712 |
713 | .about-illustration img {
714 | display: none;
715 | }
716 |
717 | .about-illustration {
718 | margin: 110px 0;
719 | background: url("./images/illustration-about me.svg");
720 | background-repeat: no-repeat;
721 | background-size: 85%;
722 | background-position-x: 100%;
723 | }
724 |
725 | .my-skills {
726 | display: grid;
727 | grid-template-columns: repeat(2, 1fr);
728 | padding-left: 9%;
729 | gap: 152px;
730 | padding-bottom: 9.2%;
731 | }
732 |
733 | .my-skills ul li {
734 | text-align: start;
735 | padding-top: 3.5%;
736 | }
737 |
738 | .about-separator {
739 | width: 79.9%;
740 | }
741 |
742 | .contact-section {
743 | display: flex;
744 | flex-direction: row;
745 | gap: 30px;
746 | }
747 |
748 | .contact-section h2 {
749 | font-family: var(--font-inter);
750 | font-style: normal;
751 | font-weight: 700;
752 | font-size: 40px;
753 | line-height: 52px;
754 | text-align: start;
755 | color: #262626;
756 | padding-left: 7.2%;
757 | padding-top: 7.5%;
758 | width: 59%;
759 | }
760 |
761 | .inputs textarea {
762 | width: 100%;
763 | height: 7.2rem;
764 | background: #fbf8f7;
765 | margin: 2vh 0;
766 | padding: 2vh 2vh 0;
767 | font-family: var(--font-inter);
768 | font-style: italic;
769 | font-size: 15px;
770 | }
771 |
772 | .contact-form {
773 | width: 90%;
774 | margin-top: 100px;
775 | margin-bottom: 54px;
776 | justify-content: center;
777 | align-items: start;
778 | padding-left: 2.4%;
779 | }
780 |
781 | textarea::placeholder {
782 | font-style: italic;
783 | color: var(--main-background);
784 | }
785 |
786 | .submit {
787 | display: flex;
788 | justify-content: flex-start;
789 | }
790 |
791 | .submit-btn {
792 | padding: 12px;
793 | gap: 10px;
794 | align-self: start;
795 | width: 124px;
796 | }
797 | }
798 |
799 | @media screen and (min-width: 992px) {
800 | /* main */
801 | .home-page-header {
802 | font-size: 72px;
803 | line-height: 82px;
804 | font-style: normal;
805 | }
806 |
807 | .discription-header {
808 | font-size: 32px;
809 | line-height: 44px;
810 | }
811 |
812 | .discription-paragraph {
813 | font-style: normal;
814 | font-size: 1.5rem;
815 | line-height: 32px;
816 | }
817 |
818 | /* work */
819 | .card-holder {
820 | grid-template-columns: repeat(3, 1fr);
821 | }
822 |
823 | .my-skills {
824 | grid-template-columns: repeat(3, 1fr);
825 | }
826 |
827 | .contact-form {
828 | padding-right: 50px;
829 | }
830 |
831 | .inputs {
832 | padding-top: 10px;
833 | }
834 | }
835 |
836 | /* Popup */
837 |
838 | .popup-window {
839 | z-index: 10;
840 | position: fixed;
841 | display: flex;
842 | justify-content: center;
843 | align-items: center;
844 | top: 0;
845 | height: 100%;
846 | width: 100%;
847 | background-color: rgba(0, 0, 0, 0.5);
848 | backdrop-filter: blur(0.1rem);
849 | transition: all 0.5s ease;
850 | }
851 |
852 | .popUp {
853 | display: flex;
854 | }
855 |
856 | .popup-holder {
857 | box-shadow: 0 48px 48px rgba(37, 47, 137, 0.08);
858 | margin: 1rem 1rem;
859 | background-color: var(--font-white);
860 | display: flex;
861 | flex-direction: column;
862 | gap: 1rem;
863 | padding: 1rem;
864 | overflow-y: auto;
865 | }
866 |
867 | .popup-close-btn-holder {
868 | display: flex;
869 | flex-direction: column;
870 | gap: 36px;
871 | }
872 |
873 | .title-xbtn {
874 | display: flex;
875 | align-items: center;
876 | justify-content: space-between;
877 | }
878 |
879 | .project-heading-pop {
880 | font-family: var(--font-sans);
881 | font-size: 32px;
882 | font-weight: 700;
883 | line-height: 44px;
884 | text-align: left;
885 | color: #172b4d;
886 | }
887 |
888 | .popup-close-btn-holder svg {
889 | cursor: pointer;
890 | }
891 |
892 | .popup-tag-list {
893 | display: flex;
894 | flex-direction: row;
895 | align-items: center;
896 | padding: 0;
897 | gap: 1.2rem;
898 | width: 100%;
899 | }
900 |
901 | .popup-tag-list li {
902 | font-family: "Poppins", sans-serif;
903 | font-size: 13px;
904 | font-weight: 600;
905 | line-height: 16px;
906 | text-align: left;
907 | border: 1px solid #979493;
908 | }
909 |
910 | .popup-feature {
911 | background-color: var(--font-white);
912 | border: 1px solid #000;
913 | color: var(--main-background);
914 | }
915 |
916 | .popup-info {
917 | display: flex;
918 | flex-direction: column;
919 | gap: 1.5rem;
920 | }
921 |
922 | .popup-image {
923 | width: 100%;
924 | max-width: 70rem;
925 | }
926 |
927 | .popup-info-holder {
928 | width: 100%;
929 | display: flex;
930 | flex-direction: column;
931 | gap: 1.5rem;
932 | }
933 |
934 | .popup-description {
935 | width: inherit;
936 | font-family: var(--font-inter);
937 | font-style: normal;
938 | font-weight: 400;
939 | font-size: 16px;
940 | line-height: 24px;
941 | color: #344563;
942 | }
943 |
944 | .popup-btn-holder {
945 | display: flex;
946 | gap: 36px;
947 | }
948 |
949 | .popup-btn {
950 | color: var(--font-white);
951 | background-color: var(--font-orange);
952 | display: flex;
953 | align-items: flex-start;
954 | padding: 12px;
955 | gap: 12px;
956 | border: 1px solid var(--font-orange);
957 | font-family: var(--font-inter);
958 | font-style: normal;
959 | font-weight: 700;
960 | font-size: 15px;
961 | line-height: 24px;
962 | text-align: center;
963 | letter-spacing: 0.03em;
964 | margin: 3px;
965 | }
966 |
967 | .popup-btn svg path {
968 | fill: var(--font-white);
969 | }
970 |
971 | .popup-btn:hover svg path {
972 | fill: var(--font-orange);
973 | }
974 |
975 | .desktop-des1 {
976 | display: none;
977 | }
978 |
979 | @media screen and (min-width: 550px) {
980 | .popup-close-btn-holder {
981 | gap: 22px;
982 | }
983 |
984 | .project-heading-pop {
985 | font-family: var(--my-font-crete);
986 | font-weight: 400;
987 | text-align: left;
988 | font-style: normal;
989 | margin: 5px;
990 | }
991 |
992 | .popup-tag-list li {
993 | font-family: "Poppins", sans-serif;
994 | text-align: left;
995 | border: 1px solid #979493;
996 | font-style: normal;
997 | font-weight: 500;
998 | font-size: 15px;
999 | line-height: 20px;
1000 | }
1001 |
1002 | .popup-info {
1003 | display: grid;
1004 | grid-template-columns: 2fr 1fr;
1005 | }
1006 |
1007 | .popup-info-holder {
1008 | align-items: flex-start;
1009 | }
1010 |
1011 | .popup-btn-holder {
1012 | justify-content: flex-start;
1013 | margin-top: auto;
1014 | gap: 20px;
1015 | }
1016 |
1017 | .popup-holder {
1018 | padding: 1rem;
1019 | max-width: 1000px;
1020 | }
1021 |
1022 | .desktop-des1 {
1023 | display: inline;
1024 | }
1025 | }
1026 |
--------------------------------------------------------------------------------