Skip Navigation Website Accessibility
 


Chums Ripcord Retainer

Meet the Ripcord Retainer - the perfect fusion of brains and brawn. This retainer offers unparalleled functionality thanks to its harpoon system, which allows for swapping between two sets of interchangeable silicone ends, to adapt to countless eyewear styles. From wire-framed aviators to the thickest, chunkiest polycarbonate frames, the Ripcord plays nice with just about any pair of glasses you can throw at it. Crafted in the USA from durable 3mm nylon rope, and with extra-grippy silicone ends that won’t stretch out or lose their shape over time, this retainer delivers the durability, versatility, and dependability to level up any adventure.

  • Includes two sets of interchangeable ends for an ultra-wide range of fit
  • Grippy silicone ends won’t stretch out or lose shape
  • Durable braided 3mm nylon rope
  • Fully adjustable slider bead for security
  • Length: 12.5"
  • Made in the USA

(function(){ // Toggle aria-expanded for navbar toggles / dropdowns document.addEventListener('click', function(e){ var btn = e.target.closest('[data-toggle="aria"]'); if(!btn) return; var targetSelector = btn.getAttribute('data-target'); var el = targetSelector ? document.querySelector(targetSelector) : null; var expanded = btn.getAttribute('aria-expanded') === 'true'; btn.setAttribute('aria-expanded', (!expanded).toString()); if(el) el.classList.toggle('open'); }); // Keyboard close for dropdowns/overlays on ESC document.addEventListener('keydown', function(e){ if(e.key === 'Escape'){ document.querySelectorAll('.open').forEach(function(x){ x.classList.remove('open'); }); document.querySelectorAll('[aria-expanded="true"]').forEach(function(b){ b.setAttribute('aria-expanded','false'); }); } }); // Brief product-card animation on add-to-cart (use data-add-btn on button) document.addEventListener('click', function(e){ var add = e.target.closest('[data-add-btn]'); if(!add) return; var card = add.closest('.card'); if(card){ card.classList.remove('fade-added'); void card.offsetWidth; card.classList.add('fade-added'); setTimeout(function(){ card.classList.remove('fade-added'); }, 600); } }); // Lazy image fallback for images with data-src var imgs = Array.prototype.slice.call(document.querySelectorAll('img[data-src]')); if('IntersectionObserver' in window && imgs.length){ var io = new IntersectionObserver(function(entries){ entries.forEach(function(e){ if(e.isIntersecting){ var i = e.target; i.src = i.getAttribute('data-src'); i.onload = function(){ i.classList.add('loaded'); } io.unobserve(i); } }); },{rootMargin:'120px'}); imgs.forEach(function(i){ io.observe(i); }); } else { imgs.forEach(function(i){ i.src = i.getAttribute('data-src'); i.onload = function(){ i.classList.add('loaded'); }}); } })();