12 CSS Retro UI Designs 11 / 12

Retro Clothing Store Web UI Design

A vintage mail-order catalogue storefront: a double-rule masthead, halftone-textured paper, ticket-stub price tags, a wax-seal discount badge, a product grid with diagonal-weave thumbnails that lift on hover, and an old-school phone-order footer.

Pure CSS MIT licensed
Live Demo Open in tab
Open in playground

The code

<div class="ret-11">
  <div class="ret-11__cat">
    <div class="ret-11__masthead">
      <div class="ret-11__brand">The <b>General</b> Goods <em>Co.</em></div>
      <div class="ret-11__est">Catalogue No. 47<br><b>EST. 1974</b> · MAIL ORDER</div>
    </div>

    <div class="ret-11__strip">
      <span>◆ Free shipping over $25 ◆</span>
      <span>★ Satisfaction guaranteed ★</span>
      <span>◆ Order by phone or post ◆</span>
    </div>

    <div class="ret-11__hero">
      <div>
        <h1>Genuine goods,<br><em>honest prices.</em></h1>
        <p>Hand-picked wares from our warehouse to your doorstep. Halftone textures, double-rule borders and ticket-stub price tags — every pixel is pure CSS, no images.</p>
      </div>
      <div class="ret-11__seal">
        <div>
          <div class="big">25%<br>OFF</div>
          <small>This Month Only</small>
        </div>
      </div>
    </div>

    <div class="ret-11__grid">
      <div class="ret-11__item">
        <div class="ret-11__thumb t1"><span class="ret-11__tag">New</span>📻</div>
        <div class="ret-11__info"><h3>Tube Radio</h3><div class="sku">SKU · 0042</div>
          <div class="ret-11__price"><span class="p">$38</span><span class="was">$52</span></div>
          <a href="#" class="ret-11__add">Add to order</a></div>
      </div>
      <div class="ret-11__item">
        <div class="ret-11__thumb t2">📷</div>
        <div class="ret-11__info"><h3>Field Camera</h3><div class="sku">SKU · 0118</div>
          <div class="ret-11__price"><span class="p">$94</span></div>
          <a href="#" class="ret-11__add">Add to order</a></div>
      </div>
      <div class="ret-11__item">
        <div class="ret-11__thumb t3"><span class="ret-11__tag">Sale</span>☎️</div>
        <div class="ret-11__info"><h3>Rotary Phone</h3><div class="sku">SKU · 0076</div>
          <div class="ret-11__price"><span class="p">$29</span><span class="was">$45</span></div>
          <a href="#" class="ret-11__add">Add to order</a></div>
      </div>
      <div class="ret-11__item">
        <div class="ret-11__thumb t4">⌚</div>
        <div class="ret-11__info"><h3>Wind-Up Watch</h3><div class="sku">SKU · 0203</div>
          <div class="ret-11__price"><span class="p">$61</span></div>
          <a href="#" class="ret-11__add">Add to order</a></div>
      </div>
      <div class="ret-11__item">
        <div class="ret-11__thumb t5"><span class="ret-11__tag">Hot</span>🕹️</div>
        <div class="ret-11__info"><h3>Joystick Set</h3><div class="sku">SKU · 0159</div>
          <div class="ret-11__price"><span class="p">$22</span><span class="was">$30</span></div>
          <a href="#" class="ret-11__add">Add to order</a></div>
      </div>
      <div class="ret-11__item">
        <div class="ret-11__thumb t6">🧳</div>
        <div class="ret-11__info"><h3>Travel Trunk</h3><div class="sku">SKU · 0011</div>
          <div class="ret-11__price"><span class="p">$110</span></div>
          <a href="#" class="ret-11__add">Add to order</a></div>
      </div>
    </div>

    <div class="ret-11__order">
      <span class="t">To order, ring us today —</span>
      <span class="phone">☎ 1-800-RETRO-CO</span>
      <button class="cart">🛒 View Cart (3)</button>
    </div>
  </div>
</div>
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Serif+Display:ital@0;1&family=Courier+Prime:wght@400;700&display=swap');

