← back to Dw Search Toolbar Mockup

toolbar-mockup.html

173 lines

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>DW Search Toolbar — Compact Proposal</title>
<style>
  :root{
    --ink:#1a1a1a; --muted:#8a8a8a; --line:#dcdcdc; --line2:#e8e8e8;
    --gold:#C9A14B; --lightgold:#faf5e8; --bg:#f4f4f2; --card:#fff;
    --sans:'Helvetica Neue',Arial,sans-serif;
    --serif:'Georgia','Times New Roman',serif;
  }
  *{box-sizing:border-box}
  body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
       -webkit-font-smoothing:antialiased;padding:32px 20px 80px}
  .wrap{max-width:1180px;margin:0 auto}
  h1{font-family:var(--serif);font-weight:400;font-size:26px;letter-spacing:.5px;margin:0 0 4px}
  .sub{color:var(--muted);font-size:13px;margin-bottom:28px}
  .panel{background:var(--card);border:1px solid var(--line2);border-radius:14px;
         padding:22px 22px 26px;margin-bottom:22px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
  .tag{display:inline-block;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;
       color:var(--muted);margin-bottom:14px}
  .tag b{color:var(--ink)}
  .note{font-size:12px;color:var(--muted);margin-top:14px;line-height:1.5}
  .note code{background:#f0f0ee;padding:1px 5px;border-radius:4px;font-size:11px}

  /* ---------- shared pill primitives ---------- */
  .pill{border:1.5px solid var(--ink);border-radius:999px;background:#fff;
        font-weight:600;font-size:13px;display:inline-flex;align-items:center;gap:8px;
        cursor:pointer;white-space:nowrap}

  /* ================= CURRENT (baseline) ================= */
  .cur{display:flex;flex-wrap:wrap;align-items:center;gap:18px;
       padding:20px;background:#fbfbfa;border:1px dashed var(--line);border-radius:10px}
  .cur .facets{display:flex;flex-direction:column;gap:10px}
  .cur .chk{display:flex;align-items:center;gap:9px;font-weight:600;font-size:13px}
  .cur .box{width:15px;height:15px;border:1.5px solid var(--ink);border-radius:3px}
  .cur .pill{padding:13px 20px}
  .cur .grid{gap:14px}
  .cur .track{width:120px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--ink) 55%,#ccc 55%);position:relative}
  .cur .knob{position:absolute;left:55%;top:50%;transform:translate(-50%,-50%);width:14px;height:14px;border-radius:50%;background:var(--ink)}
  .cur .count{font-weight:700;font-size:15px}
  .cur .rainbow{width:16px;height:16px;border-radius:50%;
     background:conic-gradient(#e74c3c,#f1c40f,#2ecc71,#3498db,#9b59b6,#e74c3c)}
  .cur .sel{border:1.5px solid var(--ink);border-radius:999px;padding:13px 18px;font-weight:600;font-size:13px;display:inline-flex;gap:26px;align-items:center}

  /* ================= COMPACT desktop ================= */
  .cmp{display:flex;align-items:center;gap:12px;height:44px;padding:0 14px;
       background:#fff;border:1px solid var(--line);border-radius:10px}
  .cmp .grp{display:flex;align-items:center;gap:10px}
  .cmp .filters{border:1.5px solid var(--ink);border-radius:8px;height:32px;padding:0 12px;
       display:flex;align-items:center;gap:7px;font-weight:600;font-size:13px;cursor:pointer}
  .cmp .chip{height:26px;padding:0 10px;border-radius:999px;background:var(--lightgold);
       border:1px solid #eadfbc;display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:600}
  .cmp .chip .x{color:var(--muted);font-weight:700;cursor:pointer}
  .cmp .more{font-size:12px;color:var(--muted);font-weight:600;cursor:pointer}
  .cmp .spacer{flex:1}
  .cmp .count{color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap}
  .cmp .icnbtn{width:32px;height:32px;border:1px solid var(--line);border-radius:8px;
       display:inline-flex;align-items:center;justify-content:center;cursor:pointer;background:#fff}
  .cmp .rainbow{width:17px;height:17px;border-radius:50%;
     background:conic-gradient(#e74c3c,#f1c40f,#2ecc71,#3498db,#9b59b6,#e74c3c)}
  .cmp .dens{display:flex;align-items:center;gap:8px}
  .cmp .grid-ic{display:grid;grid-template-columns:repeat(3,3px);gap:2px}
  .cmp .grid-ic i{width:3px;height:3px;background:var(--muted);display:block}
  .cmp .track{width:74px;height:3px;border-radius:2px;background:var(--line);position:relative}
  .cmp .knob{position:absolute;left:60%;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:var(--ink)}
  .cmp .dnum{font-size:12px;color:var(--muted);font-weight:600;width:10px}
  .cmp .sel{height:32px;border:1px solid var(--line);border-radius:8px;padding:0 12px;
       display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:13px;cursor:pointer;background:#fff}
  .cmp .sel .car{color:var(--muted);font-size:10px}
  .div{width:1px;height:20px;background:var(--line)}

  /* ================= COMPACT mobile ================= */
  .phone{width:390px;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:#fff}
  .phone .topbar{background:#111;color:#fff;font-size:12px;text-align:center;padding:9px}
  .m-row{display:flex;align-items:center;gap:10px;padding:10px 12px}
  .m-row2{border-top:1px solid var(--line2)}
  .m-row .filters{border:1.5px solid var(--ink);border-radius:8px;height:34px;padding:0 12px;
       display:flex;align-items:center;gap:7px;font-weight:600;font-size:13px}
  .m-row .chip{height:28px;padding:0 11px;border-radius:999px;background:var(--lightgold);
       border:1px solid #eadfbc;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600}
  .m-row .count{color:var(--muted);font-size:12px;font-weight:500;margin-left:auto}
  .m-row .icnbtn{width:34px;height:34px;border:1px solid var(--line);border-radius:8px;display:inline-flex;align-items:center;justify-content:center}
  .m-row .rainbow{width:17px;height:17px;border-radius:50%;background:conic-gradient(#e74c3c,#f1c40f,#2ecc71,#3498db,#9b59b6,#e74c3c)}
  .m-row .track{width:56px;height:3px;border-radius:2px;background:var(--line);position:relative}
  .m-row .knob{position:absolute;left:60%;top:50%;transform:translate(-50%,-50%);width:12px;height:12px;border-radius:50%;background:var(--ink)}
  .m-row .sel{height:34px;border:1px solid var(--line);border-radius:8px;padding:0 12px;display:inline-flex;align-items:center;gap:10px;font-weight:600;font-size:13px;margin-left:auto}
  .legend{display:flex;gap:22px;flex-wrap:wrap;margin-top:16px;font-size:11px;color:var(--muted)}
  .legend b{color:var(--ink);font-weight:600}
  .savings{display:inline-block;background:#eafaef;color:#1c8a4a;font-size:12px;font-weight:700;
     padding:4px 12px;border-radius:999px;margin-left:10px}
</style>
</head>
<body>
<div class="wrap">
  <h1>Designer Wallcoverings — Search Toolbar</h1>
  <div class="sub">Compact proposal for <code style="font-size:12px">designerwallcoverings.com/search</code> · live theme 5.9.1</div>

  <!-- CURRENT -->
  <div class="panel">
    <div class="tag"><b>A · Current</b> &nbsp;— today's spread-out strip (~140px tall)</div>
    <div class="cur">
      <div class="facets">
        <span class="chk"><span class="box"></span> WALLCOVERINGS</span>
        <span class="chk"><span class="box"></span> FABRICS</span>
        <span class="chk"><span class="box"></span> MORE</span>
      </div>
      <span class="pill">☰ &nbsp;HIDE FILTERS</span>
      <span class="pill grid">GRID <span class="track"><span class="knob"></span></span> 6 &nbsp; SHOW 2</span>
      <span class="pill"><span class="rainbow"></span> COLOR SORT</span>
      <span class="count">37844 products</span>
      <span class="sel">SORT BY: Relevance <span>▾</span></span>
    </div>
    <div class="note">Six oversized pills + stacked checkboxes across two visual rows. The product count is the loudest element yet the least interactive.</div>
  </div>

  <!-- COMPACT DESKTOP -->
  <div class="panel">
    <div class="tag"><b>B · Compact — Desktop</b> &nbsp;— single 44px auto-layout row
      <span class="savings">▼ ~65% less height</span></div>
    <div class="cmp">
      <div class="grp">
        <span class="filters">⚟ Filters</span>
        <span class="chip">Walls <span class="x">×</span></span>
        <span class="chip">Red <span class="x">×</span></span>
        <span class="more">+3 more</span>
      </div>
      <span class="spacer"></span>
      <span class="count">37,844 results</span>
      <span class="div"></span>
      <span class="icnbtn" title="Color sort"><span class="rainbow"></span></span>
      <span class="dens" title="Grid density">
        <span class="grid-ic"><i></i><i></i><i></i><i></i><i></i><i></i></span>
        <span class="track"><span class="knob"></span></span>
        <span class="dnum">6</span>
      </span>
      <span class="div"></span>
      <span class="sel">Relevance <span class="car">▾</span></span>
    </div>
    <div class="note">Filters toggle + active facets as removable chips (left) · muted count · color-sort icon · slim density slider · bare sort select (right). Auto-layout: left group <code>hug</code>, count <code>fill</code>, right group <code>hug</code>.</div>
  </div>

  <!-- COMPACT MOBILE -->
  <div class="panel">
    <div class="tag"><b>C · Compact — Mobile</b> &nbsp;— wraps to two rows below 640px</div>
    <div class="phone">
      <div class="topbar">designerwallcoverings.com/search?q=red</div>
      <div class="m-row">
        <span class="filters">⚟ Filters</span>
        <span class="chip">Walls <span>×</span></span>
        <span class="chip">Red <span>×</span></span>
        <span class="count">37,844</span>
      </div>
      <div class="m-row m-row2">
        <span class="icnbtn"><span class="rainbow"></span></span>
        <span class="track"><span class="knob"></span></span>
        <span class="sel">Relevance ▾</span>
      </div>
    </div>
    <div class="note">Row 1 = filters + chips + count. Row 2 = color · density · sort. Thumb-reachable, nothing truncated.</div>
  </div>

  <div class="legend">
    <span><b>Tokens:</b> ink #1a1a1a · muted #8a8a8a · line #dcdcdc · gold #C9A14B · chip-bg #faf5e8</span>
    <span><b>Heights:</b> bar 44 · control 32 · gap 12</span>
    <span><b>Kept per DW rule:</b> sort ✓ &nbsp; density slider ✓</span>
  </div>
</div>
</body>
</html>