🎁Free Shipping on Orders Over $59🎉
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
1 / 12
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
Sending Sunshine Gift - Thinking of You Present
50% OFF
Fnkus

Sending Sunshine Gift - Thinking of You Present

$16.99 $33.98
0 sold
❤️Handmade Gift
Qty 1000 in stock

 

Send someone a dose of happiness with one of these sweet miniature little sunshines! Perfect to send to someone who may be feeling a little down to let them know they are in your thoughts.

These beautiful miniature hanging rainbows are thoughtful tokens to give someone who may need a dose of happiness in their life. They are perfect for someone going through a difficult time to let them know you are thinking of them and there will be a brighter day soon.

Send someone a token of strength with these sweet miniature bees.

These adorable little gifts make really thoughtful tokens to let someone special know you are thinking of them and are there for them, perfect for someone going through a hard time.

Each crochet sunshine is presented in a pretty organza bag with a pretty flat card featuring a thoughtful verse. Bow and organza bag may vary in colour.

Also selling lots more cute handmade cards and gifts, please take a look at my shop :) 

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);