پیش‌نمایش زنده
کد HTML
<div class="card-universe-wrapper">
  <div class="parallax-container">
    <div class="tracker tr-1"></div>
    <div class="tracker tr-2"></div>
    <div class="tracker tr-3"></div>
    <div class="tracker tr-4"></div>
    <div class="tracker tr-5"></div>
    <div class="tracker tr-6"></div>
    <div class="tracker tr-7"></div>
    <div class="tracker tr-8"></div>
    <div class="tracker tr-9"></div>

    <div class="tilt-card">
      <div class="glare"></div>
      <div class="card-front">
        <div class="card-header">
          <div class="brand-logo">
            <svg
              viewBox="0 0 100 70"
              fill="none"
              xmlns="http://www.w3.org/2000/svg"
            >
              <rect
                x="4"
                y="4"
                width="92"
                height="62"
                rx="14"
                fill="#E8E8E8"
                stroke="#D1D1D1"
                stroke-width="6"
              ></rect>
              <rect
                x="30"
                y="30"
                width="40"
                height="10"
                rx="5"
                fill="#4A4A4A"
              ></rect>
              <path
                d="M 96 35 C 75 35 65 45 65 66 L 82 66 C 89.7 66 96 59.7 96 52 Z"
                fill="#F27800"
              ></path>
            </svg>
          </div>
          <div class="nfc-icon">
            <svg
              viewBox="0 0 24 24"
              fill="none"
              stroke="currentColor"
              stroke-width="2"
              stroke-linecap="round"
            >
              <path
                d="M12 2v20M17 5c2.5 3 2.5 11 0 14M21 2c4 4 4 16 0 20M7 5c-2.5 3-2.5 11 0 14M3 2c-4 4-4 16 0 20"
              ></path>
            </svg>
          </div>
        </div>

        <div class="chip-container">
          <div class="chip">
            <div class="chip-line"></div>
            <div class="chip-line"></div>
            <div class="chip-line"></div>
            <div class="chip-main"></div>
          </div>
          <div class="card-type">WORLD ELITE</div>
        </div>

        <div class="card-numbers embossed">
          <span>4123</span>
          <span>8901</span>
          <span>2345</span>
          <span>2026</span>
        </div>

        <div class="card-footer">
          <div class="cardholder">
            <div class="label">CARDHOLDER</div>
            <div class="value embossed">OM RAJPUT</div>
          </div>
          <div class="valid-thru">
            <div class="label">VALID THRU</div>
            <div class="value embossed">12/30</div>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
کد CSS
@import url("s://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&family=Plus+Jakarta+Sans:wght@600;800&display=swap");

.card-universe-wrapper {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-height: 100%;
  padding: 40px 20px;
  background-color: #000000;
  font-family: "Plus Jakarta Sans", sans-serif;
}

.parallax-container {
  position: relative;
  width: 380px; /* Exact credit card aspect ratio (approx 1.58:1) */
  height: 240px;
  perspective: 1200px; /* Creates the 3D space */
}

/* --- THE INVISIBLE TRACKING GRID --- */
.tracker {
  position: absolute;
  width: 33.33%;
  height: 33.33%;
  z-index: 10;
}

/* Grid Positioning */
.tr-1 {
  top: 0;
  left: 0;
}
.tr-2 {
  top: 0;
  left: 33.33%;
}
.tr-3 {
  top: 0;
  left: 66.66%;
}
.tr-4 {
  top: 33.33%;
  left: 0;
}
.tr-5 {
  top: 33.33%;
  left: 33.33%;
}
.tr-6 {
  top: 33.33%;
  left: 66.66%;
}
.tr-7 {
  top: 66.66%;
  left: 0;
}
.tr-8 {
  top: 66.66%;
  left: 33.33%;
}
.tr-9 {
  top: 66.66%;
  left: 66.66%;
}

/* --- THE CREDIT CARD --- */
.tilt-card {
  position: absolute;
  inset: 0;
  /* Deep obsidian metallic finish */
  background: linear-gradient(135deg, #2b2b2b 0%, #111111 50%, #050505 100%);
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.15);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.9);
  transform-style: preserve-3d;
  transition:
    transform 0.4s cubic-bezier(0.25, 1, 0.5, 1),
    box-shadow 0.4s ease;
  overflow: hidden;
  z-index: 1;
}

/* Noise Texture for metallic realism */
.tilt-card::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: 0.15;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");
  pointer-events: none;
  z-index: 2;
}

/* Dynamic Lighting Glare */
.glare {
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(
    circle at center,
    rgba(255, 255, 255, 0.15) 0%,
    transparent 50%
  );
  opacity: 0;
  transition: all 0.4s ease;
  pointer-events: none;
  z-index: 5;
}

