├── CNAME
├── .gitignore
├── images
├── home-icon.webp
├── mail-logo.webp
├── moon-icon.webp
├── php-logo.webp
├── profile.webp
├── sun-icon.webp
├── about-icon.webp
├── django-logo.webp
├── fiverr-logo.webp
├── python-logo.webp
├── react-logo.webp
├── upwork-logo.webp
├── contact-icon.webp
├── instagram-logo.webp
├── projects-icon.webp
├── telegram-logo.webp
├── twitter-logo.webp
└── typescript-logo.webp
├── main.js
├── projects.js
├── index.html
├── main.scss
└── main.css
/CNAME:
--------------------------------------------------------------------------------
1 | slmn.sh
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .sass-cache/
2 | *.sass.map
3 | *.scss.map
4 | node_modules
5 |
--------------------------------------------------------------------------------
/images/home-icon.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/home-icon.webp
--------------------------------------------------------------------------------
/images/mail-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/mail-logo.webp
--------------------------------------------------------------------------------
/images/moon-icon.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/moon-icon.webp
--------------------------------------------------------------------------------
/images/php-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/php-logo.webp
--------------------------------------------------------------------------------
/images/profile.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/profile.webp
--------------------------------------------------------------------------------
/images/sun-icon.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/sun-icon.webp
--------------------------------------------------------------------------------
/images/about-icon.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/about-icon.webp
--------------------------------------------------------------------------------
/images/django-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/django-logo.webp
--------------------------------------------------------------------------------
/images/fiverr-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/fiverr-logo.webp
--------------------------------------------------------------------------------
/images/python-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/python-logo.webp
--------------------------------------------------------------------------------
/images/react-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/react-logo.webp
--------------------------------------------------------------------------------
/images/upwork-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/upwork-logo.webp
--------------------------------------------------------------------------------
/images/contact-icon.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/contact-icon.webp
--------------------------------------------------------------------------------
/images/instagram-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/instagram-logo.webp
--------------------------------------------------------------------------------
/images/projects-icon.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/projects-icon.webp
--------------------------------------------------------------------------------
/images/telegram-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/telegram-logo.webp
--------------------------------------------------------------------------------
/images/twitter-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/twitter-logo.webp
--------------------------------------------------------------------------------
/images/typescript-logo.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/slmnsh/slmnsh.github.io/master/images/typescript-logo.webp
--------------------------------------------------------------------------------
/main.js:
--------------------------------------------------------------------------------
1 | btn = document.querySelector("nav #button");
2 | active = document.querySelector(".active");
3 | links = document.querySelectorAll("nav a");
4 | hours = new Date().getHours();
5 | var timeout;
6 | function nightMode() {
7 | const darkMode = document.querySelector("body").classList.toggle("dark");
8 | btn.children[0].src = `images/${darkMode ? "sun" : "moon"}-icon.webp`;
9 | return darkMode;
10 | }
11 | if (location.hash !== "") {
12 | active.style.top =
13 | document.querySelector(`a[href="${location.hash}"]`).offsetTop + "px";
14 | setTimeout(
15 | () => document.querySelector(location.hash).scrollIntoView(),
16 | 100
17 | );
18 | }
19 | links.forEach((link) => {
20 | link.addEventListener("click", function () {
21 | active.style.top = this.offsetTop + "px";
22 | });
23 | });
24 | btn.addEventListener("click", () => {
25 | clearTimeout(timeout);
26 | localStorage.setItem("darkmode", nightMode());
27 | });
28 | if (localStorage.darkmode == "true") {
29 | nightMode();
30 | } else {
31 | console.log(hours);
32 | if (hours >= 18 || hours <= 6) {
33 | btn.children[1].innerHTML = "Save your eyes";
34 | }
35 | timeout = setTimeout(() => {
36 | btn.children[1].style.marginLeft = "10px";
37 | setTimeout(() => {
38 | btn.children[1].style.opacity = 1;
39 | }, 500);
40 | setTimeout(() => {
41 | btn.children[1].style.opacity = 0;
42 | setTimeout(() => {
43 | btn.children[1].style = "";
44 | }, 500);
45 | }, 5000);
46 | }, 5000);
47 | }
48 |
--------------------------------------------------------------------------------
/projects.js:
--------------------------------------------------------------------------------
1 | const request = new XMLHttpRequest();
2 | const projectList = document.querySelector(".project-list");
3 | const template = document.querySelector("#project").innerHTML;
4 | request.open("GET", "https://api.github.com/users/slmnsh/starred");
5 | request.responseType = "json";
6 | request.send();
7 |
8 | function fixCase(x) {
9 | x = x.replace(/[_-]/, " ");
10 | if (x.indexOf(" ") === -1) {
11 | return x;
12 | }
13 | x = x.toLowerCase().split(" ");
14 | for (let i = 0; i < x.length; i++) {
15 | x[i] = x[i][0].toUpperCase() + x[i].slice(1);
16 | }
17 | return x.join(" ");
18 | }
19 | request.onload = () => {
20 | var resp = request.response;
21 | resp.forEach((repo) => {
22 | if (repo.owner.login === "slmnsh") {
23 | var rendered = Mustache.render(template, {
24 | name: fixCase(repo.name),
25 | desc: repo.description,
26 | lang: repo.language,
27 | githubUrl: repo.html_url,
28 | url: repo.homepage,
29 | });
30 | projectList.innerHTML += rendered;
31 | }
32 | });
33 | linkBtn = document.querySelectorAll(".project .links .link");
34 | ripple = document.createElement("div");
35 | ripple.classList.add("ripple");
36 | linkBtn.forEach((link) => {
37 | link.addEventListener("click", function (e) {
38 | ripple.style.left = e.layerX + "px";
39 | ripple.style.top = e.layerY + "px";
40 | e.target.appendChild(ripple);
41 | ripple.addEventListener("animationend", () => {
42 | ripple.remove();
43 | });
44 | });
45 | });
46 | };
47 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
11 |
16 | Salman Shaikh's Portfolio
17 |
18 |
19 |
60 |
61 |
62 |

