Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
1 / 8
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
Crazyours  Comfortable Casual Long Sleeve Shirts
mysite

Crazyours Comfortable Casual Long Sleeve Shirts

$27.99 $59.99
0 sold
Color
Size
Qty 1000 in stock

If the price is back to $52 then our sale has unfortunately ended and we have run out of the discounted shirts!

Buy 2 Get Extra 10% OFF

Buy 4 Get Extra 15% OFF & FREE SHIPPING

Refresh Your Look And Stay In Fashion!

Material:20% Cotton+ 80% Linen

Enjoy the cool comfort and charming sheen of this shirts made from high-quality natural linen.
Made from high-quality linen.
Made of Linen. Skin-friendly, breathable and moisture wicking, keep you cool and relaxed all the time especially in hot summer.
Linen for added suppleness. Relaxed, loose-fitting cut.
Rustic linen gives the fabric a fine texture and unique drape.
Dropped shoulders and long sleeves create a relaxed look.
Features the cool comfort that only linen can provide, with long fibers that give it suppleness and a light sheen for a high-quality look.
Pre-washed for a perfectly casual look.
Simple and elegant design that goes with a variety of styles.
Increased body width and waist for a more relaxed fit.
Slender cut showcases the elegant drape of the fabric.
Updated shoulder design for increased comfort.
Updated back design for easier arm movement.
Length and hem designed to easily tuck in or out.
Suitable for a variety of casual scenes.
Perfect for yoga, dance, school, vacation, beach, jogger, trousers, home or away, great for hot summer days, also suitable for wearing in the cool season.
Occasion : Daily/Casual/Vacation
Features - Comfortable, soft & loose fit.
Season - Appropriate thickness, great for hot summer days, also suitable for wearing in the cool season.
Pattern: Solid Color
Style: Fashion
Length: Long Sleeve
Occasion: Daily

 
You May Also Like Don't Like These?
const TAG = 'spz-custom-painter-button-animation'; const MAX_ITERATION_COUNT = 99999999; const SITE = (window.C_SETTINGS && window.C_SETTINGS.routes && window.C_SETTINGS.routes.root) || ''; const ADD_TO_CART_ANIMATION_SETTING = `${SITE}/api/marketing_atmosphere_app/add_to_cart_btn_animation/setting`; class SpzCustomPainterButtonAnimation extends SPZ.BaseElement { /**@override */ static deferredMount() { return false; } /** @param {!SpzElement} element */ constructor(element) { super(element); /** @private {!../../src/service/xhr-impl.Xhr} */ this.xhr_ = SPZServices.xhrFor(this.win); /** @private {Object} */ this.data_ = null; /** @private {Element} */ this.addToCartButton_ = null; /** @private {boolean} */ this.productAvailable_ = true; /** @private {number} */ this.timerId_ = null; /** @private {number} */ this.animationExecutionCount_ = 0; /** @private {boolean} */ this.selectedVariantAvailable_ = true; /** @private {number} */ this.delay_ = 5000; /** @private {number} */ this.iterationCount_ = 5; /** @private {string} */ this.animationClass_ = ''; } /** @override */ isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } /** @override */ buildCallback() { this.productAvailable_ = this.element.hasAttribute('product-available'); this.selectedVariantAvailable_ = this.element.hasAttribute('selected-variant-available'); } /** @override */ mountCallback() { this.render_(); } /** @private */ render_() { if (!this.productAvailable_) { return; } this.fetch_().then((data) => { if (!data) { return; } this.data_ = data; this.animationClass_ = `painter-${data.animation_name}-animation`; this.iterationCount_ = data.animation_iteration_count === 'infinite' ? MAX_ITERATION_COUNT : data.animation_iteration_count; const animationDuration = 1; const animationDelay = data.animation_delay || 5; this.delay_ = (animationDuration + animationDelay) * 1000; this.handleButtonEffect_(); }); } /** * @param {JsonObject} data * @return {(null|Object)} * @private */ parseJson_(data) { try { return JSON.parse(data); } catch (e) { return null; } } /** * @return {Promise} * @private */ fetch_() { return this.xhr_.fetchJson(ADD_TO_CART_ANIMATION_SETTING).then((data) => { if (!data || !data.enabled) { return null; } return this.parseJson_(data.detail); }); } /** @private */ getAddToCartButton_() { this.addToCartButton_ = SPZCore.Dom.scopedQuerySelector( document.body, '[data-section-type="product"] [role="addToCart"], [data-section-type="product_detail"] [role="addToCart"], [data-section-type="product_detail"] [data-click="addToCart"], [data-section-type="product"] [data-click="addToCart"]' ); } /** @private */ restartAnimation_() { this.addToCartButton_.classList.remove(this.animationClass_); this.addToCartButton_./* OK */ offsetWidth; this.addToCartButton_.classList.add(this.animationClass_); this.animationExecutionCount_++; } /** @private */ clearTimer_() { this.win.clearInterval(this.timerId_); this.timerId_ = null; } /** @private */ setupTimer_() { this.timerId_ = this.win.setInterval(() => { this.restartAnimation_(); if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); this.clearTimer_(); } }, this.delay_); } /** @private */ restartTimer_() { if (this.animationExecutionCount_ >= this.iterationCount_) { this.removeAnimationClass_(); return; } this.setupTimer_(); } /** @private */ listenVariantChange_() { SPZUtils.Event.listen(self.document, 'dj.variantChange', (e) => { const selectedVariant = e.detail && e.detail.selected; if (!selectedVariant) { return; } const {available} = selectedVariant; if (this.selectedVariantAvailable_ !== available) { this.selectedVariantAvailable_ = available; this.clearTimer_(); if (available) { this.restartTimer_(); } } }); } /** @private */ removeAnimationClass_() { this.win.setTimeout(() => { this.addToCartButton_.classList.remove(this.animationClass_); }, 1000); } /** @private */ handleButtonEffect_() { this.getAddToCartButton_(); if (!this.addToCartButton_) { return; } if (this.selectedVariantAvailable_) { ++this.animationExecutionCount_; this.addToCartButton_.classList.add(this.animationClass_); if (this.iterationCount_ === 1) { this.removeAnimationClass_(); return; } this.setupTimer_(); } this.listenVariantChange_(); } } SPZ.defineElement(TAG, SpzCustomPainterButtonAnimation);