Sitewide Buy 3 Get 1 FREE(Add 4 to Cart)
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
1 / 13
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box
0% OFF

Boho Maiden And Wolf DIY Diamond Painting PU Tissue Holder Box

1899807.09

$11.69
0 sold
Qty 3000 in stock
Specification:

Product size: 9.84x6.1x5.51(inch)

Product name: DIY faux tissue storage bag

Material: PU 

Size: 25*15.5*14cm


Note:
Due to the different monitor and light effect, the actual color of the item might be slightly different from the color shown in the images. Thank you!
Please allow a 1-2 cm difference in measurements due to manual measuring.



1 x Tissue Box
1 x Rhinestone Dotting Tool


Gem Art Craft Kit DIY PU Faux Tissue Box Desktop Organizer

Features:

1. Full Drill Gem Art: Every surface of this Full Drill Gem Art cover is filled with sparkling resin gems using a color-coded canvas system that ensures accurate placement and a brilliantly finished result.

2. PU Faux Tissue Box Cover: Made from PU Faux Tissue Box Cover material with reinforced corner stitching, this holder maintains its structured shape and polished look through extended everyday use.

3. DIY Gift For Craft Lovers: The sparkling completed design and practical tissue-holding function make this set an outstanding DIY Gift for Craft Lovers for birthdays, holidays, or any meaningful gift-giving celebration.

4. Napkin Holder Desktop Organizer: This versatile Napkin Holder Desktop Organizer suits living rooms, offices, and car interiors, keeping tissues organized while adding a handcrafted decorative sparkle to any environment.

5. Gem Dot Craft Set: The inclusive Gem Dot Craft Set removes the need for additional supply purchases, packaging everything from gems and clay to the applicator pen and sorting tray in one ready-to-use kit.

/** @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-1736477762476').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);