[object Object]

← back to Wallco Ai

room wall: show repeat count + black pinstripe vertical lines at each repeat boundary

def6e5273d93c65de4b776194897fb2fbc7ba88a · 2026-05-27 16:32:28 -0700 · Steve Abrams

drawRoomRulers draws a thin black vertical pinstripe at every pattern-repeat
boundary across the 12′ wall (edge lines emphasized) + a '↔ N repeats × W″'
badge. Updates live with the width preset (24″=6, 36″=4, 54″=2.7 repeats across
the 12ft wall). Lines align 1:1 with the wallpaper tile boundaries.

Files touched

Diff

commit def6e5273d93c65de4b776194897fb2fbc7ba88a
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed May 27 16:32:28 2026 -0700

    room wall: show repeat count + black pinstripe vertical lines at each repeat boundary
    
    drawRoomRulers draws a thin black vertical pinstripe at every pattern-repeat
    boundary across the 12′ wall (edge lines emphasized) + a '↔ N repeats × W″'
    badge. Updates live with the width preset (24″=6, 36″=4, 54″=2.7 repeats across
    the 12ft wall). Lines align 1:1 with the wallpaper tile boundaries.
---
 public/admin/drunk-curator.html | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/public/admin/drunk-curator.html b/public/admin/drunk-curator.html
index 798fe0d..a57b3f7 100644
--- a/public/admin/drunk-curator.html
+++ b/public/admin/drunk-curator.html
@@ -34,6 +34,11 @@
   .wall{position:absolute;inset:0 0 24% 0;background-repeat:repeat;background-position:center top;background-size:24% auto;filter:brightness(.98);}
   .wall::after{content:"";position:absolute;inset:0;background:radial-gradient(120% 90% at 50% 35%,transparent 55%,rgba(0,0,0,.28));} /* gentle room light */
   .floor{position:absolute;left:0;right:0;bottom:0;height:24%;background:linear-gradient(#b9a684,#8d7a5b);}
+  /* vertical pinstripe lines marking each pattern-repeat boundary on the wall */
+  .repeats{position:absolute;inset:0 0 24% 0;z-index:5;pointer-events:none;}
+  .repeats .vline{position:absolute;top:0;bottom:0;width:1px;background:#000;opacity:.6;}
+  .repeats .vline.edge{opacity:.9;width:1.5px;}
+  .repbadge{position:absolute;top:8px;right:10px;z-index:7;background:rgba(0,0,0,.62);color:#fff;font:800 10px sans-serif;padding:3px 9px;border-radius:20px;}
   .baseboard{position:absolute;left:0;right:0;bottom:24%;height:3.2%;background:#efe9df;border-top:1px solid rgba(0,0,0,.12);box-shadow:0 2px 5px rgba(0,0,0,.18);}
   .furn{position:absolute;left:50%;bottom:24%;transform:translateX(-50%);width:64%;z-index:2;filter:drop-shadow(0 8px 14px rgba(0,0,0,.32));}
   .meta{display:flex;justify-content:space-between;width:min(96vw,1100px);font-size:11.5px;color:var(--mut);font-variant-numeric:tabular-nums;}
@@ -214,6 +219,11 @@ function drawRoomRulers(){
   const side=Math.max(180, Math.min(availW, availH));
   room.style.width=side+'px'; room.style.height=side+'px';
   const ppi=side/WALL_INCHES;
+  // vertical pinstripe lines at each pattern-repeat boundary + a repeat count
+  const repPx=scaleInches*ppi, nRep=WALL_INCHES/scaleInches;
+  const rep=document.getElementById('repeats');
+  if(rep){ let s=''; for(let x=0; x<=side+0.5; x+=repPx){ const edge=(x<1||x>side-1); s+=`<div class="vline${edge?' edge':''}" style="left:${x.toFixed(1)}px"></div>`; } rep.innerHTML=s; }
+  const badge=document.getElementById('repbadge'); if(badge) badge.textContent=`↔ ${nRep.toFixed(nRep%1?1:0)} repeats × ${scaleInches}″`;
   const fmt=v=>{const f=Math.floor(v/12), i=Math.round(v%12); return i?`${f}′${i}″`:`${f}′`;};
   const tag=document.getElementById('roomtag'); if(tag) tag.textContent=`room setting · ${fmt(WALL_INCHES)} × ${fmt(WALL_INCHES)} room (ft·in)`;
   const rh=document.getElementById('roomRulerH');
@@ -312,6 +322,8 @@ function render(){
         <div class="roomrow">
           <div class="room" id="room">
             <div class="wall" style="background-image:url('${src}')"></div>
+            <div class="repeats" id="repeats"></div>
+            <div class="repbadge" id="repbadge"></div>
             <div class="rruler h" id="roomRulerH"></div>
             <div class="rruler v" id="roomRulerV"></div>
             <div class="baseboard"></div><div class="floor"></div>

← 39a931a curator: 24/36/54 widths + 12x12 sq room (fix 0x0 wall) + dr  ·  back to Wallco Ai  ·  drunk-curator: click pattern to enlarge (1x/2x/3x repeat lig 152132e →