Add: About page draft
- A draft for about page - No real content
This commit is contained in:
		
							parent
							
								
									c5d2bb799b
								
							
						
					
					
						commit
						22ae790de7
					
				
							
								
								
									
										256
									
								
								css/about.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								css/about.css
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,256 @@ | |||||||
|  | body { | ||||||
|  |   margin: 0; | ||||||
|  |   padding: 0; | ||||||
|  |   font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; | ||||||
|  |   color: #333; | ||||||
|  |   overflow-x: hidden; | ||||||
|  |   scroll-behavior: smooth; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .portfolio { | ||||||
|  |   scroll-snap-type: y mandatory; | ||||||
|  |   overflow-y: scroll; | ||||||
|  |   height: 100vh; | ||||||
|  |   scroll-behavior: smooth; | ||||||
|  |   -webkit-overflow-scrolling: touch; | ||||||
|  |   overscroll-behavior-y: contain; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | .portfolio__section { | ||||||
|  |   scroll-snap-align: start; | ||||||
|  |   position: relative; | ||||||
|  |   height: 100vh; | ||||||
|  |   width: 100%; | ||||||
|  |   overflow: hidden; | ||||||
|  | } | ||||||
|  | .portfolio__section .content { | ||||||
|  |   position: relative; | ||||||
|  |   z-index: 2; | ||||||
|  |   max-width: 1200px; | ||||||
|  |   margin: 0 auto; | ||||||
|  |   padding: 2rem; | ||||||
|  |   height: 100%; | ||||||
|  |   display: flex; | ||||||
|  |   flex-direction: column; | ||||||
|  |   justify-content: center; | ||||||
|  | } | ||||||
|  | .portfolio__section .bg-image { | ||||||
|  |   position: absolute; | ||||||
|  |   top: 0; | ||||||
|  |   left: 0; | ||||||
|  |   width: 100%; | ||||||
|  |   height: 100%; | ||||||
|  |   background-size: cover; | ||||||
|  |   background-position: center; | ||||||
|  |   z-index: 1; | ||||||
|  | } | ||||||
|  | .portfolio__section .bg-image::after { | ||||||
|  |   content: ""; | ||||||
|  |   position: absolute; | ||||||
|  |   top: 0; | ||||||
|  |   left: 0; | ||||||
|  |   width: 100%; | ||||||
|  |   height: 100%; | ||||||
|  |   background: rgba(0, 0, 0, 0.6); | ||||||
|  |   backdrop-filter: blur(5px); | ||||||
|  |   -webkit-backdrop-filter: blur(5px); | ||||||
|  | } | ||||||
|  | .portfolio__section--intro { | ||||||
|  |   text-align: center; | ||||||
|  | } | ||||||
|  | .portfolio__section--intro .intro-title { | ||||||
|  |   font-size: 3.5rem; | ||||||
|  |   margin-bottom: 1rem; | ||||||
|  |   color: #fff; | ||||||
|  | } | ||||||
|  | .portfolio__section--intro .intro-title .highlight { | ||||||
|  |   color: #3498db; | ||||||
|  | } | ||||||
|  | .portfolio__section--intro .intro-subtitle { | ||||||
|  |   font-size: 1.5rem; | ||||||
|  |   color: rgba(255, 255, 255, 0.8); | ||||||
|  |   margin-bottom: 2rem; | ||||||
|  | } | ||||||
|  | .portfolio__section--intro .social-links { | ||||||
|  |   display: flex; | ||||||
|  |   justify-content: center; | ||||||
|  |   gap: 1.5rem; | ||||||
|  | } | ||||||
|  | .portfolio__section--intro .social-links .social-link { | ||||||
|  |   color: #fff; | ||||||
|  |   text-decoration: none; | ||||||
|  |   font-size: 1.1rem; | ||||||
|  |   transition: color 0.3s; | ||||||
|  | } | ||||||
|  | .portfolio__section--intro .social-links .social-link:hover { | ||||||
|  |   color: #3498db; | ||||||
|  | } | ||||||
|  | .portfolio__section .section-title { | ||||||
|  |   font-size: 2.5rem; | ||||||
|  |   margin-bottom: 2rem; | ||||||
|  |   color: #fff; | ||||||
|  |   position: relative; | ||||||
|  |   display: inline-block; | ||||||
|  | } | ||||||
|  | .portfolio__section .section-title::after { | ||||||
|  |   content: ""; | ||||||
|  |   position: absolute; | ||||||
|  |   bottom: -10px; | ||||||
|  |   left: 0; | ||||||
|  |   width: 50px; | ||||||
|  |   height: 3px; | ||||||
|  |   background: #3498db; | ||||||
|  | } | ||||||
|  | .portfolio__section .about-content { | ||||||
|  |   display: flex; | ||||||
|  |   gap: 2rem; | ||||||
|  |   align-items: center; | ||||||
|  | } | ||||||
|  | .portfolio__section .about-content .about-text { | ||||||
|  |   flex: 1; | ||||||
|  |   color: #fff; | ||||||
|  |   line-height: 1.6; | ||||||
|  | } | ||||||
|  | .portfolio__section .about-content .about-image { | ||||||
|  |   flex: 1; | ||||||
|  | } | ||||||
|  | .portfolio__section .about-content .about-image img { | ||||||
|  |   max-width: 100%; | ||||||
|  |   border-radius: 10px; | ||||||
|  |   box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); | ||||||
|  | } | ||||||
|  | .portfolio__section .timeline { | ||||||
|  |   position: relative; | ||||||
|  |   padding-left: 2rem; | ||||||
|  |   color: #fff; | ||||||
|  | } | ||||||
|  | .portfolio__section .timeline::before { | ||||||
|  |   content: ""; | ||||||
|  |   position: absolute; | ||||||
|  |   left: 0; | ||||||
|  |   top: 0; | ||||||
|  |   height: 100%; | ||||||
|  |   width: 2px; | ||||||
|  |   background: #3498db; | ||||||
|  | } | ||||||
|  | .portfolio__section .timeline-item { | ||||||
|  |   margin-bottom: 2rem; | ||||||
|  |   position: relative; | ||||||
|  | } | ||||||
|  | .portfolio__section .timeline-item::before { | ||||||
|  |   content: ""; | ||||||
|  |   position: absolute; | ||||||
|  |   left: -2.5rem; | ||||||
|  |   top: 0.5rem; | ||||||
|  |   width: 1rem; | ||||||
|  |   height: 1rem; | ||||||
|  |   border-radius: 50%; | ||||||
|  |   background: #fff; | ||||||
|  |   border: 2px solid #3498db; | ||||||
|  | } | ||||||
|  | .portfolio__section .timeline-title { | ||||||
|  |   font-size: 1.3rem; | ||||||
|  |   margin-bottom: 0.3rem; | ||||||
|  | } | ||||||
|  | .portfolio__section .timeline-company { | ||||||
|  |   font-style: italic; | ||||||
|  |   margin-bottom: 0.5rem; | ||||||
|  |   opacity: 0.8; | ||||||
|  | } | ||||||
|  | .portfolio__section .timeline-description { | ||||||
|  |   line-height: 1.5; | ||||||
|  | } | ||||||
|  | .portfolio__section .projects-grid { | ||||||
|  |   display: grid; | ||||||
|  |   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | ||||||
|  |   gap: 1.5rem; | ||||||
|  | } | ||||||
|  | .portfolio__section .project-card { | ||||||
|  |   background: rgba(255, 255, 255, 0.1); | ||||||
|  |   backdrop-filter: blur(10px); | ||||||
|  |   -webkit-backdrop-filter: blur(10px); | ||||||
|  |   border-radius: 10px; | ||||||
|  |   padding: 1.5rem; | ||||||
|  |   transition: transform 0.3s; | ||||||
|  |   color: #fff; | ||||||
|  | } | ||||||
|  | .portfolio__section .project-card:hover { | ||||||
|  |   transform: translateY(-5px); | ||||||
|  | } | ||||||
|  | .portfolio__section .project-title { | ||||||
|  |   font-size: 1.3rem; | ||||||
|  |   margin-bottom: 0.5rem; | ||||||
|  |   color: #fff; | ||||||
|  | } | ||||||
|  | .portfolio__section .project-description { | ||||||
|  |   margin-bottom: 1rem; | ||||||
|  |   line-height: 1.5; | ||||||
|  | } | ||||||
|  | .portfolio__section .project-link { | ||||||
|  |   color: #3498db; | ||||||
|  |   text-decoration: none; | ||||||
|  |   font-weight: bold; | ||||||
|  | } | ||||||
|  | .portfolio__section .project-link:hover { | ||||||
|  |   text-decoration: underline; | ||||||
|  | } | ||||||
|  | .portfolio__section--footer { | ||||||
|  |   background: #2c3e50; | ||||||
|  | } | ||||||
|  | .portfolio__section--footer .content { | ||||||
|  |   text-align: center; | ||||||
|  | } | ||||||
|  | .portfolio__section--footer .contact-info { | ||||||
|  |   margin-bottom: 2rem; | ||||||
|  |   color: #fff; | ||||||
|  | } | ||||||
|  | .portfolio__section--footer .contact-info a { | ||||||
|  |   color: #3498db; | ||||||
|  |   text-decoration: none; | ||||||
|  | } | ||||||
|  | .portfolio__section--footer .contact-info a:hover { | ||||||
|  |   text-decoration: underline; | ||||||
|  | } | ||||||
|  | .portfolio__section--footer .footer-links { | ||||||
|  |   display: flex; | ||||||
|  |   justify-content: center; | ||||||
|  |   gap: 2rem; | ||||||
|  |   margin-bottom: 2rem; | ||||||
|  | } | ||||||
|  | .portfolio__section--footer .footer-links .footer-link { | ||||||
|  |   color: #fff; | ||||||
|  |   text-decoration: none; | ||||||
|  |   transition: color 0.3s; | ||||||
|  | } | ||||||
|  | .portfolio__section--footer .footer-links .footer-link:hover { | ||||||
|  |   color: #3498db; | ||||||
|  | } | ||||||
|  | .portfolio__section--footer .copyright { | ||||||
|  |   color: rgba(255, 255, 255, 0.6); | ||||||
|  |   font-size: 0.9rem; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @media (max-width: 768px) { | ||||||
|  |   .portfolio__section .content { | ||||||
|  |     padding: 1rem; | ||||||
|  |   } | ||||||
|  |   .portfolio__section--intro .intro-title { | ||||||
|  |     font-size: 2.5rem; | ||||||
|  |   } | ||||||
|  |   .portfolio__section--intro .intro-subtitle { | ||||||
|  |     font-size: 1.2rem; | ||||||
|  |   } | ||||||
|  |   .portfolio__section .about-content { | ||||||
|  |     flex-direction: column; | ||||||
|  |   } | ||||||
|  |   .portfolio__section .about-content .about-text { | ||||||
|  |     order: 2; | ||||||
|  |   } | ||||||
|  |   .portfolio__section .about-content .about-image { | ||||||
|  |     order: 1; | ||||||
|  |     margin-bottom: 1.5rem; | ||||||
|  |   } | ||||||
|  |   .portfolio__section .section-title { | ||||||
|  |     font-size: 2rem; | ||||||
|  |   } | ||||||
|  | } | ||||||
| @ -3,16 +3,99 @@ | |||||||
| <head> | <head> | ||||||
|     <meta charset="UTF-8"> |     <meta charset="UTF-8"> | ||||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0"> |     <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||||||
|     <meta http-equiv="X-UA-Compatible" content="ie=edge"> |     <title>Your Name | Portfolio</title> | ||||||
|     <title>Coming Soon</title> |     <link rel="stylesheet" href="../css/about.css"> | ||||||
|     <link rel="stylesheet" href="../css/not_ready.css"> |  | ||||||
| </head> | </head> | ||||||
| <body> | <body> | ||||||
|  |     <main class="portfolio"> | ||||||
|  |         <!-- Intro Section --> | ||||||
|  |         <section class="portfolio__section portfolio__section--intro"> | ||||||
|  |             <div class="content"> | ||||||
|  |                 <h1 class="intro-title">Hello, I'm <span class="highlight">Your Name</span></h1> | ||||||
|  |                 <p class="intro-subtitle">Job Title / Profession</p> | ||||||
|  |                 <div class="social-links"> | ||||||
|  |                     <a href="#" target="_blank" class="social-link">LinkedIn</a> | ||||||
|  |                     <a href="#" target="_blank" class="social-link">GitHub</a> | ||||||
|  |                     <a href="#" target="_blank" class="social-link">Twitter</a> | ||||||
|  |                 </div> | ||||||
|  |             </div> | ||||||
|  |             <div class="bg-image" style="background-image: url('https://visme.co/blog/wp-content/uploads/2017/07/50-Beautiful-and-Minimalist-Presentation-Backgrounds-013.jpg')"></div> | ||||||
|  |         </section> | ||||||
| 
 | 
 | ||||||
|     <div class="container"> |         <!-- About Section --> | ||||||
|         <h1>This page is not ready yet!</h1> |         <section class="portfolio__section"> | ||||||
|         <p>Working hard to bring you something amazing. Stay tuned!</p> |             <div class="content"> | ||||||
|     </div> |                 <h2 class="section-title">About Me</h2> | ||||||
|  |                 <div class="about-content"> | ||||||
|  |                     <div class="about-text"> | ||||||
|  |                         <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in dui mauris. Vivamus hendrerit arcu sed erat molestie vehicula.</p> | ||||||
|  |                         <p>Sed auctor neque eu tellus rhoncus ut eleifend nibh porttitor. Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor.</p> | ||||||
|  |                     </div> | ||||||
|  |                     <div class="about-image"> | ||||||
|  |                         <img src="https://viewpointservices.com/wp-content/uploads/2019/07/GettyImages-1142192666-1.jpg" alt="Your Name"> | ||||||
|  |                     </div> | ||||||
|  |                 </div> | ||||||
|  |             </div> | ||||||
|  |             <div class="bg-image" style="background-image: url('https://www.elegantthemes.com/blog/wp-content/uploads/2013/09/bg-1-full.jpg')"></div> | ||||||
|  |         </section> | ||||||
| 
 | 
 | ||||||
|  |         <!-- Experience Section --> | ||||||
|  |         <section class="portfolio__section"> | ||||||
|  |             <div class="content"> | ||||||
|  |                 <h2 class="section-title">Experience</h2> | ||||||
|  |                 <div class="timeline"> | ||||||
|  |                     <div class="timeline-item"> | ||||||
|  |                         <h3 class="timeline-title">Senior Developer</h3> | ||||||
|  |                         <p class="timeline-company">Tech Company Inc. (2020-Present)</p> | ||||||
|  |                         <p class="timeline-description">Lead developer for web applications.</p> | ||||||
|  |                     </div> | ||||||
|  |                     <div class="timeline-item"> | ||||||
|  |                         <h3 class="timeline-title">Web Developer</h3> | ||||||
|  |                         <p class="timeline-company">Digital Agency (2017-2020)</p> | ||||||
|  |                         <p class="timeline-description">Front-end development and UX design.</p> | ||||||
|  |                     </div> | ||||||
|  |                 </div> | ||||||
|  |             </div> | ||||||
|  |             <div class="bg-image" style="background-image: url('https://wallpapers.com/images/hd/professional-zoom-background-3h69jq8rrky7f3tj.jpg')"></div> | ||||||
|  |         </section> | ||||||
|  | 
 | ||||||
|  |         <!-- Projects Section --> | ||||||
|  |         <section class="portfolio__section"> | ||||||
|  |             <div class="content"> | ||||||
|  |                 <h2 class="section-title">Projects</h2> | ||||||
|  |                 <div class="projects-grid"> | ||||||
|  |                     <div class="project-card"> | ||||||
|  |                         <h3 class="project-title">Project 1</h3> | ||||||
|  |                         <p class="project-description">Description of project and technologies used.</p> | ||||||
|  |                         <a href="#" class="project-link">View Project</a> | ||||||
|  |                     </div> | ||||||
|  |                     <div class="project-card"> | ||||||
|  |                         <h3 class="project-title">Project 2</h3> | ||||||
|  |                         <p class="project-description">Description of project and technologies used.</p> | ||||||
|  |                         <a href="#" class="project-link">View Project</a> | ||||||
|  |                     </div> | ||||||
|  |                 </div> | ||||||
|  |             </div> | ||||||
|  |             <div class="bg-image" style="background-image: url('https://wallpapers.com/images/hd/integral-project-management-cover-erpo8ef1af3wuquu.jpg')"></div> | ||||||
|  |         </section> | ||||||
|  | 
 | ||||||
|  |         <!-- Contact/Footer Section --> | ||||||
|  |         <section class="portfolio__section portfolio__section--footer"> | ||||||
|  |             <div class="content"> | ||||||
|  |                 <h2 class="section-title">Get In Touch</h2> | ||||||
|  |                 <div class="contact-info"> | ||||||
|  |                     <p>Email: <a href="mailto:you@example.com">you@example.com</a></p> | ||||||
|  |                     <p>Phone: (123) 456-7890</p> | ||||||
|  |                 </div> | ||||||
|  |                 <div class="footer-links"> | ||||||
|  |                     <a href="#" class="footer-link">Resume (PDF)</a> | ||||||
|  |                     <a href="#" class="footer-link">GitHub</a> | ||||||
|  |                     <a href="#" class="footer-link">LinkedIn</a> | ||||||
|  |                 </div> | ||||||
|  |                 <p class="copyright">© 2023 Your Name. All rights reserved.</p> | ||||||
|  |             </div> | ||||||
|  |         </section> | ||||||
|  |     </main> | ||||||
|  |     <script src="../js/smoothscroll.js" defer></script> | ||||||
| </body> | </body> | ||||||
| </html> | </html> | ||||||
							
								
								
									
										111
									
								
								js/smoothscroll.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										111
									
								
								js/smoothscroll.js
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,111 @@ | |||||||
|  | // Strict one-section-at-a-time scrolling
 | ||||||
|  | document.addEventListener('DOMContentLoaded', () => { | ||||||
|  |   const portfolio = document.querySelector('.portfolio'); | ||||||
|  |   if (!portfolio) return; | ||||||
|  | 
 | ||||||
|  |   let isAnimating = false; | ||||||
|  |   let lastScrollTime = 0; | ||||||
|  |   let currentSection = 0; | ||||||
|  |   let lastTouchY = null; | ||||||
|  |   const sections = document.querySelectorAll('.portfolio__section'); | ||||||
|  |   const sectionHeight = window.innerHeight; | ||||||
|  |   const scrollDelay = 50; // Time between allowed scrolls (ms)
 | ||||||
|  |   const scrollThreshold = 10; // Minimum pixels to trigger scroll
 | ||||||
|  | 
 | ||||||
|  |   // Initialize scroll position
 | ||||||
|  |   window.scrollTo(0, 0); | ||||||
|  | 
 | ||||||
|  |   // Handle wheel/touch events
 | ||||||
|  |   portfolio.addEventListener('wheel', handleScroll, { passive: false }); | ||||||
|  |   portfolio.addEventListener('touchstart', (e) => { | ||||||
|  |     lastTouchY = e.touches[0].clientY; | ||||||
|  |   }, { passive: true }); | ||||||
|  |   portfolio.addEventListener('touchmove', handleScroll, { passive: false }); | ||||||
|  | 
 | ||||||
|  |   function handleScroll(e) { | ||||||
|  |     const now = Date.now(); | ||||||
|  |     e.preventDefault(); | ||||||
|  |      | ||||||
|  |     if (isAnimating || (now - lastScrollTime < scrollDelay)) { | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // Calculate delta based on input type
 | ||||||
|  |     let delta; | ||||||
|  |     if (e.type === 'wheel') { | ||||||
|  |       delta = e.deltaY; | ||||||
|  |     } else if (e.type === 'touchmove') { | ||||||
|  |       delta = lastTouchY - e.touches[0].clientY; | ||||||
|  |       lastTouchY = e.touches[0].clientY; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // Determine target section
 | ||||||
|  |     let targetSection = currentSection; | ||||||
|  |     if (delta > scrollThreshold) { | ||||||
|  |       targetSection = Math.min(currentSection + 1, sections.length - 1); | ||||||
|  |     } else if (delta < -scrollThreshold) { | ||||||
|  |       targetSection = Math.max(currentSection - 1, 0); | ||||||
|  |     } else { | ||||||
|  |       return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (targetSection !== currentSection) { | ||||||
|  |       isAnimating = true; | ||||||
|  |       currentSection = targetSection; | ||||||
|  |       lastScrollTime = now; | ||||||
|  |        | ||||||
|  |       portfolio.scrollTo({ | ||||||
|  |         top: sectionHeight * targetSection, | ||||||
|  |         behavior: 'smooth' | ||||||
|  |       }); | ||||||
|  | 
 | ||||||
|  |       setTimeout(() => { | ||||||
|  |         isAnimating = false; | ||||||
|  |       }, scrollDelay); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   // Handle keyboard navigation
 | ||||||
|  |   document.addEventListener('keydown', (e) => { | ||||||
|  |     if (isAnimating) return; | ||||||
|  |      | ||||||
|  |     switch(e.key) { | ||||||
|  |       case 'ArrowDown': | ||||||
|  |         e.preventDefault(); | ||||||
|  |         currentSection = Math.min(currentSection + 1, sections.length - 1); | ||||||
|  |         break; | ||||||
|  |       case 'ArrowUp': | ||||||
|  |         e.preventDefault(); | ||||||
|  |         currentSection = Math.max(currentSection - 1, 0); | ||||||
|  |         break; | ||||||
|  |       case 'Home': | ||||||
|  |         e.preventDefault(); | ||||||
|  |         currentSection = 0; | ||||||
|  |         break; | ||||||
|  |       case 'End': | ||||||
|  |         e.preventDefault(); | ||||||
|  |         currentSection = sections.length - 1; | ||||||
|  |         break; | ||||||
|  |       default: | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     isAnimating = true; | ||||||
|  |     portfolio.scrollTo({ | ||||||
|  |       top: sectionHeight * currentSection, | ||||||
|  |       behavior: 'smooth' | ||||||
|  |     }); | ||||||
|  |      | ||||||
|  |     setTimeout(() => { | ||||||
|  |       isAnimating = false; | ||||||
|  |     }, scrollDelay); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   // Handle window resize
 | ||||||
|  |   window.addEventListener('resize', () => { | ||||||
|  |     portfolio.scrollTo({ | ||||||
|  |       top: sectionHeight * currentSection, | ||||||
|  |       behavior: 'auto' | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
|  | }); | ||||||
							
								
								
									
										334
									
								
								scss/about.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										334
									
								
								scss/about.scss
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,334 @@ | |||||||
|  | // Variables | ||||||
|  | $primary-color: #3498db; | ||||||
|  | $secondary-color: #2c3e50; | ||||||
|  | $text-color: #333; | ||||||
|  | $light-color: #fff; | ||||||
|  | $dark-color: #222; | ||||||
|  | $overlay-color: rgba(0, 0, 0, 0.6); | ||||||
|  | $blur-amount: 5px; | ||||||
|  | $section-padding: 2rem; | ||||||
|  | $max-content-width: 1200px; | ||||||
|  | 
 | ||||||
|  | // Mixins | ||||||
|  | @mixin flex-center { | ||||||
|  |     display: flex; | ||||||
|  |     justify-content: center; | ||||||
|  |     align-items: center; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | @mixin absolute-cover { | ||||||
|  |     position: absolute; | ||||||
|  |     top: 0; | ||||||
|  |     left: 0; | ||||||
|  |     width: 100%; | ||||||
|  |     height: 100%; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Base Styles | ||||||
|  | body { | ||||||
|  |     margin: 0; | ||||||
|  |     padding: 0; | ||||||
|  |     font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; | ||||||
|  |     color: $text-color; | ||||||
|  |     overflow-x: hidden; | ||||||
|  |     scroll-behavior: smooth; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Portfolio Container | ||||||
|  | .portfolio { | ||||||
|  |     scroll-snap-type: y mandatory; | ||||||
|  |   overflow-y: scroll; | ||||||
|  |   height: 100vh; | ||||||
|  |   scroll-behavior: smooth; | ||||||
|  |   -webkit-overflow-scrolling: touch; | ||||||
|  |   overscroll-behavior-y: contain; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Sections | ||||||
|  | .portfolio__section { | ||||||
|  |     scroll-snap-align: start; | ||||||
|  |     position: relative; | ||||||
|  |     height: 100vh; | ||||||
|  |     width: 100%; | ||||||
|  |     overflow: hidden; | ||||||
|  |      | ||||||
|  |     .content { | ||||||
|  |         position: relative; | ||||||
|  |         z-index: 2; | ||||||
|  |         max-width: $max-content-width; | ||||||
|  |         margin: 0 auto; | ||||||
|  |         padding: $section-padding; | ||||||
|  |         height: 100%; | ||||||
|  |         display: flex; | ||||||
|  |         flex-direction: column; | ||||||
|  |         justify-content: center; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     // Background image styling | ||||||
|  |     .bg-image { | ||||||
|  |         @include absolute-cover; | ||||||
|  |         background-size: cover; | ||||||
|  |         background-position: center; | ||||||
|  |         z-index: 1; | ||||||
|  |          | ||||||
|  |         &::after { | ||||||
|  |             content: ''; | ||||||
|  |             @include absolute-cover; | ||||||
|  |             background: $overlay-color; | ||||||
|  |             backdrop-filter: blur($blur-amount); | ||||||
|  |             -webkit-backdrop-filter: blur($blur-amount); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     // Intro section specific styles | ||||||
|  |     &--intro { | ||||||
|  |         text-align: center; | ||||||
|  |          | ||||||
|  |         .intro-title { | ||||||
|  |             font-size: 3.5rem; | ||||||
|  |             margin-bottom: 1rem; | ||||||
|  |             color: $light-color; | ||||||
|  |              | ||||||
|  |             .highlight { | ||||||
|  |                 color: $primary-color; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         .intro-subtitle { | ||||||
|  |             font-size: 1.5rem; | ||||||
|  |             color: rgba($light-color, 0.8); | ||||||
|  |             margin-bottom: 2rem; | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         .social-links { | ||||||
|  |             display: flex; | ||||||
|  |             justify-content: center; | ||||||
|  |             gap: 1.5rem; | ||||||
|  |              | ||||||
|  |             .social-link { | ||||||
|  |                 color: $light-color; | ||||||
|  |                 text-decoration: none; | ||||||
|  |                 font-size: 1.1rem; | ||||||
|  |                 transition: color 0.3s; | ||||||
|  |                  | ||||||
|  |                 &:hover { | ||||||
|  |                     color: $primary-color; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     // Section titles | ||||||
|  |     .section-title { | ||||||
|  |         font-size: 2.5rem; | ||||||
|  |         margin-bottom: 2rem; | ||||||
|  |         color: $light-color; | ||||||
|  |         position: relative; | ||||||
|  |         display: inline-block; | ||||||
|  |          | ||||||
|  |         &::after { | ||||||
|  |             content: ''; | ||||||
|  |             position: absolute; | ||||||
|  |             bottom: -10px; | ||||||
|  |             left: 0; | ||||||
|  |             width: 50px; | ||||||
|  |             height: 3px; | ||||||
|  |             background: $primary-color; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     // About section | ||||||
|  |     .about-content { | ||||||
|  |         display: flex; | ||||||
|  |         gap: 2rem; | ||||||
|  |         align-items: center; | ||||||
|  |          | ||||||
|  |         .about-text { | ||||||
|  |             flex: 1; | ||||||
|  |             color: $light-color; | ||||||
|  |             line-height: 1.6; | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         .about-image { | ||||||
|  |             flex: 1; | ||||||
|  |              | ||||||
|  |             img { | ||||||
|  |                 max-width: 100%; | ||||||
|  |                 border-radius: 10px; | ||||||
|  |                 box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     // Timeline/Experience | ||||||
|  |     .timeline { | ||||||
|  |         position: relative; | ||||||
|  |         padding-left: 2rem; | ||||||
|  |         color: $light-color; | ||||||
|  |          | ||||||
|  |         &::before { | ||||||
|  |             content: ''; | ||||||
|  |             position: absolute; | ||||||
|  |             left: 0; | ||||||
|  |             top: 0; | ||||||
|  |             height: 100%; | ||||||
|  |             width: 2px; | ||||||
|  |             background: $primary-color; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     .timeline-item { | ||||||
|  |         margin-bottom: 2rem; | ||||||
|  |         position: relative; | ||||||
|  |          | ||||||
|  |         &::before { | ||||||
|  |             content: ''; | ||||||
|  |             position: absolute; | ||||||
|  |             left: -2.5rem; | ||||||
|  |             top: 0.5rem; | ||||||
|  |             width: 1rem; | ||||||
|  |             height: 1rem; | ||||||
|  |             border-radius: 50%; | ||||||
|  |             background: $light-color; | ||||||
|  |             border: 2px solid $primary-color; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     .timeline-title { | ||||||
|  |         font-size: 1.3rem; | ||||||
|  |         margin-bottom: 0.3rem; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     .timeline-company { | ||||||
|  |         font-style: italic; | ||||||
|  |         margin-bottom: 0.5rem; | ||||||
|  |         opacity: 0.8; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     .timeline-description { | ||||||
|  |         line-height: 1.5; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     // Projects | ||||||
|  |     .projects-grid { | ||||||
|  |         display: grid; | ||||||
|  |         grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); | ||||||
|  |         gap: 1.5rem; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     .project-card { | ||||||
|  |         background: rgba($light-color, 0.1); | ||||||
|  |         backdrop-filter: blur(10px); | ||||||
|  |         -webkit-backdrop-filter: blur(10px); | ||||||
|  |         border-radius: 10px; | ||||||
|  |         padding: 1.5rem; | ||||||
|  |         transition: transform 0.3s; | ||||||
|  |         color: $light-color; | ||||||
|  |          | ||||||
|  |         &:hover { | ||||||
|  |             transform: translateY(-5px); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     .project-title { | ||||||
|  |         font-size: 1.3rem; | ||||||
|  |         margin-bottom: 0.5rem; | ||||||
|  |         color: $light-color; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     .project-description { | ||||||
|  |         margin-bottom: 1rem; | ||||||
|  |         line-height: 1.5; | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     .project-link { | ||||||
|  |         color: $primary-color; | ||||||
|  |         text-decoration: none; | ||||||
|  |         font-weight: bold; | ||||||
|  |          | ||||||
|  |         &:hover { | ||||||
|  |             text-decoration: underline; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  |      | ||||||
|  |     // Footer section | ||||||
|  |     &--footer { | ||||||
|  |         background: $secondary-color; | ||||||
|  |          | ||||||
|  |         .content { | ||||||
|  |             text-align: center; | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         .contact-info { | ||||||
|  |             margin-bottom: 2rem; | ||||||
|  |             color: $light-color; | ||||||
|  |              | ||||||
|  |             a { | ||||||
|  |                 color: $primary-color; | ||||||
|  |                 text-decoration: none; | ||||||
|  |                  | ||||||
|  |                 &:hover { | ||||||
|  |                     text-decoration: underline; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         .footer-links { | ||||||
|  |             display: flex; | ||||||
|  |             justify-content: center; | ||||||
|  |             gap: 2rem; | ||||||
|  |             margin-bottom: 2rem; | ||||||
|  |              | ||||||
|  |             .footer-link { | ||||||
|  |                 color: $light-color; | ||||||
|  |                 text-decoration: none; | ||||||
|  |                 transition: color 0.3s; | ||||||
|  |                  | ||||||
|  |                 &:hover { | ||||||
|  |                     color: $primary-color; | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         .copyright { | ||||||
|  |             color: rgba($light-color, 0.6); | ||||||
|  |             font-size: 0.9rem; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | // Responsive adjustments | ||||||
|  | @media (max-width: 768px) { | ||||||
|  |     .portfolio__section { | ||||||
|  |         .content { | ||||||
|  |             padding: 1rem; | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         &--intro { | ||||||
|  |             .intro-title { | ||||||
|  |                 font-size: 2.5rem; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             .intro-subtitle { | ||||||
|  |                 font-size: 1.2rem; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         .about-content { | ||||||
|  |             flex-direction: column; | ||||||
|  |              | ||||||
|  |             .about-text { | ||||||
|  |                 order: 2; | ||||||
|  |             } | ||||||
|  |              | ||||||
|  |             .about-image { | ||||||
|  |                 order: 1; | ||||||
|  |                 margin-bottom: 1.5rem; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         .section-title { | ||||||
|  |             font-size: 2rem; | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user