<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Do code : simple accordion using js</title>
</head>
<style>
    *,
    *::before,
    *::after {
        padding: 0;
        margin: 0;
        box-sizing: border-box;
    }

    body {
        height: 100vh;
        font-family: Arial, Helvetica, sans-serif;
        background: linear-gradient(135deg, #6e8efb, #a777e3);
        display: flex;
        justify-content: center;
        align-items: center;
    }

    .container {
        max-width: 600px;
        background-color: white;
        box-shadow: 0px 4px 15px rgba(0, 0, 0, 0.134);
        border-radius: 15px;
        padding: 20px;
    }

    .container h1 {
        text-align: center;
        text-transform: capitalize;
        color: #333;
        margin-bottom: 20px;
    }

    .accordionItem {
        border-radius: 8px;
        overflow: hidden;
        margin-bottom: 10px;
    }

    .accordionItem .accordionHead {
        background-color: #2980b9;
        transition: 300ms ease;
        color: white;
        text-transform: capitalize;
        padding: 20px;
        display: flex;
        gap: 1rem;
        align-items: center;
        justify-content: space-between;
        cursor: pointer;
    }

    .accordionItem .accordionHead:hover {
        background-color: #1f6391;
    }

    .accordionItem .accordionHead .icon {
        position: relative;
        isolation: isolate;
        width: 20px;
        height: 20px;
        /* border: 1px solid red; */
    }

    .accordionItem .accordionHead .icon::after,
    .accordionItem .accordionHead .icon::before {
        content: "";
        position: absolute;
        width: 100%;
        height: 5px;
        background-color: white;
        top: 50%;

    }

    .accordionItem .accordionHead .icon::before {
        transform: translateY(-50%);
    }

    .accordionItem .accordionHead .icon::after {
        transform: translateY(-50%) rotate(90deg);
        transition: transform 300ms ease;
    }

    /* change rotation value if tab is opened */
    .accordionItem.active .accordionHead .icon::after {
        transform: translateY(-50%) rotate(0deg);
    }

    .accordionItem .accordionBody {
        background-color: #ecf0f1;
        max-height: 0px;
        height: auto;
        overflow: hidden;
        transition: 300ms ease;
    }

    .accordionItem.active .accordionBody {
        max-height: 1000px;
    }

    .accordionItem .accordionBody p {
        padding: 20px;
    }
</style>

<body>
    <div class="container">
        <h1>simple accordion using js</h1>

        <div class="accordion">
            <!-- accordionItem-1 -->
            <div class="accordionItem">
                <div class="accordionHead">
                    <h3>Tab 1</h3>
                    <span class="icon"></span>
                </div>
                <div class="accordionBody">
                    <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Placeat, ipsam. Animi architecto sed
                        distinctio consequuntur reiciendis harum ea placeat, veritatis quidem quas praesentium molestias
                        mollitia soluta minima totam explicabo provident fugit consectetur. Optio tempore illum corporis
                        ab libero amet laborum facilis iure sequi harum culpa, autem quasi dignissimos voluptatum
                        voluptas!</p>
                </div>
            </div>
            <!-- accordionItem-2 -->
            <div class="accordionItem">
                <div class="accordionHead">
                    <h3>Tab 2</h3>
                    <span class="icon"></span>
                </div>
                <div class="accordionBody">
                    <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Placeat, ipsam. Animi architecto sed
                        distinctio consequuntur reiciendis harum ea placeat, veritatis quidem quas praesentium molestias
                        mollitia soluta minima totam explicabo provident fugit consectetur. Optio tempore illum corporis
                        ab libero amet laborum facilis iure sequi harum culpa, autem quasi dignissimos voluptatum
                        voluptas!</p>
                </div>
            </div>
            <!-- accordionItem-3 -->
            <div class="accordionItem">
                <div class="accordionHead">
                    <h3>Tab 3</h3>
                    <span class="icon"></span>
                </div>
                <div class="accordionBody">
                    <p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Placeat, ipsam. Animi architecto sed
                        distinctio consequuntur reiciendis harum ea placeat, veritatis quidem quas praesentium molestias
                        mollitia soluta minima totam explicabo provident fugit consectetur. Optio tempore illum corporis
                        ab libero amet laborum facilis iure sequi harum culpa, autem quasi dignissimos voluptatum
                        voluptas!</p>
                </div>
            </div>
        </div>
    </div>

    <script>
        const accordionItems = [...document.querySelectorAll('.accordionItem')];

        accordionItems.forEach((accordionItem) => {
            const accordionHead = accordionItem.querySelector('.accordionHead')
            accordionHead.addEventListener('click', () => {
                if (accordionItem.classList.contains('active')) {
                    closeAllAccordions();
                } else {
                    closeAllAccordions();
                    accordionItem.classList.toggle('active');
                }
            })
        });

        function closeAllAccordions() {
            accordionItems.forEach((accordionItem) => {
                accordionItem.classList.remove('active');
            })
        }
    </script>
</body>

</html>
/* No CSS found */
// No JS found