Update project descriptions, enhance image handling, and add lightbox functionality

This commit is contained in:
Mohammed Al-yaseen
2025-05-14 22:39:31 +03:00
parent 48d0801081
commit 814fb97207
3 changed files with 186 additions and 72 deletions

View File

@@ -752,36 +752,23 @@ strong {
box-shadow: 0 10px 20px rgba(0,0,0,0.2); box-shadow: 0 10px 20px rgba(0,0,0,0.2);
} }
.projects-thumb:hover .projects-image, .projects-info {
.projects-thumb:focus .projects-image { position: relative;
transform: rotate(0) translateY(0); z-index: 2;
transition: all 0.3s ease;
} }
.projects-thumb .popup-image { .projects-thumb:hover .projects-info {
display: block; transform: translateY(-10px);
width: 100%;
height: 100%;
}
.projects-image {
border-radius: var(--border-radius-medium);
display: block;
width: 100%;
height: 170px;
transform: rotate(10deg) translateY(80px);
transition: all ease 0.5s;
}
.projects-image {
transition: transform 0.3s ease;
}
.projects-thumb:hover .projects-image {
transform: scale(1.05);
} }
.projects-title { .projects-title {
margin-bottom: 20px; margin-bottom: 20px;
transition: color 0.3s ease;
}
.projects-thumb:hover .projects-title {
color: var(--secondary-color);
} }
.projects-tag { .projects-tag {
@@ -790,6 +777,108 @@ strong {
color: var(--secondary-color); color: var(--secondary-color);
text-transform: uppercase; text-transform: uppercase;
margin-bottom: 5px; margin-bottom: 5px;
display: inline-block;
padding: 4px 12px;
background: rgba(20, 183, 137, 0.1);
border-radius: var(--border-radius-small);
}
.projects-description {
color: var(--p-color);
font-size: 14px;
margin-top: 15px;
opacity: 0;
transform: translateY(20px);
transition: all 0.3s ease;
}
.projects-thumb:hover .projects-description {
opacity: 1;
transform: translateY(0);
}
.projects-links {
margin-top: 15px;
opacity: 0;
transform: translateY(20px);
transition: all 0.3s ease;
}
.projects-thumb:hover .projects-links {
opacity: 1;
transform: translateY(0);
}
.projects-link {
display: inline-block;
margin-right: 10px;
color: var(--secondary-color);
font-size: 14px;
text-decoration: none;
transition: all 0.3s ease;
}
.projects-link:hover {
color: var(--primary-color);
transform: translateY(-2px);
}
.projects-image {
border-radius: var(--border-radius-medium);
display: block;
width: 100%;
height: 200px;
object-fit: cover;
transition: all 0.5s ease;
transform: scale(1);
}
.projects-thumb:hover .projects-image {
transform: scale(1.05);
}
/* Lightbox styles */
.lightbox {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.9);
display: none;
justify-content: center;
align-items: center;
z-index: 1000;
}
.lightbox.active {
display: flex;
}
.lightbox-content {
max-width: 90%;
max-height: 90vh;
position: relative;
}
.lightbox-image {
max-width: 100%;
max-height: 90vh;
border-radius: var(--border-radius-medium);
}
.lightbox-close {
position: absolute;
top: -40px;
right: 0;
color: var(--white-color);
font-size: 30px;
cursor: pointer;
transition: all 0.3s ease;
}
.lightbox-close:hover {
color: var(--secondary-color);
} }
/*--------------------------------------- /*---------------------------------------
@@ -1065,7 +1154,7 @@ strong {
.custom-btn, .custom-btn,
.navbar .custom-btn { .navbar .custom-btn {
font-size: var(--copyright-text-font-size); font-size: var(--copyright-font-size);
padding: 8px 16px; padding: 8px 16px;
} }

View File

@@ -100,7 +100,7 @@
<h5 class="hero-title ms-3 mb-0">Hello friend!</h5> <h5 class="hero-title ms-3 mb-0">Hello friend!</h5>
</div> </div>
<h2 class="mb-4">Im available for freelance work.</h2> <h2 class="mb-4">I'm available for freelance work.</h2>
<p class="mb-4"> <p class="mb-4">
<a class="custom-btn btn custom-link" href="#section_2" <a class="custom-btn btn custom-link" href="#section_2"
>Let's begin</a >Let's begin</a
@@ -346,40 +346,36 @@
<div class="clearfix"></div> <div class="clearfix"></div>
<div class="col-lg-4 col-md-6 col-12"> <div class="col-lg-4 col-md-6 col-12">
<div class="projects-thumb"> <div class="projects-thumb">
<div class="projects-info"> <div class="projects-info">
<small class="projects-tag">Website</small> <small class="projects-tag">Website</small>
<h3 class="projects-title">Law-office Login</h3> <h3 class="projects-title">Law-office Login</h3>
<p class="projects-description">A secure login system for law office management with role-based access control and advanced security features.</p>
<div class="projects-links">
<a href="#" class="projects-link">View Demo</a>
<a href="#" class="projects-link">Source Code</a>
</div>
</div> </div>
<a href="images/projects/law-office-login.png" class="popup-image"> <a href="images/projects/law-office-login.png" class="popup-image">
<img <img src="images/projects/law-office-login.png" class="projects-image img-fluid" alt="Law Office Login System" />
src="images/projects/law-office-login.png"
class="projects-image img-fluid"
alt=""
/>
</a> </a>
</div> </div>
</div> </div>
<div class="col-lg-4 col-md-6 col-12"> <div class="col-lg-4 col-md-6 col-12">
<div class="projects-thumb"> <div class="projects-thumb">
<div class="projects-info"> <div class="projects-info">
<small class="projects-tag">Website</small> <small class="projects-tag">Website</small>
<h3 class="projects-title">Easy-pay Login</h3> <h3 class="projects-title">Easy-pay Login</h3>
<p class="projects-description">A modern payment system login interface with secure authentication and user-friendly design.</p>
<div class="projects-links">
<a href="#" class="projects-link">View Demo</a>
<a href="#" class="projects-link">Source Code</a>
</div>
</div> </div>
<a href="images/projects/easy-pay-login.png" class="popup-image"> <a href="images/projects/easy-pay-login.png" class="popup-image">
<img <img src="images/projects/easy-pay-login.png" class="projects-image img-fluid" alt="Easy Pay Login System" />
src="images/projects/easy-pay-login.png"
class="projects-image img-fluid"
alt=""
/>
</a> </a>
</div> </div>
</div> </div>
@@ -387,20 +383,16 @@
<div class="col-lg-4 col-md-6 col-12"> <div class="col-lg-4 col-md-6 col-12">
<div class="projects-thumb"> <div class="projects-thumb">
<div class="projects-info"> <div class="projects-info">
<small class="projects-tag">Website</small> <small class="projects-tag">E-commerce</small>
<h3 class="projects-title">Cloths Ecommerce</h3> <h3 class="projects-title">Cloths Ecommerce</h3>
<p class="projects-description">A full-featured e-commerce platform for clothing with advanced filtering and shopping cart functionality.</p>
<div class="projects-links">
<a href="#" class="projects-link">View Demo</a>
<a href="#" class="projects-link">Source Code</a>
</div> </div>
</div>
<a <a href="images/projects/cloths-e-commerce.png" class="popup-image">
href="images/projects/cloths-e-commerce.png" <img src="images/projects/cloths-e-commerce.png" class="projects-image img-fluid" alt="Clothing E-commerce Platform" />
class="popup-image"
>
<img
src="images/projects/cloths-e-commerce.png"
class="projects-image img-fluid"
alt=""
/>
</a> </a>
</div> </div>
</div> </div>
@@ -409,10 +401,8 @@
<div class="projects-thumb"> <div class="projects-thumb">
<div class="projects-info"> <div class="projects-info">
<small class="projects-tag">Website</small> <small class="projects-tag">Website</small>
<h3 class="projects-title">Law Office</h3> <h3 class="projects-title">Law Office</h3>
</div> </div>
<a <a
href="images/projects/law-office-home.png" href="images/projects/law-office-home.png"
class="popup-image" class="popup-image"
@@ -430,10 +420,8 @@
<div class="projects-thumb"> <div class="projects-thumb">
<div class="projects-info"> <div class="projects-info">
<small class="projects-tag">Website</small> <small class="projects-tag">Website</small>
<h3 class="projects-title">SVU E-commerce</h3> <h3 class="projects-title">SVU E-commerce</h3>
</div> </div>
<a <a
href="images/projects/svu-hw.png" href="images/projects/svu-hw.png"
class="popup-image" class="popup-image"
@@ -451,10 +439,8 @@
<div class="projects-thumb"> <div class="projects-thumb">
<div class="projects-info"> <div class="projects-info">
<small class="projects-tag">Website</small> <small class="projects-tag">Website</small>
<h3 class="projects-title">NANS's CRM</h3> <h3 class="projects-title">NANS's CRM</h3>
</div> </div>
<a <a
href="images/projects/nanas-main-dashboard.png" href="images/projects/nanas-main-dashboard.png"
class="popup-image" class="popup-image"
@@ -472,10 +458,8 @@
<div class="projects-thumb"> <div class="projects-thumb">
<div class="projects-info"> <div class="projects-info">
<small class="projects-tag">Website</small> <small class="projects-tag">Website</small>
<h3 class="projects-title">Majsin's Restaurant</h3> <h3 class="projects-title">Majsin's Restaurant</h3>
</div> </div>
<a <a
href="images/projects/majsin-dashborad.png" href="images/projects/majsin-dashborad.png"
class="popup-image" class="popup-image"
@@ -493,10 +477,8 @@
<div class="projects-thumb"> <div class="projects-thumb">
<div class="projects-info"> <div class="projects-info">
<small class="projects-tag">Website</small> <small class="projects-tag">Website</small>
<h3 class="projects-title">BPro's ERP System</h3> <h3 class="projects-title">BPro's ERP System</h3>
</div> </div>
<a href="images/projects/bpro-erp.jpg" class="popup-image"> <a href="images/projects/bpro-erp.jpg" class="popup-image">
<img <img
src="images/projects/bpro-erp.jpg" src="images/projects/bpro-erp.jpg"
@@ -511,10 +493,8 @@
<div class="projects-thumb"> <div class="projects-thumb">
<div class="projects-info"> <div class="projects-info">
<small class="projects-tag">Website</small> <small class="projects-tag">Website</small>
<h3 class="projects-title">Moneyout Bank</h3> <h3 class="projects-title">Moneyout Bank</h3>
</div> </div>
<a <a
href="images/projects/moneyout.png" href="images/projects/moneyout.png"
class="popup-image" class="popup-image"
@@ -527,8 +507,6 @@
</a> </a>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</section> </section>
@@ -761,7 +739,7 @@
>Start a project</strong >Start a project</strong
> >
<p class="mb-0">Im available for freelance projects</p> <p class="mb-0">I'm available for freelance projects</p>
</div> </div>
</div> </div>
@@ -932,12 +910,12 @@
<div class="copyright-text-wrap"> <div class="copyright-text-wrap">
<p class="mb-0"> <p class="mb-0">
<span class="copyright-text" <span class="copyright-text"
>Copyright © 2036 <a href="#">First Portfolio</a> Company. All >Copyright © 2025. All
rights reserved.</span rights reserved.</span
> >
Design: Design:
<a rel="sponsored" href="https://templatemo.com" target="_blank" <a rel="sponsored" href="https://mohammed-alyaseen.github.io/portfolio" target="_blank"
>TemplateMo</a >Mohammed Al-Yaseen</a
> >
</p> </p>
</div> </div>
@@ -954,5 +932,13 @@
<script src="js/jquery.magnific-popup.min.js"></script> <script src="js/jquery.magnific-popup.min.js"></script>
<script src="js/magnific-popup-options.js"></script> <script src="js/magnific-popup-options.js"></script>
<script src="js/custom.js"></script> <script src="js/custom.js"></script>
<!-- Add Lightbox HTML -->
<div class="lightbox">
<div class="lightbox-content">
<span class="lightbox-close">&times;</span>
<img src="" alt="" class="lightbox-image">
</div>
</div>
</body> </body>
</html> </html>

View File

@@ -70,4 +70,43 @@
} }
}); });
}); });
// Add lightbox functionality
const lightbox = document.querySelector('.lightbox');
const lightboxImage = document.querySelector('.lightbox-image');
const lightboxClose = document.querySelector('.lightbox-close');
const projectImages = document.querySelectorAll('.popup-image');
projectImages.forEach(image => {
image.addEventListener('click', (e) => {
e.preventDefault();
const imgSrc = image.getAttribute('href');
const imgAlt = image.querySelector('img').getAttribute('alt');
lightboxImage.setAttribute('src', imgSrc);
lightboxImage.setAttribute('alt', imgAlt);
lightbox.classList.add('active');
document.body.style.overflow = 'hidden';
});
});
lightboxClose.addEventListener('click', () => {
lightbox.classList.remove('active');
document.body.style.overflow = '';
});
lightbox.addEventListener('click', (e) => {
if (e.target === lightbox) {
lightbox.classList.remove('active');
document.body.style.overflow = '';
}
});
// Close lightbox with Escape key
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape' && lightbox.classList.contains('active')) {
lightbox.classList.remove('active');
document.body.style.overflow = '';
}
});
})(window.jQuery); })(window.jQuery);