DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
1/7
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
DIY Sea Urchin Night Light
1/7

DIY Sea Urchin Night Light

$19.00
$38.00
Save $19.00
It's been recommended by 683 people on Facebook, Twitter and Instagram
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);
Weight: 0kg
Barcode:

Dive into a world of hands-on creativity with the DIY Sea Urchin Night Light. Craft your vintage-inspired luminary, transforming simple metal pieces into an exquisite sea urchin silhouette. This engaging project is more than just assembling a lamp; it's about bringing your unique vision to light and filling your space with personalized charm.

VINTAGE CHARM

Upon completion, your creation is a testament to your craftsmanship and impeccable taste. The DIY Sea Urchin Night Light illuminates your space with a soft, enchanting glow enveloped in vintage elegance. Tailor the arrangement and hues to seamlessly integrate with your décor, making it a distinctive centerpiece that captures the essence of retro sophistication.

CREATIVE ENGAGEMENT

Beyond its beauty, this DIY project is an invitation to engage hands and minds, fostering creativity and offering the satisfaction of constructing something extraordinary. It's an opportunity to step away from the digital world and immerse in a tactile, rewarding experience, resulting in a masterpiece as unique as its creator.

GIFT OF LIGHT AND LOVE

The DIY Mini Sea Urchin Night Light is a delightful addition to your home and a heartfelt gift conveying thoughtfulness and affection. Whether for a birthday, holiday, or any special occasion, it offers the recipient more than just light—it provides an enjoyable DIY journey, culminating in a treasured keepsake that illuminates spaces and hearts alike.

SPECIFICATIONS

  • Material: Various types of natural sea urchin shells. The base is a gold-plated material, and a button battery powers it.
  • Switch Type: push-button type
  • Additional Functions: Ornaments, DIY, Night light, Atmosphere light
  • Voltage: 36V (V)
  • Lamp Cover Material: Sea ​​urchin

Men's Wear