Bonjour Bitches – Unisex T-Shirt

Bonjour Bitches – Unisex T-Shirt

Be Kind...Of a Bitch

The unisex heavy weight t-shirt

Brand – Stanley/Stella

Single Jersey | 100% Cotton – Organic Open End , Fabric washed , 240 GSM

  • Set-in sleeve
  • 1×1 rib at neck collar
  • Inside back neck tape in self fabric
  • Sleeve hem and bottom hem with wide double needle topstitch
  • Slightly rougher fabric characteristic
Categories: Clothing, Tops, UnisexBrand: Stanley/Stella

Free online returns

Shipping in 2-4 business days

COLOR:
Secured Payments by

Related

You May Also Like

Select options This product has multiple variants. The options may be chosen on the product page
Select options This product has multiple variants. The options may be chosen on the product page
Select options This product has multiple variants. The options may be chosen on the product page
Select options This product has multiple variants. The options may be chosen on the product page

Out of stock

Select options This product has multiple variants. The options may be chosen on the product page
document.addEventListener('DOMContentLoaded', function () {
    const dividerTrigger   = document.querySelector('.mp-divider-trigger');
    const slideAnimTrigger = document.querySelector('.mp-slide-anim-trigger');
    const sliderEl         = document.querySelector('#product-slider');
    const arrows           = document.querySelectorAll('#product-slider .splide__arrow');

    if (!sliderEl) return;

    const AUTOPLAY_INTERVAL = 7000; // same as your Splide autoplay interval

    function triggerClick(el) {
        if (!el) return;
        el.dispatchEvent(
            new MouseEvent('click', {
                bubbles: true,
                cancelable: true,
                view: window,
            })
        );
    }

    function restartDividerTimeline() {
        triggerClick(dividerTrigger);
    }

    function playSlideTransition() {
        triggerClick(slideAnimTrigger);
    }

    let dividerTimer = null;

    function resetTimer() {
        clearInterval(dividerTimer);
        dividerTimer = setInterval(function () {
            // autoplay tick: slider moves to next slide → run both
            restartDividerTimeline();
            playSlideTransition();
        }, AUTOPLAY_INTERVAL);
    }

    // 🔹 Start once shortly after load so Splide is mounted
    setTimeout(function () {
        restartDividerTimeline();
        playSlideTransition();
        resetTimer();
    }, 100); // tweak 100–250ms if needed

    // ============ ARROW CLICKS ============
    arrows.forEach((arrow) => {
        arrow.addEventListener('click', function () {
            restartDividerTimeline();
            playSlideTransition();
            resetTimer();
        });
    });

    // ============ DRAG / SWIPE ============
    const track = sliderEl.querySelector('.splide__track') || sliderEl;
    let dragging = false;

    // User starts interacting with the track
    ['pointerdown', 'touchstart', 'mousedown'].forEach((evt) => {
        track.addEventListener(evt, () => {
            dragging = true;
        });
    });

    // User ends interaction (drag/swipe finished)
    ['pointerup', 'pointercancel', 'touchend', 'mouseup', 'mouseleave'].forEach(
        (evt) => {
            track.addEventListener(evt, () => {
                if (!dragging) return;
                dragging = false;

                // 🔥 Restart both divider + slide animation immediately on drag end
                restartDividerTimeline();
                playSlideTransition();
                resetTimer();
            });
        }
    );
});