.ret-11, .ret-11 *, .ret-11 *::before, .ret-11 *::after { box-sizing: border-box; margin: 0; padding: 0; }
.ret-11 ::selection{background:#d4451f;color:#f4ecd8}

.ret-11{
  --paper:#f4ecd8;
  --ink:#2b2118;
  --rust:#d4451f;
  --mustard:#e0a92e;
  --teal:#1f6b5e;
  --cream:#fbf6e9;
  font-family:'Courier Prime',monospace;
  background:var(--paper);
  background-image:
    radial-gradient(circle at 50% 50%,rgba(212,69,31,.04) 1px,transparent 1px),
    radial-gradient(circle,rgba(0,0,0,.025) 1px,transparent 1px);
  background-size:8px 8px,4px 4px;
  color:var(--ink);
  min-height:100vh;padding:clamp(14px,3vw,40px);
}
.ret-11__cat{max-width:920px;margin:0 auto;background:var(--cream);border:2px solid var(--ink);
  box-shadow:8px 8px 0 var(--ink);position:relative}
/* aged paper edge */
.ret-11__cat::before{content:'';position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 60px rgba(120,80,30,.12)}

.ret-11__masthead{border-bottom:3px double var(--ink);padding:18px 22px;display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:10px;background:var(--ink);color:var(--paper)}
.ret-11__masthead .ret-11__brand{font-family:'DM Serif Display';font-size:clamp(1.8rem,6vw,3rem);line-height:.9;font-style:italic}
.ret-11__masthead .ret-11__brand b{color:var(--mustard);font-style:normal}
.ret-11__masthead .ret-11__est{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;text-align:right;line-height:1.6}
.ret-11__est b{color:var(--rust)}

.ret-11__strip{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;background:var(--mustard);color:var(--ink);padding:7px 22px;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;border-bottom:2px solid var(--ink)}

.ret-11__hero{padding:22px;display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:center;border-bottom:2px solid var(--ink)}
@media(max-width:640px){.ret-11__hero{grid-template-columns:1fr}}
.ret-11__hero h1{font-family:'Bebas Neue';font-size:clamp(2.4rem,9vw,4.4rem);line-height:.9;letter-spacing:.01em}
.ret-11__hero h1 em{color:var(--rust);font-style:normal}
.ret-11__hero p{margin-top:10px;font-size:.92rem;line-height:1.5}
.ret-11__seal{aspect-ratio:1;max-width:200px;margin:0 auto;border-radius:50%;background:var(--rust);color:var(--cream);
  display:grid;place-items:center;text-align:center;padding:20px;position:relative;
  box-shadow:0 0 0 4px var(--cream),0 0 0 6px var(--rust)}
.ret-11__seal .big{font-family:'Bebas Neue';font-size:2.6rem;line-height:.85}
.ret-11__seal small{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;display:block;margin-top:6px}
.ret-11__seal::before{content:'★ ★ ★';position:absolute;bottom:14px;font-size:.6rem;letter-spacing:.3em}

.ret-11__grid{padding:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:640px){.ret-11__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:380px){.ret-11__grid{grid-template-columns:1fr}}
.ret-11__item{border:1.5px solid var(--ink);background:var(--cream);display:flex;flex-direction:column;transition:transform .15s,box-shadow .15s}
.ret-11__item:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--ink)}
.ret-11__thumb{aspect-ratio:1;display:grid;place-items:center;font-size:2.6rem;border-bottom:1.5px solid var(--ink);position:relative;overflow:hidden}
.ret-11__thumb.t1{background:repeating-linear-gradient(45deg,#e8c9a0 0 10px,#dcb98a 10px 20px)}
.ret-11__thumb.t2{background:repeating-linear-gradient(45deg,#bcd9d2 0 10px,#a8cdc4 10px 20px)}
.ret-11__thumb.t3{background:repeating-linear-gradient(45deg,#f0cdbf 0 10px,#e8bba8 10px 20px)}
.ret-11__thumb.t4{background:repeating-linear-gradient(45deg,#e4dca0 0 10px,#d8cf88 10px 20px)}
.ret-11__thumb.t5{background:repeating-linear-gradient(45deg,#cfc4e0 0 10px,#bfb2d6 10px 20px)}
.ret-11__thumb.t6{background:repeating-linear-gradient(45deg,#d9d0c4 0 10px,#cabfb0 10px 20px)}
.ret-11__tag{position:absolute;top:8px;left:8px;background:var(--rust);color:var(--cream);font-size:.6rem;font-weight:700;letter-spacing:.1em;padding:3px 7px;text-transform:uppercase}
.ret-11__info{padding:12px;flex:1;display:flex;flex-direction:column}
.ret-11__info h3{font-family:'DM Serif Display';font-size:1.05rem;line-height:1.1}
.ret-11__info .sku{font-size:.66rem;color:#8a7a64;letter-spacing:.1em;margin:3px 0 8px}
.ret-11__price{margin-top:auto;display:flex;align-items:baseline;justify-content:space-between}
.ret-11__price .p{font-family:'Bebas Neue';font-size:1.6rem;color:var(--teal)}
.ret-11__price .was{font-size:.74rem;text-decoration:line-through;color:#a89880}
.ret-11__add{display:block;text-align:center;margin-top:10px;background:var(--ink);color:var(--cream);text-decoration:none;
  font-size:.7rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;padding:8px;transition:background .2s}
.ret-11__add:hover{background:var(--rust)}

.ret-11__order{border-top:3px double var(--ink);padding:20px 22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;background:var(--teal);color:var(--cream)}
.ret-11__order .t{font-family:'DM Serif Display';font-size:1.2rem;font-style:italic}
.ret-11__order .phone{font-family:'Bebas Neue';font-size:1.8rem;letter-spacing:.04em}
.ret-11__order .cart{background:var(--mustard);color:var(--ink);border:2px solid var(--cream);font-family:'Bebas Neue';font-size:1.2rem;letter-spacing:.05em;padding:8px 22px;cursor:pointer}

@media (prefers-reduced-motion: reduce){.ret-11 *{transition:none !important}}

Search CodeFronts

Loading…