پیش‌نمایش زنده
کد HTML
<label class="folder">
  <input type="checkbox" class="folder__toggle" aria-label="Open folder" />
  <span class="folder__shape">
    <span class="folder__back"></span>
    <span class="folder__papers">
      <span class="paper paper--1"></span>
      <span class="paper paper--2"></span>
      <span class="paper paper--3"></span>
    </span>
    <span class="folder__front"></span>
  </span>
  <span class="folder__meta">
    <span class="folder__title">Documents</span>
    <span class="folder__count">128 items</span>
  </span>
</label>
کد CSS
.folder {
  --folder-back-1: #f7c14b;
  --folder-back-2: #e9a52f;
  --folder-front-1: #ffd970;
  --folder-front-2: #fbc548;
  --folder-edge: #d68f23;
  --paper: #fdfdfb;
  --paper-2: #f1f0ea;
  --ink: #2a2520;
  --ink-soft: #7c736a;
  --ring: #1d6cf5;
  --radius: 0.875em;
  --ease: cubic-bezier(0.22, 0.61, 0.36, 1);

  position: relative;
  display: inline-block;
  width: 16em;
  font-size: 16px;
  font-family:
    system-ui,
    -apple-system,
    "Segoe UI",
    Roboto,
    sans-serif;
  color: var(--ink);
  cursor: pointer;
  user-select: none;
}

.folder__toggle {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.folder__shape {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 5 / 4;
  transition: transform 0.45s var(--ease);
}

.folder__back {
  position: absolute;
  inset: 14% 0 0 0;
  background: linear-gradient(
    135deg,
    var(--folder-back-1),
    var(--folder-back-2)
  );
  border-radius: 0.25em var(--radius) var(--radius) var(--radius);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
}

.folder__back::before {
  content: "";
  position: absolute;
  top: -13%;
  left: 0;
  width: 46%;
  height: 16%;
  background: linear-gradient(
    135deg,
    var(--folder-back-1),
    var(--folder-back-2)
  );
  border-radius: 0.375em 0.375em 0 0;
  clip-path: polygon(0 0, 82% 0, 100% 100%, 0 100%);
}

.folder__papers {
  position: absolute;
  inset: 6% 8% 12% 8%;
  z-index: 2;
  display: block;
}

.paper {
  position: absolute;
  left: 50%;
  bottom: 0;
  width: 86%;
  height: 78%;
  translate: -50% 0;
  background: var(--paper);
  border-radius: 0.375em;
  box-shadow: 0 0.25em 0.875em rgba(60, 40, 10, 0.12);
  transition:
    transform 0.45s var(--ease),
    bottom 0.45s var(--ease);
  overflow: hidden;
}

.paper::before,
.paper::after {
  content: "";
  position: absolute;
  left: 14%;
  right: 24%;
  height: 6%;
  border-radius: 0.2em;
  background: var(--paper-2);
}
.paper::before {
  top: 22%;
}
.paper::after {
  top: 40%;
  right: 40%;
}

.paper--1 {
  width: 78%;
  height: 70%;
  background: #f6f4ee;
}
.paper--2 {
  width: 82%;
  height: 74%;
  background: #fbfaf6;
}
.paper--3 {
  width: 86%;
}

.folder__front {
  position: absolute;
  inset: 38% 0 0 0;
  z-index: 3;
  background: linear-gradient(
    150deg,
    var(--folder-front-1),
    var(--folder-front-2)
  );
  border-radius: var(--radius);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.55),
    0 -1px 0 var(--folder-edge),
    0 0.875em 1.375em -0.75em rgba(120, 80, 10, 0.35);
  transform-origin: bottom center;
  transition: transform 0.45s var(--ease);
}

.folder__front::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: var(--radius);
  background: linear-gradient(
    120deg,
    rgba(255, 255, 255, 0.35) 0%,
    transparent 45%
  );
  pointer-events: none;
}

.folder__meta {
  display: block;
  margin-top: 1.1em;
  text-align: center;
}
.folder__title {
  display: block;
  font-weight: 700;
  font-size: 1.05em;
  letter-spacing: -0.01em;
}
.folder__count {
  display: block;
  margin-top: 0.15em;
  font-size: 0.85em;
  color: var(--ink-soft);
}

@media (hover: hover) {
  .folder:hover .folder__shape {
    transform: translateY(-0.375em);
  }
  .folder:hover .folder__front {
    transform: rotateX(-32deg);
  }
  .folder:hover .paper {
    transform: translateY(-26%);
  }
  .folder:hover .paper--1 {
    transform: translate(-26%, -18%) rotate(-7deg);
  }
  .folder:hover .paper--2 {
    transform: translate(22%, -22%) rotate(6deg);
  }
}

.folder:active .folder__shape {
  transform: translateY(-0.125em) scale(0.99);
}

.folder__toggle:checked ~ .folder__shape {
  transform: translateY(-0.375em);
}
.folder__toggle:checked ~ .folder__shape .folder__front {
  transform: rotateX(-32deg);
}
.folder__toggle:checked ~ .folder__shape .paper {
  transform: translateY(-26%);
}
.folder__toggle:checked ~ .folder__shape .paper--1 {
  transform: translate(-26%, -18%) rotate(-7deg);
}
.folder__toggle:checked ~ .folder__shape .paper--2 {
  transform: translate(22%, -22%) rotate(6deg);
}

.folder__toggle:focus-visible ~ .folder__shape .folder__back {
  outline: 3px solid var(--ring);
  outline-offset: 4px;
  border-radius: var(--radius);
}

@media (prefers-reduced-motion: reduce) {
  .folder__shape,
  .folder__front,
  .paper {
    transition: none;
  }
}
نوع: card
تاریخ ایجاد: 2026/06/06
آخرین بروزرسانی: 2026/06/06