Shop

Showing 1–16 of 26 results

  • After-Garden Mineral Soak – 250g Jar

    After-Garden Mineral Soak – 250g Jar

    R175.00

    A fresh, herbal mineral soak of mineral salt, sea salt and bicarb with rosemary, ginger, chamomile, arnica and bay leaf, scented with a crisp, woody essential oil blend. For a long, warm soak after a busy day.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Blended by hand in small batches';}var t=['Mineral salts and dried herbs', 'Cruelty free', 'Herbs and colour may vary slightly from batch to batch'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});

  • Amber Hedgerow Eau de Parfum - 50ml Bottle

    Amber Hedgerow Eau de Parfum – 50ml Bottle

    R349.00

    A balanced, green-fruity fragrance of juicy cassis, tart hibiscus and a cool breath of peppermint over warm amber and soft leather. Fresh, intriguing and beautifully wearable.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Blended and bottled in small batches';}var t=['Our own signature amber fragrance','Cruelty free','Rested before bottling for a rounded scent'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});

  • Amber Petals Soap Bar

    Amber Petals Soap Bar

    R75.00

    Sweet orange, clove and cinnamon in a warm, glowing bar, a comforting spiced wash for cosy evenings.

  • Calm Complexion Soap Bar

    Calm Complexion Soap Bar

    R79.00

    A gentle aloe vera bar with soft kaolin clay and a fresh herbal blend of lavender, eucalyptus and peppermint, for a calm, balanced-feeling complexion.

  • Citrus Clean Toilet Fizzies - 4 pucks (100g)

    Citrus Clean Toilet Fizzies – 4 pucks (100g)

    R69.00

    Fizzing toilet bombs with a fresh, zesty lemon fragrance. Drop one into the bowl and let it fizz to help freshen and brighten your toilet between cleans. Made with bicarb, citric acid, washing soda, sodium percarbonate, cornstarch and kaolin clay.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Pressed by hand in small batches';}var t=['Simple, hardworking cleaning ingredients','For household cleaning only, not for body use','Colour and shape may vary slightly from batch to batch'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});

  • Citrus Grove Eau de Parfum - 50ml Bottle

    Citrus Grove Eau de Parfum – 50ml Bottle

    R349.00

    A fresh, uplifting unisex fragrance of sparkling orange and bergamot over smooth cedarwood and a rich hint of agarwood. Clean, energising and quietly luxurious, made for everyone.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Blended and bottled in small batches';}var t=['Our own signature unisex fragrance','Cruelty free','Rested before bottling for a rounded scent'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});

  • Comfort Balm - 70g Tin

    Comfort Balm – 70g Tin

    R175.00

    A gentle, comforting herbal balm of arnica and comfrey, made for everyday care. Light yet nourishing, it melts into the skin and leaves a soft herbal touch without feeling heavy.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Infused and poured in small batches';}var t=['Simple, herbal ingredients','Cruelty free','Colour may vary slightly from batch to batch'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});

  • Cool Step Foot Cream - 100g Tin

    Cool Step Foot Cream – 100g Tin

    R149.00

    A rich foot cream of shea butter, coconut oil, sweet almond oil and beeswax with aloe vera, scented with a cool, fresh blend of essential oils. Leaves tired-feeling feet soft and refreshed.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Whipped up in small batches';}var t=['Shea butter, plant oils and aloe vera', 'Cruelty free', 'Texture may vary slightly with the seasons'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});

  • Create Your Own Herbal Evening Tea - 50g Jar

    Create Your Own Herbal Evening Tea – 50g Jar

    R115.00

    Choose one of our six evening presets, or pick any three of our six botanicals to make a calming cup that’s all your own. Blended by hand in equal parts and packed into a 50g jar, made for slow evenings and a gentle wind-down.

    .tt-tb{--tt-cream:#faf5ea;--tt-card:#fffdf8;--tt-line:#e6dcc8;--tt-green:#5f7350;--tt-green-soft:#e8eedf;--tt-brown:#6b4f2a;--tt-ink:#2f3a2f;font-family:Georgia,'Times New Roman',serif;color:var(--tt-ink);background:var(--tt-cream);border:1px solid var(--tt-line);border-radius:18px;padding:22px 18px;margin:0 0 1.5em;box-sizing:border-box} .tt-tb *{box-sizing:border-box} .tt-tb h3{font-size:1.25em;color:var(--tt-green);margin:0 0 4px;font-weight:normal;letter-spacing:.02em} .tt-tb .tt-tb-sub{margin:0 0 14px;font-size:.95em;color:var(--tt-brown)} .tt-tb .tt-tb-label{font-size:.78em;letter-spacing:.14em;text-transform:uppercase;color:var(--tt-brown);margin:16px 0 8px} .tt-tb .tt-tb-presets{display:flex;flex-wrap:wrap;gap:8px} .tt-tb .tt-tb-preset{font:inherit;font-size:.92em;cursor:pointer;border:1px solid var(--tt-line);background:var(--tt-card);color:var(--tt-ink);border-radius:999px;padding:8px 14px;line-height:1.2;transition:border-color .2s} .tt-tb .tt-tb-preset small{display:block;font-size:.78em;color:#7b7262;margin-top:2px} .tt-tb .tt-tb-preset:hover{border-color:var(--tt-green)} .tt-tb .tt-tb-preset.is-active{background:var(--tt-green);border-color:var(--tt-green);color:#fff} .tt-tb .tt-tb-preset.is-active small{color:#eef2e8} .tt-tb .tt-tb-herbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px} .tt-tb .tt-tb-herb{font:inherit;cursor:pointer;text-align:center;border:1px solid var(--tt-line);background:var(--tt-card);color:var(--tt-ink);border-radius:16px;padding:12px 8px 10px;position:relative;transition:border-color .2s} .tt-tb .tt-tb-herb:hover{border-color:var(--tt-green)} .tt-tb .tt-tb-herb.is-on{background:var(--tt-green-soft);border-color:var(--tt-green);box-shadow:0 0 0 2px var(--tt-green) inset} .tt-tb .tt-tb-img{display:flex;align-items:center;justify-content:center;width:64px;height:64px;margin:0 auto 8px;border-radius:50%;background:#efe6d3 center/cover no-repeat;color:var(--tt-brown);font-size:1.5em} .tt-tb .tt-tb-name{display:block;font-size:1em} .tt-tb .tt-tb-desc{display:block;font-size:.8em;color:#7b7262;margin-top:2px} .tt-tb .tt-tb-tick{position:absolute;top:8px;right:8px;width:20px;height:20px;border-radius:50%;background:var(--tt-green);color:#fff;font-size:12px;line-height:20px;display:none} .tt-tb .tt-tb-herb.is-on .tt-tb-tick{display:block} .tt-tb .tt-tb-summary{margin-top:16px;padding:12px 14px;border-radius:12px;background:var(--tt-card);border:1px dashed var(--tt-line);font-size:.98em} .tt-tb .tt-tb-summary strong{color:var(--tt-green);font-weight:normal} .tt-tb .tt-tb-msg{min-height:1.3em;margin-top:8px;font-size:.88em;color:var(--tt-brown);font-style:italic} .tt-tb .tt-tb-note{margin-top:6px;font-size:.82em;color:#7b7262} .tt-tb button:focus-visible{outline:2px solid var(--tt-brown);outline-offset:2px} @media (max-width:520px){.tt-tb{padding:18px 12px}.tt-tb .tt-tb-herbs{grid-template-columns:repeat(2,1fr)}.tt-tb .tt-tb-preset{flex:1 1 calc(50% - 8px)}} /* Optional: hide WooCommerce's own "Your blend" dropdown row once you're happy the builder works. Uncomment the next line. */ /* .single-product form.variations_form table.variations{display:none} */

    (function () { /* ---- Settings: add a herb photo URL in img when you have one ---- */ var AMP = String.fromCharCode(38), DOT = String.fromCharCode(183), TICK = String.fromCharCode(10003); var HERBS = [ { key: 'chamomile', name: 'Chamomile', desc: 'Soft ' + AMP + ' comforting', img: '' }, { key: 'lavender', name: 'Lavender', desc: 'Floral ' + AMP + ' relaxing', img: '' }, { key: 'lemonbalm', name: 'Lemon Balm', desc: 'Fresh ' + AMP + ' lemony', img: '' }, { key: 'rose', name: 'Rose Petals', desc: 'Delicate ' + AMP + ' floral', img: '', alias: ['rose', 'rosepetals'] }, { key: 'peppermint', name: 'Peppermint', desc: 'Cool ' + AMP + ' refreshing', img: '' }, { key: 'passionflower', name: 'Passionflower', desc: 'Earthy ' + AMP + ' mellow', img: '' } ]; /* Preset icons are built from code points (no raw emoji in the script, so WordPress cannot turn them into entities). */ function emo(cp) { return String.fromCodePoint ? String.fromCodePoint(cp) : ''; } var PRESETS = [ { name: 'Sleep / Bedtime', icon: emo(0x1F319), herbs: ['chamomile', 'lavender', 'passionflower'] }, { name: 'Gentle Calm', icon: emo(0x1F90D), herbs: ['chamomile', 'lemonbalm', 'rose'] }, { name: 'Floral Relaxation', icon: emo(0x1F49C), herbs: ['chamomile', 'lavender', 'rose'] }, { name: 'Fresh ' + AMP + ' Calm', icon: emo(0x1F34B), herbs: ['chamomile', 'lemonbalm', 'peppermint'] }, { name: 'Evening Wind-Down', icon: emo(0x1F33F), herbs: ['lavender', 'lemonbalm', 'passionflower'] }, { name: 'Garden Breeze', icon: emo(0x1F339), herbs: ['lavender', 'peppermint', 'rose'] } ]; var MAX = 3; /* ---- End of settings ---- */ var root = document.getElementById('tt-tea-builder'); if (!root || root.getAttribute('data-ready')) return; root.setAttribute('data-ready', '1'); var byKey = {}, aliasMap = {}; HERBS.forEach(function (h) { byKey[h.key] = h; (h.alias || [norm(h.name)]).concat([h.key]).forEach(function (a) { aliasMap[a] = h.key; }); }); var selected = [], syncing = false, msgTimer = null, herbBtns = {}, presetBtns = []; function norm(s) { return String(s || '').toLowerCase().replace(/[^a-z]/g, ''); } function keyOf(list) { return list.slice().sort().join('|'); } function el(tag, cls, text) { var e = document.createElement(tag); if (cls) e.className = cls; if (text != null) e.textContent = text; return e; } function names(list) { return list.map(function (k) { return byKey[k].name; }); } /* Work out which herbs an option stands for, from its label (or value). */ function herbsFromLabel(label) { var s = String(label || ''); var m = s.match(/[(]([^)]*)[)]/); if (m) s = m[1]; else if (/^ *custom *:/i.test(s)) s = s.replace(/^ *custom *:/i, ''); var parts = s.split(/[,+/]/), found = []; parts.forEach(function (p) { var k = aliasMap[norm(p)]; if (k) { if (found.indexOf(k) === -1) found.push(k); } }); if (found.length !== MAX) { /* Fallback for slug-style values, e.g. "custom-chamomile-lavender-lemon-balm" */ var flat = norm(s); found = []; HERBS.forEach(function (h) { if (flat.indexOf(norm(h.name)) !== -1) found.push(h.key); else if (h.key === 'rose') { if (flat.indexOf('rose') !== -1) found.push('rose'); } }); } return found; } function findSelect() { var forms = document.querySelectorAll('form.variations_form'); var scope = forms.length ? forms[0] : document; var sels = scope.querySelectorAll("select[name^='attribute_']"); for (var i = 0; i < sels.length; i++) { if (/blend/i.test(sels[i].name)) return sels[i]; } return sels[0] || null; } function optionMap(sel) { var map = {}; Array.prototype.forEach.call(sel.options, function (o) { if (!o.value) return; var hs = herbsFromLabel(o.textContent); if (hs.length !== MAX) hs = herbsFromLabel(o.value); if (hs.length !== MAX) return; var k = keyOf(hs), isCustom = /^ *custom/i.test(o.textContent); if (!map[k] || !isCustom) map[k] = o; /* a preset wins over a custom label with the same herbs */ }); return map; } function fireChange(sel) { syncing = true; try { sel.dispatchEvent(new Event('change', { bubbles: true })); if (window.jQuery) window.jQuery(sel).trigger('change'); } finally { syncing = false; } } function say(text) { msg.textContent = text || ''; if (msgTimer) clearTimeout(msgTimer); if (text) msgTimer = setTimeout(function () { msg.textContent = ''; }, 4500); } function matchingPreset() { if (selected.length !== MAX) return null; var k = keyOf(selected); for (var i = 0; i = MAX) { say('You have chosen your three. Tap one of them to swap it for another.'); return; } else { selected.push(k); say(''); } apply(); } function choosePreset(p) { selected = p.herbs.slice(); say(''); apply(); } /* If the customer uses the dropdown (or WooCommerce's Clear link), mirror it in the builder. */ function syncFromSelect() { if (syncing) return; var sel = findSelect(); if (!sel) return; if (!sel.value) { selected = []; render(); return; } var o = sel.options[sel.selectedIndex]; var hs = herbsFromLabel(o ? o.textContent : ''); if (hs.length !== MAX) hs = herbsFromLabel(sel.value); if (hs.length === MAX) { selected = hs; render(); } } /* ---- Build the UI ---- */ root.appendChild(el('h3', '', 'Create your evening blend')); root.appendChild(el('p', 'tt-tb-sub', 'Choose one of our presets, or pick any 3 herbs. We blend them in equal parts.')); root.appendChild(el('div', 'tt-tb-label', 'Our presets')); var presetWrap = el('div', 'tt-tb-presets'); root.appendChild(presetWrap); PRESETS.forEach(function (p) { var b = el('button', 'tt-tb-preset'); b.type = 'button'; b.appendChild(document.createTextNode((p.icon ? p.icon + ' ' : '') + p.name)); b.appendChild(el('small', '', names(p.herbs).join(' ' + DOT + ' '))); b.addEventListener('click', function () { choosePreset(p); }); presetBtns.push(b); presetWrap.appendChild(b); }); root.appendChild(el('div', 'tt-tb-label', 'Or pick any 3 herbs')); var herbWrap = el('div', 'tt-tb-herbs'); root.appendChild(herbWrap); HERBS.forEach(function (h) { var b = el('button', 'tt-tb-herb'); b.type = 'button'; b.setAttribute('aria-pressed', 'false'); var img = el('span', 'tt-tb-img', h.img ? '' : h.name.charAt(0)); if (h.img) img.style.backgroundImage = 'url("' + h.img + '")'; img.setAttribute('aria-hidden', 'true'); b.appendChild(img); b.appendChild(el('span', 'tt-tb-name', h.name)); b.appendChild(el('span', 'tt-tb-desc', h.desc)); var tick = el('span', 'tt-tb-tick', TICK); tick.setAttribute('aria-hidden', 'true'); b.appendChild(tick); b.addEventListener('click', function () { toggleHerb(h.key); }); herbBtns[h.key] = b; herbWrap.appendChild(b); }); var summary = el('div', 'tt-tb-summary'); summary.setAttribute('aria-live', 'polite'); root.appendChild(summary); var msg = el('div', 'tt-tb-msg'); msg.setAttribute('role', 'status'); root.appendChild(msg); var note = el('div', 'tt-tb-note'); root.appendChild(note); render(); function hookSelect() { var sel = findSelect(); if (!sel) return; sel.addEventListener('change', syncFromSelect); if (window.jQuery) window.jQuery(sel).on('change', syncFromSelect); syncFromSelect(); } if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', hookSelect); else hookSelect(); /* Expose for testing only */ root.ttTea = { toggleHerb: toggleHerb, choosePreset: choosePreset, presets: PRESETS, state: function () { return selected.slice(); } }; })();
    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Hand-blended in small batches';}var t=['Pure dried herbs, nothing added','Naturally caffeine-free','Colour and flavour may vary slightly between harvests'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});
    document.addEventListener('DOMContentLoaded',function(){var U='https://thymenthistle.co.za/wp-content/uploads/2026/10/';var M={'Chamomile':'Sunlit-Chamomile-Tea-Still-Life','Lavender':'Lavender-Tea-Apothecary-Still-Life','Lemon Balm':'Sunlit-Lemon-Balm-Tea-Still-Life','Rose Petals':'Romantic-Rose-Herbal-Tea-Still-Life','Peppermint':'Sunlit-Peppermint-Tea-Still-Life','Passionflower':'Golden-Passionflower-Tea-Still-Life'};function show(f){var g=document.querySelector('.woocommerce-product-gallery');if(!g){return;}var slides=g.querySelectorAll('.woocommerce-product-gallery__image');var th=g.querySelectorAll('.flex-control-thumbs li img');for(var i=0;i<slides.length;i++){var im=slides[i].querySelector('img');if(!im){continue;}var s=im.getAttribute('data-large_image')||im.src;if(s.indexOf(f)===-1){continue;}if(th[i]){th[i].click();return;}if(window.jQuery){var fs=jQuery(g).data('flexslider');if(fs){fs.flexAnimate(i);return;}}}var m=g.querySelector('.woocommerce-product-gallery__image img');if(!m){return;}var u=U+f+'.png';m.removeAttribute('srcset');m.src=u;m.setAttribute('data-large_image',u);}document.addEventListener('click',function(e){if(!e.target.closest){return;}var b=e.target.closest('.tt-tb-herb');if(!b){return;}var n=b.querySelector('.tt-tb-name');if(!n){return;}var f=M[n.textContent.trim()];if(f){show(f);}});});

    Select optionsLoading Done This product has multiple variants. The options may be chosen on the product page
  • Forest Breath Soap Bar

    Forest Breath Soap Bar

    R79.00

    A cool, invigorating charcoal bar with peppermint and eucalyptus, like a deep breath of forest air at the start of your day.

  • Garden Bloom Botanical Bath Soak - 250g Jar

    Garden Bloom Botanical Bath Soak – 250g Jar

    R175.00

    A floral bath soak of mineral salt, sea salt, bicarb and white kaolin clay with lavender, rose petals, chamomile, calendula and orange blossom. Run a warm bath, pour it in and unwind.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Blended by hand in small batches';}var t=['Mineral salts and real dried flowers', 'Cruelty free', 'Petals and colour may vary slightly from batch to batch'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});

  • Honey Oats Veil Soap Bar

    Honey Oats Veil Soap Bar

    R79.00

    A soft, unscented bar of colloidal oats, golden honey and creamy plant-based milk, made for skin that likes to be treated gently.

  • Lemon Kitchen Soap Bar

    Lemon Kitchen Soap Bar

    R55.00

    ⚠ Not for body use. This is a household cleaning bar for floors, bathrooms, dishes and surfaces. Please don’t use it on your skin.

    A hard-working, all-purpose coconut cleaning bar with a fresh lemon scent, for floors, bathrooms, dishes and surfaces all around the home. Simple, honest cleaning, the way it used to be done.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Handcrafted natural soap, made in small batches';}var t=['Natural ingredients', 'Cruelty free', 'For household cleaning only, not for body use'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});

  • Mood & Room Veldspray - Cotton Air - 100ml Bottle

    Mood & Room Veldspray – Cotton Air – 100ml Bottle

    R139.00

    A mood and room spray with a clean, soft cotton fragrance. Blended with perfumer’s alcohol and vegetable glycerine, then rested for four weeks before bottling.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Blended and bottled in small batches';}var t=['Rested for four weeks before bottling', 'Cruelty free', 'Spray into the air, not for skin'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});

  • Mood & Room Veldspray - Fynbos Air - 100ml Bottle

    Mood & Room Veldspray – Fynbos Air – 100ml Bottle

    R139.00

    A mood and room spray with a fresh, green fynbos fragrance. Blended with perfumer’s alcohol and vegetable glycerine, then rested for four weeks before bottling.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Blended and bottled in small batches';}var t=['Rested for four weeks before bottling', 'Cruelty free', 'Spray into the air, not for skin'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});

  • Natural Seaweed Sponge

    Natural Seaweed Sponge

    R15.00

    A natural seaweed sponge for household cleaning, the perfect partner for our Lemon Kitchen Soap Bar. Soft, absorbent and easy to rinse.

    document.addEventListener('DOMContentLoaded',function(){var b=document.querySelector('.single-product-extras');if(!b){return;}var s=b.querySelector('p strong');if(s){s.textContent='Made for our Lemon Kitchen Soap Bar';}var t=['Natural seaweed sponge', 'Soft, absorbent and holds a good lather', 'Each one is a little different in shape and colour'];b.querySelectorAll('li').forEach(function(li,i){if(i>=t.length){return;}var sp=li.querySelector('span');li.textContent='';if(sp){li.appendChild(sp);}li.appendChild(document.createTextNode(' '+t[i]));});});