Stanley/Stella - Sustainable Clothing (2024)

Ga naar de inhoud

Officiële verdelers

Hoe kunt u onze producten kopen

Aanmelden

Mijn winkelwagen ( )

Naar winkelwagen
Ontdek meer

Anders gemaakt, met liefde voor mens en planeet.

Onze collectie

De Europese leader voor duurzame, blanco kleding van topkwaliteit

De hele Stanley/Stella-collectie is ontwikkeld voor personalisatie. De collectie is dan ook van topkwaliteit. De fijne stoffen beloven een perfect bedrukkingsresultaat. En merklabels? Daar doen we niet aan mee.

Bij ons vind je uiteenlopende modellen en meer dan 100 trendy kleuren. Je creativiteit krijgt dus vrij spel en je klanten krijgen precies wat ze willen.

Ontdek onze collectie

Stanley/Stella - Sustainable Clothing (4)

Stanley/Stella - Sustainable Clothing (5)

Wij bieden diverse diensten op maat van jouw specifieke noden

Stanley/Stella - Sustainable Clothing (6)Inkooppartner voor jouw modemerk
Stanley/Stella - Sustainable Clothing (7)Versterk het imago van je organisatie met gepersonaliseerde kleding
Stanley/Stella - Sustainable Clothing (8)Maak je belevenis onvergetelijk dankzij unieke, gepersonaliseerde kleding
Sluit je aan bij ons exclusief dealernetwerk. Samen vinden we mode opnieuw uit en maken we de wereld mooier. Word officiële dealer

Transparant en duurzaam mode-ecosysteem

Sinds dag één maken wij milieubewuste en hedendaagse kleding die mild is voor mens en planeet. Je begrijpt dus dat we enkel werken met 100% GOTS-gecertificeerd biologisch katoen en gerecyclede materialen. Zo lossen we al je wensen in, van promotie en imago tot merchandise of de creatie van je eigen merk.

Lees meer over onze beloftes

Stanley/Stella - Sustainable Clothing (10)

Laatste éditos

  1. 05/24 Ontdek de Crafter, het perfecte t-shirt voor elk zomers moment
  2. 04/24 Iconische stijlen voor iedereen Iconics
  3. 03/24 Core collectie Collectie Decoratie
