Introducing

MTN VICE

Raw, uncompromising graffiti spray paint

Scotland's graffiti and street art shop since 2011.

MAINLINE: We are an Edinburgh based art shop, specialising in spray paint, graffiti and street art supplies. With one of the biggest spray paint colour selections in the UK, you won't be stuck for choice!


We're always available to answer questions about products and the local scene, as well as offer tips and advice using our decades of painting experience! Personal and friendly service with a community-focused ethic. All the best products, always low prices. By artists for artists. Shop online or visit us!

MAINLINE

SCOTLAND'S GRAFFITI SHOP

Connect with us

Our address

Mainline, 319 Cowgate, Edinburgh, EH1 1NA, UK
Get directions

Opening hours

Tues-Fri: 12:00-17:00

Sat: 11:00-16:00

Sun/Mon: Closed

(function(){ "use strict"; var TK="public_Xy1nf2DH5Cs368QMUjqH9333Ucrzs6uv"; var SL=["spray-paint"]; var MC=4; var lid=null; var gen=0; Ecwid.OnAPILoaded.add(()=>{ Ecwid.OnPageLoaded.add(pg=>{ td(); if(pg.type==="PRODUCT"&&pg.productId&&(!SL.length||SL.some(s=>location.pathname.toLowerCase().indexOf(s.toLowerCase())>-1))){ document.documentElement.classList.add("cg-on"); lid=pg.productId; init(pg.productId); } }); }); window.cgReload=id=>{ id=id||lid; if(!id){console.warn("[CG] no product id yet");return;} td(); document.documentElement.classList.add("cg-on"); init(id); }; function td(){ gen++; document.documentElement.classList.remove("cg-on"); var w=document.getElementById("cg-w"); w&&w.remove(); } function init(id){ var sid=Ecwid.getOwnerId(); var rq=gen; fetch("https://app.ecwid.com/api/v3/"+sid+"/products/"+id+"?token="+TK) .then(r=>r.json()) .then(pr=>{ if(rq!==gen)return; var op=(pr.options||[]).find(o=>o.choices&&o.choices.some(c=>c.hexCodes&&c.hexCodes.length)); if(op&&op.choices.length>=MC){render(pr,op);} else{document.documentElement.classList.remove("cg-on");} }) .catch(console.error); } function tc(hex){ var n=parseInt(hex.slice(1),16); return((n>>16)*299+(n>>8&255)*587+(n&255)*114)/1000>150?"#111":"#fff"; } function render(pr,op){ var EM="No colours selected yet"; var w=document.createElement("div"); w.id="cg-w"; w.innerHTML='
All colours
'+ ''+ '
'+ '
'+EM+'
'+ '
'; var grid=w.querySelector(".cg-gr"),sm=w.querySelector(".cg-sm"),ab=w.querySelector(".cg-ab"); var sr=w.querySelector(".cg-se"); var P={}; sr.oninput=()=>{ var q=sr.value.toLowerCase(); grid.querySelectorAll(".cg-cd").forEach(c=>{ c.style.display=c.querySelector(".cg-nm").textContent.toLowerCase().indexOf(q)>-1?"":"none"; }); }; op.choices.forEach(ch=>{ var hex=ch.hexCodes&&ch.hexCodes[0]?"#"+ch.hexCodes[0].replace("#","").slice(0,6):"#e5e5e5"; var unit=(pr.price||0)+(ch.priceModifier||0); var cb=(pr.combinations||[]).find(c=>c.options&&c.options.some(o=>o.value===ch.text)); var oos=cb&&!cb.inStock; var el=document.createElement("div"); el.className="cg-cd"+(oos?" cg-oos":""); el.style.setProperty("--cg-colour",hex); el.style.color=tc(hex); el.innerHTML='
'+ ''+ '0
'; el.querySelector(".cg-nm").textContent=ch.text; var q=el.querySelector(".cg-qt"); function setQty(n){ n=Math.max(0,n); q.textContent=n; if(n>0){P[ch.text]={qty:n,unit:unit};el.classList.add("cg-a");} else{delete P[ch.text];el.classList.remove("cg-a");} refresh(); } el.querySelector(".cg-mi").onclick=()=>setQty(parseInt(q.textContent,10)-1); el.querySelector(".cg-pl").onclick=()=>setQty(parseInt(q.textContent,10)+1); grid.appendChild(el); }); function refresh(){ var qty=0,total=0; Object.keys(P).forEach(k=>{qty+=P[k].qty;total+=P[k].qty*P[k].unit;}); sm.textContent=qty?qty+" item"+(qty>1?"s":"")+" selected · "+ (typeof Ecwid.formatCurrency==="function"?Ecwid.formatCurrency(total):total.toFixed(2)):EM; ab.disabled=qty===0; } ab.onclick=()=>{ var keys=Object.keys(P); if(!keys.length)return; ab.disabled=true;ab.textContent="Adding…"; var left=keys.length; keys.forEach(t=>{ var o={};o[op.name]=t; Ecwid.Cart.addProduct({id:pr.id,quantity:P[t].qty,options:o,callback:()=>{ if(--left===0){ ab.textContent="Added!"; setTimeout(()=>{ P={}; grid.querySelectorAll(".cg-cd").forEach(c=>{ c.classList.remove("cg-a");c.querySelector(".cg-qt").textContent="0"; }); refresh();ab.textContent="Add to Bag"; },1200); } }}); }); }; var a=document.querySelector(".product-details")||document.body; a.parentNode.insertBefore(w,a.nextSibling); } })();