{"id":20735,"date":"2025-10-10T11:26:33","date_gmt":"2025-10-10T09:26:33","guid":{"rendered":"https:\/\/blankmedia.co.za\/e-store\/?page_id=20735"},"modified":"2025-10-10T11:34:04","modified_gmt":"2025-10-10T09:34:04","slug":"step-repeat-vinyl-label-stickers","status":"publish","type":"page","link":"https:\/\/blankmedia.co.za\/e-store\/step-repeat-vinyl-label-stickers\/","title":{"rendered":"Step &#038; Repeat \u2014 Vinyl Label Stickers"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"20735\" class=\"elementor elementor-20735\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-17074ba e-flex e-con-boxed e-con e-parent\" data-id=\"17074ba\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-20ab0ee elementor-widget elementor-widget-html\" data-id=\"20ab0ee\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\" \/>\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" \/>\n<title>Step & Repeat \u2014 Vinyl Label Stickers (Blank Media)<\/title>\n<style>\n  :root{--bm-blue:#1d419b;--bm-orange:#d95913;--bm-purple:#4a3179;--bm-ink:#0f172a;--bm-muted:#64748b;--bm-bg:#f8fbff}\n  *{box-sizing:border-box}\n  body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,\"Helvetica Neue\",Arial,sans-serif;color:var(--bm-ink);background:var(--bm-bg)}\n  .sheet{width:210mm;min-height:297mm;margin:0 auto;background:#fff;box-shadow:0 10px 30px rgba(0,0,0,.08);padding:18mm}\n  h1{margin:0 0 8px;font-size:28px;color:var(--bm-blue);line-height:1.1}\n  p{margin:0 0 10px;font-size:13px;color:#0f172a}\n  .sub{color:var(--bm-muted)}\n  .grid{display:grid;gap:14px}\n  .cols-3{grid-template-columns:repeat(3,1fr)}\n  .cols-2{grid-template-columns:repeat(2,1fr)}\n  .cols-6{grid-template-columns:repeat(6,1fr)}\n  .span-2{grid-column:span 2}\n  .cols-2{grid-template-columns:repeat(2,1fr)}\n  .card{border:1px solid #e5e7eb;border-radius:14px;overflow:hidden;background:#fff}\n  .hdr{padding:10px 12px;background:#f8fafc;border-bottom:1px solid #e5e7eb;display:flex;align-items:center;gap:8px}\n  .hdr b{font-size:13px}\n  .body{padding:10px 12px}\n  .canvas{height:180px}\n  svg{display:block;width:100%;height:100%}\n  .hero{border:2px solid var(--bm-blue);border-radius:16px;overflow:hidden;margin:6px 0 14px}\n  .row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}\n  .pill{font-size:11.5px;border:1px solid #e5e7eb;border-radius:999px;padding:4px 8px}\n  .footer{margin-top:12mm;font-size:11px;color:var(--bm-muted)}\n  @media print{body{background:#fff}.sheet{box-shadow:none}}\n<\/style>\n<\/head>\n<body>\n  <main class=\"sheet\">\n    <h1>Step & Repeat \u2014 Vinyl Label Stickers<\/h1>\n    <p class=\"sub\">We take your artwork and repeat it in a neat pattern to fill the sheet, then print & finish your stickers.<\/p>\n\n    <!-- HERO PREVIEW (staggered pattern using B mark as stand-in) -->\n    <div class=\"hero\">\n      <div class=\"canvas\" id=\"hero\"><\/div>\n    <\/div>\n\n    <div class=\"grid cols-2\" style=\"margin-top:6px\">\n      <!-- STEP 1 -->\n      <div class=\"card\">\n        <div class=\"hdr\"><img decoding=\"async\" src=\"https:\/\/blankmedia.co.za\/e-store\/wp-content\/uploads\/2025\/10\/BM-Preloader.png\" alt=\"B\" width=\"18\" height=\"18\"\/><b>1) Upload Artwork<\/b><\/div>\n        <div class=\"body\">\n          <div class=\"canvas\" id=\"stp1\"><\/div>\n          <p>Send a clean logo or image (vector preferred or high\u2011res PNG).<\/p>\n        <\/div>\n      <\/div>\n      <!-- STEP 2 -->\n      <div class=\"card\">\n        <div class=\"hdr\"><img decoding=\"async\" src=\"https:\/\/blankmedia.co.za\/e-store\/wp-content\/uploads\/2025\/10\/BM-Preloader.png\" alt=\"B\" width=\"18\" height=\"18\"\/><b>2) Set Sticker Size<\/b><\/div>\n        <div class=\"body\">\n          <div class=\"canvas\" id=\"stp2size\"><\/div>\n          <p>Tell us the <b>width<\/b> & <b>height<\/b> (in mm). We space evenly in the pattern.<\/p>\n        <\/div>\n      <\/div>\n      <!-- STEP 3 -->\n      <div class=\"card\">\n        <div class=\"hdr\"><img decoding=\"async\" src=\"https:\/\/blankmedia.co.za\/e-store\/wp-content\/uploads\/2025\/10\/BM-Preloader.png\" alt=\"B\" width=\"18\" height=\"18\"\/><b>3) Choose Square Meters<\/b><\/div>\n        <div class=\"body\">\n          <div class=\"canvas\" id=\"stp3sqm\"><\/div>\n          <p>Select how many <b>m\u00b2<\/b> you want to order.<\/p>\n        <\/div>\n      <\/div>\n      <!-- STEP 4 -->\n      <div class=\"card\">\n        <div class=\"hdr\"><img decoding=\"async\" src=\"https:\/\/blankmedia.co.za\/e-store\/wp-content\/uploads\/2025\/10\/BM-Preloader.png\" alt=\"B\" width=\"18\" height=\"18\"\/><b>4) We Print<\/b><\/div>\n        <div class=\"body\">\n          <div class=\"canvas\" id=\"stp4print\"><\/div>\n          <p>Vinyl printed & supplied Finished as sheets as per the square meters ordered.<\/p>\n        <\/div>\n      <\/div>\n      <!-- STEP 5 -->\n      <div class=\"card span-2\">\n        <div class=\"hdr\"><img decoding=\"async\" src=\"https:\/\/blankmedia.co.za\/e-store\/wp-content\/uploads\/2025\/10\/BM-Preloader.png\" alt=\"B\" width=\"18\" height=\"18\"\/><b>5) Collect or Dispatch<\/b><\/div>\n        <div class=\"body\">\n          <div class=\"canvas\" id=\"stp5ship\"><\/div>\n          <p>Ready for collection or nationwide courier dispatch.<\/p>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"cta\" style=\"text-align:center;margin:16px 0 8px;\">\n      <a href=\"https:\/\/blankmedia.co.za\/e-store\/product\/custom-printed-vinyl-label-stickers\/\" class=\"cta-link\" style=\"display:inline-block;background:#1d419b;color:#fff;padding:12px 18px;border-radius:10px;text-decoration:none;font-weight:600;border:1px solid #1d419b\">Order Vinyl Label Stickers<\/a>\n    <\/div>\n\n    <div class=\"footer\">Blank Media \u2014 First\u2011Class Branding Solutions since 2005  <br>blankmedia.co.za \u2022 WhatsApp 083 972 4517 \u2022 <span \n                data-original-string='eASrsl2Tj8Hi9HhNI0UUHA==6e4KM9ZZdNJiM0K0Y2EYOglhAL+e1pSNGJirb4mvzOBoH0='\n                class='apbct-email-encoder'\n                title='This contact has been encoded by Anti-Spam by CleanTalk. Click to decode. To finish the decoding make sure that JavaScript is enabled in your browser.'>in<span class=\"apbct-blur\">**<\/span>@<span class=\"apbct-blur\">***********<\/span>co.za<\/span><\/div>\n  <\/main>\n\n<script>\n  const BM = \"https:\/\/blankmedia.co.za\/e-store\/wp-content\/uploads\/2025\/10\/BM-Preloader.png\";\n\n  function pattern({cols, rows, size, gap, stagger}){\n    const w = cols*size + (cols-1)*gap + (stagger? (size\/2 + gap\/2) : 0);\n    const h = rows*size + (rows-1)*gap;\n    let svg = `<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 ${w} ${h}'>`+\n              `<rect width='100%' height='100%' fill='white'\/>`;\n    for(let r=0;r<rows;r++){\n      const y = r*(size+gap);\n      const xOff = (stagger && r%2===1)? (size\/2 + gap\/2) : 0;\n      for(let c=0;c<cols;c++){\n        const x = c*(size+gap)+xOff;\n        if(x > w - size) continue;\n        svg += `<image href='${BM}' x='${x}' y='${y}' width='${size}' height='${size}' preserveAspectRatio='xMidYMid meet'\/>`;\n      }\n    }\n    svg += `<\/svg>`; return svg;\n  }\n\n  function mount(id, svg){ const el = document.getElementById(id); if(!el) return; el.innerHTML = svg; }\n\n  \/\/ Hero: balanced staggered preview\n  (function(){\n    const cols=8, rows=4, size=42, gap=6;\n    const w = cols*size + (cols-1)*gap;\n    const h = rows*size + (rows-1)*gap;\n    const headerH = 34;\n    let svg = `<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 ${w} ${h+headerH}'>`+\n              `<rect x='0' y='0' width='${w}' height='${h+headerH}' fill='white' stroke='#1d419b'\/>`+\n              `<rect x='0' y='0' width='${w}' height='${headerH}' fill='#f8fafc'\/>`+\n              `<text x='${w\/2}' y='22' font-size='14' text-anchor='middle' fill='#0f172a'>1000mm \u00d7 1000mm<\/text>`;\n    for(let r=0;r<rows;r++){\n      const y = headerH + r*(size+gap);\n      for(let c=0;c<cols;c++){\n        const x = c*(size+gap);\n        svg += `<image href='${BM}' x='${x}' y='${y}' width='${size}' height='${size}'\/>`+\n               `<rect x='${x-2}' y='${y-2}' width='${size+4}' height='${size+4}' fill='none' stroke='#1d419b' stroke-dasharray='4 3' opacity='0.6'\/>`;\n      }\n    }\n    svg += `<\/svg>`;\n    mount('hero', svg);\n  })();\n\n  \/\/ Step 1: single artwork on blank sheet\n  (function(){\n    const w=600,h=180; const size=80;\n    const svg = `\n      <svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 ${w} ${h}'>\n        <rect x='0' y='0' width='${w}' height='${h}' fill='white' stroke='#e5e7eb'\/>\n        <image href='${BM}' x='${w\/2 - size\/2}' y='${h\/2 - size\/2}' width='${size}' height='${size}'\/>\n        <text x='${w\/2}' y='${h-14}' font-size='12' text-anchor='middle' fill='#64748b'>Your image\/logo<\/text>\n      <\/svg>`;\n    mount('step1', svg);\n  })();\n  \/\/ Step 3: kiss-cut suggestion overlay\n  (function(){\n    const cols=8, rows=4, size=42, gap=6, w=cols*size+(cols-1)*gap, h=rows*size+(rows-1)*gap;\n    let svg = `<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 ${w} ${h}'>`+\n              `<rect width='100%' height='100%' fill='white'\/>`;\n    for(let r=0;r<rows;r++){\n      const y=r*(size+gap);\n      for(let c=0;c<cols;c++){\n        const x=c*(size+gap);\n        svg += `<image href='${BM}' x='${x}' y='${y}' width='${size}' height='${size}'\/>`+\n               `<rect x='${x-2}' y='${y-2}' width='${size+4}' height='${size+4}' fill='none' stroke='#1d419b' stroke-dasharray='4 3' opacity='0.6'\/>`;\n      }\n    }\n    svg += `<\/svg>`;\n    mount('step3', svg);\n  })();\n\/\/ STEP 1 visual (single artwork on sheet)\n  (function(){\n    const w=600,h=180; const size=80;\n    const svg = `\n      <svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 ${w} ${h}'>\n        <rect x='0' y='0' width='${w}' height='${h}' fill='white' stroke='#e5e7eb'\/>\n        <image href='${BM}' x='${w\/2 - size\/2}' y='${h\/2 - size\/2}' width='${size}' height='${size}'\/>\n        <text x='${w\/2}' y='${h-14}' font-size='12' text-anchor='middle' fill='#64748b'>Your image\/logo<\/text>\n      <\/svg>`;\n    mount('stp1', svg);\n  })();\n\n  \/\/ STEP 2 visual (Width\/Height controls mockup)\n  (function(){\n    const w=760,h=180; \n    const svg = `\n      <svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 ${w} ${h}'>\n        <style>\n          .lbl{font: 600 14px system-ui, -apple-system, Segoe UI, Roboto; fill:#0f172a}\n          .sub{font: 12px system-ui, -apple-system, Segoe UI, Roboto; fill:#64748b}\n        <\/style>\n        <text x='30' y='28' class='lbl'>Width (in mm)<\/text>\n        <g transform='translate(24,40)'>\n          <rect x='0' y='0' width='260' height='50' rx='6' fill='white' stroke='#e5e7eb'\/>\n          <text x='-12' y='30' font-size='24' text-anchor='middle'>\u2212<\/text>\n          <text x='130' y='32' font-size='18' text-anchor='middle' fill='#0f172a'>40<\/text>\n          <text x='272' y='30' font-size='24' text-anchor='middle'>+<\/text>\n          <text x='0' y='72' class='sub'>Enter Width<\/text>\n        <\/g>\n        <text x='430' y='28' class='lbl'>Height (in mm)<\/text>\n        <g transform='translate(424,40)'>\n          <rect x='0' y='0' width='260' height='50' rx='6' fill='white' stroke='#e5e7eb'\/>\n          <text x='-12' y='30' font-size='24' text-anchor='middle'>\u2212<\/text>\n          <text x='130' y='32' font-size='18' text-anchor='middle' fill='#0f172a'>40<\/text>\n          <text x='272' y='30' font-size='24' text-anchor='middle'>+<\/text>\n          <text x='0' y='72' class='sub'>Enter Height<\/text>\n        <\/g>\n        <text x='24' y='140' class='lbl'>Stickers per square meter<\/text>\n        <text x='300' y='140' font-size='22' text-anchor='start' fill='#0f172a'>625<\/text>\n      <\/svg>`;\n    mount('stp2size', svg);\n  })();\n\n  \/\/ STEP 3 visual (m\u00b2 selection mockup)\n  (function(){\n    const w=760,h=180; \n    const svg = `\n      <svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 ${w} ${h}'>\n        <style>\n          .lbl{font: 600 14px system-ui, -apple-system, Segoe UI, Roboto; fill:#0f172a}\n        <\/style>\n        <text x='24' y='26' class='lbl'>How many square meters do you want to order? (R260 \/ m\u00b2)<\/text>\n        <g transform='translate(24,40)'>\n          <rect x='0' y='0' width='710' height='48' rx='6' fill='white' stroke='#e5e7eb'\/>\n          <text x='12' y='30' font-size='16' fill='#64748b'>1 m\u00b2 for 260<\/text>\n        <\/g>\n      <\/svg>`;\n    mount('stp3sqm', svg);\n  })();\n\n  \/\/ STEP 4 visual (print preview pattern like hero)\n  (function(){\n    const cols=8, rows=4, size=42, gap=6;\n    const w = cols*size + (cols-1)*gap;\n    const h = rows*size + (rows-1)*gap;\n    let svg = `<svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 ${w} ${h}'>`+\n              `<rect width='100%' height='100%' fill='white'\/>`;\n    for(let r=0;r<rows;r++){\n      const y=r*(size+gap);\n      for(let c=0;c<cols;c++){\n        const x=c*(size+gap);\n        svg += `<image href='${BM}' x='${x}' y='${y}' width='${size}' height='${size}'\/>`+\n               `<rect x='${x-2}' y='${y-2}' width='${size+4}' height='${size+4}' fill='none' stroke='#1d419b' stroke-dasharray='4 3' opacity='0.6'\/>`;\n      }\n    }\n    svg += `<\/svg>`;\n    mount('stp4print', svg);\n  })();\n\n  \/\/ STEP 5 visual (dispatch\/collection)\n  (function(){\n    const w=760,h=180; \n    const svg = `\n      <svg xmlns='http:\/\/www.w3.org\/2000\/svg' viewBox='0 0 ${w} ${h}'>\n        <rect x='0' y='0' width='${w}' height='${h}' fill='white' stroke='#e5e7eb'\/>\n        <g transform='translate(40,50)'>\n          <rect x='0' y='30' width='120' height='60' rx='8' fill='#1d419b' opacity='0.1' stroke='#1d419b'\/>\n          <circle cx='24' cy='98' r='12' fill='#1d419b'\/>\n          <circle cx='112' cy='98' r='12' fill='#1d419b'\/>\n          <rect x='130' y='46' width='120' height='44' rx='6' fill='#1d419b' opacity='0.1' stroke='#1d419b'\/>\n          <text x='280' y='75' font-size='14' fill='#0f172a'>Ready for collection or courier dispatch<\/text>\n        <\/g>\n      <\/svg>`;\n    mount('stp5ship', svg);\n  })();\n<\/script>\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Step &#038; Repeat \u2014 Vinyl Label Stickers (Blank Media) Step &#038; Repeat \u2014 Vinyl Label Stickers We take your artwork and repeat it in a neat pattern to fill the sheet, then print &#038; finish your stickers. 1) Upload Artwork Send a clean logo or image (vector preferred or high\u2011res PNG). 2) Set Sticker Size [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-20735","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/blankmedia.co.za\/e-store\/wp-json\/wp\/v2\/pages\/20735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blankmedia.co.za\/e-store\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blankmedia.co.za\/e-store\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blankmedia.co.za\/e-store\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blankmedia.co.za\/e-store\/wp-json\/wp\/v2\/comments?post=20735"}],"version-history":[{"count":6,"href":"https:\/\/blankmedia.co.za\/e-store\/wp-json\/wp\/v2\/pages\/20735\/revisions"}],"predecessor-version":[{"id":20741,"href":"https:\/\/blankmedia.co.za\/e-store\/wp-json\/wp\/v2\/pages\/20735\/revisions\/20741"}],"wp:attachment":[{"href":"https:\/\/blankmedia.co.za\/e-store\/wp-json\/wp\/v2\/media?parent=20735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}