Island Yarn Duo

Island Yarn


$ 20.00

The specs: 

100 yards, fiber content and gauge are listed below for each colorway

The love:

I love Noro yarns.  Like REALLY LOVE them.  But once in a while, I'd like a plied Noro.  So, I thought, "I have Noro.  And I have a spinning wheel!"  And this is the delightful yarn that resulted from that experiment!  It is AMAZING!  The plying makes it a bit softer and still stronger and the colors of Noro just sing even louder in my ears!  

As these skeins are made from different Noro Yarns, we've included the fiber content and gauge of each below.  Supplies on most are quite limited, so if you love them, grab them fast!  Skeins vary as the color cycles through, so pictures are of 3 different skeins so that you can see the color range.

Chunky

1 - 54% Cotton, 34% Wool, 12% Silk

2 - 54% Cotton, 34% Wool, 12% Silk

3 - 60% Cotton, 15% Silk, 15% Wool, 10% Nylon

Aran Weight

4 - 40% Wool, 25% Silk, 25% Nylon, 10% Mohair

5 - 50% Silk, 25% Wool, 25% Nylon

8 - 35% Viscose, 35% Cotton, 20% Silk, 10% Wool

9 - 35% Viscose, 35% Cotton, 20% Silk, 10% Wool

10 - 35% Viscose, 35% Cotton, 20% Silk, 10% Wool

Worsted Weight

6 - 50% Cotton, 17% Wool, 17% Nylon, 16% Silk

7 - 50% Cotton, 17% Wool, 17% Nylon, 16% Silk

 

Related Products


const selectVariantByClickingImage = { // Create variant images from productJson object _createVariantImage: function (product) { const variantImageObject = {}; product.variants.forEach((variant) => { if ( typeof variant.featured_image !== 'undefined' && variant.featured_image !== null ) { const variantImage = variant.featured_image.src .split('?')[0] .replace(/http(s)?:/, ''); variantImageObject[variantImage] = variantImageObject[variantImage] || {}; product.options.forEach((option, index) => { const optionValue = variant.options[index]; const optionKey = `option-${index}`; if ( typeof variantImageObject[variantImage][optionKey] === 'undefined' ) { variantImageObject[variantImage][optionKey] = optionValue; } else { const oldValue = variantImageObject[variantImage][optionKey]; if (oldValue !== null && oldValue !== optionValue) { variantImageObject[variantImage][optionKey] = null; } } }); } }); return variantImageObject; }, _updateVariant: function (event, id, product, variantImages) { const arrImage = event.target.src .split('?')[0] .replace(/http(s)?:/, '') .split('.'); const strExtention = arrImage.pop(); const strRemaining = arrImage.pop().replace(/_[a-zA-Z0-9@]+$/, ''); const strNewImage = `${arrImage.join('.')}.${strRemaining}.${strExtention}`; if (typeof variantImages[strNewImage] !== 'undefined') { product.variants.forEach((option, index) => { const optionValue = variantImages[strNewImage][`option-${index}`]; if (optionValue !== null && optionValue !== undefined) { const selects = document.querySelectorAll('#'+ id + ' [class*=single-option-selector]'); const options = selects[index].options; for (let option, n = 0; (option = options[n]); n += 1) { if (option.value === optionValue) { selects[index].selectedIndex = n; selects[index].dispatchEvent(new Event('change')); break; } } } }); } }, _selectVariant: function() { const productJson = document.querySelectorAll('[id^=ProductJson-'); if (productJson.length > 0) { productJson.forEach((product) => { const sectionId = product.id.replace("ProductJson-", "shopify-section-"); const thumbnails = document.querySelectorAll('#'+ sectionId + ' img[src*="/products/"]'); if (thumbnails.length > 1) { const productObject = JSON.parse(product.innerHTML); const variantImages = this._createVariantImage(productObject); // need to check variants > 1 if (productObject.variants.length > 1) { thumbnails.forEach((thumbnail) => { thumbnail.addEventListener('click', (e) => this._updateVariant(e, sectionId, productObject, variantImages), ); }); } } }); } }, }; if (document.readyState !== 'loading') { selectVariantByClickingImage._selectVariant(); } else { document.addEventListener( 'DOMContentLoaded', selectVariantByClickingImage._selectVariant(), ); }