Front-End Responsive Components

1. Responsive Navigation Bar

HTML

htmlCopy code<nav class="navbar">
    <div class="logo">YourLogo</div>
    <ul class="nav-links">
        <li><a href="#">Home</a></li>
        <li><a href="#">About</a></li>
        <li><a href="#">Services</a></li>
        <li><a href="#">Contact</a></li>
    </ul>
    <div class="menu-toggle">&#9776;</div>
</nav>

CSS

cssCopy code.navbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: #0078d7;
    padding: 1rem;
    color: white;
}

.nav-links {
    display: flex;
    list-style: none;
}

.nav-links li {
    margin: 0 1rem;
}

.nav-links a {
    color: white;
    text-decoration: none;
    font-weight: bold;
}

.menu-toggle {
    display: none;
    font-size: 1.5rem;
    cursor: pointer;
}

@media (max-width: 768px) {
    .nav-links {
        display: none;
        flex-direction: column;
        background: #0078d7;
        position: absolute;
        top: 60px;
        right: 0;
        width: 100%;
    }

    .menu-toggle {
        display: block;
    }
}

.nav-links.show {
    display: flex;
}

JavaScript

javascriptCopy codedocument.querySelector('.menu-toggle').addEventListener('click', () => {
    document.querySelector('.nav-links').classList.toggle('show');
});

2. Image Carousel

HTML

htmlCopy code<div class="carousel">
    <div class="slides">
        <img src="image1.jpg" alt="Slide 1">
        <img src="image2.jpg" alt="Slide 2">
        <img src="image3.jpg" alt="Slide 3">
    </div>
    <button class="prev">❮</button>
    <button class="next">❯</button>
</div>

CSS

cssCopy code.carousel {
    position: relative;
    overflow: hidden;
    width: 80%;
    margin: 2rem auto;
}

.slides {
    display: flex;
    transition: transform 0.5s ease-in-out;
}

.slides img {
    width: 100%;
    flex-shrink: 0;
}

.carousel .prev, .carousel .next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.5);
    color: white;
    border: none;
    font-size: 2rem;
    cursor: pointer;
    z-index: 1000;
}

.carousel .prev {
    left: 10px;
}

.carousel .next {
    right: 10px;
}

JavaScript

javascriptCopy codeconst slides = document.querySelector('.slides');
let currentIndex = 0;

document.querySelector('.next').addEventListener('click', () => {
    currentIndex = (currentIndex + 1) % slides.children.length;
    updateCarousel();
});

document.querySelector('.prev').addEventListener('click', () => {
    currentIndex = (currentIndex - 1 + slides.children.length) % slides.children.length;
    updateCarousel();
});

function updateCarousel() {
    slides.style.transform = `translateX(-${currentIndex * 100}%)`;
}

3. Customizable Card Component

HTML

htmlCopy code<div class="card">
    <img src="card-image.jpg" alt="Card Image">
    <h3>Card Title</h3>
    <p>This is a customizable card description.</p>
    <a href="#" class="btn">Learn More</a>
</div>

CSS

cssCopy code.card {
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 1rem;
    max-width: 300px;
    margin: 1rem auto;
    text-align: center;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.card img {
    width: 100%;
    border-radius: 8px;
    margin-bottom: 1rem;
}

.card h3 {
    font-size: 1.2rem;
    margin-bottom: 0.5rem;
}

.card p {
    font-size: 1rem;
    margin-bottom: 1rem;
}

.card .btn {
    background: #0078d7;
    color: white;
    padding: 0.5rem 1rem;
    text-decoration: none;
    border-radius: 5px;
}

4. Sidebar Navigation

HTML

htmlCopy code<div class="sidebar">
    <ul>
        <li><a href="#">Dashboard</a></li>
        <li><a href="#">Profile</a></li>
        <li><a href="#">Settings</a></li>
        <li><a href="#">Logout</a></li>
    </ul>
</div>

CSS

cssCopy code.sidebar {
    width: 250px;
    height: 100vh;
    background: #333;
    color: white;
    padding: 1rem;
    position: fixed;
}

.sidebar ul {
    list-style: none;
    padding: 0;
}

.sidebar ul li {
    margin: 1rem 0;
}

.sidebar ul li a {
    color: white;
    text-decoration: none;
    font-weight: bold;
    display: block;
}

Leave a Reply

Your email address will not be published. Required fields are marked *