Knight ribbon
Show your team spirit with this vibrant Knight ribbon. Perfect for supporters who want to display their colours on the field or court, this ribbon combines bold red, blue, and whit e in a striking design. Ideal for tying around wrists, bags, or uniforms to show your allegiance and pump up team morale. A must-have accessory for any dedicated fan or player or supporter. 4 layers on each side 18cm in length x1 25mm (each side) x3 12mm (each side) Custom both left and right 25mm Please note: Current turnaround time is 1-2 weeks for this item. #rnt-pv{--pv-line:#EDDFC9;--pv-ink:#17231E;--pv-muted:#7C8C84;--pv-pink:#FF3D8A;background:#fff;border:1px solid var(--pv-line);border-radius:20px;padding:18px;margin:22px 0;font-family:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif} #rnt-pv .pv-lab{display:block;font-size:.82rem;font-weight:600;color:#3E524A;margin:0 0 6px} #rnt-pv .pv-in{width:100%;box-sizing:border-box;padding:11px 13px;border:1px solid var(--pv-line);border-radius:12px;font:1rem 'Inter',sans-serif;color:var(--pv-ink);background:#fff} #rnt-pv .pv-in:focus{outline:none;border-color:var(--pv-pink);box-shadow:0 0 0 3px rgba(255,61,138,.12)} #rnt-pv .pv-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin:6px 0 0} #rnt-pv .pv-c{color:var(--pv-muted);font-size:.76rem} #rnt-pv .pv-two{display:grid;grid-template-columns:1fr 1fr;gap:14px} @media (max-width:520px){#rnt-pv .pv-two{grid-template-columns:1fr}} #rnt-pv .pv-fonts{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 4px} #rnt-pv .pv-f{border:1px solid var(--pv-line);background:#fff;border-radius:99px;padding:7px 14px;cursor:pointer;font-size:.95rem;color:var(--pv-ink);line-height:1.1} #rnt-pv .pv-f[aria-pressed="true"]{border-color:var(--pv-pink);background:#FFF1F6;box-shadow:inset 0 0 0 1px var(--pv-pink)} #rnt-pv .pv-stage{position:relative;width:100%;max-width:460px;margin:12px auto 0;background:#FFFFFF;border-radius:16px;overflow:hidden} #rnt-pv .pv-img{display:block;width:100%;height:auto} #rnt-pv .pv-anchor{position:absolute;width:0;height:0;pointer-events:none} #rnt-pv .pv-anchor.pv-l{left:2.14%;top:73.04%;transform:rotate(-54.71deg)} #rnt-pv .pv-anchor.pv-r{left:97.7%;top:76.43%;transform:rotate(-126.79deg)} #rnt-pv .pv-name{position:absolute;left:0;top:0;transform:translateY(-50%);white-space:pre;line-height:1;letter-spacing:.055em} #rnt-pv .pv-price{margin:0 0 12px;font-size:.92rem;color:#3E524A} #rnt-pv .pv-price b{color:#17231E} #rnt-pv .pv-hint{color:var(--pv-muted);font-size:.78rem;text-align:center;margin:8px 0 0} Blank ribbon $9.50. Type a name on one or both tails and it is personalised for $15, or $12 each for 10 or more. Left tail Printed up the left tail0 Right tail Printed up the right tail. Leave empty for one side only.0 / 13 #rnt-pv .pv-team{margin:2px 0 14px} #rnt-pv .pv-team-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap} #rnt-pv .pv-add{background:#fff;border:1.5px solid var(--pv-pink);color:var(--pv-pink);border-radius:999px;padding:8px 14px;font:600 .84rem/1 inherit;font-family:inherit;cursor:pointer} #rnt-pv .pv-add:hover{background:#FFF0F6} #rnt-pv .pv-add:disabled{opacity:.45;cursor:default} #rnt-pv .pv-team-note{font-size:.78rem;color:var(--pv-muted)} #rnt-pv .pv-tlist{margin-top:12px;background:#FBF7F0;border:1px solid var(--pv-line);border-radius:14px;padding:12px 14px} #rnt-pv .pv-tlist-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:.82rem;margin-bottom:8px} #rnt-pv .pv-tlist-head b{color:#17231E} #rnt-pv .pv-tlist-head span{color:var(--pv-muted)} #rnt-pv .pv-tlist-head span.pv-hit{color:var(--pv-pink);font-weight:600} #rnt-pv .pv-tchips{display:flex;flex-wrap:wrap;gap:6px} #rnt-pv .pv-tchip{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--pv-line);border-radius:999px;padding:5px 6px 5px 11px;font-size:.84rem;color:#17231E;cursor:pointer} #rnt-pv .pv-tchip:hover,#rnt-pv .pv-tchip.pv-tediting{border-color:var(--pv-pink);box-shadow:0 0 0 2px rgba(255,61,138,.12)} #rnt-pv .pv-tchip i{font-style:normal;color:var(--pv-muted);font-size:.72rem} #rnt-pv .pv-tchip .pv-tx{width:18px;height:18px;border-radius:50%;border:0;background:#F1E9DB;color:#3E524A;font:700 .72rem/18px inherit;cursor:pointer;padding:0} #rnt-pv .pv-tchip .pv-tx:hover{background:var(--pv-pink);color:#fff} #rnt-pv .pv-tlist-foot{font-size:.76rem;color:var(--pv-muted);margin:8px 0 0} Add this name to the team list Ordering for a team? Add each name. The right tail and font stay the same for all of them. 0 names10 or more: $12 each Tap a name to change it. The ribbon above shows the name you are typing now. (function(){ var W=document.getElementById('rnt-pv');if(!W||W.dataset.team)return;W.dataset.team='1'; var inpL=W.querySelector('#rnt-pv-l'), inpR=W.querySelector('#rnt-pv-r'); var add=W.querySelector('[data-pv-add]'), list=W.querySelector('[data-pv-tlist]'), chips=W.querySelector('[data-pv-tchips]'), cnt=W.querySelector('[data-pv-tlist-count]'), tier=W.querySelector('[data-pv-tlist-tier]'); var names=[], editing=-1, MIN=10, HARD=parseInt(W.dataset.min||'0',10)||0; function cur(){return (inpL.value||'').replace(/\s+/g,' ').trim();} function fire(){inpL.dispatchEvent(new Event('input',{bubbles:true}));} function total(){return names.length+(cur()&&editingi){editing--;} render(); }); chips.appendChild(c); }); var t=total(); cnt.textContent=t+(t===1?' name':' names'); if(t>=MIN){tier.textContent='Team price: $12 each';tier.className='pv-hit';} else{tier.textContent=(MIN-t)+' more for $12 each';tier.className='';} if(names.length){ var hint=W.querySelector('[data-pv-hint]'); if(hint)hint.textContent='Each name is its own ribbon. Personalised, $15 each, or $12 each for 10 or more.'; if(!cur()&&!(inpR.value||'').trim()){ var pr=[].slice.call(document.querySelectorAll('input[type=radio]')).filter(function(x){return x.value==='Personalised';})[0]; if(pr&&!pr.checked)pr.click(); } } add.textContent=editing>=0?'Update this name':'Add this name to the team list'; add.disabled=!cur(); var f=document.querySelector('form[action*="/cart/add"]'), b=f&&f.querySelector('[type=submit],button[name=add]'); if(b){ if(t>1){ b.dataset.pvLabel=b.dataset.pvLabel||b.textContent; b.textContent='Add '+t+' ribbons to cart'; } else if(b.dataset.pvLabel){ b.textContent=b.dataset.pvLabel; } } } function commit(){ var v=cur(); if(!v)return; if(editing>=0){names[editing]=v;editing=-1;} else {names.push(v);} inpL.value=''; fire(); render(); inpL.focus(); } add.addEventListener('click',commit); inpL.addEventListener('keydown',function(e){ if(e.key==='Enter'){e.preventDefault();commit();} }); inpL.addEventListener('input',render); document.addEventListener('submit',function(e){ var f=e.target; if(!f.matches||!f.matches('form[action*="/cart/add"]'))return; var all=names.slice(); if(cur()&&editing4 && g++