/* --- THE 3D HOVER PHYSICS (PURE CSS) --- */
.tr-1:hover ~ .tilt-card {
  transform: rotateX(12deg) rotateY(-12deg);
  box-shadow: 15px 30px 40px rgba(0, 0, 0, 0.9);
}
.tr-2:hover ~ .tilt-card {
  transform: rotateX(12deg) rotateY(0deg);
  box-shadow: 0 30px 40px rgba(0, 0, 0, 0.9);
}
.tr-3:hover ~ .tilt-card {
  transform: rotateX(12deg) rotateY(12deg);
  box-shadow: -15px 30px 40px rgba(0, 0, 0, 0.9);
}

.tr-4:hover ~ .tilt-card {
  transform: rotateX(0deg) rotateY(-12deg);
  box-shadow: 15px 20px 40px rgba(0, 0, 0, 0.9);
}
.tr-5:hover ~ .tilt-card {
  transform: rotateX(0deg) rotateY(0deg);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.9);
}
.tr-6:hover ~ .tilt-card {
  transform: rotateX(0deg) rotateY(12deg);
  box-shadow: -15px 20px 40px rgba(0, 0, 0, 0.9);
}

.tr-7:hover ~ .tilt-card {
  transform: rotateX(-12deg) rotateY(-12deg);
  box-shadow: 15px 10px 40px rgba(0, 0, 0, 0.9);
}
.tr-8:hover ~ .tilt-card {
  transform: rotateX(-12deg) rotateY(0deg);
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.9);
}
.tr-9:hover ~ .tilt-card {
  transform: rotateX(-12deg) rotateY(12deg);
  box-shadow: -15px 10px 40px rgba(0, 0, 0, 0.9);
}

/* Glare Movement Physics */
.tr-1:hover ~ .tilt-card .glare {
  transform: translate(15%, 15%);
  opacity: 1;
}
.tr-3:hover ~ .tilt-card .glare {
  transform: translate(-15%, 15%);
  opacity: 1;
}
.tr-7:hover ~ .tilt-card .glare {
  transform: translate(15%, -15%);
  opacity: 1;
}
.tr-9:hover ~ .tilt-card .glare {
  transform: translate(-15%, -15%);
  opacity: 1;
}
.tr-2:hover ~ .tilt-card .glare,
.tr-4:hover ~ .tilt-card .glare,
.tr-6:hover ~ .tilt-card .glare,
.tr-8:hover ~ .tilt-card .glare {
  opacity: 0.6;
}

/* Reset when not hovering */
.parallax-container:not(:hover) .tilt-card {
  transform: rotateX(0) rotateY(0);
  transition:
    transform 0.6s cubic-bezier(0.25, 1, 0.5, 1),
    box-shadow 0.6s ease;
}

/* --- CARD CONTENT STYLING --- */
.card-front {
  position: relative;
  z-index: 10;
  padding: 24px 28px;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transform: translateZ(30px); /* 3D pop out effect */
  transform-style: preserve-3d;
}

.card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
}

.brand-logo {
  width: 56px;
  height: auto;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.5));
}

.nfc-icon {
  color: rgba(255, 255, 255, 0.4);
  width: 20px;
  height: 20px;
  transform: rotate(90deg); /* Standard NFC icon rotation */
}

/* Physical Embossed Text Effect */
.embossed {
  color: #d1d1d1;
  text-shadow:
    1px 1px 1px rgba(255, 255, 255, 0.2),
    -1px -1px 1px rgba(0, 0, 0, 0.8);
}

.chip-container {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  margin-top: 10px;
}

.chip {
  width: 44px;
  height: 34px;
  background: linear-gradient(135deg, #e0c879 0%, #a67c00 100%);
  border-radius: 6px;
  position: relative;
  overflow: hidden;
  box-shadow:
    inset 0 0 6px rgba(0, 0, 0, 0.6),
    0 2px 4px rgba(0, 0, 0, 0.4);
}

.chip-line {
  position: absolute;
  background: rgba(0, 0, 0, 0.25);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
}

.chip-line:nth-child(1) {
  top: 25%;
  left: 0;
  right: 0;
  height: 1px;
}
.chip-line:nth-child(2) {
  top: 50%;
  left: 0;
  right: 0;
  height: 1px;
}
.chip-line:nth-child(3) {
  top: 75%;
  left: 0;
  right: 0;
  height: 1px;
}

.chip-main {
  position: absolute;
  top: 15%;
  left: 25%;
  right: 25%;
  bottom: 15%;
  border: 1px solid rgba(0, 0, 0, 0.3);
  border-radius: 4px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.card-type {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.3);
}

.card-numbers {
  font-family: "JetBrains Mono", monospace;
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.15em;
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
}

.card-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.cardholder,
.valid-thru {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.label {
  font-size: 8px;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.4);
  letter-spacing: 0.1em;
}

.value {
  font-family: "JetBrains Mono", monospace;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
نوع: card
تاریخ ایجاد: 2026/06/06
آخرین بروزرسانی: 2026/06/06