Stanley/Stella - Sustainable Clothing (2024)

Zum Inhalt springen

Offizielle Partner

Wie man kauft

Anmelden

Mein Warenkorb ( )

Zum Warenkorb
Entdecke mehr

Wir sind anders - wir respektieren Mensch und Planet

Unsere Kollektion

Hochwertige Blanko-Kleidung für jede Veredelungstechnik

Die gesamte Kollektion von Stanley/Stella ist ideal für jede Art der Veredelung geeignet. Alle Artikel sind von hervorragender Qualität und werden aus den hochwertigsten Stoffen hergestellt. Sie bieten eine erstklassige Bedruckbarkeit enthalten keine Markenkennzeichnungen.
Dank der großen Auswahl an Styles in über 100 trendigen Farben sind deiner Kreativität keine Grenzen gesetzt. So wird jeder Kundenwunsch erfüllt.

Hier geht es zu unserer Kollektion

Stanley/Stella - Sustainable Clothing (4)

Stanley/Stella - Sustainable Clothing (5)

Für alle Wünsche und Fragen bieten wir einen umfassenden Service

Stanley/Stella - Sustainable Clothing (6)Sourcing-Partner für deine Modemarke
Stanley/Stella - Sustainable Clothing (7)Neuer Schwung für dein Firmenimage - mit personalisierter Kleidung
Stanley/Stella - Sustainable Clothing (8)Schaffe unvergessliche Erlebnisse - mit exklusiven, individuellen Merchandise-Artikeln
Werde Teil unseres exklusiven Netzwerks mit offiziellen Händler*innen. Gemeinsam erfinden wir die Modeindustrie neu - für eine bessere Welt. Official dealer werden

Eine transparente und nachhaltige Mode-Community

Seit dem ersten Tag ist unser Ziel eine umweltschonende Produktion von moderner Bekleidung, die Rücksicht auf Mensch und Umwelt nimmt. Genau deshalb verwenden wir ausschließlich 100 % GOTS-zertifizierte Biobaumwolle und recycelte Materialien, die alle Anforderungen in puncto Promotion, Image und Merchandising deiner Marke erfüllen.

Weitere Infos über unser Engagement

Stanley/Stella - Sustainable Clothing (10)

Aktuelle Ausgabe

  1. 05/24 Entdecken Sie den Crafter, das perfekte T-Shirt für jeden Sommermoment
  2. 04/24 Ikone Stile für jeden Iconics
  3. 03/24 Core-kollektion
Unsere Artikel
`; 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\u0022Zur\u00FCck\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\u0022Weiter\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\u002Fversion1717531760\u002Ffrontend\u002FStanleyStella\u002Fdefault\u002Fde_DE\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: Terrell Hackett

Last Updated:

Views: 5653

Rating: 4.1 / 5 (52 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Terrell Hackett

Birthday: 1992-03-17

Address: Suite 453 459 Gibson Squares, East Adriane, AK 71925-5692

Phone: +21811810803470

Job: Chief Representative

Hobby: Board games, Rock climbing, Ghost hunting, Origami, Kabaddi, Mushroom hunting, Gaming

Introduction: My name is Terrell Hackett, I am a gleaming, brainy, courageous, helpful, healthy, cooperative, graceful person who loves writing and wants to share my knowledge and understanding with you.