From 2a3da0778f5289d4ca51c34835991099bf3f8a6d Mon Sep 17 00:00:00 2001 From: grabowski Date: Wed, 14 Oct 2026 19:33:36 +0700 Subject: [PATCH] Artist ordering demo: mock-up drawn to scale for 12", 10" and 7" The record and jacket in the mock-up (sidebar and fan campaign page) now scale with the chosen format: record diameters 302 / 250 / 175 mm (IEC 60098), jackets 314 / 260 / 184 mm, labels 100 / 100 / 90 mm, so a 7" label is relatively larger as on the real disc. Smaller formats show a dashed 12" jacket outline for scale and a caption with the sizes. --- docs/artist-order.html | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/docs/artist-order.html b/docs/artist-order.html index df3f344..79845b4 100644 --- a/docs/artist-order.html +++ b/docs/artist-order.html @@ -590,24 +590,29 @@ function checkList(){ /* ---- mock-up ---- */ function rnd(seed){return function(){seed|=0;seed=seed+0x6D2B79F5|0;let t=Math.imul(seed^seed>>>15,1|seed);t=t+Math.imul(t^t>>>7,61|t)^t;return ((t^t>>>14)>>>0)/4294967296;};} +/* real sizes, mm: record diameter (IEC 60098: 301.6 / 250.8 / 174.6), jacket (12.375" / 10.25" / 7.25"), label */ +const SIZE_MM={"12":{rec:302,jk:314,lab:100,name:"12\" LP"},"10":{rec:250,jk:260,lab:100,name:"10\""},"7":{rec:175,jk:184,lab:90,name:"7\" single"}}; function mockSVG(id){ const dark=S.colour==="black",base=dark?"#161616":S.c1,groove=dark?"rgba(255,255,255,0.07)":"rgba(0,0,0,0.10)"; - let defs=``+ + const Z=SIZE_MM[S.size],k=Z.rec/SIZE_MM["12"].rec,kj=Z.jk/SIZE_MM["12"].jk,rl=105*Z.lab/Z.rec,fs=rl/34.8; + const JW=212*kj,JX=8,JY=228-JW,cy=JY+JW/2,cx=JX+JW+rl*k+6; + let defs=``+ ``+ ``+ ``; - function disc(cx){ - let g=``; + function disc(x){ + let g=``; if(S.colour==="marbled")g+=``; if(S.colour==="splatter"){const r=rnd(7);let dots="";for(let i=0;i<80;i++){const a=r()*6.283,d=Math.sqrt(r())*100,s=1+r()*5;dots+=``;}g+=`${dots}`;} - for(let r=100;r>=40;r-=4)g+=``; + for(let r=100;r>=rl+5;r-=4)g+=``; g+=``; - if(S.art.label&&S.art.label.url)g+=``; - else g+=`${esc(S.artist.slice(0,20))}${esc(S.title.slice(0,24))}`; - return g+``; + const L=rl.toFixed(1); + if(S.art.label&&S.art.label.url)g+=``; + else g+=`${esc(S.artist.slice(0,20))}${esc(S.title.slice(0,24))}`; + return g+``; } - let recs=(S.discs>1?disc(292):"")+disc(260),jk=""; - const J={x:8,y:16,w:212}; + const recs=(S.discs>1?disc(cx+32*k):"")+disc(cx); + let jk="";const J={x:0,y:0,w:212}; if(S.jacket==="gatefold")jk+=``; if(S.jacket==="none")jk+=`your own jacket`; else if(S.art.jacket&&S.art.jacket.url&&S.jacket!=="plain")jk+=``; @@ -618,7 +623,10 @@ function mockSVG(id){ if(S.sticker)jk+=`NEW`; if(S.numbered)jk+=`No. 001`; } - return `${defs}${recs}${jk}`; + /* a 12" jacket outline for scale when a smaller format is chosen */ + const ghost=S.size==="12"?"":`12" jacket, for scale`; + const cap=`${Z.name}: record ${Z.rec} mm, jacket ${Z.jk} mm`; + return `${defs}${ghost}${recs}${jk}${cap}`; } /* ---- price curve ---- */