- Cribs
- Dressers
- Sheets
- Bundle and Save
- Wall Murals
- Shelves
- Washable Rugs
- Little Animals
- Toy Storage
- Mobiles
- Wallpaper
- Quilts
- Playroom
Skip to product information
- Regular price
- $749.00
- Regular price
-
- Sale price
- $749.00
- Unit price
- / per
Sale
The 3-in-1 Cloud Crib, inspired by the light and airy movement of clouds, is a dream come to life. Playful wood accents on a white backdrop feel as fresh as they do classic. Whether in its mini, full or toddler form, this nature inspired piece will feel right at home wherever nap time or nighttime takes place.
Delivery time for Cloud in walnut: 3 weeks
Delivery time for Cloud in natural wood: 4 weeks
You may also need
` } return optionsEl; } function buildVariantOptions(product) { let variantsEl = ''; let checked = 'checked'; for (const variant of product.variants) { variantsEl += ``; checked = '' } return variantsEl; } async function buildProductSlide(product) { const variant = product.variants[0].id const optionsEl = buildOptionsSelectors(product) const variantsEl = buildVariantOptions(product) const response = await fetch(window.Shopify.routes.root + `products/${ product.handle }?section_id=metafields-json&variant=${variant}`); const responseText = await response.text(); const html = new DOMParser().parseFromString(responseText, 'text/html') const metafieldsImageData = html.querySelector('[metafields-image-data]').innerHTML const metafieldsImageDataJSON = JSON.parse(metafieldsImageData) return `
${product.title}
${optionsEl}
$${product.variants[0].price / 100}
${variantsEl}
Added to cart!
`; } async function init() { const response = await fetch(window.Shopify.routes.root + "recommendations/products.json?product_id=4575761236101&limit=9&intent=complementary"); const data = await response.json(); const products = data.products; if (data.products.length == 0) { return } node.dataset.hidden = 'false' slidesEl.innerHTML = `
${(products[0]) ? await buildProductSlide(products[0]): ''} ${(products[1]) ? await buildProductSlide(products[1]): ''} ${(products[2]) ? await buildProductSlide(products[2]): ''}
${(products[3]) ? await buildProductSlide(products[3]): ''} ${(products[4]) ? await buildProductSlide(products[4]) : ''} ${(products[5]) ? await buildProductSlide(products[5]) : ''}
${(products[6]) ? await buildProductSlide(products[6]) : ''} ${(products[7]) ? await buildProductSlide(products[7]) : ''} ${(products[8]) ? await buildProductSlide(products[8]) : ''}
`; for (const product of products) { const options = node.querySelectorAll(`[recommendations-value][data-product='${product.id}']`) const price = node.querySelector(`[recommendations-price][data-product='${product.id}']`) for (const option of options) { option.addEventListener('change', async (e) => { const optionsSelected = node.querySelectorAll(`[recommendations-value][data-product='${product.id}']:checked`) const optionsSelectedValues = Array.from(optionsSelected).map(obj => obj.value) const selectedVariant = optionsSelectedValues.join(' / ') const optionUpdated = node.querySelector(`[recommendations-variant][data-product='${product.id}'][data-variant='${selectedVariant}']`) optionUpdated.checked = 'checked' const optionSelected = node.querySelector(`[recommendations-selected][data-product='${product.id}'][data-option='${option.dataset.option}']`) optionSelected.innerHTML = option.value // update the image // variant id: optionUpdated.value const image = node.querySelector(`[recommendations-image][data-product='${product.id}']`) option.dataset.variant = selectedVariant const response = await fetch(window.Shopify.routes.root + `products/${ product.handle }?section_id=metafields-json&variant=${optionUpdated.value}`); const responseText = await response.text(); const html = new DOMParser().parseFromString(responseText, 'text/html') const metafieldsImageData = html.querySelector('[metafields-image-data]').innerHTML const metafieldsImageDataJSON = JSON.parse(metafieldsImageData) if (metafieldsImageDataJSON.image != '') { image.innerHTML = `` } price.innerHTML = `$${optionUpdated.dataset.price / 100}` }) } const addToCartTriggers = node.querySelectorAll(`[name='add-to-cart-${product.id}']`) for (const addToCartTrigger of addToCartTriggers) { addToCartTrigger.addEventListener('click', async (e) => { addToCartTrigger.dataset.submitted = 'true' const selectedVariant = node.querySelector(`[recommendations-variant][data-product='${product.id}']:checked`) const id = parseInt(selectedVariant.value) let quantity = 1 let properties = {} const response = await fetch(`/products/${addToCartTrigger.dataset.handle}?variant_id=${id}`); const responseText = await response.text(); const html = new DOMParser().parseFromString(responseText, 'text/html'); const metafields = html.querySelector('.js-metafields'); const metafieldsData = JSON.parse(metafields.innerHTML); properties['__daysUntilShip'] = metafieldsData.days_until_ship; properties['__recommended'] = true; let formData = { 'items': [ { 'id': id, 'quantity': 1, 'properties': properties } ] } await fetch(window.Shopify.routes.root + 'cart/add.js', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(formData) }) .then(response => { return response.json(); }) .catch((error) => { console.error('Error:', error); }); }) } } const radios = node.querySelectorAll('input[data-price]') const prices = document.querySelectorAll('.js-button-price') for (const radio of radios) { radio.addEventListener('change', (e) => { let priceValue = window.currentVariant.price / 100 const checkedInputs = document.querySelectorAll('input[data-price]:checked') for (const checkedInput of checkedInputs) { priceValue += parseFloat(checkedInput.dataset.price) } for (const price of prices) { price.innerHTML = '$' + priceValue.toString() } }) } const pagination = node.querySelector('[recommendations-pagination]') const nextEl = node.querySelector('.recommendations-buttons button[data-dir="next"]') const prevEl = node.querySelector('.recommendations-buttons button[data-dir="prev"]') const swiper = new Swiper(sliderEl, { slidesPerView: 1, pagination: { el: pagination, }, navigation: { nextEl: nextEl, prevEl: prevEl }, autoHeight: true }); } init(); })();
An all-in-one crib that grows and changes with your little one.
Mini Crib
A petite size and rolling feet make it easy for nap time or night time to happen anywhere.
Full crib
Three adjustable mattress heights make it extra-easy to get that growing baby in and out.
Toddler Bed
A perfect, pint-sized bed for little ones going from crawlers to climbers.
Bundle and save!
Save $100
The Cloud Dresser | $999 $899
A classic dresser
about our cribs
Everything you need as your baby grows
-
Includes mini crib with mini mattress (our mini is a non standard size) + conversion kit to full crib + conversion kit to toddler bed
-
60 day free trial on all cribs + an 18 year limited warranty
-
Non-toxic, lead and phthalate safe -base + rails constructed from sustainably harvested solid Brazilian pine, spindles from high strength steel and mattress support from eco-engineered wood
-
3 adjustable mattress heights
View as:
Sleek designs, grow-with-baby features and JPMA-certified safety standards.
Simple, minimalist designs that fit beautifully in your home.
Nestig comes in, far surpassing other cribs on the market.
Sleek lines make it ultra-eye catching, and the function is top-notch
Sleek designs, grow-with-baby features and JPMA-certified safety standards.
Simple, minimalist designs that fit beautifully in your home.
Nestig comes in, far surpassing other cribs on the market.
Sleek lines make it ultra-eye catching, and the function is top-notch
about our production
JPMA Certified to exceed safety standards
-
Handmade with care in Brazil in a family-owned factory where employees are treated kindly and craftsmanship is a mix of new technology and classic hand detailing
-
We procure our materials from sustainable sources. We design the cribs to be sustainable, too — to last and grow with your family
-
No inventory, low waste: We produce only what’s ordered and ship directly to you
Learn more