Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag
Corduroy Smile Cosmetic Bag

Corduroy Smile Cosmetic Bag

Price

$24.00 $16.00
Save 33%

color

Please select a color

Quantity

/** @private {string} */ class SpzCustomAnchorScroll extends SPZ.BaseElement { static deferredMount() { return false; } constructor(element) { super(element); /** @private {Element} */ this.scrollableContainer_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.LOGIC; } buildCallback() { this.viewport_ = this.getViewport(); this.initActions_(); } setTarget(containerId, targetId) { this.containerId = '#' + containerId; this.targetId = '#' + targetId; } scrollToTarget() { const container = document.querySelector(this.containerId); const target = container.querySelector(this.targetId); const {scrollTop} = container; const eleOffsetTop = this.getOffsetTop_(target, container); this.viewport_ .interpolateScrollIntoView_( container, scrollTop, scrollTop + eleOffsetTop ); } initActions_() { this.registerAction( 'scrollToTarget', (invocation) => this.scrollToTarget(invocation?.caller) ); this.registerAction( 'setTarget', (invocation) => this.setTarget(invocation?.args?.containerId, invocation?.args?.targetId) ); } /** * @param {Element} element * @param {Element} container * @return {number} * @private */ getOffsetTop_(element, container) { if (!element./*OK*/ getClientRects().length) { return 0; } const rect = element./*OK*/ getBoundingClientRect(); if (rect.width || rect.height) { return rect.top - container./*OK*/ getBoundingClientRect().top; } return rect.top; } } SPZ.defineElement('spz-custom-anchor-scroll', SpzCustomAnchorScroll); const STRENGTHEN_TRUST_URL = "/api/strengthen_trust/settings"; class SpzCustomStrengthenTrust extends SPZ.BaseElement { constructor(element) { super(element); this.renderElement_ = null; } isLayoutSupported(layout) { return layout == SPZCore.Layout.CONTAINER; } buildCallback() { this.xhr_ = SPZServices.xhrFor(this.win); const renderId = this.element.getAttribute('render-id'); SPZCore.Dom.waitForChild( document.body, () => !!document.getElementById(renderId), () => { this.renderElement_ = SPZCore.Dom.scopedQuerySelector( document.body, `#${renderId}` ); if (this.renderElement_) { this.render_(); } this.registerAction('track', (invocation) => { this.track_(invocation.args); }); } ); } render_() { this.fetchData_().then((data) => { if (!data) { return; } SPZ.whenApiDefined(this.renderElement_).then((apis) => { apis?.render(data); document.querySelector('#strengthen-trust-render-1539149753700').addEventListener('click',(event)=>{ if(event.target.nodeName == 'A'){ this.track_({type: 'trust_content_click'}); } }) }); }); } track_(data = {}) { const track = window.sa && window.sa.track; if (!track) { return; } track('trust_enhancement_event', data); } parseJSON_(string) { let result = {}; try { result = JSON.parse(string); } catch (e) {} return result; } fetchData_() { return this.xhr_ .fetchJson(STRENGTHEN_TRUST_URL) .then((responseData) => { if (!responseData || !responseData.data) { return null; } const data = responseData.data; const moduleSettings = (data.module_settings || []).reduce((result, moduleSetting) => { return result.concat(Object.assign(moduleSetting, { logos: (moduleSetting.logos || []).map((item) => { return moduleSetting.logos_type == 'custom' ? this.parseJSON_(item) : item; }) })); }, []); return Object.assign(data, { module_settings: moduleSettings, isEditor: window.self !== window.top, }); }); } } SPZ.defineElement('spz-custom-strengthen-trust', SpzCustomStrengthenTrust);

Introducing the Corduroy Smile Cosmetic Bag - A charming and practical way to carry your beauty essentials. With cheerful smiley faces all over, this cosmetic bag will add a pop of positivity to your daily routine.

Not only is it a stylish addition to your everyday carry, but it also supports a meaningful cause.

  • A portion of all proceeds from the Corduroy Smile Cosmetic Bag will be donated to The International Association for Suicide Prevention, making a difference in the world.

This cosmetic bag is crafted from high-quality corduroy material with a soft polyester lining, ensuring durability and comfort. Its compact size fits all your makeup essentials, making it the perfect travel companion.

Bring a smile to your face every time you use your cosmetics with the Corduroy Smile Cosmetic Bag. Not only will you look great, but you'll also feel good knowing your purchase supports a noble cause. Order now and make your routine a little brighter.

Size:

  • Length: 25cm (9.8 Inches)
  • Height: 18cm (7 Inches)