63 |
Hi, I'm Salman
64 |
And this is my site
65 |
66 |
80 |
81 |
21 yrs old dev from India
82 |
Passionate Python Developer
83 |
Who can scrape any damn thing
84 |
Freelancer, Web Developer
85 |
86 |
112 |
113 |
114 |
115 |
116 |
141 |
142 |
143 |
144 |
145 |
--------------------------------------------------------------------------------
/main.scss:
--------------------------------------------------------------------------------
1 | @import url("https://fonts.googleapis.com/css2?family=Mulish:wght@400;500;700&display=swap");
2 |
3 | * {
4 | padding: 0;
5 | margin: 0;
6 | box-sizing: border-box;
7 | font-family: "Mulish", sans-serif;
8 | transition: all 0.5s ease;
9 | color: var(--font-color);
10 | }
11 |
12 | a {
13 | text-decoration: none;
14 | }
15 |
16 | html,
17 | body {
18 | --bg-color: whitesmoke;
19 | --font-color: black;
20 | --border-color: lightgray;
21 | height: 100%;
22 | overflow: hidden;
23 | width: 100%;
24 | display: flex;
25 | background-color: var(--bg-color);
26 | scroll-behavior: smooth;
27 | scroll-snap-type: y mandatory;
28 | }
29 |
30 | body.dark {
31 | --bg-color: black !important;
32 | --font-color: whitesmoke !important;
33 | --border-color: darkslategray !important;
34 | #contact,
35 | nav {
36 | img {
37 | filter: invert(1);
38 | }
39 | }
40 | }
41 |
42 | .links span {
43 | padding-left: 10px;
44 | }
45 |
46 | nav {
47 | height: 100%;
48 | width: 15%;
49 | display: flex;
50 | flex-direction: column;
51 | align-items: stretch;
52 | justify-content: center;
53 | position: fixed;
54 | #button {
55 | display: flex;
56 | justify-content: center;
57 | align-items: center;
58 | position: fixed;
59 | height: 50px;
60 | width: max-content;
61 | font-size: 22px;
62 | top: 2%;
63 | left: 2%;
64 | border: 1px solid var(--border-color);
65 | border-radius: 50px;
66 | padding: 10px;
67 | user-select: none;
68 | img {
69 | margin-left: 2px;
70 | height: 25px;
71 | width: 25px;
72 | }
73 | div {
74 | text-align: right;
75 | font-size: medium;
76 | opacity: 0;
77 | transition: opacity 0.5s ease-in-out margin-left 0.5s ease-in-out;
78 | margin-left: -110px;
79 | word-wrap: normal;
80 | }
81 | &:hover {
82 | box-shadow: 5px 5px 5px var(--border-color);
83 | }
84 | }
85 | .links {
86 | position: relative;
87 | div {
88 | padding: 20px;
89 | position: absolute;
90 | top: 0;
91 | left: 0;
92 | right: 0;
93 | border: 1px solid var(--border-color);
94 | box-shadow: 5px 5px 5px var(--border-color);
95 | }
96 | a {
97 | display: flex;
98 | border: 1px solid transparent;
99 | justify-content: center;
100 | padding: 20px;
101 | cursor: pointer;
102 | }
103 | }
104 | }
105 |
106 | #screens {
107 | display: block;
108 | height: 100%;
109 | padding-left: 15%;
110 | flex: 1;
111 | flex-direction: column;
112 | align-items: stretch;
113 | & > div {
114 | display: flex;
115 | scroll-snap-align: center;
116 | flex-direction: column;
117 | height: 100%;
118 | align-items: flex-end;
119 | justify-content: center;
120 | padding-right: 50px;
121 | home {
122 | img {
123 | height: 150px;
124 | margin-bottom: 20px;
125 | border-radius: 50%;
126 | }
127 | }
128 | projects {
129 | flex-direction: row;
130 | justify-content: space-around;
131 | align-items: center;
132 | .lang-logos {
133 | display: flex;
134 | img {
135 | margin: 25px;
136 | }
137 | }
138 | .project-list {
139 | display: flex;
140 | flex-wrap: wrap;
141 | flex-direction: column;
142 | width: 25%;
143 | overflow-y: hidden;
144 | scroll-snap-type: x mandatory;
145 | height: 500px;
146 | scrollbar-width: thin;
147 | scrollbar-color: var(--border-color) transparent;
148 | &::-webkit-scrollbar {
149 | height: 5px;
150 | background-color: transparent;
151 | }
152 | &::-webkit-scrollbar-thumb {
153 | border-radius: 10px;
154 | background-color: var(--border-color);
155 | }
156 | }
157 | .project {
158 | display: flex;
159 | flex-direction: column;
160 | scroll-snap-align: center;
161 | justify-content: space-between;
162 | flex: 1;
163 | min-width: 95%;
164 | height: 45%;
165 | max-height: 45%;
166 | border: 1px solid var(--border-color);
167 | margin: 10px 20px 10px 5px;
168 | padding: 10px;
169 | border-radius: 5px;
170 | div {
171 | margin: 5px;
172 | }
173 | .details {
174 | flex: 1;
175 | }
176 | .title {
177 | font-weight: bolder;
178 | }
179 | .links {
180 | display: flex;
181 | margin: 30px auto 20px;
182 | }
183 | .link {
184 | border: 1px solid var(--border-color);
185 | position: relative;
186 | border-radius: 5px;
187 | margin: 0 5px;
188 | overflow: hidden;
189 | cursor: pointer;
190 | user-select: none;
191 | a {
192 | display: block;
193 | padding: 10px;
194 | }
195 | .ripple {
196 | position: absolute;
197 | background-color: var(--border-color);
198 | opacity: 0.5;
199 | height: 250px;
200 | width: 250px;
201 | border-radius: 50%;
202 | pointer-events: none;
203 | border: 1px solid var(--border-color);
204 | animation: ripple 1.5s;
205 | transform: translate(-50%, -50%);
206 | }
207 | }
208 | }
209 | }
210 | contact {
211 | flex-direction: row;
212 | align-items: center;
213 | justify-content: center;
214 | a {
215 | display: flex;
216 | flex-direction: column;
217 | align-items: center;
218 | margin: 10px;
219 | padding: 10px;
220 | border: 1px solid transparent;
221 | border-radius: 5px;
222 | img {
223 | height: 75px;
224 | width: 75px;
225 | }
226 | &:hover {
227 | border-color: var(--border-color);
228 | box-shadow: 5px 5px 5px var(--border-color);
229 | }
230 | }
231 | }
232 | }
233 | }
234 | @keyframes ripple {
235 | 0% {
236 | height: 0;
237 | width: 0;
238 | opacity: 1;
239 | }
240 | 80% {
241 | height: 250px;
242 | width: 250px;
243 | }
244 | 100% {
245 | opacity: 0;
246 | }
247 | }
248 |
249 | @media (max-width: 768px) {
250 | * {
251 | font-size: 15px;
252 | }
253 | nav {
254 | width: 20%;
255 | #button {
256 | transform: scale(0.75);
257 | left: 3%;
258 | div {
259 | margin-left: -124px;
260 | font-size: large;
261 | }
262 | }
263 | span {
264 | display: none;
265 | }
266 | }
267 | #screens {
268 | padding-left: 20%;
269 | & > div {
270 | padding-right: 5% !important;
271 | align-items: flex-end;
272 | home {
273 | img {
274 | height: 10%;
275 | }
276 | }
277 | }
278 | }
279 | #projects {
280 | flex-direction: column !important;
281 | justify-content: space-evenly !important;
282 | .lang-logos {
283 | width: 250px;
284 | overflow: hidden;
285 | .img {
286 | height: 75px;
287 | position: relative;
288 | left: 0;
289 | display: flex;
290 | flex-direction: row !important;
291 | animation: slider 7s ease-in-out infinite;
292 | img {
293 | height: 100%;
294 | margin: 0 90px !important;
295 | }
296 | }
297 | }
298 | .project-list {
299 | width: 90% !important;
300 | height: 300px;
301 | }
302 | .project {
303 | margin-right: 0;
304 | }
305 | }
306 | @keyframes slider {
307 | 10%,
308 | 20%,
309 | 100% {
310 | left: 0%;
311 | }
312 | 25%,
313 | 45% {
314 | left: -131%;
315 | }
316 | 50%,
317 | 70% {
318 | left: -261%;
319 | }
320 | 75%,
321 | 95% {
322 | left: -362.5%;
323 | }
324 | }
325 | #contact {
326 | flex-direction: column !important;
327 | img {
328 | height: 50px !important;
329 | width: 50px !important;
330 | }
331 | }
332 | }
333 |
--------------------------------------------------------------------------------
/main.css:
--------------------------------------------------------------------------------
1 | @import url("https://fonts.googleapis.com/css2?family=Mulish:wght@400;500;700&display=swap");
2 | * {
3 | padding: 0;
4 | margin: 0;
5 | -webkit-box-sizing: border-box;
6 | box-sizing: border-box;
7 | font-family: "Mulish", sans-serif;
8 | -webkit-transition: all 0.5s ease;
9 | transition: all 0.5s ease;
10 | color: var(--font-color);
11 | }
12 |
13 | a {
14 | text-decoration: none;
15 | }
16 |
17 | html,
18 | body {
19 | --bg-color: whitesmoke;
20 | --font-color: black;
21 | --border-color: lightgray;
22 | height: 100%;
23 | overflow: hidden;
24 | width: 100%;
25 | display: -webkit-box;
26 | display: -ms-flexbox;
27 | display: flex;
28 | background-color: var(--bg-color);
29 | scroll-behavior: smooth;
30 | -ms-scroll-snap-type: y mandatory;
31 | scroll-snap-type: y mandatory;
32 | }
33 |
34 | body.dark {
35 | --bg-color: black !important;
36 | --font-color: whitesmoke !important;
37 | --border-color: darkslategray !important;
38 | }
39 |
40 | body.dark #contact img,
41 | body.dark nav img {
42 | -webkit-filter: invert(1);
43 | filter: invert(1);
44 | }
45 |
46 | .links span {
47 | padding-left: 10px;
48 | }
49 |
50 | nav {
51 | height: 100%;
52 | width: 15%;
53 | display: -webkit-box;
54 | display: -ms-flexbox;
55 | display: flex;
56 | -webkit-box-orient: vertical;
57 | -webkit-box-direction: normal;
58 | -ms-flex-direction: column;
59 | flex-direction: column;
60 | -webkit-box-align: stretch;
61 | -ms-flex-align: stretch;
62 | align-items: stretch;
63 | -webkit-box-pack: center;
64 | -ms-flex-pack: center;
65 | justify-content: center;
66 | position: fixed;
67 | }
68 |
69 | nav #button {
70 | display: -webkit-box;
71 | display: -ms-flexbox;
72 | display: flex;
73 | -webkit-box-pack: center;
74 | -ms-flex-pack: center;
75 | justify-content: center;
76 | -webkit-box-align: center;
77 | -ms-flex-align: center;
78 | align-items: center;
79 | position: fixed;
80 | height: 50px;
81 | width: -webkit-max-content;
82 | width: -moz-max-content;
83 | width: max-content;
84 | font-size: 22px;
85 | top: 2%;
86 | left: 2%;
87 | border: 1px solid var(--border-color);
88 | border-radius: 50px;
89 | padding: 10px;
90 | -webkit-user-select: none;
91 | -moz-user-select: none;
92 | -ms-user-select: none;
93 | user-select: none;
94 | }
95 |
96 | nav #button img {
97 | margin-left: 2px;
98 | height: 25px;
99 | width: 25px;
100 | }
101 |
102 | nav #button div {
103 | text-align: right;
104 | font-size: medium;
105 | opacity: 0;
106 | -webkit-transition: opacity 0.5s ease-in-out margin-left 0.5s ease-in-out;
107 | transition: opacity 0.5s ease-in-out margin-left 0.5s ease-in-out;
108 | margin-left: -110px;
109 | word-wrap: normal;
110 | }
111 |
112 | nav #button:hover {
113 | -webkit-box-shadow: 5px 5px 5px var(--border-color);
114 | box-shadow: 5px 5px 5px var(--border-color);
115 | }
116 |
117 | nav .links {
118 | position: relative;
119 | }
120 |
121 | nav .links div {
122 | padding: 20px;
123 | position: absolute;
124 | top: 0;
125 | left: 0;
126 | right: 0;
127 | border: 1px solid var(--border-color);
128 | -webkit-box-shadow: 5px 5px 5px var(--border-color);
129 | box-shadow: 5px 5px 5px var(--border-color);
130 | }
131 |
132 | nav .links a {
133 | display: -webkit-box;
134 | display: -ms-flexbox;
135 | display: flex;
136 | border: 1px solid transparent;
137 | -webkit-box-pack: center;
138 | -ms-flex-pack: center;
139 | justify-content: center;
140 | padding: 20px;
141 | cursor: pointer;
142 | }
143 |
144 | #screens {
145 | display: block;
146 | height: 100%;
147 | padding-left: 15%;
148 | -webkit-box-flex: 1;
149 | -ms-flex: 1;
150 | flex: 1;
151 | -webkit-box-orient: vertical;
152 | -webkit-box-direction: normal;
153 | -ms-flex-direction: column;
154 | flex-direction: column;
155 | -webkit-box-align: stretch;
156 | -ms-flex-align: stretch;
157 | align-items: stretch;
158 | }
159 |
160 | #screens > div {
161 | display: -webkit-box;
162 | display: -ms-flexbox;
163 | display: flex;
164 | scroll-snap-align: center;
165 | -webkit-box-orient: vertical;
166 | -webkit-box-direction: normal;
167 | -ms-flex-direction: column;
168 | flex-direction: column;
169 | height: 100%;
170 | -webkit-box-align: end;
171 | -ms-flex-align: end;
172 | align-items: flex-end;
173 | -webkit-box-pack: center;
174 | -ms-flex-pack: center;
175 | justify-content: center;
176 | padding-right: 50px;
177 | }
178 |
179 | #screens > div#home img {
180 | height: 150px;
181 | margin-bottom: 20px;
182 | border-radius: 50%;
183 | }
184 |
185 | #screens > div#projects {
186 | -webkit-box-orient: horizontal;
187 | -webkit-box-direction: normal;
188 | -ms-flex-direction: row;
189 | flex-direction: row;
190 | -ms-flex-pack: distribute;
191 | justify-content: space-around;
192 | -webkit-box-align: center;
193 | -ms-flex-align: center;
194 | align-items: center;
195 | }
196 |
197 | #screens > div#projects .lang-logos {
198 | display: -webkit-box;
199 | display: -ms-flexbox;
200 | display: flex;
201 | }
202 |
203 | #screens > div#projects .lang-logos img {
204 | margin: 25px;
205 | }
206 |
207 | #screens > div#projects .project-list {
208 | display: -webkit-box;
209 | display: -ms-flexbox;
210 | display: flex;
211 | -ms-flex-wrap: wrap;
212 | flex-wrap: wrap;
213 | -webkit-box-orient: vertical;
214 | -webkit-box-direction: normal;
215 | -ms-flex-direction: column;
216 | flex-direction: column;
217 | width: 25%;
218 | overflow-y: hidden;
219 | -ms-scroll-snap-type: x mandatory;
220 | scroll-snap-type: x mandatory;
221 | height: 500px;
222 | scrollbar-width: thin;
223 | scrollbar-color: var(--border-color) transparent;
224 | }
225 |
226 | #screens > div#projects .project-list::-webkit-scrollbar {
227 | height: 5px;
228 | background-color: transparent;
229 | }
230 |
231 | #screens > div#projects .project-list::-webkit-scrollbar-thumb {
232 | border-radius: 10px;
233 | background-color: var(--border-color);
234 | }
235 |
236 | #screens > div#projects .project {
237 | display: -webkit-box;
238 | display: -ms-flexbox;
239 | display: flex;
240 | -webkit-box-orient: vertical;
241 | -webkit-box-direction: normal;
242 | -ms-flex-direction: column;
243 | flex-direction: column;
244 | scroll-snap-align: center;
245 | -webkit-box-pack: justify;
246 | -ms-flex-pack: justify;
247 | justify-content: space-between;
248 | -webkit-box-flex: 1;
249 | -ms-flex: 1;
250 | flex: 1;
251 | min-width: 95%;
252 | height: 45%;
253 | max-height: 45%;
254 | border: 1px solid var(--border-color);
255 | margin: 10px 20px 10px 5px;
256 | padding: 10px;
257 | border-radius: 5px;
258 | }
259 |
260 | #screens > div#projects .project div {
261 | margin: 5px;
262 | }
263 |
264 | #screens > div#projects .project .details {
265 | -webkit-box-flex: 1;
266 | -ms-flex: 1;
267 | flex: 1;
268 | }
269 |
270 | #screens > div#projects .project .title {
271 | font-weight: bolder;
272 | }
273 |
274 | #screens > div#projects .project .links {
275 | display: -webkit-box;
276 | display: -ms-flexbox;
277 | display: flex;
278 | margin: 30px auto 20px;
279 | }
280 |
281 | #screens > div#projects .project .link {
282 | border: 1px solid var(--border-color);
283 | position: relative;
284 | border-radius: 5px;
285 | margin: 0 5px;
286 | overflow: hidden;
287 | cursor: pointer;
288 | -webkit-user-select: none;
289 | -moz-user-select: none;
290 | -ms-user-select: none;
291 | user-select: none;
292 | }
293 |
294 | #screens > div#projects .project .link a {
295 | display: block;
296 | padding: 10px;
297 | }
298 |
299 | #screens > div#projects .project .link .ripple {
300 | position: absolute;
301 | background-color: var(--border-color);
302 | opacity: 0.5;
303 | height: 250px;
304 | width: 250px;
305 | border-radius: 50%;
306 | pointer-events: none;
307 | border: 1px solid var(--border-color);
308 | -webkit-animation: ripple 1.5s;
309 | animation: ripple 1.5s;
310 | -webkit-transform: translate(-50%, -50%);
311 | transform: translate(-50%, -50%);
312 | }
313 |
314 | #screens > div#contact {
315 | -webkit-box-orient: horizontal;
316 | -webkit-box-direction: normal;
317 | -ms-flex-direction: row;
318 | flex-direction: row;
319 | -webkit-box-align: center;
320 | -ms-flex-align: center;
321 | align-items: center;
322 | -webkit-box-pack: center;
323 | -ms-flex-pack: center;
324 | justify-content: center;
325 | }
326 |
327 | #screens > div#contact a {
328 | display: -webkit-box;
329 | display: -ms-flexbox;
330 | display: flex;
331 | -webkit-box-orient: vertical;
332 | -webkit-box-direction: normal;
333 | -ms-flex-direction: column;
334 | flex-direction: column;
335 | -webkit-box-align: center;
336 | -ms-flex-align: center;
337 | align-items: center;
338 | margin: 10px;
339 | padding: 10px;
340 | border: 1px solid transparent;
341 | border-radius: 5px;
342 | }
343 |
344 | #screens > div#contact a img {
345 | height: 75px;
346 | width: 75px;
347 | }
348 |
349 | #screens > div#contact a:hover {
350 | border-color: var(--border-color);
351 | -webkit-box-shadow: 5px 5px 5px var(--border-color);
352 | box-shadow: 5px 5px 5px var(--border-color);
353 | }
354 |
355 | @-webkit-keyframes ripple {
356 | 0% {
357 | height: 0;
358 | width: 0;
359 | opacity: 1;
360 | }
361 | 80% {
362 | height: 250px;
363 | width: 250px;
364 | }
365 | 100% {
366 | opacity: 0;
367 | }
368 | }
369 |
370 | @keyframes ripple {
371 | 0% {
372 | height: 0;
373 | width: 0;
374 | opacity: 1;
375 | }
376 | 80% {
377 | height: 250px;
378 | width: 250px;
379 | }
380 | 100% {
381 | opacity: 0;
382 | }
383 | }
384 |
385 | @media (max-width: 768px) {
386 | * {
387 | font-size: 15px;
388 | }
389 | nav {
390 | width: 20%;
391 | }
392 | nav #button {
393 | -webkit-transform: scale(0.75);
394 | transform: scale(0.75);
395 | left: 3%;
396 | }
397 | nav #button div {
398 | margin-left: -124px;
399 | font-size: large;
400 | }
401 | nav span {
402 | display: none;
403 | }
404 | #screens {
405 | padding-left: 20%;
406 | }
407 | #screens > div {
408 | padding-right: 5% !important;
409 | -webkit-box-align: end;
410 | -ms-flex-align: end;
411 | align-items: flex-end;
412 | }
413 | #screens > div#home img {
414 | height: 10%;
415 | }
416 | #projects {
417 | -webkit-box-orient: vertical !important;
418 | -webkit-box-direction: normal !important;
419 | -ms-flex-direction: column !important;
420 | flex-direction: column !important;
421 | -webkit-box-pack: space-evenly !important;
422 | -ms-flex-pack: space-evenly !important;
423 | justify-content: space-evenly !important;
424 | }
425 | #projects .lang-logos {
426 | width: 250px;
427 | overflow: hidden;
428 | }
429 | #projects .lang-logos .img {
430 | height: 75px;
431 | position: relative;
432 | left: 0;
433 | display: -webkit-box;
434 | display: -ms-flexbox;
435 | display: flex;
436 | -webkit-box-orient: horizontal !important;
437 | -webkit-box-direction: normal !important;
438 | -ms-flex-direction: row !important;
439 | flex-direction: row !important;
440 | -webkit-animation: slider 7s ease-in-out infinite;
441 | animation: slider 7s ease-in-out infinite;
442 | }
443 | #projects .lang-logos .img img {
444 | height: 100%;
445 | margin: 0 90px !important;
446 | }
447 | #projects .project-list {
448 | width: 90% !important;
449 | height: 300px;
450 | }
451 | #projects .project {
452 | margin-right: 0;
453 | }
454 | @-webkit-keyframes slider {
455 | 10%,
456 | 20%,
457 | 100% {
458 | left: 0%;
459 | }
460 | 25%,
461 | 45% {
462 | left: -131%;
463 | }
464 | 50%,
465 | 70% {
466 | left: -261%;
467 | }
468 | 75%,
469 | 95% {
470 | left: -362.5%;
471 | }
472 | }
473 | @keyframes slider {
474 | 10%,
475 | 20%,
476 | 100% {
477 | left: 0%;
478 | }
479 | 25%,
480 | 45% {
481 | left: -131%;
482 | }
483 | 50%,
484 | 70% {
485 | left: -261%;
486 | }
487 | 75%,
488 | 95% {
489 | left: -362.5%;
490 | }
491 | }
492 | #contact {
493 | -webkit-box-orient: vertical !important;
494 | -webkit-box-direction: normal !important;
495 | -ms-flex-direction: column !important;
496 | flex-direction: column !important;
497 | }
498 | #contact img {
499 | height: 50px !important;
500 | width: 50px !important;
501 | }
502 | }
503 |
--------------------------------------------------------------------------------