About Me
I'm a passionate web developer and designer with expertise in creating beautiful, functional, and user-friendly websites. With a strong background in SEO and graphics design, I deliver comprehensive digital solutions that help businesses grow online.
My approach combines creativity with technical expertise to build websites that not only look great but also perform exceptionally well in search engines.
My Skills
My Services
Web Development
Custom website development using the latest technologies. Specializing in responsive, mobile-friendly websites that load quickly and convert visitors.
Web Design
Professional website design with focus on user experience and modern aesthetics. Creating designs that reflect your brand and engage your audience.
SEO Optimization
Comprehensive SEO services to improve your website's visibility in search engines, increase organic traffic, and boost your online presence.
Graphics Design
Creative graphic design solutions including logo design, branding materials, social media graphics, and marketing collateral.
My Portfolio
What Clients Say
"Rajib delivered an exceptional website that perfectly represents our brand. His understanding of both design and technical aspects was impressive, and the SEO work has already improved our rankings."
Sarah Johnson
Marketing Director, TechSolutions
"Working with RDG Digital was a pleasure from start to finish. They understood our needs, provided creative solutions, and delivered a website that has significantly increased our conversion rate."
David Miller
Founder, E-commerce Store
"The brand identity Rajib created for our startup has been transformative. His ability to translate our vision into compelling visuals has helped us establish a strong market presence."
Lisa Chen
CEO, Innovative Solutions
Get In Touch
Location
Bangladesh
contact@rdg-digital.com
Phone
+880 1234 567890
RDG Digital
`; document.body.appendChild(preloader); // Hide preloader after page loads window.addEventListener('load', function() { setTimeout(function() { preloader.style.opacity = '0'; setTimeout(function() { preloader.style.display = 'none'; }, 500); }, 1000); }); // Add preloader styles const preloaderStyle = document.createElement('style'); preloaderStyle.textContent = ` .preloader { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--bg-color); display: flex; flex-direction: column; justify-content: center; align-items: center; z-index: 9999; transition: opacity 0.5s ease; } .loader { width: 80px; height: 80px; display: flex; justify-content: center; align-items: center; margin-bottom: 20px; } .loader-inner { width: 40px; height: 40px; border: 4px solid var(--primary-color); border-top: 4px solid transparent; border-radius: 50%; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .preloader p { font-size: 1.5rem; font-weight: 600; color: var(--primary-color); } `; document.head.appendChild(preloaderStyle); // Mobile Navigation const hamburger = document.querySelector('.hamburger'); const navLinks = document.querySelector('.nav-links'); if (hamburger) { hamburger.addEventListener('click', function() { navLinks.classList.toggle('active'); hamburger.classList.toggle('active'); }); } // Close mobile menu when clicking on a nav link const navItems = document.querySelectorAll('.nav-links a'); navItems.forEach(item => { item.addEventListener('click', function() { navLinks.classList.remove('active'); hamburger.classList.remove('active'); }); }); // Smooth scrolling for anchor links document.querySelectorAll('a[href^="#"]').forEach(anchor => { anchor.addEventListener('click', function(e) { e.preventDefault(); const targetId = this.getAttribute('href'); const targetElement = document.querySelector(targetId); if (targetElement) { window.scrollTo({ top: targetElement.offsetTop - 70, behavior: 'smooth' }); } }); }); // Portfolio filtering const filterButtons = document.querySelectorAll('.filter-btn'); const portfolioItems = document.querySelectorAll('.portfolio-item'); filterButtons.forEach(button => { button.addEventListener('click', function() { // Remove active class from all buttons filterButtons.forEach(btn => btn.classList.remove('active')); // Add active class to current button this.classList.add('active'); const filterValue = this.getAttribute('data-filter'); portfolioItems.forEach(item => { if (filterValue === 'all' || item.getAttribute('data-category') === filterValue) { item.style.display = 'block'; setTimeout(() => { item.style.opacity = '1'; item.style.transform = 'scale(1)'; }, 100); } else { item.style.opacity = '0'; item.style.transform = 'scale(0.8)'; setTimeout(() => { item.style.display = 'none'; }, 300); } }); }); }); // Testimonial Slider const testimonialSlides = document.querySelectorAll('.testimonial-slide'); const dots = document.querySelectorAll('.dot'); let currentSlide = 0; function showSlide(index) { testimonialSlides.forEach(slide => { slide.style.opacity = '0'; slide.style.position = 'absolute'; }); dots.forEach(dot => dot.classList.remove('active')); testimonialSlides[index].style.opacity = '1'; testimonialSlides[index].style.position = 'relative'; dots[index].classList.add('active'); } // Initialize the first slide showSlide(currentSlide); // Click event for dots dots.forEach((dot, index) => { dot.addEventListener('click', () => { currentSlide = index; showSlide(currentSlide); }); }); // Auto slide change function nextSlide() { currentSlide = (currentSlide + 1) % testimonialSlides.length; showSlide(currentSlide); } // Change slide every 5 seconds setInterval(nextSlide, 5000); // Animated skill bars on scroll function animateSkillBars() { const skillBars = document.querySelectorAll('.skill-progress'); const skillSection = document.querySelector('.skills'); if (skillSection) { const sectionPosition = skillSection.getBoundingClientRect().top; const screenPosition = window.innerHeight / 1.3; if (sectionPosition < screenPosition) { skillBars.forEach(bar => { const width = bar.style.width; bar.style.width = '0'; setTimeout(() => { bar.style.width = width; }, 300); }); // Remove event listener once animation is triggered window.removeEventListener('scroll', animateSkillBars); } } } window.addEventListener('scroll', animateSkillBars); // Trigger once on page load animateSkillBars(); // Form submission with popup message const contactForm = document.querySelector('.contact-form'); if (contactForm) { contactForm.addEventListener('submit', function(e) { e.preventDefault(); // Get form values const name = contactForm.querySelector('input[type="text"]').value; const email = contactForm.querySelector('input[type="email"]').value; const subject = contactForm.querySelector('input[placeholder="Subject"]').value; const message = contactForm.querySelector('textarea').value; // Create popup message const popup = document.createElement('div'); popup.className = 'popup neomorphic'; popup.innerHTML = `Message Sent!
Thank you ${name} for your message. I'll get back to you soon!