91³Ô¹ÏÍø

Watch CBS News

Lego is finally making its iconic bricks from recycled plastic

Lego is finally on its way to making its iconic toy bricks more sustainable. The toymaker unveiled this week a prototype brick made entirely of recycled plastic — but it's not yet available in stores. 

On Wednesday, Lego that its latest design is the first made from recycled material that has passed its "strict" quality, safety and play requirements, following several iterations that were not durable enough. The company called it "the latest step in its journey to make Lego products from sustainable materials."

The new prototype is made using polyethylene terephthalate (PET) recycled from bottles that have been thrown away. According to a statement from the company, scientists and engineers tested over 250 variations of PET materials, as well as hundreds of other plastic formulations, before nailing down the latest prototype. 

The plastic is sourced from suppliers in the U.S. that have been approved by the Food and Drug Administration and European Food Safety Authority. On average, a one-liter plastic PET bottle yields enough raw material for ten 2 x 4 Lego bricks.

"We are super excited about this breakthrough," said Tim Brooks, Lego's VP of environmental responsibility. "The biggest challenge on our sustainability journey is rethinking and innovating new materials that are as durable, strong and high quality as our existing bricks — and fit with LEGO elements made over the past 60 years. With this prototype, we're able to showcase the progress we're making."

mra-5925.jpg
The new, more sustainable prototype is made using polyethylene terephthalate. Lego

But don't rush to your nearest toy store just yet — Lego said it will be "some time" before the new bricks are mass-produced for consumers. The next phase of testing, which includes further developing the patent-pending PET formulation, is expected to take at least a year. 

Lego has slowly been working its way towards sustainability for years. Last November, the company announced that it would stop using plastic bags inside its boxed sets and replace them with paper ones, after it received letters from kids asking it to decrease its plastic use.

"We know kids care about the environment and want us to make our products more sustainable. Even though it will be a while before they will be able to play with bricks made from recycled plastic, we want to let kids know we're working on it and bring them along on the journey with us," Brooks said. "Experimentation and failing is an important part of learning and innovation. Just as kids build, unbuild and rebuild with LEGO bricks at home, we're doing the same in our lab."

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=50747257b890e014813016b79ece0fb2'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });