← back to Consulting Designerwallcoverings Com
public/versions/studio.html
132 lines
<!doctype html><html lang="en"><head>
<meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Designer Wallcoverings — Studio concept</title>
<link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,600;1,400&family=Cormorant+Garamond:ital,wght@0,400;0,500;1,400&family=Inter:wght@300;400;600;800&family=Jost:wght@300;400;500&display=swap" rel="stylesheet">
<style>
:root{--bg:#faf7f2;--panel:#f0e9dd;--ink:#1d1b17;--gold:#d96a3b;--line:rgba(29,27,23,.14);--cols:4}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:'Inter',system-ui,sans-serif;font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
.disp{font-family:'Inter',system-ui,sans-serif}a{color:inherit;text-decoration:none}
.badge{position:fixed;left:16px;bottom:16px;z-index:60;background:var(--gold);color:#fff;font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding:7px 13px;border-radius:2px}
.rv{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}.rv.in{opacity:1;transform:none}
header{max-width:1240px;margin:0 auto;padding:26px 22px;display:flex;justify-content:space-between;align-items:flex-end;border-bottom:2px solid var(--gold)}
.logo{font-family:'Inter',system-ui,sans-serif;font-size:30px;letter-spacing:-.3px}.logo span{color:var(--gold)}
.logo small{display:block;font-size:9.5px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-top:3px;font-family:'Inter',system-ui,sans-serif;font-weight:400}
nav.sec{border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;background:var(--bg)}
nav.sec .in{max-width:1240px;margin:0 auto;display:flex;gap:2px;overflow:auto;padding:0 12px}
nav.sec a{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:15px 14px;white-space:nowrap;border-bottom:3px solid transparent}
nav.sec a:hover{color:var(--gold);border-color:var(--gold)}
.heroc{max-width:1240px;margin:0 auto;padding:54px 22px;display:grid;grid-template-columns:1.25fr 1fr;gap:44px;align-items:center}
.heroc h1{font-family:'Inter',system-ui,sans-serif;font-size:clamp(34px,4.6vw,58px);line-height:1.06}
.heroc p{margin-top:16px;opacity:.75;font-size:17px;max-width:52ch}
.cta{display:inline-block;margin-top:26px;border:1px solid var(--gold);color:var(--gold);font-size:12px;letter-spacing:.22em;text-transform:uppercase;padding:13px 26px;border-radius:999px;transition:.25s}
.cta:hover{background:var(--gold);color:#fff}
.heroimg{aspect-ratio:4/3;border-radius:6px;background:linear-gradient(135deg,var(--panel),var(--gold));overflow:hidden}
.heroimg img{width:100%;height:100%;object-fit:cover;display:block}
.wrap{max-width:1240px;margin:0 auto;padding:0 22px}
.sh{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:3px solid var(--gold);padding-top:12px;margin:34px 0 8px;flex-wrap:wrap}
.sh h2{font-size:15px;text-transform:uppercase;letter-spacing:.08em;font-weight:600}
.controls{display:flex;gap:14px;align-items:center;font-size:12px}
.controls label{opacity:.7;letter-spacing:.08em;text-transform:uppercase;font-size:10.5px}
.controls .selwrap{position:relative;display:inline-flex;align-items:center}
.controls .selwrap:after{content:'';position:absolute;right:13px;top:calc(50% - 4px);width:6px;height:6px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);transform-origin:center;pointer-events:none;transition:transform .2s ease,border-color .2s}
.controls select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background:var(--panel);color:var(--ink);border:1px solid var(--line);padding:7px 32px 7px 13px;border-radius:4px;font-family:'Inter',system-ui,sans-serif;font-size:12px;letter-spacing:.04em;cursor:pointer;transition:border-color .2s,box-shadow .2s}
.controls select:hover{border-color:var(--gold)}
.controls select:focus-visible{outline:none;border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}
.controls .selwrap:hover:after{border-color:var(--gold);transform:rotate(45deg) translate(1px,1px)}
/* Density slider — styled to the same gold system as the select (no raw native slider) */
.controls input[type=range]{appearance:none;-webkit-appearance:none;width:110px;height:22px;background:transparent;cursor:pointer;vertical-align:middle}
.controls input[type=range]:focus{outline:none}
.controls input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:2px;background:linear-gradient(90deg,var(--gold) 0,var(--gold) var(--fill,50%),var(--line) var(--fill,50%))}
.controls input[type=range]::-moz-range-track{height:3px;border-radius:2px;background:var(--line)}
.controls input[type=range]::-moz-range-progress{height:3px;border-radius:2px;background:var(--gold)}
.controls input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:13px;height:13px;margin-top:-5px;border-radius:50%;background:var(--gold);border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line);transition:transform .15s ease,box-shadow .15s ease}
.controls input[type=range]::-moz-range-thumb{width:13px;height:13px;border-radius:50%;background:var(--gold);border:2px solid var(--panel);box-shadow:0 0 0 1px var(--line)}
.controls input[type=range]:hover::-webkit-slider-thumb,.controls input[type=range]:focus-visible::-webkit-slider-thumb{transform:scale(1.12);box-shadow:0 0 0 1px var(--gold)}
.controls input[type=range]:hover::-moz-range-thumb,.controls input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 1px var(--gold)}
.grid{display:grid;grid-template-columns:repeat(var(--cols),1fr);gap:20px;padding:18px 0 40px}
.gcard .gimg{aspect-ratio:3/4;border-radius:5px;transition:.3s;overflow:hidden;background:var(--panel)}.gcard:hover .gimg{transform:translateY(-4px);box-shadow:0 14px 40px rgba(0,0,0,.28)}
.gcard .gimg img{width:100%;height:100%;object-fit:cover;display:block}
.gcard h4{font-family:'Inter',system-ui,sans-serif;font-size:16.5px;margin:10px 0 2px}
.gmeta{display:flex;justify-content:space-between;font-size:11px;opacity:.65;letter-spacing:.06em;text-transform:uppercase}
.tier{color:var(--gold)}
.ns{max-width:1240px;margin:10px auto 0;padding:44px 22px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}
.ns h3{font-family:'Inter',system-ui,sans-serif;font-size:26px}.ns p{opacity:.7;font-size:14px;margin-top:8px}
.ns form{display:flex;gap:10px}.ns input[type=email]{flex:1;padding:13px;border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:4px;font-size:14px}
.ns button{padding:13px 22px;background:var(--gold);color:#fff;border:0;border-radius:4px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:11px;cursor:pointer}
footer{border-top:1px solid var(--line);margin-top:14px}
footer .in{max-width:1240px;margin:0 auto;padding:36px 22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;font-size:12px;opacity:.65}
@media(max-width:960px){.heroc{grid-template-columns:1fr}.ns{grid-template-columns:1fr}}
@media(max-width:720px){:root{--cols:2!important}}
</style></head><body>
<a class="badge" href="/portal#suggested">◀ Concept · Backdrop (DTC) direction</a>
<header><div class="logo">Designer <span>Wallcoverings</span><small>Studio · Wallpaper, without the intimidation.</small></div><div style="font-size:12px;opacity:.65;text-align:right">Los Angeles · To the Trade<br>Samples $4.25 · Free shipping</div></header>
<nav class="sec"><div class="in"><a>Wallcoverings</a><a>Fabrics</a><a>Murals</a><a>By Color</a><a>By Room</a><a>New Arrivals</a><a>Trade Program</a><a>Samples</a></div></nav>
<div class="heroc">
<div class="rv"><h1 class="disp">Wallpaper, without the intimidation.</h1><p>DTC-playful — bold color blocks, plain language, sample-first funnel. A curated face for the deepest designer-wallcovering catalog online — every pattern sampled for $4.25, every order backed by thirty years of trade expertise.</p><a class="cta">Explore the collection</a></div>
<div class="heroimg rv"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/navy-on-white-linen-1781_1_214246.jpg?v=1781635420&width=1100" alt="" loading="eager"></div>
</div>
<div class="wrap">
<div class="sh"><h2>Curated This Week</h2>
<div class="controls">
<label for="sortsel">Sort</label>
<span class="selwrap"><select id="sortsel"><option value="newest">Newest</option><option value="title">Title A→Z</option><option value="vendor">Vendor A→Z</option><option value="type">Type</option></select></span>
<label for="dens">Density</label>
<input type="range" id="dens" min="2" max="6" step="1" value="4">
</div>
</div>
<div class="grid" id="grid"><article class="gcard" data-title="Titik Wp Linen" data-vendor="Caroline Cecil Textiles" data-type="Wallcovering">
<div class="gimg"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/CCP-2347_16.jpg?v=1777019997&width=540" loading="lazy" alt="Titik Wp Linen"></div>
<h4>Titik Wp Linen</h4><div class="gmeta"><span>Caroline Cecil Textiles</span><span class="tier">Wallcovering</span></div>
</article><article class="gcard" data-title="Posh Snakes Green" data-vendor="Catchii Netherlands Europe" data-type="Wallcovering">
<div class="gimg"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/Wallpaper-Behang-Posh-Snakes-gray-green-groen-grijs-Catchii-mockup_328e2e61-4b16-43d9-bf54-c100543af4bd.jpg?v=1744999054&width=540" loading="lazy" alt="Posh Snakes Green"></div>
<h4>Posh Snakes Green</h4><div class="gmeta"><span>Catchii Netherlands Europe</span><span class="tier">Wallcovering</span></div>
</article><article class="gcard" data-title="Tortoise" data-vendor="Celerie Kemble" data-type="Wallcovering">
<div class="gimg"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/tortoise.jpg?v=1760721667&width=540" loading="lazy" alt="Tortoise"></div>
<h4>Tortoise</h4><div class="gmeta"><span>Celerie Kemble</span><span class="tier">Wallcovering</span></div>
</article><article class="gcard" data-title="Diva Poplin, Vert" data-vendor="Charles Burger" data-type="Fabric">
<div class="gimg"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/vert-1904_1_134404.jpg?v=1782672048&width=540" loading="lazy" alt="Diva Poplin, Vert"></div>
<h4>Diva Poplin, Vert</h4><div class="gmeta"><span>Charles Burger</span><span class="tier">Fabric</span></div>
</article><article class="gcard" data-title="Lulu Stripe Navy on White Linen Screen Printed" data-vendor="China Seas" data-type="Fabric">
<div class="gimg"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/navy-on-white-linen-1781_1_214246.jpg?v=1781635420&width=540" loading="lazy" alt="Lulu Stripe Navy on White Linen Screen Printed"></div>
<h4>Lulu Stripe Navy on White Linen Screen Printed</h4><div class="gmeta"><span>China Seas</span><span class="tier">Fabric</span></div>
</article><article class="gcard" data-title="Avant Le Mistral Panel" data-vendor="Christian Lacroix Europe" data-type="Wallcovering">
<div class="gimg"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/160349_11f10447-e6d5-426b-aabf-07ca78428354.webp?v=1738951241&width=540" loading="lazy" alt="Avant Le Mistral Panel"></div>
<h4>Avant Le Mistral Panel</h4><div class="gmeta"><span>Christian Lacroix Europe</span><span class="tier">Wallcovering</span></div>
</article><article class="gcard" data-title="Highland Wonder/Lagoon Wp" data-vendor="Clarke and Clarke" data-type="Wallcovering">
<div class="gimg"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/W0202_01_CAC.jpg?v=1777020004&width=540" loading="lazy" alt="Highland Wonder/Lagoon Wp"></div>
<h4>Highland Wonder/Lagoon Wp</h4><div class="gmeta"><span>Clarke and Clarke</span><span class="tier">Wallcovering</span></div>
</article><article class="gcard" data-title="Gray" data-vendor="Cloth and Paper" data-type="Fabric">
<div class="gimg"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/gray-313_1_155301.jpg?v=1782479480&width=540" loading="lazy" alt="Gray"></div>
<h4>Gray</h4><div class="gmeta"><span>Cloth and Paper</span><span class="tier">Fabric</span></div>
</article><article class="gcard" data-title="Soie Bois Tresse Epicéa" data-vendor="CMO Paris" data-type="Wallcovering">
<div class="gimg"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/cmo-soie-bois-mural-wso-03-68.jpg?v=1785007404&width=540" loading="lazy" alt="Soie Bois Tresse Epicéa"></div>
<h4>Soie Bois Tresse Epicéa</h4><div class="gmeta"><span>CMO Paris</span><span class="tier">Wallcovering</span></div>
</article><article class="gcard" data-title="Palm Jungle - Olive Green On White" data-vendor="Cole & Son" data-type="Wallcovering">
<div class="gimg"><img src="https://cdn.shopify.com/s/files/1/0015/4117/7456/files/PalmJungle_Image_Flatshot_Item_95-1001.jpg?v=1779809928&width=540" loading="lazy" alt="Palm Jungle - Olive Green On White"></div>
<h4>Palm Jungle - Olive Green On White</h4><div class="gmeta"><span>Cole & Son</span><span class="tier">Wallcovering</span></div>
</article></div>
</div>
<div class="ns"><div><h3 class="disp">The Designer's Brief</h3><p>New arrivals, designer picks, and pattern stories — weekly, from Los Angeles.</p></div><form onsubmit="return false"><input type="email" placeholder="you@studio.com"><button>Subscribe</button></form></div>
<footer><div class="in"><span>Designer Wallcoverings — concept "Studio" (Backdrop (DTC) direction) · placeholder art for layout</span><span>One of six directions · <a href="/portal#suggested" style="color:var(--gold)">back to the brief</a></span></div></footer>
<script>
var io=new IntersectionObserver(function(es){es.forEach(function(e){if(e.isIntersecting){e.target.classList.add('in');io.unobserve(e.target);}});},{threshold:.12});
document.querySelectorAll('.rv').forEach(function(el){io.observe(el);});
// Sort + density — the house rule: functional, persisted.
var grid=document.getElementById('grid'),sel=document.getElementById('sortsel'),dens=document.getElementById('dens');
var KS='dwconcept-studio-sort',KD='dwconcept-studio-cols';
function apply(){var v=sel.value,cards=[].slice.call(grid.children);
cards.sort(function(a,b){if(v==='title')return a.dataset.title.localeCompare(b.dataset.title);
if(v==='vendor')return a.dataset.vendor.localeCompare(b.dataset.vendor);
if(v==='type')return (a.dataset.type||'').localeCompare(b.dataset.type||'')||a.dataset.title.localeCompare(b.dataset.title);
return 0;});
cards.forEach(function(c){grid.appendChild(c);});localStorage.setItem(KS,v);}
function densFill(){var mn=+dens.min||2,mx=+dens.max||6;dens.style.setProperty('--fill',((dens.value-mn)/(mx-mn)*100)+'%');}
sel.addEventListener('change',apply);
dens.addEventListener('input',function(){document.documentElement.style.setProperty('--cols',dens.value);densFill();localStorage.setItem(KD,dens.value);});
var sv=localStorage.getItem(KS),dv=localStorage.getItem(KD);
if(sv){sel.value=sv;apply();}if(dv){dens.value=dv;document.documentElement.style.setProperty('--cols',dv);}
densFill();
</script>
</body></html>