Onze artikelen
`; slider.classList.add('glider-contain'); slider.insertAdjacentHTML( 'beforeend', '\u000A\u003Cdiv\u0020class\u003D\u0022carousel\u002Dnav\u0020flex\u0020items\u002Dcenter\u0020justify\u002Dcenter\u0020gap\u002D2\u0020flex\u002D1\u0020p\u002D4\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Vorige\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dprev\u0020flex\u0020items\u002Dcenter\u0020justify\u002Dcenter\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002032\u002032\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0020fill\u002Dprimary\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u003E\u003Cpath\u0020d\u003D\u0022M\u002019.03125\u00204.28125\u0020L\u00208.03125\u002015.28125\u0020L\u00207.34375\u002016\u0020L\u00208.03125\u002016.71875\u0020L\u002019.03125\u002027.71875\u0020L\u002020.46875\u002026.28125\u0020L\u002010.1875\u002016\u0020L\u002020.46875\u00205.71875\u0020Z\u0022\u002F\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u0020\u0020\u0020\u0020\u003Cdiv\u0020role\u003D\u0022tablist\u0022\u0020class\u003D\u0022glider\u002Ddots\u0020select\u002Dnone\u0020flex\u0020flex\u002Dwrap\u0020justify\u002Dcenter\u0020p\u002D0\u0020focus\u003Aoutline\u002Dnone\u0022\u003E\u003C\u002Fdiv\u003E\u000A\u0020\u0020\u0020\u0020\u003Cbutton\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020aria\u002Dlabel\u003D\u0022Volgende\u0022\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020class\u003D\u0022glider\u002Dnext\u0020flex\u0020items\u002Dcenter\u0020justify\u002Dcenter\u0020outline\u002Dnone\u0020focus\u003Aoutline\u002Dnone\u0020hidden\u0022\u003E\u000A\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u0020\u003Csvg\u0020xmlns\u003D\u0022http\u003A\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\u0022\u0020viewBox\u003D\u00220\u00200\u002032\u002032\u0022\u0020class\u003D\u0022w\u002D6\u0020h\u002D6\u0020fill\u002Dprimary\u0022\u0020width\u003D\u002224\u0022\u0020height\u003D\u002224\u0022\u003E\u003Cpath\u0020d\u003D\u0022M\u002012.96875\u00204.28125\u0020L\u002011.53125\u00205.71875\u0020L\u002021.8125\u002016\u0020L\u002011.53125\u002026.28125\u0020L\u002012.96875\u002027.71875\u0020L\u002023.96875\u002016.71875\u0020L\u002024.65625\u002016\u0020L\u002023.96875\u002015.28125\u0020Z\u0022\u002F\u003E\u003C\u002Fsvg\u003E\u000A\u0020\u0020\u0020\u0020\u003C\u002Fbutton\u003E\u000A\u003C\u002Fdiv\u003E\u000A' ); const gliderElement = slider.querySelector('[data-role="glider-content"]'); const gliderDots = slider.dataset.dots || slider.querySelector('.glider-dots'); const gliderPrev = slider.querySelector('.glider-prev'); const gliderNext = slider.querySelector('.glider-next'); let draggable = true; if (typeof slider.dataset.draggable !== 'undefined') { draggable = (slider.dataset.draggable === true) || (slider.dataset.draggable === 'true'); } const glider = new Glider(gliderElement, { slidesToShow: 1, slidesToScroll: 1, scrollLock: true, scrollLockDelay: 250, draggable: draggable, dragVelocity: 2.5, dots: gliderDots, arrows: { prev: gliderPrev, next: gliderNext, }, }); slider.classList.add('glider-initialized'); if (slider.dataset.showArrows === 'true') { gliderPrev.classList.remove('hidden'); gliderNext.classList.remove('hidden'); } if (slider.dataset.autoplay !== 'false') { gliderAutoplay( glider, slider.dataset.autoplaySpeed, slider.dataset.infiniteLoop ); } if ((slider.dataset.dots === 'false') && (slider.dataset.showArrows === 'false')) { slider.querySelector('.carousel-nav').classList.add('hidden'); } }; const gliderAutoplay = (glider, milliseconds, loop) => { const pagesCount = glider.track.childElementCount; let slideTimeout = null; let nextIndex = 1; let paused = false; const slide = () => { slideTimeout = setTimeout( () => { if (loop && nextIndex >= pagesCount) { nextIndex = 0; } glider.scrollItem(nextIndex); }, parseInt(milliseconds) ); }; glider.ele.addEventListener('glider-animated', () => { nextIndex = glider.slide + glider.opt.slidesToScroll; window.clearInterval(slideTimeout); if (!paused && (loop || nextIndex < pagesCount)) { slide(); } }); const pause = () => { if (!paused) { clearInterval(slideTimeout); paused = true; } }; const unpause = () => { if (paused) { slide(); paused = false; } }; glider.ele.parentElement.addEventListener('mouseover', pause, {passive: true}); glider.ele.parentElement.addEventListener('touchstart', pause, {passive: true}); glider.ele.parentElement.addEventListener('mouseout', unpause, {passive: true}); glider.ele.parentElement.addEventListener('touchend', unpause, {passive: true}); slide(); }; elements.forEach(element => { if (element.dataset.contentType === 'products') { initProductCarousel(element); } if (element.dataset.contentType === 'slider') { initSliderCarousel(element); } }); }; /** * This function adds a class "carousel-nav-wrapper" to a new div element, * and appends the div to the tab navigation container. * It also sets an ID for each carousel nav element and adds them to the new div element. * If the first tab in the set is a carousel, it sets it as active on page load. * * @returns {void} */ const tabCarousel = () => { // Select all tab content elements on the page const tabs = document.querySelectorAll('.tabs-content'); // Return if no tabs found if (!tabs.length > 0) { return; } // Set negative margin to container due to slide x margins to center the glider container const carousels = document.querySelectorAll('[data-content-type="products"][data-appearance="carousel"]'); carousels.forEach(carousel => { const carouselParentTabItem = carousel.parentElement; carouselParentTabItem.style.margin = '0 -8px'; gliderInstances.forEach((glider) => { requestAnimationFrame(() => { glider.refresh(true); }); }); }) // For each tab, create a carousel navigation wrapper and add it to the tab navigation tabs.forEach(tab => { const carouselNavsWrapper = document.createElement('div'); const carouselNavs = tab.querySelectorAll('.carousel-nav'); const tabNav = tab.parentElement.parentElement.querySelector('.tabs-navigation-wrapper'); // Add a class to the carousel navigation wrapper carouselNavsWrapper.classList.add('carousel-nav-wrapper'); // Add the carousel navigation wrapper to the tab navigation tabNav.appendChild(carouselNavsWrapper); // For each carousel navigation, set its ID, add it to the wrapper, and set it active if its tab is active carouselNavs.forEach(carouselNav => { const carouselTabId = carouselNav.parentElement.closest('[data-appearance="carousel"]').parentElement.id; carouselNav.id = `carousel-nav-${carouselTabId}`; carouselNavsWrapper.appendChild(carouselNav); const tabHeader = document.querySelector(`[data-tab="${carouselTabId}"]`); // If first tab is carousel, set it active on page load if (tabHeader.classList.contains('active') && carouselNav.id === `carousel-nav-${carouselTabId}`) { carouselNav.classList.add('active'); } }); }); }; window.addEventListener('lbb-private-content-loaded', (event) => { let carouselElements = []; let newGliders = []; const lbbCarouselData = event.detail; gliderInstances.forEach((glider) => { if (glider.ele.id === lbbCarouselData.elementId) { let el = document.querySelector('#' + lbbCarouselData.elementId) .closest('div[data-content-type="products"]'); if (el) { el.innerHTML = lbbCarouselData.html; carouselElements.push(el); } } else { newGliders.push(glider); } }); gliderInstances = newGliders; initCarousels(carouselElements); tabCarousel(); }); window.addEventListener('DOMContentLoaded', () => { const carouselElements = document.querySelectorAll( `[data-content-type="products"][data-appearance="carousel"], [data-content-type="slider"]` ); if (carouselElements.length > 0) { const script = document.createElement('script'); script.type = 'text/javascript'; script.addEventListener('load', () => { initCarousels(carouselElements); const lbbCarousel = document.querySelector('.lbb-carousel'); if (!lbbCarousel) { tabCarousel(); } }); script.src = 'https\u003A\u002F\u002Fstanleystella.com\u002Fstatic\u002Fversion1719585007\u002Ffrontend\u002FStanleyStella\u002Fdefault\u002Fnl_NL\u002FMagento_PageBuilder\u002Fjs\u002Fglider.min.js'; document.head.appendChild(script); /** * This code listens for a click event on an element with a class of "tab-title". * When the event is triggered, it gets the ID of the parent tab and the associated carousel navigation. * It then finds the corresponding carousel instance based on the carousel ID. * If the carousel instance is found, it refreshes the instance and sets it to the first slide. * It then removes the "active" class from any active carousel nav elements and adds the "active" class to the associated nav element. * * @returns {void} */ document.addEventListener('click', (event) => { // Check if the clicked element has a class of "tab-title" if (event.target.matches('.tab-title')) { // Get the ID of the parent tab and the associated carousel navigation const tabId = event.target.parentElement.closest('.tab-header').dataset.tab; const tabContainer = event.target.parentElement.closest('.tabs-navigation-wrapper'); const carouselNavs = tabContainer.querySelectorAll('.carousel-nav'); // Find the corresponding carousel instance based on the carousel ID const targetCarousel = gliderInstances.filter((obj) => { return obj._opt.carouselId === tabId; }); // If the carousel instance is found, refresh the instance and set it to the first slide if (targetCarousel.length > 0) { requestAnimationFrame(() => { targetCarousel[0].refresh(true); targetCarousel[0].scrollItem(0); }); } // Remove the "active" class from any active carousel nav elements and add the "active" class to the associated nav element const activeCarouselNav = document.getElementById(`carousel-nav-${tabId}`); carouselNavs.forEach(carouselNav => { if (carouselNav.classList.contains('active')) { carouselNav.classList.remove('active'); } }); if (activeCarouselNav) { activeCarouselNav.classList.add('active'); } } }); } }); })();
Stanley/Stella - Sustainable Clothing (2024)

References

Top Articles
Latest Posts
Article information

Author: Lakeisha Bayer VM

Last Updated:

Views: 6432

Rating: 4.9 / 5 (49 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Lakeisha Bayer VM

Birthday: 1997-10-17

Address: Suite 835 34136 Adrian Mountains, Floydton, UT 81036

Phone: +3571527672278

Job: Manufacturing Agent

Hobby: Skimboarding, Photography, Roller skating, Knife making, Paintball, Embroidery, Gunsmithing

Introduction: My name is Lakeisha Bayer VM, I am a brainy, kind, enchanting, healthy, lovely, clean, witty person who loves writing and wants to share my knowledge and understanding with you.