Texture layering

텍스처 레이어링

Building depth by stacking different materials — smooth, rough, woven — while keeping color close, the easiest way to keep a monochrome room from feeling flat.

Also known as: Layering textures
···
html
<div class="room">
<svg viewBox="0 0 400 250">
  <defs>
    <pattern id="weave" width="8" height="8" patternUnits="userSpaceOnUse">
      <rect width="8" height="8" fill="var(--surface)"/>
      <path d="M0,0 L8,8 M8,0 L0,8" stroke="var(--line)" stroke-width="1"/>
    </pattern>
    <pattern id="knit" width="10" height="6" patternUnits="userSpaceOnUse">
      <rect width="10" height="6" fill="var(--accent-3)" opacity=".25"/>
      <path d="M0,3 q2.5,-4 5,0 q2.5,4 5,0" stroke="var(--accent-3)" stroke-width="1.4" fill="none"/>
    </pattern>
    <pattern id="dots" width="8" height="8" patternUnits="userSpaceOnUse">
      <rect width="8" height="8" fill="var(--accent)" opacity=".2"/>
      <circle cx="4" cy="4" r="1.4" fill="var(--accent)"/>
    </pattern>
  </defs>
  <rect x="40" y="60" width="320" height="130" rx="16" fill="url(#weave)" stroke="var(--line)" stroke-width="2"/>
  <path id="throw" d="M60,120 q150,-30 280,10 l0,60 q-150,26 -280,-10 Z" fill="url(#knit)"/>
  <rect id="p1" x="80" y="80" width="60" height="50" rx="10" fill="url(#dots)" stroke="var(--line)" stroke-width="1.5"/>
  <rect id="p2" x="160" y="86" width="60" height="50" rx="10" fill="var(--accent-2)" opacity=".55"/>
</svg>
</div>
css
.room{width:min(92%,480px);aspect-ratio:400/250}
.room svg{width:100%;height:100%;display:block}
#throw{opacity:0;animation:seq 6s ease-in-out infinite}
#p1{opacity:0;animation:seq 6s ease-in-out infinite .5s}
#p2{opacity:0;animation:seq 6s ease-in-out infinite 1s}
@keyframes seq{0%,10%{opacity:0}20%,85%{opacity:1}95%,100%{opacity:0}}

Stack a smooth velvet cushion, a chunky knit throw and a soft chenille rug in the same shade of gray, and the room reads far more dimensional than the color alone would suggest — the difference is how each surface catches light and would feel to the touch. It's depth built from material contrast rather than color contrast.

A common rule of thumb: give the largest surfaces (a rug, a sofa cover) a texture with visible weave, mid-sized pieces (a throw, cushions) a different knit or velvet, and small objects (baskets, vases) a natural material like rattan or ceramic — aiming for at least three distinct textures in one space.

An all-smooth room reads flat; an all-rough one reads heavy. Alternating smooth and rough textures makes the difference visible even without touching anything.

When to use

Use it when a monochrome room feels flat. Assign a different texture to the large surface, the mid-sized pieces and the small objects — aim for at least three.